# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1270059439 -10800 # Node ID b8fae6b8a1487d8a85189186470a582898e63fe9 # Parent 9674c1a575e9335ae1f8bd49dbea5feeee86e124 Revision: 201011 Kit: 201013 diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/manifest.dat --- a/idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/manifest.dat Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/manifest.dat Wed Mar 31 21:17:19 2010 +0300 @@ -1,5 +1,5 @@ - + qhd_tch diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/widgetconfiguration.xml --- a/idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/widgetconfiguration.xml Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/widgetconfiguration.xml Wed Mar 31 21:17:19 2010 +0300 @@ -8,12 +8,12 @@ - + - - + + - + @@ -22,10 +22,10 @@ - + - + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/empty_2001f47f/hsps/00/manifest.dat --- a/idlehomescreen/data/qhd_tch/empty_2001f47f/hsps/00/manifest.dat Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/empty_2001f47f/hsps/00/manifest.dat Wed Mar 31 21:17:19 2010 +0300 @@ -1,6 +1,6 @@ - + @@ -57,4 +57,4 @@ - \ No newline at end of file + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/group/bld.inf --- a/idlehomescreen/data/qhd_tch/group/bld.inf Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/group/bld.inf Wed Mar 31 21:17:19 2010 +0300 @@ -25,6 +25,8 @@ #include "../posterwideimage_2001fdbc/group/bld.inf" #include "../profile_2001cb7c/group/bld.inf" #include "../view_2001f48b/group/bld.inf" +#include "../view_200286e4/group/bld.inf" +#include "../view_200286e5/group/bld.inf" #include "../templateview_20026f50/group/bld.inf" #include "../root_2001f482/group/bld.inf" diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/onerow_2001f480/hsps/00/manifest.dat --- a/idlehomescreen/data/qhd_tch/onerow_2001f480/hsps/00/manifest.dat Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/onerow_2001f480/hsps/00/manifest.dat Wed Mar 31 21:17:19 2010 +0300 @@ -1,18 +1,18 @@ - + - qhd_tch + qhd_tch - template + template - + 0x2001f48a @@ -60,4 +60,4 @@ - \ No newline at end of file + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/posterwideimage_2001fdbc/hsps/00/manifest.dat --- a/idlehomescreen/data/qhd_tch/posterwideimage_2001fdbc/hsps/00/manifest.dat Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/posterwideimage_2001fdbc/hsps/00/manifest.dat Wed Mar 31 21:17:19 2010 +0300 @@ -1,18 +1,18 @@ - + - qhd_tch + qhd_tch - template + template - + 0x2001f48a @@ -58,4 +58,4 @@ - \ No newline at end of file + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/profile_2001cb7c/hsps/00/manifest.dat --- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/hsps/00/manifest.dat Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/hsps/00/manifest.dat Wed Mar 31 21:17:19 2010 +0300 @@ -1,6 +1,6 @@ - + qhd_tch widget @@ -32,4 +32,4 @@ profile.o0000 - \ No newline at end of file + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.xml --- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.xml Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.xml Wed Mar 31 21:17:19 2010 +0300 @@ -106,20 +106,20 @@ - + <title id="title_sat" titleindex="0"> + <property class="SAT/SatIdleModeText"/> + <property class="policy/emptyContent" name="title_sat" value="display: none;" /> + <property class="policy/Content" name="title_sat" value="display: block;" /> + <property class="policy/Visibility" name="NT_SATVHZ" value="if (title_vhz,title_sat,SatIdleModeIcon) display:block" /> + <property class="policy/Visibility" name="NT_SATVHZ" value="if !+(title_vhz,title_sat,SatIdleModeIcon) display:none" /> + + <property class="DeviceStatus/VHZText"/> <property class="policy/emptyContent" name="title_vhz" value="display: none;" /> <property class="policy/Content" name="title_vhz" value="display: block;" /> <property class="policy/Visibility" name="NT_SATVHZ" value="if (title_vhz,title_sat,SatIdleModeIcon) display:block" /> <property class="policy/Visibility" name="NT_SATVHZ" value="if !+(title_vhz,title_sat,SatIdleModeIcon) display:none" /> - - <property class="SAT/SatIdleModeText"/> - <property class="policy/emptyContent" name="title_sat" value="display: none;" /> - <property class="policy/Content" name="title_sat" value="display: block;" /> - <property class="policy/Visibility" name="NT_SATVHZ" value="if (title_vhz,title_sat,SatIdleModeIcon) display:block" /> - <property class="policy/Visibility" name="NT_SATVHZ" value="if !+(title_vhz,title_sat,SatIdleModeIcon) display:none" /> - diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.confml Binary file idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.confml has changed diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.gcfml --- a/idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.gcfml Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.gcfml Wed Mar 31 21:17:19 2010 +0300 @@ -1,3 +1,4 @@ + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/root_2001f482/hsps/00/manifest.dat --- a/idlehomescreen/data/qhd_tch/root_2001f482/hsps/00/manifest.dat Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/root_2001f482/hsps/00/manifest.dat Wed Mar 31 21:17:19 2010 +0300 @@ -1,11 +1,11 @@ - + - qhd_tch + qhd_tch - application + application - + 0x102750F0 @@ -30,4 +30,4 @@ - \ No newline at end of file + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/templateview_20026f50/hsps/00/manifest.dat --- a/idlehomescreen/data/qhd_tch/templateview_20026f50/hsps/00/manifest.dat Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/hsps/00/manifest.dat Wed Mar 31 21:17:19 2010 +0300 @@ -1,8 +1,8 @@ - + - qhd_tch - view + qhd_tch + view 0x2001f48a @@ -28,4 +28,4 @@ templateview.o0000 - \ No newline at end of file + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.css --- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.css Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.css Wed Mar 31 21:17:19 2010 +0300 @@ -29,28 +29,6 @@ nav-index: appearance; } -image.widget_indication -{ - display: none; - position: absolute; - - left: auto; - right: 3px; - top: 5px; - - height: 26px; - width: 26px; - - path: "SKIN(270501603 9252)"; - _s60-aspect-ratio: preserve; - z-index: 2; -} - -image.widget_indication:edit -{ - display: block; -} - trigger#hs_popup_open_hold:edit { display: none; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.xml --- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.xml Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.xml Wed Mar 31 21:17:19 2010 +0300 @@ -21,8 +21,7 @@ - - + @@ -34,8 +33,7 @@ - - + @@ -80,24 +78,12 @@ - - - - - - - - - - - - - - - - - - + + + + + + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/37/templateview.css --- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/37/templateview.css Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/37/templateview.css Wed Mar 31 21:17:19 2010 +0300 @@ -29,28 +29,6 @@ nav-index: appearance; } -image.widget_indication -{ - display: none; - position: absolute; - - right: auto; - left: 3px; - top: 5px; - - height: 26px; - width: 26px; - - path: "SKIN(270501603 9252)"; - _s60-aspect-ratio: preserve; - z-index: 2; -} - -image.widget_indication:edit -{ - display: block; -} - trigger#hs_popup_open_hold:edit { display: none; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/50/templateview.css --- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/50/templateview.css Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/50/templateview.css Wed Mar 31 21:17:19 2010 +0300 @@ -29,28 +29,6 @@ nav-index: appearance; } -image.widget_indication -{ - display: none; - position: absolute; - - right: auto; - left: 3px; - top: 5px; - - height: 26px; - width: 26px; - - path: "SKIN(270501603 9252)"; - _s60-aspect-ratio: preserve; - z-index: 2; -} - -image.widget_indication:edit -{ - display: block; -} - trigger#hs_popup_open_hold:edit { display: none; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/57/templateview.css --- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/57/templateview.css Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/57/templateview.css Wed Mar 31 21:17:19 2010 +0300 @@ -29,28 +29,6 @@ nav-index: appearance; } -image.widget_indication -{ - display: none; - position: absolute; - - right: auto; - left: 3px; - top: 5px; - - height: 26px; - width: 26px; - - path: "SKIN(270501603 9252)"; - _s60-aspect-ratio: preserve; - z-index: 2; -} - -image.widget_indication:edit -{ - display: block; -} - trigger#hs_popup_open_hold:edit { display: none; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/94/templateview.css --- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/94/templateview.css Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/94/templateview.css Wed Mar 31 21:17:19 2010 +0300 @@ -29,28 +29,6 @@ nav-index: appearance; } -image.widget_indication -{ - display: none; - position: absolute; - - right: auto; - left: 3px; - top: 5px; - - height: 26px; - width: 26px; - - path: "SKIN(270501603 9252)"; - _s60-aspect-ratio: preserve; - z-index: 2; -} - -image.widget_indication:edit -{ - display: block; -} - trigger#hs_popup_open_hold:edit { display: none; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/threerows_2001f486/hsps/00/manifest.dat --- a/idlehomescreen/data/qhd_tch/threerows_2001f486/hsps/00/manifest.dat Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/threerows_2001f486/hsps/00/manifest.dat Wed Mar 31 21:17:19 2010 +0300 @@ -1,18 +1,18 @@ - + - qhd_tch + qhd_tch - template + template - + 0x2001f48a @@ -60,4 +60,4 @@ - \ No newline at end of file + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/threetextrows_2001f487/hsps/00/manifest.dat --- a/idlehomescreen/data/qhd_tch/threetextrows_2001f487/hsps/00/manifest.dat Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/threetextrows_2001f487/hsps/00/manifest.dat Wed Mar 31 21:17:19 2010 +0300 @@ -1,18 +1,18 @@ - + - qhd_tch + qhd_tch - template + template - + 0x2001f48a @@ -62,4 +62,4 @@ - \ No newline at end of file + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/tworows_2001f488/hsps/00/manifest.dat --- a/idlehomescreen/data/qhd_tch/tworows_2001f488/hsps/00/manifest.dat Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/tworows_2001f488/hsps/00/manifest.dat Wed Mar 31 21:17:19 2010 +0300 @@ -1,18 +1,18 @@ - + - qhd_tch + qhd_tch - template + template - + 0x2001f48a @@ -60,4 +60,4 @@ - \ No newline at end of file + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.confml Binary file idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.confml has changed diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.gcfml --- a/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.gcfml Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.gcfml Wed Mar 31 21:17:19 2010 +0300 @@ -1,57 +1,58 @@ + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - + - + - - + + - + - + - - + + @@ -60,7 +61,7 @@ - + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bmanifest.confml Binary file idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bmanifest.confml has changed diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bmanifest.gcfml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bmanifest.gcfml Wed Mar 31 21:17:19 2010 +0300 @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + & + + ; + + + + + + + + + + + + + + + + + + + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bxuikon.confml Binary file idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bxuikon.confml has changed diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bxuikon.gcfml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bxuikon.gcfml Wed Mar 31 21:17:19 2010 +0300 @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_2001f48b/group/bld.inf --- a/idlehomescreen/data/qhd_tch/view_2001f48b/group/bld.inf Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_2001f48b/group/bld.inf Wed Mar 31 21:17:19 2010 +0300 @@ -24,7 +24,7 @@ PRJ_EXPORTS // Support for productization and Carbide.Ui customization //******************************************************** -../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/view_2001f48b/hsps/manifest.dat +//../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/view_2001f48b/hsps/manifest.dat //../hsps/00/viewconfiguration.xml /epoc32/data/Z/resource/homescreen/view_2001f48b/hsps/viewconfiguration.xml ../xuikon/00/View.dat /epoc32/data/Z/resource/homescreen/view_2001f48b/xuikon/view_2001f48b.dat @@ -44,6 +44,10 @@ //*********************************** ../conf/view2001f48b.confml APP_LAYER_CONFML(view2001f48b.confml) ../conf/view2001f48b.gcfml APP_LAYER_GCFML(view2001f48b.gcfml) +../conf/view2001f48bmanifest.confml APP_LAYER_CONFML(view2001f48bmanifest.confml) +../conf/view2001f48bmanifest.gcfml APP_LAYER_GCFML(view2001f48bmanifest.gcfml) +../conf/view2001f48bxuikon.confml APP_LAYER_CONFML(view2001f48bxuikon.confml) +../conf/view2001f48bxuikon.gcfml APP_LAYER_GCFML(view2001f48bxuikon.gcfml) // Support for S60 localization //***************************** @@ -57,7 +61,7 @@ ../rom/view_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(view_2001f48b_resources.iby) ../rom/view_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view_2001f48b_customer.iby) //../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view_2001f48b_variant.iby) -../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view_2001f48b.iby) +//../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view_2001f48b.iby) // Dtd-localization diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_2001f48b/hsps/00/manifest.dat --- a/idlehomescreen/data/qhd_tch/view_2001f48b/hsps/00/manifest.dat Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_2001f48b/hsps/00/manifest.dat Wed Mar 31 21:17:19 2010 +0300 @@ -1,6 +1,6 @@ - + @@ -56,4 +56,4 @@ - \ No newline at end of file + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.css --- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.css Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.css Wed Mar 31 21:17:19 2010 +0300 @@ -29,28 +29,6 @@ nav-index: appearance; } -image.widget_indication -{ - display: none; - position: absolute; - - left: auto; - right: 3px; - top: 5px; - - height: 26px; - width: 26px; - - path: "SKIN(270501603 9252)"; - _s60-aspect-ratio: preserve; - z-index: 2; -} - -image.widget_indication:edit -{ - display: block; -} - trigger#hs_popup_open_hold:edit { display: none; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.xml --- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.xml Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.xml Wed Mar 31 21:17:19 2010 +0300 @@ -22,7 +22,6 @@ - @@ -35,7 +34,6 @@ - @@ -80,24 +78,12 @@ - - - - - - - - - - - - - - - - - - + + + + + + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/37/View.css --- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/37/View.css Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/37/View.css Wed Mar 31 21:17:19 2010 +0300 @@ -27,28 +27,6 @@ nav-index: appearance; } -image.widget_indication -{ - display: none; - position: absolute; - - right: auto; - left: 3px; - top: 5px; - - height: 26px; - width: 26px; - - path: "SKIN(270501603 9252)"; - _s60-aspect-ratio: preserve; - z-index: 2; -} - -image.widget_indication:edit -{ - display: block; -} - trigger#hs_popup_open_hold:edit { display: none; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/50/View.css --- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/50/View.css Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/50/View.css Wed Mar 31 21:17:19 2010 +0300 @@ -27,28 +27,6 @@ nav-index: appearance; } -image.widget_indication -{ - display: none; - position: absolute; - - right: auto; - left: 3px; - top: 5px; - - height: 26px; - width: 26px; - - path: "SKIN(270501603 9252)"; - _s60-aspect-ratio: preserve; - z-index: 2; -} - -image.widget_indication:edit -{ - display: block; -} - trigger#hs_popup_open_hold:edit { display: none; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/57/View.css --- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/57/View.css Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/57/View.css Wed Mar 31 21:17:19 2010 +0300 @@ -27,28 +27,6 @@ nav-index: appearance; } -image.widget_indication -{ - display: none; - position: absolute; - - right: auto; - left: 3px; - top: 5px; - - height: 26px; - width: 26px; - - path: "SKIN(270501603 9252)"; - _s60-aspect-ratio: preserve; - z-index: 2; -} - -image.widget_indication:edit -{ - display: block; -} - trigger#hs_popup_open_hold:edit { display: none; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/94/View.css --- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/94/View.css Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/94/View.css Wed Mar 31 21:17:19 2010 +0300 @@ -27,28 +27,6 @@ nav-index: appearance; } -image.widget_indication -{ - display: none; - position: absolute; - - right: auto; - left: 3px; - top: 5px; - - height: 26px; - width: 26px; - - path: "SKIN(270501603 9252)"; - _s60-aspect-ratio: preserve; - z-index: 2; -} - -image.widget_indication:edit -{ - display: block; -} - trigger#hs_popup_open_hold:edit { display: none; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.confml Binary file idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.confml has changed diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.gcfml --- a/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.gcfml Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.gcfml Wed Mar 31 21:17:19 2010 +0300 @@ -1,57 +1,58 @@ + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - + - + - - + + - + - + - - + + @@ -60,7 +61,7 @@ - + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4manifest.confml Binary file idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4manifest.confml has changed diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4manifest.gcfml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4manifest.gcfml Wed Mar 31 21:17:19 2010 +0300 @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + & + + ; + + + + + + + + + + + + + + + + + + + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4xuikon.confml Binary file idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4xuikon.confml has changed diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4xuikon.gcfml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4xuikon.gcfml Wed Mar 31 21:17:19 2010 +0300 @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e4/group/bld.inf --- a/idlehomescreen/data/qhd_tch/view_200286e4/group/bld.inf Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_200286e4/group/bld.inf Wed Mar 31 21:17:19 2010 +0300 @@ -24,8 +24,8 @@ PRJ_EXPORTS // Support for productization and Carbide.Ui customization //******************************************************** -../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/view_200286e4/hsps/manifest.dat -../hsps/00/viewconfiguration.xml /epoc32/data/Z/resource/homescreen/view_200286e4/hsps/viewconfiguration.xml +//../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/view_200286e4/hsps/manifest.dat +//../hsps/00/viewconfiguration.xml /epoc32/data/Z/resource/homescreen/view_200286e4/hsps/viewconfiguration.xml ../xuikon/00/View.dat /epoc32/data/Z/resource/homescreen/view_200286e4/xuikon/view_200286e4.dat ../xuikon/00/View.css /epoc32/data/Z/resource/homescreen/view_200286e4/xuikon/view.css @@ -43,8 +43,12 @@ //Confml and cfgml files for the customization // starting use confml it is need to remove root_configuration.xml direct exporting (view_200286e4_variant.iby) //*********************************** -//../conf/view200286e4.confml APP_LAYER_CONFML(view200286e4.confml) -//../conf/view200286e4.gcfml APP_LAYER_GCFML(view200286e4.gcfml) +../conf/view200286e4.confml APP_LAYER_CONFML(view200286e4.confml) +../conf/view200286e4.gcfml APP_LAYER_GCFML(view200286e4.gcfml) +../conf/view200286e4manifest.confml APP_LAYER_CONFML(view200286e4manifest.confml) +../conf/view200286e4manifest.gcfml APP_LAYER_GCFML(view200286e4manifest.gcfml) +../conf/view200286e4xuikon.confml APP_LAYER_CONFML(view200286e4xuikon.confml) +../conf/view200286e4xuikon.gcfml APP_LAYER_GCFML(view200286e4xuikon.gcfml) // Support for S60 localization //***************************** @@ -57,8 +61,8 @@ //*********************** ../rom/view_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(view_200286e4_resources.iby) ../rom/view_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view_200286e4_customer.iby) -../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view_200286e4_variant.iby) -../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view_200286e4.iby) +//../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view_200286e4_variant.iby) +//../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view_200286e4.iby) // Dtd-localization diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e4/hsps/00/manifest.dat --- a/idlehomescreen/data/qhd_tch/view_200286e4/hsps/00/manifest.dat Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_200286e4/hsps/00/manifest.dat Wed Mar 31 21:17:19 2010 +0300 @@ -1,6 +1,6 @@ - + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.css --- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.css Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.css Wed Mar 31 21:17:19 2010 +0300 @@ -34,28 +34,6 @@ background-color:"SKIN(270501603 8582)"; } -image.widget_indication -{ - display: none; - position: absolute; - - left: auto; - right: 3px; - top: 5px; - - height: 26px; - width: 26px; - - path: "SKIN(270501603 9252)"; - _s60-aspect-ratio: preserve; - z-index: 2; -} - -image.widget_indication:edit -{ - display: block; -} - trigger#hs_popup_open_hold:edit { display: none; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.xml --- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.xml Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.xml Wed Mar 31 21:17:19 2010 +0300 @@ -22,7 +22,6 @@ - @@ -35,7 +34,6 @@ - @@ -80,24 +78,12 @@ - - - - - - - - - - - - - - - - - - + + + + + + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e4/xuikon/37/View.css --- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/37/View.css Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/37/View.css Wed Mar 31 21:17:19 2010 +0300 @@ -32,28 +32,6 @@ background-color:"SKIN(270501603 8582)"; } -image.widget_indication -{ - display: none; - position: absolute; - - right: auto; - left: 3px; - top: 5px; - - height: 26px; - width: 26px; - - path: "SKIN(270501603 9252)"; - _s60-aspect-ratio: preserve; - z-index: 2; -} - -image.widget_indication:edit -{ - display: block; -} - trigger#hs_popup_open_hold:edit { display: none; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e4/xuikon/50/View.css --- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/50/View.css Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/50/View.css Wed Mar 31 21:17:19 2010 +0300 @@ -32,28 +32,6 @@ background-color:"SKIN(270501603 8582)"; } -image.widget_indication -{ - display: none; - position: absolute; - - right: auto; - left: 3px; - top: 5px; - - height: 26px; - width: 26px; - - path: "SKIN(270501603 9252)"; - _s60-aspect-ratio: preserve; - z-index: 2; -} - -image.widget_indication:edit -{ - display: block; -} - trigger#hs_popup_open_hold:edit { display: none; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e4/xuikon/57/View.css --- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/57/View.css Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/57/View.css Wed Mar 31 21:17:19 2010 +0300 @@ -32,28 +32,6 @@ background-color:"SKIN(270501603 8582)"; } -image.widget_indication -{ - display: none; - position: absolute; - - right: auto; - left: 3px; - top: 5px; - - height: 26px; - width: 26px; - - path: "SKIN(270501603 9252)"; - _s60-aspect-ratio: preserve; - z-index: 2; -} - -image.widget_indication:edit -{ - display: block; -} - trigger#hs_popup_open_hold:edit { display: none; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e4/xuikon/94/View.css --- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/94/View.css Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/94/View.css Wed Mar 31 21:17:19 2010 +0300 @@ -32,28 +32,6 @@ background-color:"SKIN(270501603 8582)"; } -image.widget_indication -{ - display: none; - position: absolute; - - right: auto; - left: 3px; - top: 5px; - - height: 26px; - width: 26px; - - path: "SKIN(270501603 9252)"; - _s60-aspect-ratio: preserve; - z-index: 2; -} - -image.widget_indication:edit -{ - display: block; -} - trigger#hs_popup_open_hold:edit { display: none; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.confml Binary file idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.confml has changed diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.gcfml --- a/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.gcfml Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.gcfml Wed Mar 31 21:17:19 2010 +0300 @@ -1,57 +1,58 @@ + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - + - + - - + + - + - + - - + + @@ -60,7 +61,7 @@ - + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5manifest.confml Binary file idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5manifest.confml has changed diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5manifest.gcfml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5manifest.gcfml Wed Mar 31 21:17:19 2010 +0300 @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + & + + ; + + + + + + + + + + + + + + + + + + + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5xuikon.confml Binary file idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5xuikon.confml has changed diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5xuikon.gcfml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5xuikon.gcfml Wed Mar 31 21:17:19 2010 +0300 @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e5/group/bld.inf --- a/idlehomescreen/data/qhd_tch/view_200286e5/group/bld.inf Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_200286e5/group/bld.inf Wed Mar 31 21:17:19 2010 +0300 @@ -24,8 +24,8 @@ PRJ_EXPORTS // Support for productization and Carbide.Ui customization //******************************************************** -../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/view_200286e5/hsps/manifest.dat -../hsps/00/viewconfiguration.xml /epoc32/data/Z/resource/homescreen/view_200286e5/hsps/viewconfiguration.xml +//../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/view_200286e5/hsps/manifest.dat +//../hsps/00/viewconfiguration.xml /epoc32/data/Z/resource/homescreen/view_200286e5/hsps/viewconfiguration.xml ../xuikon/00/View.dat /epoc32/data/Z/resource/homescreen/view_200286e5/xuikon/view_200286e5.dat ../xuikon/00/View.css /epoc32/data/Z/resource/homescreen/view_200286e5/xuikon/view.css @@ -43,8 +43,12 @@ //Confml and cfgml files for the customization // starting use confml it is need to remove root_configuration.xml direct exporting (view_200286e5_variant.iby) //*********************************** -//../conf/view2001f486.confml APP_LAYER_CONFML(view200286e5.confml) -//../conf/view2001f486.gcfml APP_LAYER_GCFML(view200286e5.gcfml) +../conf/view200286e5.confml APP_LAYER_CONFML(view200286e5.confml) +../conf/view200286e5.gcfml APP_LAYER_GCFML(view200286e5.gcfml) +../conf/view200286e5manifest.confml APP_LAYER_CONFML(view200286e5manifest.confml) +../conf/view200286e5manifest.gcfml APP_LAYER_GCFML(view200286e5manifest.gcfml) +../conf/view200286e5xuikon.confml APP_LAYER_CONFML(view200286e5xuikon.confml) +../conf/view200286e5xuikon.gcfml APP_LAYER_GCFML(view200286e5xuikon.gcfml) // Support for S60 localization //***************************** @@ -57,8 +61,8 @@ //*********************** ../rom/view_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(view_200286e5_resources.iby) ../rom/view_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view_200286e5_customer.iby) -../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view_200286e5_variant.iby) -../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view_200286e5.iby) +//../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view_200286e5_variant.iby) +//../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view_200286e5.iby) // Dtd-localization diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e5/hsps/00/manifest.dat --- a/idlehomescreen/data/qhd_tch/view_200286e5/hsps/00/manifest.dat Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_200286e5/hsps/00/manifest.dat Wed Mar 31 21:17:19 2010 +0300 @@ -1,6 +1,6 @@ - + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.css --- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.css Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.css Wed Mar 31 21:17:19 2010 +0300 @@ -34,28 +34,6 @@ background-color:"SKIN(270501603 8582)"; } -image.widget_indication -{ - display: none; - position: absolute; - - left: auto; - right: 3px; - top: 5px; - - height: 26px; - width: 26px; - - path: "SKIN(270501603 9252)"; - _s60-aspect-ratio: preserve; - z-index: 2; -} - -image.widget_indication:edit -{ - display: block; -} - trigger#hs_popup_open_hold:edit { display: none; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.xml --- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.xml Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.xml Wed Mar 31 21:17:19 2010 +0300 @@ -22,7 +22,6 @@ - @@ -35,7 +34,6 @@ - @@ -80,24 +78,12 @@ - - - - - - - - - - - - - - - - - - + + + + + + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e5/xuikon/37/View.css --- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/37/View.css Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/37/View.css Wed Mar 31 21:17:19 2010 +0300 @@ -32,28 +32,6 @@ background-color:"SKIN(270501603 8582)"; } -image.widget_indication -{ - display: none; - position: absolute; - - right: auto; - left: 3px; - top: 5px; - - height: 26px; - width: 26px; - - path: "SKIN(270501603 9252)"; - _s60-aspect-ratio: preserve; - z-index: 2; -} - -image.widget_indication:edit -{ - display: block; -} - trigger#hs_popup_open_hold:edit { display: none; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e5/xuikon/50/View.css --- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/50/View.css Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/50/View.css Wed Mar 31 21:17:19 2010 +0300 @@ -32,28 +32,6 @@ background-color:"SKIN(270501603 8582)"; } -image.widget_indication -{ - display: none; - position: absolute; - - right: auto; - left: 3px; - top: 5px; - - height: 26px; - width: 26px; - - path: "SKIN(270501603 9252)"; - _s60-aspect-ratio: preserve; - z-index: 2; -} - -image.widget_indication:edit -{ - display: block; -} - trigger#hs_popup_open_hold:edit { display: none; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e5/xuikon/57/View.css --- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/57/View.css Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/57/View.css Wed Mar 31 21:17:19 2010 +0300 @@ -32,28 +32,6 @@ background-color:"SKIN(270501603 8582)"; } -image.widget_indication -{ - display: none; - position: absolute; - - right: auto; - left: 3px; - top: 5px; - - height: 26px; - width: 26px; - - path: "SKIN(270501603 9252)"; - _s60-aspect-ratio: preserve; - z-index: 2; -} - -image.widget_indication:edit -{ - display: block; -} - trigger#hs_popup_open_hold:edit { display: none; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/view_200286e5/xuikon/94/View.css --- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/94/View.css Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/94/View.css Wed Mar 31 21:17:19 2010 +0300 @@ -32,28 +32,6 @@ background-color:"SKIN(270501603 8582)"; } -image.widget_indication -{ - display: none; - position: absolute; - - right: auto; - left: 3px; - top: 5px; - - height: 26px; - width: 26px; - - path: "SKIN(270501603 9252)"; - _s60-aspect-ratio: preserve; - z-index: 2; -} - -image.widget_indication:edit -{ - display: block; -} - trigger#hs_popup_open_hold:edit { display: none; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/qhd_tch/wideimage_2001f489/hsps/00/manifest.dat --- a/idlehomescreen/data/qhd_tch/wideimage_2001f489/hsps/00/manifest.dat Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/qhd_tch/wideimage_2001f489/hsps/00/manifest.dat Wed Mar 31 21:17:19 2010 +0300 @@ -1,18 +1,18 @@ - + - qhd_tch + qhd_tch - template + template - + 0x2001f48a @@ -56,4 +56,4 @@ - \ No newline at end of file + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/vga_tch/desktop_20018eee/hsps/00/manifest.dat --- a/idlehomescreen/data/vga_tch/desktop_20018eee/hsps/00/manifest.dat Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/vga_tch/desktop_20018eee/hsps/00/manifest.dat Wed Mar 31 21:17:19 2010 +0300 @@ -1,5 +1,5 @@ - + vga_tch diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/hsps/00/manifest.dat --- a/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/hsps/00/manifest.dat Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/hsps/00/manifest.dat Wed Mar 31 21:17:19 2010 +0300 @@ -1,5 +1,5 @@ - + vga_tch diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/hsps/00/manifest.dat --- a/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/hsps/00/manifest.dat Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/hsps/00/manifest.dat Wed Mar 31 21:17:19 2010 +0300 @@ -1,5 +1,5 @@ - + vga_tch diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/manifest.dat --- a/idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/manifest.dat Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/manifest.dat Wed Mar 31 21:17:19 2010 +0300 @@ -1,5 +1,5 @@ - + vga_tch diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/hsps/00/manifest.dat --- a/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/hsps/00/manifest.dat Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/hsps/00/manifest.dat Wed Mar 31 21:17:19 2010 +0300 @@ -1,5 +1,5 @@ - + vga_tch diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/hsps/00/manifest.dat --- a/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/hsps/00/manifest.dat Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/hsps/00/manifest.dat Wed Mar 31 21:17:19 2010 +0300 @@ -1,5 +1,5 @@ - + vga_tch diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/hsps/00/manifest.dat --- a/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/hsps/00/manifest.dat Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/hsps/00/manifest.dat Wed Mar 31 21:17:19 2010 +0300 @@ -1,5 +1,5 @@ - + vga_tch diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/hsps/00/manifest.dat --- a/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/hsps/00/manifest.dat Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/hsps/00/manifest.dat Wed Mar 31 21:17:19 2010 +0300 @@ -1,5 +1,5 @@ - + vga_tch diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/vga_tch/view1_2001fdb9/hsps/00/manifest.dat --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/hsps/00/manifest.dat Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/hsps/00/manifest.dat Wed Mar 31 21:17:19 2010 +0300 @@ -1,5 +1,5 @@ - + vga_tch diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/data/vga_tch/wideimage_10009dff/hsps/00/manifest.dat --- a/idlehomescreen/data/vga_tch/wideimage_10009dff/hsps/00/manifest.dat Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/hsps/00/manifest.dat Wed Mar 31 21:17:19 2010 +0300 @@ -1,5 +1,5 @@ - + vga_tch diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/exths/group/backup_registration.xml --- a/idlehomescreen/exths/group/backup_registration.xml Mon Mar 15 12:39:47 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/exths/group/bld.inf --- a/idlehomescreen/exths/group/bld.inf Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/exths/group/bld.inf Wed Mar 31 21:17:19 2010 +0300 @@ -27,11 +27,6 @@ ../rom/aicontainer.iby CORE_APP_LAYER_IBY_EXPORT_PATH(aicontainer.iby) -// Backup registration -//backup_registration.xml /epoc32/data/z/private/101fd657/backup_registration.xml -//backup_registration.xml /epoc32/release/winscw/udeb/z/private/101fd657/backup_registration.xml -//backup_registration.xml /epoc32/release/winscw/urel/z/private/101fd657/backup_registration.xml - // Generic configuration interface for component cenrep settings ../conf/activeidle.confml APP_LAYER_CONFML(activeidle.confml) ../conf/activeidle_10207467.crml APP_LAYER_CRML(activeidle_10207467.crml) diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/exths/rom/aicontainer.iby --- a/idlehomescreen/exths/rom/aicontainer.iby Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/exths/rom/aicontainer.iby Wed Mar 31 21:17:19 2010 +0300 @@ -23,7 +23,6 @@ #ifdef RD_CUSTOMIZABLE_AI ECOM_PLUGIN(aicontainer.dll,101FD657.rsc) -data=ZPRIVATE\101FD657\backup_registration.xml private\101FD657\backup_registration.xml #endif // RD_CUSTOMIZABLE_AI #endif // AIPLUGINTEST_IBY diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/hscontentcontrol/group/hscontentcontrol.mmp --- a/idlehomescreen/hscontentcontrol/group/hscontentcontrol.mmp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/hscontentcontrol/group/hscontentcontrol.mmp Wed Mar 31 21:17:19 2010 +0300 @@ -33,7 +33,7 @@ SOURCE hscontentcontrolfactory.cpp SOURCE hscontentcontrolui.cpp SOURCE hscontentcontrolecomlistener.cpp -SOURCE hscontentcontroluninstallmonitor.cpp +SOURCE hscontentcontrolswilistener.cpp //By default, the build tools look for the WINSCW def file in a BWINS directory //(at the same level as the directory containing the mmp file), @@ -60,7 +60,8 @@ LIBRARY estor.lib LIBRARY ecom.lib LIBRARY charconv.lib -LIBRARY xn3layoutengine.lib +LIBRARY swiutils.lib +LIBRARY xn3layoutengine.lib #ifdef ENABLE_ABIV2_MODE DEBUGGABLE diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/hscontentcontrol/inc/hscontentcontrolfactory.h --- a/idlehomescreen/hscontentcontrol/inc/hscontentcontrolfactory.h Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/hscontentcontrol/inc/hscontentcontrolfactory.h Wed Mar 31 21:17:19 2010 +0300 @@ -24,11 +24,11 @@ // User includes #include "hscontentcontrolecomobserver.h" -#include "hscontentcontroluninstallobserver.h" +#include "hscontentcontrolswiobserver.h" // Forward declarations class CHsContentControlEComListener; -class CHsContentControlUninstallMonitor; +class CHsContentControlSwiListener; class CXnAppUiAdapter; /** @@ -44,7 +44,7 @@ */ NONSHARABLE_CLASS( CHsContentControlFactory ) : public CBase, public MHsContentControlEComObserver, - public MHsContentControlUninstallObserver + public MHsContentControlSwiObserver { public: // Constructor and destructor /** @@ -64,14 +64,14 @@ */ void HandleEComChangeEvent(); -private: // from MHsContentControlUninstallObserver +private: // from MHsContentControlSwiObserver /** - * Notification of Uninstall event from SWI. - * @param aPkgUid The package UID which is being uninstalled. + * Notification of Install/Uninstall event from SWI. + * @param aUidList The package UID list which is being processed. */ - void HandleUninstallEvent( const TUid& aPkgUid ); - + void HandleSwiEvent( const RArray& aUidList ); + private: // Constructors /** * Constructor @@ -150,9 +150,9 @@ CHsContentControlEComListener* iHsContentControlEComListener; /** - * An object of type CHsContentControlUninstallMonitor ( Owned ). + * An object of type CHsContentControlSwiListener ( Owned ). */ - CHsContentControlUninstallMonitor* iHsContentControlUninstallMonitor; + CHsContentControlSwiListener* iHsContentControlSwiListener; }; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/hscontentcontrol/inc/hscontentcontrolswilistener.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/hscontentcontrol/inc/hscontentcontrolswilistener.h Wed Mar 31 21:17:19 2010 +0300 @@ -0,0 +1,61 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Utility class to listen SWI operations. +* +*/ + +#ifndef HSCONTENTCONTROLSWILISTENER_H +#define HSCONTENTCONTROLSWILISTENER_H + +// System includes +#include +#include + +// User includes +#include "hscontentcontrolswiobserver.h" + +// Forward declarations + +// Class declaration +/** +* @class CHsContentControlSwiListener +* +* @brief An instance of class CHsContentControlSwiListener which listens for +* SWI operations (installation, uninstallation , restore). +* +* @lib hscontentcontrol.lib +*/ +NONSHARABLE_CLASS( CHsContentControlSwiListener ) : public CActive + { +public: // constructors and destructor + static CHsContentControlSwiListener* NewL( + MHsContentControlSwiObserver& aObs ); + ~CHsContentControlSwiListener(); + +protected: // from CActive + void DoCancel(); + void RunL(); + +private: // new functions + CHsContentControlSwiListener( + MHsContentControlSwiObserver& aObs ); + void ConstructL(); + +private: // data + MHsContentControlSwiObserver& iObs; + RProperty iSwInstallKey; + }; + +#endif // HSCONTENTCONTROLSWILISTENER_H + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/hscontentcontrol/inc/hscontentcontrolswiobserver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/hscontentcontrol/inc/hscontentcontrolswiobserver.h Wed Mar 31 21:17:19 2010 +0300 @@ -0,0 +1,42 @@ +/* +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Interface for getting notified for Swi events. +* +*/ + + +#ifndef HSCONTENTCONTROLSWIOBSERVER_H +#define HSCONTENTCONTROLSWIOBSERVER_H + +/** +* MHsContentControlSwiObserver +* +* @brief The observer of Swi operations. The derived class needs to implement +* the functions below and will be notified by CHsContentControlSwiListener +* +* @see CHsContentControlSwiListener +*/ +class MHsContentControlSwiObserver + { +public: + /** + * Notification of Swi event ( install/uninstall/restore) + * @param aUidList list of package UID which is being processed. + */ + virtual void HandleSwiEvent( const RArray& aUidList ) = 0; + }; + +#endif // HSCONTENTCONTROLSWIOBSERVER_H + +// End of file diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/hscontentcontrol/inc/hscontentcontroluninstallmonitor.h --- a/idlehomescreen/hscontentcontrol/inc/hscontentcontroluninstallmonitor.h Mon Mar 15 12:39:47 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Class to listen SWI uninstall operation. -* -*/ - -#ifndef HSCONTENTCONTROLUNINSTALLMONITOR_H -#define HSCONTENTCONTROLUNINSTALLMONITOR_H - -// System includes -#include -#include - -// User includes -#include "hscontentcontroluninstallobserver.h" - -// Forward declarations - -// Class declaration -/** -* @class CHsContentControlUninstallMonitor -* -* @brief An instance of class CHsContentControlUninstallMonitor which listens for -* uninstall event from SWI. -* -* @lib hscontentcontrol.lib -*/ -NONSHARABLE_CLASS( CHsContentControlUninstallMonitor ) : public CActive - { -public: // constructors and destructor - static CHsContentControlUninstallMonitor* NewL( - MHsContentControlUninstallObserver& aObs ); - ~CHsContentControlUninstallMonitor(); - -protected: // from CActive - void DoCancel(); - void RunL(); - -private: // new functions - CHsContentControlUninstallMonitor( - MHsContentControlUninstallObserver& aObs ); - void ConstructL(); - -private: // data - MHsContentControlUninstallObserver& iObs; - RProperty iSwUninstallKey; - }; - -#endif // HSCONTENTCONTROLUNINSTALLMONITOR_H - diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/hscontentcontrol/inc/hscontentcontroluninstallobserver.h --- a/idlehomescreen/hscontentcontrol/inc/hscontentcontroluninstallobserver.h Mon Mar 15 12:39:47 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* -* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Interface for getting notified for SWI uninstall event. -* -*/ - - -#ifndef HSCONTENTCONTROLUNINSTALLOBSERVER_H -#define HSCONTENTCONTROLUNINSTALLOBSERVER_H - -/** -* MHsContentControlUninstallObserver -* -* @brief The observer of uninstall operations. The derived class needs to implement -* the functions below and will be notified by CHsContentControlUninstallMonitor. -* -* @see CHsContentControlUninstallMonitor -*/ -class MHsContentControlUninstallObserver - { -public: - /** - * Notification of Uninstall event from SWI. - * @param aPkgUid The package UID which is being uninstalled. - */ - virtual void HandleUninstallEvent( const TUid& aPkgUid ) = 0; - }; - -#endif // HSCONTENTCONTROLUNINSTALLOBSERVER_H - -// End of file diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/hscontentcontrol/src/hscontentcontrolfactory.cpp --- a/idlehomescreen/hscontentcontrol/src/hscontentcontrolfactory.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/hscontentcontrol/src/hscontentcontrolfactory.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -24,7 +24,7 @@ #include "xnappuiadapter.h" #include "hscontentcontrolfactory.h" #include "hscontentcontrolecomlistener.h" -#include "hscontentcontroluninstallmonitor.h" +#include "hscontentcontrolswilistener.h" // Local constants @@ -81,11 +81,11 @@ { iHsContentControlEComListener = CHsContentControlEComListener::NewL( *this ); + iHsContentControlSwiListener = + CHsContentControlSwiListener::NewL( *this ); + REComSession::ListImplementationsL( - KInterfaceUidContentController, iImplArray ); - - iHsContentControlUninstallMonitor = - CHsContentControlUninstallMonitor::NewL( *this ); + KInterfaceUidContentController, iImplArray ); } // ---------------------------------------------------------------------------- @@ -102,13 +102,13 @@ // ---------------------------------------------------------------------------- // EXPORT_C CHsContentControlFactory::~CHsContentControlFactory() - { - delete iHsContentControlEComListener; - delete iHsContentControlUninstallMonitor; + { + delete iHsContentControlEComListener; + delete iHsContentControlSwiListener; iImplArray.ResetAndDestroy(); iImplArray.Close(); - + iHsContentControlUis.ResetAndDestroy(); } @@ -208,25 +208,29 @@ } // ---------------------------------------------------------------------------- -// CHsContentControlFactory::HandleUninstallEvent() +// CHsContentControlFactory::HandleSwiEvent() // ---------------------------------------------------------------------------- // -void CHsContentControlFactory::HandleUninstallEvent( const TUid& aPkgUid ) +void CHsContentControlFactory::HandleSwiEvent( const RArray& aUidList ) { // ignore event if no plugin loaded. - if ( iHsContentControlUis.Count() > 0 ) + if ( iHsContentControlUis.Count() > 0 && aUidList.Count() > 0 ) { for( TInt index( iHsContentControlUis.Count() - 1 ); index >= 0; --index ) { CHsContentControlUi* cc( iHsContentControlUis[ index ] ); - // ImplUid of plugin must match Sis pkg uid - if ( cc && cc->ImplUid() == aPkgUid ) + for( TInt uidIndex( aUidList.Count() - 1 ); uidIndex >= 0 && cc; --uidIndex ) { - ReleaseHsCcUi( cc ); - iHsContentControlUis.Remove( index ); - delete cc; - cc = NULL; - break; + // ImplUid of plugin must match Sis pkg uid + if ( cc->ImplUid() == aUidList[uidIndex] ) + { + // release ui and keep checking, multiple package might be being + // processed by SWI, this events comes once for all packages. + ReleaseHsCcUi( cc ); + iHsContentControlUis.Remove( index ); + delete cc; + cc = NULL; + } } } } diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/hscontentcontrol/src/hscontentcontrolswilistener.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/hscontentcontrol/src/hscontentcontrolswilistener.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -0,0 +1,109 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Class to listen SWI operations (install/uninstall/restore). +* +*/ +#include +#include // KSWIUidsCurrentlyBeingProcessed + +#include "hscontentcontrolswilistener.h" + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// CHsContentControlSwiListener::NewL() +// --------------------------------------------------------------------------- +// +CHsContentControlSwiListener* CHsContentControlSwiListener::NewL( + MHsContentControlSwiObserver& aObs ) + { + CHsContentControlSwiListener* self = + new( ELeave ) CHsContentControlSwiListener( aObs ); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------------------------- +// CHsContentControlSwiListener::~CHsContentControlSwiListener() +// --------------------------------------------------------------------------- +// +CHsContentControlSwiListener::~CHsContentControlSwiListener() + { + Cancel(); + iSwInstallKey.Close(); + } + +// --------------------------------------------------------------------------- +// CHsContentControlSwiListener::DoCancel() +// --------------------------------------------------------------------------- +// +void CHsContentControlSwiListener::DoCancel() + { + if ( IsActive() ) + { + iSwInstallKey.Cancel(); + } + } + +// --------------------------------------------------------------------------- +// CHsContentControlSwiListener::RunL() +// --------------------------------------------------------------------------- +// +void CHsContentControlSwiListener::RunL() + { + RArray uidList; + + // get list of uids being processed. + if ( Swi::GetAllUids( uidList ) == KErrNone ) + { + iObs.HandleSwiEvent( uidList ); + uidList.Reset(); + } + + // close array + uidList.Close(); + + // keep monitoring + iSwInstallKey.Subscribe( iStatus ); + SetActive(); + } + +// --------------------------------------------------------------------------- +// CHsContentControlSwiListener::CHsContentControlSwiListener() +// --------------------------------------------------------------------------- +// +CHsContentControlSwiListener::CHsContentControlSwiListener( + MHsContentControlSwiObserver& aObs ) + : CActive( CActive::EPriorityStandard ), + iObs( aObs ) + { + CActiveScheduler::Add( this ); + } + +// --------------------------------------------------------------------------- +// CHsContentControlSwiListener::ConstructL() +// --------------------------------------------------------------------------- +// +void CHsContentControlSwiListener::ConstructL() + { + if ( KErrNone == iSwInstallKey.Attach( + KUidSystemCategory, KSWIUidsCurrentlyBeingProcessed ) ) + { + iSwInstallKey.Subscribe( iStatus ); + SetActive(); + } + } + diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/hscontentcontrol/src/hscontentcontroluninstallmonitor.cpp --- a/idlehomescreen/hscontentcontrol/src/hscontentcontroluninstallmonitor.cpp Mon Mar 15 12:39:47 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,104 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Class to listen SWI uninstall operation. -* -*/ - -#include "hscontentcontroluninstallmonitor.h" -#include - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CHsContentControlUninstallMonitor::NewL() -// --------------------------------------------------------------------------- -// -CHsContentControlUninstallMonitor* CHsContentControlUninstallMonitor::NewL( - MHsContentControlUninstallObserver& aObs ) - { - CHsContentControlUninstallMonitor* self = - new ( ELeave ) CHsContentControlUninstallMonitor( aObs ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CHsContentControlUninstallMonitor::~CHsContentControlUninstallMonitor() -// --------------------------------------------------------------------------- -// -CHsContentControlUninstallMonitor::~CHsContentControlUninstallMonitor() - { - Cancel(); - iSwUninstallKey.Close(); - } - -// --------------------------------------------------------------------------- -// CHsContentControlUninstallMonitor::DoCancel() -// --------------------------------------------------------------------------- -// -void CHsContentControlUninstallMonitor::DoCancel() - { - if ( IsActive() ) - { - iSwUninstallKey.Cancel(); - } - } - -// --------------------------------------------------------------------------- -// CHsContentControlUninstallMonitor::RunL() -// --------------------------------------------------------------------------- -// -void CHsContentControlUninstallMonitor::RunL() - { - iSwUninstallKey.Subscribe( iStatus ); - SetActive(); - - TInt value = 0; - if( iSwUninstallKey.Get( value ) == KErrNone ) - { - TUid uid( KNullUid ); - uid.iUid = value; - iObs.HandleUninstallEvent( uid ); - } - } - -// --------------------------------------------------------------------------- -// CHsContentControlUninstallMonitor::CHsContentControlUninstallMonitor() -// --------------------------------------------------------------------------- -// -CHsContentControlUninstallMonitor::CHsContentControlUninstallMonitor( - MHsContentControlUninstallObserver& aObs ) - : CActive( CActive::EPriorityStandard ), - iObs( aObs ) - { - CActiveScheduler::Add( this ); - } - -// --------------------------------------------------------------------------- -// CHsContentControlUninstallMonitor::ConstructL() -// --------------------------------------------------------------------------- -// -void CHsContentControlUninstallMonitor::ConstructL() - { - if ( KErrNone == iSwUninstallKey.Attach( - KPSUidSWInstallerUiNotification, KSWInstallerUninstallation ) ) - { - iSwUninstallKey.Subscribe( iStatus ); - SetActive(); - } - } - -// End of file diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/inc/xnappuiadapter.h --- a/idlehomescreen/inc/xnappuiadapter.h Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/inc/xnappuiadapter.h Wed Mar 31 21:17:19 2010 +0300 @@ -160,12 +160,12 @@ CXnNodeAppIf& aDestination ); /** - * This is called when initial view is activated + * This is called when (initial) view is ready * To be overriden by subclass. * * @since S60 5.2 */ - IMPORT_C virtual void UiActivated(); + IMPORT_C virtual void HandleUiReadyEventL(); /** * Second-phase constructor diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/inc/xnviewmanager.h --- a/idlehomescreen/inc/xnviewmanager.h Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/inc/xnviewmanager.h Wed Mar 31 21:17:19 2010 +0300 @@ -264,11 +264,11 @@ void ResetCrashCount(); /** - * Show error note - * - * @param aResourceId Resource id for string to be displayed. + * Show error note from resource. */ - void ShowErrorNoteL( const TInt aResourceId ); + void ShowErrorNoteL(); + + void DoRobustnessCheckL(); private: // data diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/loc/activeidle3.loc --- a/idlehomescreen/loc/activeidle3.loc Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/loc/activeidle3.loc Wed Mar 31 21:17:19 2010 +0300 @@ -297,3 +297,9 @@ // r: TB9.2 // #define qtn_hs_corrupted_image_note "Unable to select. Image corrupted or format not supported." + +// d: Show when default configuration is loaded (critical error case) +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_error_content_removed "Critical error occurred. Content removed." diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/sapiwrapper/hspswrapper/bwins/hspswrapper.def --- a/idlehomescreen/sapiwrapper/hspswrapper/bwins/hspswrapper.def Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/sapiwrapper/hspswrapper/bwins/hspswrapper.def Wed Mar 31 21:17:19 2010 +0300 @@ -44,59 +44,59 @@ ?NewLC@CHspsWrapper@hspswrapper@@SAPAV12@ABVTDesC8@@PAVMHspsWrapperObserver@2@@Z @ 43 NONAME ; class hspswrapper::CHspsWrapper * hspswrapper::CHspsWrapper::NewLC(class TDesC8 const &, class hspswrapper::MHspsWrapperObserver *) ?SetNameL@CPropertyMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 44 NONAME ; class hspswrapper::CPropertyMap & hspswrapper::CPropertyMap::SetNameL(class TDesC8 const &) ?SetConfStateL@CHspsWrapper@hspswrapper@@QAEHABVTDesC8@@0H@Z @ 45 NONAME ; int hspswrapper::CHspsWrapper::SetConfStateL(class TDesC8 const &, class TDesC8 const &, int) - ?MediaType@CObjectMap@hspswrapper@@QBEABVTDesC8@@XZ @ 46 NONAME ; class TDesC8 const & hspswrapper::CObjectMap::MediaType(void) const - ?SetTypeL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 47 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetTypeL(class TDesC8 const &) - ?AddPropertyMapL@CItemMap@hspswrapper@@QAEAAV12@PAVCPropertyMap@2@@Z @ 48 NONAME ; class hspswrapper::CItemMap & hspswrapper::CItemMap::AddPropertyMapL(class hspswrapper::CPropertyMap *) - ?NewLC@CObjectMap@hspswrapper@@SAPAV12@XZ @ 49 NONAME ; class hspswrapper::CObjectMap * hspswrapper::CObjectMap::NewLC(void) - ?GetAppConfigurationsL@CHspsWrapper@hspswrapper@@QAEXAAV?$RPointerArray@VCPluginInfo@hspswrapper@@@@@Z @ 50 NONAME ; void hspswrapper::CHspsWrapper::GetAppConfigurationsL(class RPointerArray &) - ?NewL@CPluginInfo@hspswrapper@@SAPAV12@XZ @ 51 NONAME ; class hspswrapper::CPluginInfo * hspswrapper::CPluginInfo::NewL(void) - ?SetItemNameL@CItemMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 52 NONAME ; class hspswrapper::CItemMap & hspswrapper::CItemMap::SetItemNameL(class TDesC8 const &) - ?AddPluginL@CHspsWrapper@hspswrapper@@QAEPAVCAddPluginResult@2@ABVTDesC8@@0@Z @ 53 NONAME ; class hspswrapper::CAddPluginResult * hspswrapper::CHspsWrapper::AddPluginL(class TDesC8 const &, class TDesC8 const &) - ?NewL@CHspsConfiguration@hspswrapper@@SAPAV12@XZ @ 54 NONAME ; class hspswrapper::CHspsConfiguration * hspswrapper::CHspsConfiguration::NewL(void) - ?SetLogoIconL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 55 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetLogoIconL(class TDesC8 const &) - ?SetPluginUidL@CPluginMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 56 NONAME ; class hspswrapper::CPluginMap & hspswrapper::CPluginMap::SetPluginUidL(class TDesC8 const &) - ?SetValueL@CPropertyMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 57 NONAME ; class hspswrapper::CPropertyMap & hspswrapper::CPropertyMap::SetValueL(class TDesC8 const &) - ??1CObjectMap@hspswrapper@@UAE@XZ @ 58 NONAME ; hspswrapper::CObjectMap::~CObjectMap(void) - ??1CItemMap@hspswrapper@@UAE@XZ @ 59 NONAME ; hspswrapper::CItemMap::~CItemMap(void) - ?Name@CPropertyMap@hspswrapper@@QBEABVTDesC8@@XZ @ 60 NONAME ; class TDesC8 const & hspswrapper::CPropertyMap::Name(void) const - ?SetPluginSettingsL@CHspsWrapper@hspswrapper@@QAEHABVTDesC8@@ABV?$RPointerArray@VCItemMap@hspswrapper@@@@@Z @ 61 NONAME ; int hspswrapper::CHspsWrapper::SetPluginSettingsL(class TDesC8 const &, class RPointerArray const &) - ?ConfId@CHspsConfiguration@hspswrapper@@QBEABVTDesC8@@XZ @ 62 NONAME ; class TDesC8 const & hspswrapper::CHspsConfiguration::ConfId(void) const - ?GetPluginsL@CHspsWrapper@hspswrapper@@QAEXAAV?$RPointerArray@VCPluginInfo@hspswrapper@@@@ABVTDesC8@@1@Z @ 63 NONAME ; void hspswrapper::CHspsWrapper::GetPluginsL(class RPointerArray &, class TDesC8 const &, class TDesC8 const &) - ?ItemId@CItemMap@hspswrapper@@QBEABVTDesC8@@XZ @ 64 NONAME ; class TDesC8 const & hspswrapper::CItemMap::ItemId(void) const - ?GetAppConfigurationL@CHspsWrapper@hspswrapper@@QAEPAVCHspsConfiguration@2@XZ @ 65 NONAME ; class hspswrapper::CHspsConfiguration * hspswrapper::CHspsWrapper::GetAppConfigurationL(void) - ?NewL@CItemMap@hspswrapper@@SAPAV12@XZ @ 66 NONAME ; class hspswrapper::CItemMap * hspswrapper::CItemMap::NewL(void) - ?SetPathL@CObjectMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 67 NONAME ; class hspswrapper::CObjectMap & hspswrapper::CObjectMap::SetPathL(class TDesC8 const &) - ?PluginId@CAddPluginResult@hspswrapper@@QBEABVTDesC8@@XZ @ 68 NONAME ; class TDesC8 const & hspswrapper::CAddPluginResult::PluginId(void) const - ??1CAddPluginResult@hspswrapper@@UAE@XZ @ 69 NONAME ; hspswrapper::CAddPluginResult::~CAddPluginResult(void) - ?NewLC@CPluginMap@hspswrapper@@SAPAV12@XZ @ 70 NONAME ; class hspswrapper::CPluginMap * hspswrapper::CPluginMap::NewLC(void) - ?ReplacePluginL@CHspsWrapper@hspswrapper@@QAEHABVTDesC8@@0@Z @ 71 NONAME ; int hspswrapper::CHspsWrapper::ReplacePluginL(class TDesC8 const &, class TDesC8 const &) - ?Resources@CHspsConfiguration@hspswrapper@@QAEAAV?$RPointerArray@VCObjectMap@hspswrapper@@@@XZ @ 72 NONAME ; class RPointerArray & hspswrapper::CHspsConfiguration::Resources(void) - ?MaxChild@CPluginInfo@hspswrapper@@QBEABJXZ @ 73 NONAME ; long const & hspswrapper::CPluginInfo::MaxChild(void) const - ?SetLockingStatusL@CPluginMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 74 NONAME ; class hspswrapper::CPluginMap & hspswrapper::CPluginMap::SetLockingStatusL(class TDesC8 const &) - ?ServiceHandler@CHspsWrapper@hspswrapper@@QBEPAVCLiwServiceHandler@@XZ @ 75 NONAME ; class CLiwServiceHandler * hspswrapper::CHspsWrapper::ServiceHandler(void) const - ?Interface@CPluginInfo@hspswrapper@@QBEABVTDesC8@@XZ @ 76 NONAME ; class TDesC8 const & hspswrapper::CPluginInfo::Interface(void) const - ?SetActivePluginL@CHspsWrapper@hspswrapper@@QAEHABVTDesC8@@@Z @ 77 NONAME ; int hspswrapper::CHspsWrapper::SetActivePluginL(class TDesC8 const &) - ?SetDescriptionL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 78 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetDescriptionL(class TDesC8 const &) - ?AddPluginL@CHspsWrapper@hspswrapper@@QAEPAVCAddPluginResult@2@ABVTDesC8@@0H@Z @ 79 NONAME ; class hspswrapper::CAddPluginResult * hspswrapper::CHspsWrapper::AddPluginL(class TDesC8 const &, class TDesC8 const &, int) - ?SetPluginIdL@CAddPluginResult@hspswrapper@@QAEXABVTDesC8@@@Z @ 80 NONAME ; void hspswrapper::CAddPluginResult::SetPluginIdL(class TDesC8 const &) - ?SetUidL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 81 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetUidL(class TDesC8 const &) - ?SetTagL@CObjectMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 82 NONAME ; class hspswrapper::CObjectMap & hspswrapper::CObjectMap::SetTagL(class TDesC8 const &) - ?NewLC@CPluginInfo@hspswrapper@@SAPAV12@XZ @ 83 NONAME ; class hspswrapper::CPluginInfo * hspswrapper::CPluginInfo::NewLC(void) - ?SetNameL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 84 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetNameL(class TDesC8 const &) - ?SetMediaTypeL@CObjectMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 85 NONAME ; class hspswrapper::CObjectMap & hspswrapper::CObjectMap::SetMediaTypeL(class TDesC8 const &) - ?Tag@CObjectMap@hspswrapper@@QBEABVTDesC8@@XZ @ 86 NONAME ; class TDesC8 const & hspswrapper::CObjectMap::Tag(void) const - ?SetItemIdL@CItemMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 87 NONAME ; class hspswrapper::CItemMap & hspswrapper::CItemMap::SetItemIdL(class TDesC8 const &) - ?NewLC@CItemMap@hspswrapper@@SAPAV12@XZ @ 88 NONAME ; class hspswrapper::CItemMap * hspswrapper::CItemMap::NewLC(void) - ?SetLogoIconL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC16@@@Z @ 89 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetLogoIconL(class TDesC16 const &) - ?SetInterfaceL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 90 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetInterfaceL(class TDesC8 const &) - ?AddPluginMapL@CHspsConfiguration@hspswrapper@@QAEAAV12@PAVCPluginMap@2@@Z @ 91 NONAME ; class hspswrapper::CHspsConfiguration & hspswrapper::CHspsConfiguration::AddPluginMapL(class hspswrapper::CPluginMap *) - ?RemovePluginL@CHspsWrapper@hspswrapper@@QAEHABVTDesC8@@@Z @ 92 NONAME ; int hspswrapper::CHspsWrapper::RemovePluginL(class TDesC8 const &) - ?LockingStatus@CPluginMap@hspswrapper@@QBEABVTDesC8@@XZ @ 93 NONAME ; class TDesC8 const & hspswrapper::CPluginMap::LockingStatus(void) const - ?SetActivationStateL@CPluginMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 94 NONAME ; class hspswrapper::CPluginMap & hspswrapper::CPluginMap::SetActivationStateL(class TDesC8 const &) - ?Type@CPluginInfo@hspswrapper@@QBEABVTDesC8@@XZ @ 95 NONAME ; class TDesC8 const & hspswrapper::CPluginInfo::Type(void) const - ?SetConfIdL@CHspsConfiguration@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 96 NONAME ; class hspswrapper::CHspsConfiguration & hspswrapper::CHspsConfiguration::SetConfIdL(class TDesC8 const &) - ?NewLC@CPropertyMap@hspswrapper@@SAPAV12@XZ @ 97 NONAME ; class hspswrapper::CPropertyMap * hspswrapper::CPropertyMap::NewLC(void) - ??0CAddPluginResult@hspswrapper@@AAE@XZ @ 98 NONAME ; hspswrapper::CAddPluginResult::CAddPluginResult(void) - ?RestoreActiveViewL@CHspsWrapper@hspswrapper@@QAEHXZ @ 99 NONAME ; int hspswrapper::CHspsWrapper::RestoreActiveViewL(void) - ?RestoreRootL@CHspsWrapper@hspswrapper@@QAEHXZ @ 100 NONAME ; int hspswrapper::CHspsWrapper::RestoreRootL(void) + ?RestoreDefaultConfL@CHspsWrapper@hspswrapper@@QAEHXZ @ 46 NONAME ; int hspswrapper::CHspsWrapper::RestoreDefaultConfL(void) + ?MediaType@CObjectMap@hspswrapper@@QBEABVTDesC8@@XZ @ 47 NONAME ; class TDesC8 const & hspswrapper::CObjectMap::MediaType(void) const + ?SetTypeL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 48 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetTypeL(class TDesC8 const &) + ?AddPropertyMapL@CItemMap@hspswrapper@@QAEAAV12@PAVCPropertyMap@2@@Z @ 49 NONAME ; class hspswrapper::CItemMap & hspswrapper::CItemMap::AddPropertyMapL(class hspswrapper::CPropertyMap *) + ?NewLC@CObjectMap@hspswrapper@@SAPAV12@XZ @ 50 NONAME ; class hspswrapper::CObjectMap * hspswrapper::CObjectMap::NewLC(void) + ?GetAppConfigurationsL@CHspsWrapper@hspswrapper@@QAEXAAV?$RPointerArray@VCPluginInfo@hspswrapper@@@@@Z @ 51 NONAME ; void hspswrapper::CHspsWrapper::GetAppConfigurationsL(class RPointerArray &) + ?NewL@CPluginInfo@hspswrapper@@SAPAV12@XZ @ 52 NONAME ; class hspswrapper::CPluginInfo * hspswrapper::CPluginInfo::NewL(void) + ?SetItemNameL@CItemMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 53 NONAME ; class hspswrapper::CItemMap & hspswrapper::CItemMap::SetItemNameL(class TDesC8 const &) + ?AddPluginL@CHspsWrapper@hspswrapper@@QAEPAVCAddPluginResult@2@ABVTDesC8@@0@Z @ 54 NONAME ; class hspswrapper::CAddPluginResult * hspswrapper::CHspsWrapper::AddPluginL(class TDesC8 const &, class TDesC8 const &) + ?NewL@CHspsConfiguration@hspswrapper@@SAPAV12@XZ @ 55 NONAME ; class hspswrapper::CHspsConfiguration * hspswrapper::CHspsConfiguration::NewL(void) + ?SetLogoIconL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 56 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetLogoIconL(class TDesC8 const &) + ?SetPluginUidL@CPluginMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 57 NONAME ; class hspswrapper::CPluginMap & hspswrapper::CPluginMap::SetPluginUidL(class TDesC8 const &) + ?SetValueL@CPropertyMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 58 NONAME ; class hspswrapper::CPropertyMap & hspswrapper::CPropertyMap::SetValueL(class TDesC8 const &) + ??1CObjectMap@hspswrapper@@UAE@XZ @ 59 NONAME ; hspswrapper::CObjectMap::~CObjectMap(void) + ??1CItemMap@hspswrapper@@UAE@XZ @ 60 NONAME ; hspswrapper::CItemMap::~CItemMap(void) + ?Name@CPropertyMap@hspswrapper@@QBEABVTDesC8@@XZ @ 61 NONAME ; class TDesC8 const & hspswrapper::CPropertyMap::Name(void) const + ?SetPluginSettingsL@CHspsWrapper@hspswrapper@@QAEHABVTDesC8@@ABV?$RPointerArray@VCItemMap@hspswrapper@@@@@Z @ 62 NONAME ; int hspswrapper::CHspsWrapper::SetPluginSettingsL(class TDesC8 const &, class RPointerArray const &) + ?ConfId@CHspsConfiguration@hspswrapper@@QBEABVTDesC8@@XZ @ 63 NONAME ; class TDesC8 const & hspswrapper::CHspsConfiguration::ConfId(void) const + ?GetPluginsL@CHspsWrapper@hspswrapper@@QAEXAAV?$RPointerArray@VCPluginInfo@hspswrapper@@@@ABVTDesC8@@1@Z @ 64 NONAME ; void hspswrapper::CHspsWrapper::GetPluginsL(class RPointerArray &, class TDesC8 const &, class TDesC8 const &) + ?ItemId@CItemMap@hspswrapper@@QBEABVTDesC8@@XZ @ 65 NONAME ; class TDesC8 const & hspswrapper::CItemMap::ItemId(void) const + ?GetAppConfigurationL@CHspsWrapper@hspswrapper@@QAEPAVCHspsConfiguration@2@XZ @ 66 NONAME ; class hspswrapper::CHspsConfiguration * hspswrapper::CHspsWrapper::GetAppConfigurationL(void) + ?NewL@CItemMap@hspswrapper@@SAPAV12@XZ @ 67 NONAME ; class hspswrapper::CItemMap * hspswrapper::CItemMap::NewL(void) + ?SetPathL@CObjectMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 68 NONAME ; class hspswrapper::CObjectMap & hspswrapper::CObjectMap::SetPathL(class TDesC8 const &) + ?PluginId@CAddPluginResult@hspswrapper@@QBEABVTDesC8@@XZ @ 69 NONAME ; class TDesC8 const & hspswrapper::CAddPluginResult::PluginId(void) const + ?RestoreRootL@CHspsWrapper@hspswrapper@@QAEHXZ @ 70 NONAME ; int hspswrapper::CHspsWrapper::RestoreRootL(void) + ??1CAddPluginResult@hspswrapper@@UAE@XZ @ 71 NONAME ; hspswrapper::CAddPluginResult::~CAddPluginResult(void) + ?NewLC@CPluginMap@hspswrapper@@SAPAV12@XZ @ 72 NONAME ; class hspswrapper::CPluginMap * hspswrapper::CPluginMap::NewLC(void) + ?ReplacePluginL@CHspsWrapper@hspswrapper@@QAEHABVTDesC8@@0@Z @ 73 NONAME ; int hspswrapper::CHspsWrapper::ReplacePluginL(class TDesC8 const &, class TDesC8 const &) + ?Resources@CHspsConfiguration@hspswrapper@@QAEAAV?$RPointerArray@VCObjectMap@hspswrapper@@@@XZ @ 74 NONAME ; class RPointerArray & hspswrapper::CHspsConfiguration::Resources(void) + ?MaxChild@CPluginInfo@hspswrapper@@QBEABJXZ @ 75 NONAME ; long const & hspswrapper::CPluginInfo::MaxChild(void) const + ?SetLockingStatusL@CPluginMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 76 NONAME ; class hspswrapper::CPluginMap & hspswrapper::CPluginMap::SetLockingStatusL(class TDesC8 const &) + ?ServiceHandler@CHspsWrapper@hspswrapper@@QBEPAVCLiwServiceHandler@@XZ @ 77 NONAME ; class CLiwServiceHandler * hspswrapper::CHspsWrapper::ServiceHandler(void) const + ?Interface@CPluginInfo@hspswrapper@@QBEABVTDesC8@@XZ @ 78 NONAME ; class TDesC8 const & hspswrapper::CPluginInfo::Interface(void) const + ?SetActivePluginL@CHspsWrapper@hspswrapper@@QAEHABVTDesC8@@@Z @ 79 NONAME ; int hspswrapper::CHspsWrapper::SetActivePluginL(class TDesC8 const &) + ?SetDescriptionL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 80 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetDescriptionL(class TDesC8 const &) + ?AddPluginL@CHspsWrapper@hspswrapper@@QAEPAVCAddPluginResult@2@ABVTDesC8@@0H@Z @ 81 NONAME ; class hspswrapper::CAddPluginResult * hspswrapper::CHspsWrapper::AddPluginL(class TDesC8 const &, class TDesC8 const &, int) + ?SetPluginIdL@CAddPluginResult@hspswrapper@@QAEXABVTDesC8@@@Z @ 82 NONAME ; void hspswrapper::CAddPluginResult::SetPluginIdL(class TDesC8 const &) + ?SetUidL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 83 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetUidL(class TDesC8 const &) + ?SetTagL@CObjectMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 84 NONAME ; class hspswrapper::CObjectMap & hspswrapper::CObjectMap::SetTagL(class TDesC8 const &) + ?NewLC@CPluginInfo@hspswrapper@@SAPAV12@XZ @ 85 NONAME ; class hspswrapper::CPluginInfo * hspswrapper::CPluginInfo::NewLC(void) + ?SetNameL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 86 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetNameL(class TDesC8 const &) + ?SetMediaTypeL@CObjectMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 87 NONAME ; class hspswrapper::CObjectMap & hspswrapper::CObjectMap::SetMediaTypeL(class TDesC8 const &) + ?Tag@CObjectMap@hspswrapper@@QBEABVTDesC8@@XZ @ 88 NONAME ; class TDesC8 const & hspswrapper::CObjectMap::Tag(void) const + ?SetItemIdL@CItemMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 89 NONAME ; class hspswrapper::CItemMap & hspswrapper::CItemMap::SetItemIdL(class TDesC8 const &) + ?NewLC@CItemMap@hspswrapper@@SAPAV12@XZ @ 90 NONAME ; class hspswrapper::CItemMap * hspswrapper::CItemMap::NewLC(void) + ?SetLogoIconL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC16@@@Z @ 91 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetLogoIconL(class TDesC16 const &) + ?SetInterfaceL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 92 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetInterfaceL(class TDesC8 const &) + ?AddPluginMapL@CHspsConfiguration@hspswrapper@@QAEAAV12@PAVCPluginMap@2@@Z @ 93 NONAME ; class hspswrapper::CHspsConfiguration & hspswrapper::CHspsConfiguration::AddPluginMapL(class hspswrapper::CPluginMap *) + ?RemovePluginL@CHspsWrapper@hspswrapper@@QAEHABVTDesC8@@@Z @ 94 NONAME ; int hspswrapper::CHspsWrapper::RemovePluginL(class TDesC8 const &) + ?LockingStatus@CPluginMap@hspswrapper@@QBEABVTDesC8@@XZ @ 95 NONAME ; class TDesC8 const & hspswrapper::CPluginMap::LockingStatus(void) const + ?SetActivationStateL@CPluginMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 96 NONAME ; class hspswrapper::CPluginMap & hspswrapper::CPluginMap::SetActivationStateL(class TDesC8 const &) + ?Type@CPluginInfo@hspswrapper@@QBEABVTDesC8@@XZ @ 97 NONAME ; class TDesC8 const & hspswrapper::CPluginInfo::Type(void) const + ?SetConfIdL@CHspsConfiguration@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 98 NONAME ; class hspswrapper::CHspsConfiguration & hspswrapper::CHspsConfiguration::SetConfIdL(class TDesC8 const &) + ?NewLC@CPropertyMap@hspswrapper@@SAPAV12@XZ @ 99 NONAME ; class hspswrapper::CPropertyMap * hspswrapper::CPropertyMap::NewLC(void) + ??0CAddPluginResult@hspswrapper@@AAE@XZ @ 100 NONAME ; hspswrapper::CAddPluginResult::CAddPluginResult(void) diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/sapiwrapper/hspswrapper/eabi/hspswrapper.def --- a/idlehomescreen/sapiwrapper/hspswrapper/eabi/hspswrapper.def Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/sapiwrapper/hspswrapper/eabi/hspswrapper.def Wed Mar 31 21:17:19 2010 +0300 @@ -36,100 +36,100 @@ _ZN11hspswrapper12CHspsWrapper10AddPluginLERK6TDesC8S3_i @ 35 NONAME _ZN11hspswrapper12CHspsWrapper11GetPluginsLER13RPointerArrayINS_11CPluginInfoEERK6TDesC8S7_ @ 36 NONAME _ZN11hspswrapper12CHspsWrapper12MovePluginsLERK6TDesC8RK11MDesC8Array @ 37 NONAME - _ZN11hspswrapper12CHspsWrapper13RemovePluginLERK6TDesC8 @ 38 NONAME - _ZN11hspswrapper12CHspsWrapper13SetConfStateLERK6TDesC8S3_i @ 39 NONAME - _ZN11hspswrapper12CHspsWrapper14ReplacePluginLERK6TDesC8S3_ @ 40 NONAME - _ZN11hspswrapper12CHspsWrapper16SetActivePluginLERK6TDesC8 @ 41 NONAME - _ZN11hspswrapper12CHspsWrapper18SetPluginSettingsLERK6TDesC8RK13RPointerArrayINS_8CItemMapEE @ 42 NONAME - _ZN11hspswrapper12CHspsWrapper20GetAppConfigurationLEv @ 43 NONAME - _ZN11hspswrapper12CHspsWrapper20SetAppConfigurationLERK6TDesC8 @ 44 NONAME - _ZN11hspswrapper12CHspsWrapper21GetAppConfigurationsLER13RPointerArrayINS_11CPluginInfoEE @ 45 NONAME - _ZN11hspswrapper12CHspsWrapper23GetPluginConfigurationLERK6TDesC8 @ 46 NONAME - _ZN11hspswrapper12CHspsWrapper4NewLERK6TDesC8PNS_20MHspsWrapperObserverE @ 47 NONAME - _ZN11hspswrapper12CHspsWrapper5NewLCERK6TDesC8PNS_20MHspsWrapperObserverE @ 48 NONAME - _ZN11hspswrapper12CHspsWrapperD0Ev @ 49 NONAME - _ZN11hspswrapper12CHspsWrapperD1Ev @ 50 NONAME - _ZN11hspswrapper12CHspsWrapperD2Ev @ 51 NONAME - _ZN11hspswrapper12CPropertyMap4NewLEv @ 52 NONAME - _ZN11hspswrapper12CPropertyMap5NewLCEv @ 53 NONAME - _ZN11hspswrapper12CPropertyMap8SetNameLERK6TDesC8 @ 54 NONAME - _ZN11hspswrapper12CPropertyMap9SetValueLERK6TDesC8 @ 55 NONAME - _ZN11hspswrapper12CPropertyMapD0Ev @ 56 NONAME - _ZN11hspswrapper12CPropertyMapD1Ev @ 57 NONAME - _ZN11hspswrapper12CPropertyMapD2Ev @ 58 NONAME - _ZN11hspswrapper16CAddPluginResult12SetPluginIdLERK6TDesC8 @ 59 NONAME - _ZN11hspswrapper16CAddPluginResult4NewLEv @ 60 NONAME - _ZN11hspswrapper16CAddPluginResult9SetStatusEi @ 61 NONAME - _ZN11hspswrapper16CAddPluginResultC1Ev @ 62 NONAME - _ZN11hspswrapper16CAddPluginResultC2Ev @ 63 NONAME - _ZN11hspswrapper16CAddPluginResultD0Ev @ 64 NONAME - _ZN11hspswrapper16CAddPluginResultD1Ev @ 65 NONAME - _ZN11hspswrapper16CAddPluginResultD2Ev @ 66 NONAME - _ZN11hspswrapper18CHspsConfiguration10PluginInfoEv @ 67 NONAME - _ZN11hspswrapper18CHspsConfiguration10PluginMapsEv @ 68 NONAME - _ZN11hspswrapper18CHspsConfiguration10SetConfIdLERK6TDesC8 @ 69 NONAME - _ZN11hspswrapper18CHspsConfiguration11AddItemMapLEPNS_8CItemMapE @ 70 NONAME - _ZN11hspswrapper18CHspsConfiguration13AddObjectMapLEPNS_10CObjectMapE @ 71 NONAME - _ZN11hspswrapper18CHspsConfiguration13AddPluginMapLEPNS_10CPluginMapE @ 72 NONAME - _ZN11hspswrapper18CHspsConfiguration4NewLEv @ 73 NONAME - _ZN11hspswrapper18CHspsConfiguration5NewLCEv @ 74 NONAME - _ZN11hspswrapper18CHspsConfiguration8SettingsEv @ 75 NONAME - _ZN11hspswrapper18CHspsConfiguration9ResourcesEv @ 76 NONAME - _ZN11hspswrapper18CHspsConfigurationD0Ev @ 77 NONAME - _ZN11hspswrapper18CHspsConfigurationD1Ev @ 78 NONAME - _ZN11hspswrapper18CHspsConfigurationD2Ev @ 79 NONAME - _ZN11hspswrapper8CItemMap10SetItemIdLERK6TDesC8 @ 80 NONAME - _ZN11hspswrapper8CItemMap12SetItemNameLERK6TDesC8 @ 81 NONAME - _ZN11hspswrapper8CItemMap15AddPropertyMapLEPNS_12CPropertyMapE @ 82 NONAME - _ZN11hspswrapper8CItemMap4NewLEv @ 83 NONAME - _ZN11hspswrapper8CItemMap5NewLCEv @ 84 NONAME - _ZN11hspswrapper8CItemMapD0Ev @ 85 NONAME - _ZN11hspswrapper8CItemMapD1Ev @ 86 NONAME - _ZN11hspswrapper8CItemMapD2Ev @ 87 NONAME - _ZNK11hspswrapper10CObjectMap3TagEv @ 88 NONAME - _ZNK11hspswrapper10CObjectMap4PathEv @ 89 NONAME - _ZNK11hspswrapper10CObjectMap5NameLEv @ 90 NONAME - _ZNK11hspswrapper10CObjectMap9MediaTypeEv @ 91 NONAME - _ZNK11hspswrapper10CPluginMap13LockingStatusEv @ 92 NONAME - _ZNK11hspswrapper10CPluginMap15ActivationStateEv @ 93 NONAME - _ZNK11hspswrapper10CPluginMap8PluginIdEv @ 94 NONAME - _ZNK11hspswrapper10CPluginMap9PluginUidEv @ 95 NONAME - _ZNK11hspswrapper11CPluginInfo11DescriptionEv @ 96 NONAME - _ZNK11hspswrapper11CPluginInfo13MultiInstanceEv @ 97 NONAME - _ZNK11hspswrapper11CPluginInfo18ConfigurationStateEv @ 98 NONAME - _ZNK11hspswrapper11CPluginInfo3UidEv @ 99 NONAME - _ZNK11hspswrapper11CPluginInfo4NameEv @ 100 NONAME - _ZNK11hspswrapper11CPluginInfo4TypeEv @ 101 NONAME - _ZNK11hspswrapper11CPluginInfo8LogoIconEv @ 102 NONAME - _ZNK11hspswrapper11CPluginInfo8MaxChildEv @ 103 NONAME - _ZNK11hspswrapper11CPluginInfo9InterfaceEv @ 104 NONAME - _ZNK11hspswrapper12CHspsWrapper11HspsServiceEv @ 105 NONAME - _ZNK11hspswrapper12CHspsWrapper13HspsInterfaceEv @ 106 NONAME - _ZNK11hspswrapper12CHspsWrapper14ServiceHandlerEv @ 107 NONAME - _ZNK11hspswrapper12CPropertyMap4NameEv @ 108 NONAME - _ZNK11hspswrapper12CPropertyMap5ValueEv @ 109 NONAME - _ZNK11hspswrapper16CAddPluginResult6StatusEv @ 110 NONAME - _ZNK11hspswrapper16CAddPluginResult8PluginIdEv @ 111 NONAME - _ZNK11hspswrapper18CHspsConfiguration6ConfIdEv @ 112 NONAME - _ZNK11hspswrapper8CItemMap10PropertiesEv @ 113 NONAME - _ZNK11hspswrapper8CItemMap6ItemIdEv @ 114 NONAME - _ZNK11hspswrapper8CItemMap8ItemNameEv @ 115 NONAME - _ZTIN11hspswrapper10CObjectMapE @ 116 NONAME - _ZTIN11hspswrapper10CPluginMapE @ 117 NONAME - _ZTIN11hspswrapper11CPluginInfoE @ 118 NONAME - _ZTIN11hspswrapper12CHspsWrapperE @ 119 NONAME - _ZTIN11hspswrapper12CPropertyMapE @ 120 NONAME - _ZTIN11hspswrapper16CAddPluginResultE @ 121 NONAME - _ZTIN11hspswrapper18CHspsConfigurationE @ 122 NONAME - _ZTIN11hspswrapper8CItemMapE @ 123 NONAME - _ZTVN11hspswrapper10CObjectMapE @ 124 NONAME - _ZTVN11hspswrapper10CPluginMapE @ 125 NONAME - _ZTVN11hspswrapper11CPluginInfoE @ 126 NONAME - _ZTVN11hspswrapper12CHspsWrapperE @ 127 NONAME - _ZTVN11hspswrapper12CPropertyMapE @ 128 NONAME - _ZTVN11hspswrapper16CAddPluginResultE @ 129 NONAME - _ZTVN11hspswrapper18CHspsConfigurationE @ 130 NONAME - _ZTVN11hspswrapper8CItemMapE @ 131 NONAME - _ZN11hspswrapper12CHspsWrapper18RestoreActiveViewLEv @ 132 NONAME - _ZN11hspswrapper12CHspsWrapper12RestoreRootLEv @ 133 NONAME + _ZN11hspswrapper12CHspsWrapper12RestoreRootLEv @ 38 NONAME + _ZN11hspswrapper12CHspsWrapper13RemovePluginLERK6TDesC8 @ 39 NONAME + _ZN11hspswrapper12CHspsWrapper13SetConfStateLERK6TDesC8S3_i @ 40 NONAME + _ZN11hspswrapper12CHspsWrapper14ReplacePluginLERK6TDesC8S3_ @ 41 NONAME + _ZN11hspswrapper12CHspsWrapper16SetActivePluginLERK6TDesC8 @ 42 NONAME + _ZN11hspswrapper12CHspsWrapper18SetPluginSettingsLERK6TDesC8RK13RPointerArrayINS_8CItemMapEE @ 43 NONAME + _ZN11hspswrapper12CHspsWrapper19RestoreDefaultConfLEv @ 44 NONAME + _ZN11hspswrapper12CHspsWrapper20GetAppConfigurationLEv @ 45 NONAME + _ZN11hspswrapper12CHspsWrapper20SetAppConfigurationLERK6TDesC8 @ 46 NONAME + _ZN11hspswrapper12CHspsWrapper21GetAppConfigurationsLER13RPointerArrayINS_11CPluginInfoEE @ 47 NONAME + _ZN11hspswrapper12CHspsWrapper23GetPluginConfigurationLERK6TDesC8 @ 48 NONAME + _ZN11hspswrapper12CHspsWrapper4NewLERK6TDesC8PNS_20MHspsWrapperObserverE @ 49 NONAME + _ZN11hspswrapper12CHspsWrapper5NewLCERK6TDesC8PNS_20MHspsWrapperObserverE @ 50 NONAME + _ZN11hspswrapper12CHspsWrapperD0Ev @ 51 NONAME + _ZN11hspswrapper12CHspsWrapperD1Ev @ 52 NONAME + _ZN11hspswrapper12CHspsWrapperD2Ev @ 53 NONAME + _ZN11hspswrapper12CPropertyMap4NewLEv @ 54 NONAME + _ZN11hspswrapper12CPropertyMap5NewLCEv @ 55 NONAME + _ZN11hspswrapper12CPropertyMap8SetNameLERK6TDesC8 @ 56 NONAME + _ZN11hspswrapper12CPropertyMap9SetValueLERK6TDesC8 @ 57 NONAME + _ZN11hspswrapper12CPropertyMapD0Ev @ 58 NONAME + _ZN11hspswrapper12CPropertyMapD1Ev @ 59 NONAME + _ZN11hspswrapper12CPropertyMapD2Ev @ 60 NONAME + _ZN11hspswrapper16CAddPluginResult12SetPluginIdLERK6TDesC8 @ 61 NONAME + _ZN11hspswrapper16CAddPluginResult4NewLEv @ 62 NONAME + _ZN11hspswrapper16CAddPluginResult9SetStatusEi @ 63 NONAME + _ZN11hspswrapper16CAddPluginResultC1Ev @ 64 NONAME + _ZN11hspswrapper16CAddPluginResultC2Ev @ 65 NONAME + _ZN11hspswrapper16CAddPluginResultD0Ev @ 66 NONAME + _ZN11hspswrapper16CAddPluginResultD1Ev @ 67 NONAME + _ZN11hspswrapper16CAddPluginResultD2Ev @ 68 NONAME + _ZN11hspswrapper18CHspsConfiguration10PluginInfoEv @ 69 NONAME + _ZN11hspswrapper18CHspsConfiguration10PluginMapsEv @ 70 NONAME + _ZN11hspswrapper18CHspsConfiguration10SetConfIdLERK6TDesC8 @ 71 NONAME + _ZN11hspswrapper18CHspsConfiguration11AddItemMapLEPNS_8CItemMapE @ 72 NONAME + _ZN11hspswrapper18CHspsConfiguration13AddObjectMapLEPNS_10CObjectMapE @ 73 NONAME + _ZN11hspswrapper18CHspsConfiguration13AddPluginMapLEPNS_10CPluginMapE @ 74 NONAME + _ZN11hspswrapper18CHspsConfiguration4NewLEv @ 75 NONAME + _ZN11hspswrapper18CHspsConfiguration5NewLCEv @ 76 NONAME + _ZN11hspswrapper18CHspsConfiguration8SettingsEv @ 77 NONAME + _ZN11hspswrapper18CHspsConfiguration9ResourcesEv @ 78 NONAME + _ZN11hspswrapper18CHspsConfigurationD0Ev @ 79 NONAME + _ZN11hspswrapper18CHspsConfigurationD1Ev @ 80 NONAME + _ZN11hspswrapper18CHspsConfigurationD2Ev @ 81 NONAME + _ZN11hspswrapper8CItemMap10SetItemIdLERK6TDesC8 @ 82 NONAME + _ZN11hspswrapper8CItemMap12SetItemNameLERK6TDesC8 @ 83 NONAME + _ZN11hspswrapper8CItemMap15AddPropertyMapLEPNS_12CPropertyMapE @ 84 NONAME + _ZN11hspswrapper8CItemMap4NewLEv @ 85 NONAME + _ZN11hspswrapper8CItemMap5NewLCEv @ 86 NONAME + _ZN11hspswrapper8CItemMapD0Ev @ 87 NONAME + _ZN11hspswrapper8CItemMapD1Ev @ 88 NONAME + _ZN11hspswrapper8CItemMapD2Ev @ 89 NONAME + _ZNK11hspswrapper10CObjectMap3TagEv @ 90 NONAME + _ZNK11hspswrapper10CObjectMap4PathEv @ 91 NONAME + _ZNK11hspswrapper10CObjectMap5NameLEv @ 92 NONAME + _ZNK11hspswrapper10CObjectMap9MediaTypeEv @ 93 NONAME + _ZNK11hspswrapper10CPluginMap13LockingStatusEv @ 94 NONAME + _ZNK11hspswrapper10CPluginMap15ActivationStateEv @ 95 NONAME + _ZNK11hspswrapper10CPluginMap8PluginIdEv @ 96 NONAME + _ZNK11hspswrapper10CPluginMap9PluginUidEv @ 97 NONAME + _ZNK11hspswrapper11CPluginInfo11DescriptionEv @ 98 NONAME + _ZNK11hspswrapper11CPluginInfo13MultiInstanceEv @ 99 NONAME + _ZNK11hspswrapper11CPluginInfo18ConfigurationStateEv @ 100 NONAME + _ZNK11hspswrapper11CPluginInfo3UidEv @ 101 NONAME + _ZNK11hspswrapper11CPluginInfo4NameEv @ 102 NONAME + _ZNK11hspswrapper11CPluginInfo4TypeEv @ 103 NONAME + _ZNK11hspswrapper11CPluginInfo8LogoIconEv @ 104 NONAME + _ZNK11hspswrapper11CPluginInfo8MaxChildEv @ 105 NONAME + _ZNK11hspswrapper11CPluginInfo9InterfaceEv @ 106 NONAME + _ZNK11hspswrapper12CHspsWrapper11HspsServiceEv @ 107 NONAME + _ZNK11hspswrapper12CHspsWrapper13HspsInterfaceEv @ 108 NONAME + _ZNK11hspswrapper12CHspsWrapper14ServiceHandlerEv @ 109 NONAME + _ZNK11hspswrapper12CPropertyMap4NameEv @ 110 NONAME + _ZNK11hspswrapper12CPropertyMap5ValueEv @ 111 NONAME + _ZNK11hspswrapper16CAddPluginResult6StatusEv @ 112 NONAME + _ZNK11hspswrapper16CAddPluginResult8PluginIdEv @ 113 NONAME + _ZNK11hspswrapper18CHspsConfiguration6ConfIdEv @ 114 NONAME + _ZNK11hspswrapper8CItemMap10PropertiesEv @ 115 NONAME + _ZNK11hspswrapper8CItemMap6ItemIdEv @ 116 NONAME + _ZNK11hspswrapper8CItemMap8ItemNameEv @ 117 NONAME + _ZTIN11hspswrapper10CObjectMapE @ 118 NONAME + _ZTIN11hspswrapper10CPluginMapE @ 119 NONAME + _ZTIN11hspswrapper11CPluginInfoE @ 120 NONAME + _ZTIN11hspswrapper12CHspsWrapperE @ 121 NONAME + _ZTIN11hspswrapper12CPropertyMapE @ 122 NONAME + _ZTIN11hspswrapper16CAddPluginResultE @ 123 NONAME + _ZTIN11hspswrapper18CHspsConfigurationE @ 124 NONAME + _ZTIN11hspswrapper8CItemMapE @ 125 NONAME + _ZTVN11hspswrapper10CObjectMapE @ 126 NONAME + _ZTVN11hspswrapper10CPluginMapE @ 127 NONAME + _ZTVN11hspswrapper11CPluginInfoE @ 128 NONAME + _ZTVN11hspswrapper12CHspsWrapperE @ 129 NONAME + _ZTVN11hspswrapper12CPropertyMapE @ 130 NONAME + _ZTVN11hspswrapper16CAddPluginResultE @ 131 NONAME + _ZTVN11hspswrapper18CHspsConfigurationE @ 132 NONAME + _ZTVN11hspswrapper8CItemMapE @ 133 NONAME diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/sapiwrapper/hspswrapper/inc/hspswrapper.h --- a/idlehomescreen/sapiwrapper/hspswrapper/inc/hspswrapper.h Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/sapiwrapper/hspswrapper/inc/hspswrapper.h Wed Mar 31 21:17:19 2010 +0300 @@ -237,19 +237,18 @@ IMPORT_C TInt SetActivePluginL(const TDesC8& aPluginId); /** - * Restore active view. Will remove all plugins in active view. + * Removes all but one view and removes all plugins from it. * * @return Operation status. KErrNone (success), KErrNotFound */ - IMPORT_C TInt RestoreActiveViewL(); + IMPORT_C TInt RestoreRootL(); /** - * Restore whole root configuration. Will remove - * everything except one view. + * Restore (re-install) default configuration from ROM. * * @return Operation status. KErrNone (success), KErrNotFound */ - IMPORT_C TInt RestoreRootL(); + IMPORT_C TInt RestoreDefaultConfL(); /** * Replace plugin in the active configuration. diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/sapiwrapper/hspswrapper/src/hspswrapper.cpp --- a/idlehomescreen/sapiwrapper/hspswrapper/src/hspswrapper.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/sapiwrapper/hspswrapper/src/hspswrapper.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -56,6 +56,7 @@ _LIT8( KKeyConfUid, "confUid" ); _LIT8( KInterface, "interface" ); _LIT8( KType, "type" ); +_LIT8( KCopyLogos, "copylogos" ); _LIT8( KKeyPlugins, "plugins" ); _LIT8( KKeyItemId, "itemId" ); _LIT8( KKeyName, "name" ); @@ -369,6 +370,8 @@ CleanupStack::Pop(&confVar); confVar.Reset(); + plugin->SetTypeL( _L8("application") ); + aPlugins.AppendL( plugin ); CleanupStack::Pop( plugin ); } @@ -498,6 +501,13 @@ inParamList.AppendL( typeParam ); CleanupStack::Pop(&typeParam); typeParam.Reset(); + + TLiwGenericParam logosParam; + logosParam.SetNameAndValueL( KCopyLogos, TLiwVariant( ETrue ) ); + logosParam.PushL(); + inParamList.AppendL( logosParam ); + CleanupStack::Pop(&logosParam); + logosParam.Reset(); iHspsInterface->ExecuteCmdL( KHSPSCommandGetPlugins, inParamList, outParamList ); inParamList.Reset(); @@ -512,7 +522,17 @@ ProcessPluginsL(*list,aPlugins); } } - outParamList.Reset(); + + // check success + TInt pos(0); + const TLiwGenericParam* outParam = + outParamList.FindFirst( pos, KOutKeyStatus ); + if ( outParam ) + { + User::LeaveIfError( outParam->Value().AsTInt32() ); + } + + outParamList.Reset(); } // --------------------------------------------------------------------------- @@ -765,14 +785,14 @@ // --------------------------------------------------------------------------- // --------------------------------------------------------------------------- // -EXPORT_C TInt CHspsWrapper::RestoreActiveViewL() +EXPORT_C TInt CHspsWrapper::RestoreRootL() { CLiwGenericParamList& inParamList = iServiceHandler->InParamListL(); CLiwGenericParamList& outParamList = iServiceHandler->OutParamListL(); // Compose Liw message TLiwGenericParam restoreTypeParam; - restoreTypeParam.SetNameAndValueL( KRestore, TLiwVariant( KActive ) ); + restoreTypeParam.SetNameAndValueL( KRestore, TLiwVariant( KAll ) ); restoreTypeParam.PushL(); inParamList.AppendL( restoreTypeParam ); CleanupStack::Pop( &restoreTypeParam ); @@ -801,14 +821,14 @@ // --------------------------------------------------------------------------- // --------------------------------------------------------------------------- // -EXPORT_C TInt CHspsWrapper::RestoreRootL() +EXPORT_C TInt CHspsWrapper::RestoreDefaultConfL() { CLiwGenericParamList& inParamList = iServiceHandler->InParamListL(); CLiwGenericParamList& outParamList = iServiceHandler->OutParamListL(); // Compose Liw message TLiwGenericParam restoreTypeParam; - restoreTypeParam.SetNameAndValueL( KRestore, TLiwVariant( KAll ) ); + restoreTypeParam.SetNameAndValueL( KRestore, TLiwVariant( KActive ) ); restoreTypeParam.PushL(); inParamList.AppendL( restoreTypeParam ); CleanupStack::Pop( &restoreTypeParam ); diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/widgetmanager/gfx/add_widget_button.svg --- a/idlehomescreen/widgetmanager/gfx/add_widget_button.svg Mon Mar 15 12:39:47 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/widgetmanager/inc/wminstaller.h --- a/idlehomescreen/widgetmanager/inc/wminstaller.h Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/widgetmanager/inc/wminstaller.h Wed Mar 31 21:17:19 2010 +0300 @@ -105,8 +105,10 @@ * wrt widget that is currently been uninstalled */ TUid iUid; - - + + /** + * mime type of widget currently being uninstalled. + */ HBufC8* iMime; /** reference to plugin root */ diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/widgetmanager/inc/wmmaincontainer.h --- a/idlehomescreen/widgetmanager/inc/wmmaincontainer.h Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/widgetmanager/inc/wmmaincontainer.h Wed Mar 31 21:17:19 2010 +0300 @@ -153,7 +153,7 @@ /** * executes findbox activation */ - void ActivateFindPaneL( TBool aActivateAdabtive = EFalse ); + void ActivateFindPaneL( TBool aActivateAdaptive = EFalse ); /** * executes findbox deactivation @@ -302,6 +302,7 @@ void StartLoadingWidgetsL(); void RemoveCtrlsFromStack(); void UpdateFocusMode(); + void ResetFocus( TDrawNow aDrawNow = ENoDrawNow ); CCoeControl* FindChildControlByPoint( const TPoint& aPoint ); void HandleFindSizeChanged(); TKeyResponse MoveFocusByKeys( diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/widgetmanager/inc/wmwidgetdata.h --- a/idlehomescreen/widgetmanager/inc/wmwidgetdata.h Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/widgetmanager/inc/wmwidgetdata.h Wed Mar 31 21:17:19 2010 +0300 @@ -59,6 +59,14 @@ ECps // wrt widgets included in this category }; + /** wrt widget type */ + enum TWrtType + { + EUnIdentified, + EWgz, + EWgt + }; + public: // construction /** * static constructor @@ -199,6 +207,9 @@ /** widget type */ inline TWidgetType WidgetType() const; + /** wrt widget type */ + inline TWrtType WrtType() const; + /** running install animation index */ inline TInt InstallAnimationIndex() const; @@ -265,8 +276,11 @@ /** The CHsContentInfo that corresponds to this list row */ CHsContentInfo* iHsContentInfo; - /** type oif the widget */ + /** type of the widget */ TWidgetType iWidgetType; + + /** type of the wrt widget */ + TWrtType iWrtType; /** persistent order of widgets (used in sorting) */ const CWmPersistentWidgetOrder* iPersistentWidgetOrder; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/widgetmanager/inc/wmwidgetdata.inl --- a/idlehomescreen/widgetmanager/inc/wmwidgetdata.inl Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/widgetmanager/inc/wmwidgetdata.inl Wed Mar 31 21:17:19 2010 +0300 @@ -43,6 +43,10 @@ inline CWmWidgetData::TWidgetType CWmWidgetData::WidgetType() const { return iWidgetType; } + /** wrt widget type */ + inline CWmWidgetData::TWrtType CWmWidgetData::WrtType() const + { return iWrtType; } + /** the logo bitmap */ inline const CFbsBitmap* CWmWidgetData::LogoImage() { return iLogoImage; } diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/widgetmanager/src/wmeffectmanager.cpp --- a/idlehomescreen/widgetmanager/src/wmeffectmanager.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/widgetmanager/src/wmeffectmanager.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -126,6 +126,12 @@ RemoveEffect( &aEffect ); return; } + + // Must give some time before starting effect, because otherwise + // fullscreen effect may contain unwanted parts (dialog, note, etc.) + // which was shown when fullscreen effect is about to be started + iCoeEnv.WsSession().Finish(); + User::After( 1000 ); const TInt flags( AknTransEffect::TParameter::EActivateExplicitCancel ); const TUid targetAppUid( iAvkonAppUi->Application()->AppDllUid() ); diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/widgetmanager/src/wminstaller.cpp --- a/idlehomescreen/widgetmanager/src/wminstaller.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/widgetmanager/src/wminstaller.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -17,6 +17,7 @@ */ #include +#include #include "wminstaller.h" #include "wmwidgetdata.h" @@ -26,6 +27,14 @@ // CONSTANTS _LIT8( KWrtMime, "application/x-nokia-widget"); +/* + Note: + same mime type as above is used for wgz & wgt in wk9. + \ext\mw\cwrt\app\platform\s60\WidgetRecognizer\ + Uninstalltion will fail with KErrNotFound for now. +*/ +_LIT8( KCWrtMime, "application/widget"); + // --------------------------------------------------------- // CWmInstaller::NewL // --------------------------------------------------------- @@ -68,7 +77,6 @@ // void CWmInstaller::ConstructL() { - iMime = KWrtMime().AllocL(); iIdle = CIdle::NewL( CActive::EPriorityStandard ); } @@ -110,14 +118,18 @@ // void CWmInstaller::RunL() { - // error has occurred, stop uninstallation animation. - if ( iStatus != KErrNone ) - { - CWmWidgetData* widget = iWmPlugin.GetUninstalledWidgetByUid( iUid ); + // if error has occurred, stop uninstallation animation. + if ( iStatus.Int() != KErrNone ) + { + CWmWidgetData* widget = + iWmPlugin.GetUninstalledWidgetByUid( iUid ); if ( widget ) { widget->StopUninstallAnimationL(); } + + // display error note + CEikonEnv::Static()->HandleError( iStatus.Int() ); } // close SWI session @@ -172,9 +184,18 @@ { User::Leave( KErrInUse ); } + else if ( !aData || aData->PublisherUid() == KNullUid || + aData->WrtType() == CWmWidgetData::EUnIdentified ) + { + User::Leave( KErrArgument ); + } else { + delete iMime; + iMime = NULL; User::LeaveIfError( iInstaller.Connect() ); + iMime = ( ( aData->WrtType() == CWmWidgetData::EWgt ) ? + KCWrtMime().AllocL() : KWrtMime().AllocL() ); iUid = aData->PublisherUid(); SwiUI::TUninstallOptions optionsUninstall; optionsUninstall.iBreakDependency = SwiUI::EPolicyAllowed; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/widgetmanager/src/wmmaincontainer.cpp --- a/idlehomescreen/widgetmanager/src/wmmaincontainer.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/widgetmanager/src/wmmaincontainer.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -724,7 +724,9 @@ { if ( !iClosingDown ) { - + TBool eatEvent( EFalse ); + TPointerEvent event( aPointerEvent ); + if (aPointerEvent.iType == TPointerEvent::EButton1Down) { // Check if user clicked a child control @@ -748,9 +750,37 @@ // repaint DrawDeferred(); } + + // stylus popup should not be opened when uninstalling. + // ou1cimx1#302973 + if ( control == iWidgetsList && iWidgetsList->IsFocused() ) + { + TInt itemIndex = iWidgetsList->CurrentListBoxItemIndex(); + TBool itemPointed = iWidgetsList->View()->XYPosToItemIndex( + aPointerEvent.iPosition, + itemIndex ); + if ( itemIndex >= 0 && itemPointed ) + { + CWmWidgetData& data = iWidgetsList->WidgetData( itemIndex ); + if ( &data && data.IsUninstalling() ) + { + event.iType = TPointerEvent::EButton1Up; + eatEvent = ETrue; + } + } + } + } - - CCoeControl::HandlePointerEventL( aPointerEvent ); + + // set downkey event to base class + CCoeControl::HandlePointerEventL( aPointerEvent ); + + // send key up event if selected widget is being uninstalled. + // stylus popup shouldn't be displayed for this item. + if ( eatEvent ) + { + CCoeControl::HandlePointerEventL( event ); + } } } @@ -950,7 +980,8 @@ if ( WidgetSelected() && data && !data->IsUninstalling() ) { if ( data->WidgetType() == CWmWidgetData::ECps && - data->PublisherUid() != KNullUid ) + data->PublisherUid() != KNullUid && + data->WrtType() != CWmWidgetData::EUnIdentified ) { retVal = ETrue; } @@ -1025,37 +1056,20 @@ void CWmMainContainer::AddWidgetToHomeScreenL() { CWmWidgetData* data = iWidgetsList->WidgetData(); - if ( !iClosingDown && data && !data->IsUninstalling() ) + if ( !iClosingDown ) { if ( iFindbox && iFindPaneIsVisible ) { DeactivateFindPaneL(); } - - // set add to homescreen to be executed later - iWmPlugin.SetPostponedCommandL( - CWmPlugin::EAddToHomescreen, - data->HsContentInfo() ); - - // check if we can add any widgets to hs. - TBool hsContentFull = ETrue; - for ( TInt i=0; iWidgetDataCount(); i++ ) + + if ( data && !data->IsUninstalling() ) { - CHsContentInfo& info = iWidgetsList->WidgetData(i).HsContentInfo(); - if ( info.CanBeAdded() ) - { - hsContentFull = EFalse; - break; - } - } - - // deactivate wm if there's not enough space to add widget to hs. - if ( !data->HsContentInfo().CanBeAdded() && !hsContentFull ) - { - iWmPlugin.ExecuteCommandL(); - } - else - { + // set add to homescreen to be executed later + iWmPlugin.SetPostponedCommandL( + CWmPlugin::EAddToHomescreen, + data->HsContentInfo() ); + iWmPlugin.CloseView(); } } @@ -1089,11 +1103,14 @@ // CWmMainContainer::ActivateFindPaneL // --------------------------------------------------------------------------- // -void CWmMainContainer::ActivateFindPaneL( TBool aActivateAdabtive ) +void CWmMainContainer::ActivateFindPaneL( TBool aActivateAdaptive ) { if ( iFindbox && !iFindPaneIsVisible && iWidgetsList->Model()->NumberOfItems() > KMinWidgets ) { + // reset focus + ResetFocus(); + // set column filter flag TBitFlags32 bitFlag; bitFlag.ClearAll(); // clear all columns @@ -1122,7 +1139,7 @@ // layout listbox and findbox LayoutControls(); - if ( aActivateAdabtive ) + if ( aActivateAdaptive ) { iFindbox->ShowAdaptiveSearchGrid(); } @@ -1162,11 +1179,12 @@ m->Filter()->ResetFilteringL(); m->RemoveFilter(); } + + ResetFocus(); - iFindbox->MakeVisible( EFalse ); - iFindbox->SetFocus( EFalse ); - iFindPaneIsVisible = EFalse; - iWidgetsList->SetFindPaneIsVisible( EFalse ); + iFindbox->MakeVisible( EFalse ); + iFindPaneIsVisible = EFalse; + iWidgetsList->SetFindPaneIsVisible( EFalse ); LayoutControls(); @@ -1407,22 +1425,36 @@ // void CWmMainContainer::ProcessForegroundEvent( TBool aForeground ) { - if ( aForeground ) + if ( iFindbox && iFindPaneIsVisible && + iFindbox->IsFocused() ) + { + // keep focus & do nothing + } + else if ( aForeground ) { // set init state when wm comes to foreground. // remove focus from all controls when activating view. - CCoeControl* control = NULL; - CCoeControlArray::TCursor cursor = Components().Begin(); - while( ( control = cursor.Control() ) != NULL ) + ResetFocus( EDrawNow ); + } + } + +// ---------------------------------------------------- +// CWmMainContainer::ResetFocus +// ---------------------------------------------------- +// +void CWmMainContainer::ResetFocus( TDrawNow aDrawNow ) + { + CCoeControl* control = NULL; + CCoeControlArray::TCursor cursor = Components().Begin(); + while( ( control = cursor.Control() ) != NULL ) + { + if( control->IsVisible() && control->IsFocused() ) { - if( control->IsVisible() && control->IsFocused() ) - { - control->SetFocus( EFalse, EDrawNow ); - } - cursor.Next(); + control->SetFocus( EFalse, aDrawNow ); } - UpdateFocusMode(); + cursor.Next(); } + UpdateFocusMode(); } // ---------------------------------------------------- diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/widgetmanager/src/wmplugin.cpp --- a/idlehomescreen/widgetmanager/src/wmplugin.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/widgetmanager/src/wmplugin.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -86,7 +86,8 @@ void CWmPlugin::ConstructL() { iWmMainContainer = NULL; - + iPostponedCommand = ENone; + // store static view app ui CEikonEnv* eikonEnv = CEikonEnv::Static(); if ( !eikonEnv ) User::Leave( KErrUnknown ); @@ -164,11 +165,12 @@ if ( iViewAppUi->GetActiveViewId( activeViewId ) == KErrNone && activeViewId.iViewUid == TUid::Uid( EWmMainContainerViewId ) ) { - if ( iPreviousViewUid.iViewUid == KNullUid ) + if ( iPreviousViewUid.iViewUid == KNullUid && + iViewAppUi->GetDefaultViewId( iPreviousViewUid ) != KErrNone ) { iPreviousViewUid.iAppUid = iViewAppUi->Application()->AppDllUid(); iPreviousViewUid.iViewUid = TUid::Uid( 1 ); - } + } return ETrue; } @@ -184,12 +186,16 @@ if ( IsActive() ) { iWmMainContainer->SetClosingDown( ETrue ); - TRAP_IGNORE( + TRAPD( err, iEffectManager->BeginFullscreenEffectL( KAppExitEffectStyle ); iViewAppUi->ActivateLocalViewL( iPreviousViewUid.iViewUid ); ); + if ( KErrNone != err ) + { + iWmMainContainer->SetClosingDown( EFalse ); + } } } @@ -198,12 +204,11 @@ // --------------------------------------------------------- // void CWmPlugin::MainViewActivated( - const TVwsViewId& aViewId, + const TVwsViewId& /*aViewId*/, CWmMainContainer* aWmMainContainer ) { - iPreviousViewUid = aViewId; - // verify if we have correct viewid to activate. - if ( iPreviousViewUid.iViewUid == KNullUid ) + // previous view for Wm is always default view. + if ( iViewAppUi->GetDefaultViewId( iPreviousViewUid ) != KErrNone ) { // use default if we got wrong viewid as previous view iPreviousViewUid.iAppUid = iViewAppUi->Application()->AppDllUid(); @@ -234,7 +239,13 @@ iEffectManager->UiRendered(); } - TRAP_IGNORE( ExecuteCommandL(); ); + TRAPD( err, ExecuteCommandL(); ); + if ( KErrNone != err ) + { + delete iPostponedContent; + iPostponedContent = NULL; + iPostponedCommand = ENone; + } } // --------------------------------------------------------- diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/widgetmanager/src/wmportalbutton.cpp --- a/idlehomescreen/widgetmanager/src/wmportalbutton.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/widgetmanager/src/wmportalbutton.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -525,36 +525,15 @@ MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - TRgb textColor( layoutText.Color() ); - - if ( IsDimmed() ) - { - const TInt KAlpha = 77; - textColor = iEikonEnv->ControlColor( EColorButtonText, *this ); - // try over-writing color from theme, ignore error. - AknsUtils::GetCachedColor( - skin, textColor, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6 ); - textColor.SetAlpha( KAlpha ); - } - else if ( IsFocused() || iButtonPressed ) + TRgb textColor; + TInt err = AknsUtils::GetCachedColor( + skin, + textColor, + KAknsIIDQsnTextColors, + EAknsCIQsnTextColorsCG63 ); + if ( err != KErrNone ) { - textColor = iEikonEnv->ControlColor( EColorButtonTextPressed, *this ); - // try over-writing color from theme, ignore error. - AknsUtils::GetCachedColor( - skin, textColor, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG10 ); - } - else if ( textColor.Internal() <= 0 ) - { - textColor = iEikonEnv->ControlColor( EColorButtonText, *this ); - // try over-writing color from theme, ignore error. - AknsUtils::GetCachedColor( - skin, textColor, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6 ); - } - else - { - // default for button - AknsUtils::GetCachedColor( - skin, textColor, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG80 ); + textColor = layoutText.Color(); } aGc.SetPenColor( textColor); diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/widgetmanager/src/wmwidgetdata.cpp --- a/idlehomescreen/widgetmanager/src/wmwidgetdata.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/widgetmanager/src/wmwidgetdata.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -83,6 +83,7 @@ iLogoImageMask = NULL; iHsContentInfo = NULL; iWidgetType = CWmWidgetData::EUnknown; + iWrtType = CWmWidgetData::EUnIdentified; iPublisherUid = KNullUid; iLogoSize = aLogoSize; iAnimationTimer = NULL; @@ -385,7 +386,28 @@ if ( widgetUid != 0 ) { // WRT widget - iPublisherUid = TUid::Uid( widgetUid ); + iPublisherUid = TUid::Uid( widgetUid ); + + // wrt widget type + CWidgetPropertyValue* value( NULL ); + value = aRegistryClientSession->GetWidgetPropertyValueL( + iPublisherUid, ENokiaWidget ); + if ( value && *value == 1 ) + { + iWrtType = CWmWidgetData::EWgz; + } + else if ( value && *value == 2 ) + { + iWrtType = CWmWidgetData::EWgt; + } + else + { + iWrtType = CWmWidgetData::EUnIdentified; + } + + delete value; + value = NULL; + } else { @@ -670,6 +692,7 @@ // void CWmWidgetData::StopUninstallAnimationL() { + iAsyncUninstalling = EFalse; DestroyAnimData(); // restore widget name if ( iWidgetName ) @@ -680,7 +703,6 @@ } FireDataChanged(); //redraw - iAsyncUninstalling = EFalse; } // End of file diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluicontroller/inc/appui.h --- a/idlehomescreen/xmluicontroller/inc/appui.h Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluicontroller/inc/appui.h Wed Mar 31 21:17:19 2010 +0300 @@ -80,6 +80,8 @@ void HandleEnterEditModeL( TBool aEnter ); + void HandleUiReadyEventL(); + private: // new functions diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluicontroller/inc/onlineofflinehelper.h --- a/idlehomescreen/xmluicontroller/inc/onlineofflinehelper.h Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluicontroller/inc/onlineofflinehelper.h Wed Mar 31 21:17:19 2010 +0300 @@ -193,9 +193,12 @@ enum { + // if defined Home Screen is in online mode. EOnline, - EUtilizeOnline, + // if defined there is no need to show automatic offline note + // and automatic offline setting is disabled. ERoamingShown, + // if defined phone profile is offline. EOfflineProfile }; private: diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluicontroller/src/appui.cpp --- a/idlehomescreen/xmluicontroller/src/appui.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluicontroller/src/appui.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -85,14 +85,14 @@ // Always reset the phoneforward P&S key on startup just in case RProperty::Set( KPSUidAiInformation, KActiveIdleForwardNumericKeysToPhone, EPSAiForwardNumericKeysToPhone ); - + iEditModeTitle = StringLoader::LoadL( R_QTN_HS_TITLE_EDITMODE ); // Initialize with empty title pane so it's not shown on startup. __HEAP("XML UI: Init - Construct App UI") + __TIME("XML UI: CXnAppUiAdapter::ConstructL", - CXnAppUiAdapter::ConstructL(); - ) + CXnAppUiAdapter::ConstructL() ); CAknAppUiBase::SetKeyEventFlags( CAknAppUiBase::EDisableSendKeyShort | CAknAppUiBase::EDisableSendKeyLong ); @@ -167,20 +167,8 @@ // void CAppUi::ActivateUi() { - __TICK( "CAppUi::ActivateUi" ); - - TVwsViewId activeViewId; - - TInt err( GetActiveViewId( activeViewId ) ); - - if ( err == KErrNotFound ) - { - // Get Xml Ui view id - TVwsViewId xmlViewId( View().ViewId() ); - - TRAP_IGNORE( ActivateLocalViewL( xmlViewId.iViewUid ) ); - } - + __PRINTS( "*** CAppUi::ActivateUi" ); + if ( iDeviceStatusInfo.Uid() == TUid::Null() ) { __PRINTS( "*** CAppUi::ActivateUI - Loading DeviceStatus plugin" ); @@ -192,15 +180,26 @@ KDeviceStatusPluginName, KNs ); iUiCtl.FwStateHandler()->LoadPlugin( - iDeviceStatusInfo, EAiFwSystemStartup ); - } - - TRAP_IGNORE( iUiCtl.FwEventHandler()->HandleUiReadyEventL( iUiCtl ) ); + iDeviceStatusInfo, EAiFwSystemStartup ); + } __PRINTS( "*** CAppUi::ActivateUi - done" ); } // ---------------------------------------------------------------------------- +// CAppUi::HandleUiReadyEventL() +// ---------------------------------------------------------------------------- +// +void CAppUi::HandleUiReadyEventL() + { + __PRINTS( "*** CAppUi::HandleUiReadyEventL" ); + + iUiCtl.FwEventHandler()->HandleUiReadyEventL( iUiCtl ); + + __PRINTS( "*** CAppUi::HandleUiReadyEventL - done" ); + } + +// ---------------------------------------------------------------------------- // CAppUi::PrepareToExit() // ---------------------------------------------------------------------------- // diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluicontroller/src/contentrenderer.cpp --- a/idlehomescreen/xmluicontroller/src/contentrenderer.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluicontroller/src/contentrenderer.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -268,11 +268,10 @@ { HBufC* id2( PropertyValueL( aArray[j].Target(), AiUiDef::xml::property::KId ) ); + CleanupStack::PushL( id2 ); if ( id2 ) { - CleanupStack::PushL( id2 ); - // Same id and same policy if ( i != j && id->Compare( *id2 ) == 0 && ( aArray[i].Policy().Compare( aArray[j].Policy()) == 0 ) ) @@ -571,15 +570,22 @@ { TInt error( KErrNone ); TInt retval( KErrNone ); + + __PRINTS("*** XML UI: CContentRenderer::CanPublish ***"); - __PRINTS("*** UC: Init - Content Validation ***"); + __PRINT( __DBG_FORMAT( "* Publisher name: %S, uid: 0x%x" ), + &aPlugin.PublisherInfo().Name(), aPlugin.PublisherInfo().Uid().iUid ); + __TIME("UC: Content Validation", - TRAP( error, retval = CanPublishL( aPlugin, aContent, aIndex ) ); - ); - __HEAP("UC: Content Validation"); - __PRINTS("*** UC: Done - Content Validation ***"); - - return ( error == KErrNone && retval == KErrNone ); + TRAP( error, retval = CanPublishL( aPlugin, aContent, aIndex ) ) ); + + __HEAP("UC: Content Validation"); + + TBool ret( error == KErrNone && retval == KErrNone ); + + __PRINT( __DBG_FORMAT("*** XML UI: CContentRenderer::CanPublish - done, CanPublish: %d ***"), ret ); + + return ret; } // ---------------------------------------------------------------------------- @@ -593,18 +599,23 @@ TInt error( KErrNone ); TInt retval( KErrNone ); - __PRINTS("*** UC: Init - Content Publishing (Resource) ***"); + __PRINTS("*** XML UI: CContentRenderer::Publish (Resource) ***"); + + __PRINT( __DBG_FORMAT( "* Publisher name: %S, uid: 0x%x" ), + &aPlugin.PublisherInfo().Name(), aPlugin.PublisherInfo().Uid().iUid ); + __TIME("UC: Content Publishing (Resource)", - TRAP( error, retval = DoPublishL( aPlugin, aContent, aResource, aIndex ) ); - ); + TRAP( error, retval = DoPublishL( aPlugin, aContent, aResource, aIndex ) ) ); + __HEAP("UC: Content Publishing (Resource)"); - __PRINTS("*** UC: Done - Content Publishing (Resource) ***"); - + if( !error && retval ) { error = retval; } + __PRINT( __DBG_FORMAT("*** XML UI: CContentRenderer::Publish (Resource) - done, error: %d ***"), error ); + return error; } @@ -619,18 +630,23 @@ TInt error( KErrNone ); TInt retval( KErrNone ); - __PRINTS("*** UC: Init - Content Publishing (Value-Text) ***"); + __PRINTS("*** XML UI: CContentRenderer::Publish (Value-Text) ***"); + + __PRINT( __DBG_FORMAT( "* Publisher name: %S, uid: 0x%x" ), + &aPlugin.PublisherInfo().Name(), aPlugin.PublisherInfo().Uid().iUid ); + __TIME("UC: Content Publishing (Value-Text)", - TRAP( error, retval = DoPublishL( aPlugin, aContent, aText, aIndex ) ); - ); + TRAP( error, retval = DoPublishL( aPlugin, aContent, aText, aIndex ) ) ); + __HEAP("UC: Content Publishing (Value-Text)"); - __PRINTS("*** UC: Done - Content Publishing (Value-Text) ***"); - + if( !error && retval ) { error = retval; } + __PRINT( __DBG_FORMAT("*** XML UI: CContentRenderer::Publish (Value-Text) - done, error: %d ***"), error ); + return error; } @@ -645,18 +661,23 @@ TInt error( KErrNone ); TInt retval( KErrNone ); - __PRINTS("*** UC: Init - Content Publishing (Value-Buf) ***"); + __PRINTS("*** XML UI: CContentRenderer::Publish (Value-Buf) ***"); + + __PRINT( __DBG_FORMAT( "* Publisher name: %S, uid: 0x%x" ), + &aPlugin.PublisherInfo().Name(), aPlugin.PublisherInfo().Uid().iUid ); + __TIME("UC: Content Publishing (Value-Buf)", - TRAP( error, retval = DoPublishL( aPlugin, aContent, aBuf, aIndex ) ); - ) + TRAP( error, retval = DoPublishL( aPlugin, aContent, aBuf, aIndex ) ) ); + __HEAP("UC: Content Publishing (Value-Buf)"); - __PRINTS("*** UC: Done - Content Publishing (Value-Buf) ***"); - + if( !error && retval ) { error = retval; } + __PRINT( __DBG_FORMAT("*** XML UI: CContentRenderer::Publish (Value-Buf) - done, error: %d ***"), error ); + return error; } @@ -671,18 +692,23 @@ TInt error( KErrNone ); TInt retval( KErrNone ); - __PRINTS("*** UC: Init - Content Publishing (Value-RFile) ***"); + __PRINTS("*** XML UI: CContentRenderer::Publish (Value-RFile) ***"); + + __PRINT( __DBG_FORMAT( "* Publisher name: %S, uid: 0x%x" ), + &aPlugin.PublisherInfo().Name(), aPlugin.PublisherInfo().Uid().iUid ); + __TIME("UC: Content Publishing (Value-RFile)", - TRAP( error, retval = DoPublishL( aPlugin, aContent, aFile, aIndex ) ); - ); + TRAP( error, retval = DoPublishL( aPlugin, aContent, aFile, aIndex ) ) ); + __HEAP("UC: Content Publishing (Value-RFile)"); - __PRINTS("*** UC: Done - Content Publishing (Value-RFile) ***"); - + if( !error && retval ) { error = retval; } + __PRINT( __DBG_FORMAT("*** XML UI: CContentRenderer::Publish (Value-RFile) - done, error: %d ***"), error ); + return error; } @@ -697,18 +723,23 @@ TInt error( KErrNone ); TInt retval( KErrNone ); - __PRINTS("*** UC: Init - Content Publishing (Clean) ***"); + __PRINTS("*** XML UI: CContentRenderer::Clean (Clean) ***"); + + __PRINT( __DBG_FORMAT( "* Publisher name: %S, uid: 0x%x" ), + &aPlugin.PublisherInfo().Name(), aPlugin.PublisherInfo().Uid().iUid ); + __TIME("UC: Content Publishing (Clean)", - TRAP( error, retval = DoCleanL( aPlugin, aContent, aIndex ) ); - ); + TRAP( error, retval = DoCleanL( aPlugin, aContent, aIndex ) ) ); + __HEAP("UC: Content Publishing (Clean)"); - __PRINTS("*** UC: Done - Content Publishing (Clean) ***"); - + if( !error && retval ) { error = retval; } + __PRINT( __DBG_FORMAT("*** XML UI: CContentRenderer::Clean (Clean) - done, error: %d ***"), error ); + return error; } @@ -1275,8 +1306,12 @@ { LeaveIfNull( aElement, KErrArgument ); + __PRINTS("*** XML UI: CContentRenderer::ProcessTransactionElementL ***"); + if ( IsImmediateMode() || iStack->IsEmpty() ) - { + { + __PRINTS("* Immediate transaction mode, or transaction stack is empty" ); + // No transaction. Commit element immediately TBool layoutChanged( EFalse ); @@ -1297,9 +1332,13 @@ else { // Append transaction element to transaction + __PRINTS("* Adding transaction element to stack"); + MTransaction* tr( iStack->Top() ); tr->Append( *aElement ); } + + __PRINTS("*** XML UI: CContentRenderer::ProcessTransactionElementL - done ***"); } // ---------------------------------------------------------------------------- diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluicontroller/src/onlineofflinehelper.cpp --- a/idlehomescreen/xmluicontroller/src/onlineofflinehelper.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluicontroller/src/onlineofflinehelper.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -166,14 +166,11 @@ // TBool COnlineOfflineHelper::ShowOnlineItem() const { - if ( iUiCtl.FwStateHandler()->OnlineStateInUse() ) - { - TInt value ( KErrNotFound ); - if ( iUiCtl.SettingsRepository().Get( KAIWebStatus, value ) == KErrNone ) - { - return ( !value ); - } - } + TInt value ( KErrNotFound ); + if ( iUiCtl.SettingsRepository().Get( KAIWebStatus, value ) == KErrNone ) + { + return ( !value ); + } return EFalse; } @@ -183,14 +180,11 @@ // TBool COnlineOfflineHelper::ShowOfflineItem() const { - if ( iUiCtl.FwStateHandler()->OnlineStateInUse() ) - { - TInt value ( KErrNotFound ); - if ( iUiCtl.SettingsRepository().Get( KAIWebStatus, value ) == KErrNone ) - { - return ( value ); - } - } + TInt value ( KErrNotFound ); + if ( iUiCtl.SettingsRepository().Get( KAIWebStatus, value ) == KErrNone ) + { + return ( value ); + } return EFalse; } @@ -201,20 +195,24 @@ void COnlineOfflineHelper::ProcessOnlineStateL( TBool aOnline ) { // User has selected online/offline item from menu - if( iUiCtl.FwStateHandler()->OnlineStateInUse() ) - { - // Don't show R_YES_NO_HS_ONLINE query as user selected online - if ( aOnline ) - { - iFlags.Set( EOnline ); - } - else - { - iFlags.Clear( EOnline ); - } - - SetOnline( aOnline ); - } + // Don't show R_YES_NO_HS_ONLINE query as user selected online + if ( aOnline ) + { + iFlags.Set( EOnline ); + if ( iCurrentNwStatus == ENWRegisteredRoaming ) + { + // When user allready is in foreing network and sets + // HS online we want to disable automatic offline setting and not + // show note QTN_HS_AUTOMATIC_OFFLINE + iFlags.Set( ERoamingShown ); + } + } + else + { + iFlags.Clear( EOnline ); + } + + SetOnline( aOnline ); } // ---------------------------------------------------------------------------- @@ -264,22 +262,38 @@ CurrentNetworkSetting(); if( ( iRoamingNetwork == ECmCellularDataUsageConfirm || iRoamingNetwork == ECmCellularDataUsageDisabled ) - && iFlags.IsSet( EOnline ) ) + && iFlags.IsSet( EOnline ) + && iFlags.IsClear( ERoamingShown ) ) { // Process to offline state. // Don't change the user selection. SetOnline( EFalse ); // Show roaming notification CAknGlobalNote* note = CAknGlobalNote::NewLC(); - HBufC* msg( StringLoader::LoadLC( R_QTN_HS_AUTOMATIC_OFFLINE ) ); + HBufC* msg( StringLoader::LoadLC( + R_QTN_HS_AUTOMATIC_OFFLINE ) ); note->SetSoftkeys(R_AVKON_SOFTKEYS_OK_EMPTY); note->ShowNoteL( EAknGlobalInformationNote, *msg ); - CleanupStack::PopAndDestroy( 2, note ); // msg + CleanupStack::PopAndDestroy( 2, note ); // msg + + // set roming shown flag. We want to show + // romign note only once while user stays in foreign + // network. If user sets the HS to online this note is + // not showed again and HS will stay online in foreign + // network. + iFlags.Set( ERoamingShown ); } break; case ENWRegisteredOnHomeNetwork: _LOG1( _L(" Home Network Activated ")); + if ( iFlags.IsSet( ERoamingShown ) ) + { + // Clear ERoamingShown when user returns to home + // network. + iFlags.Clear( ERoamingShown ); + } + iCurrentNwStatus = aNWInfo.iRegistrationStatus; CurrentNetworkSetting(); if( iHomeNetwork == ECmCellularDataUsageAutomatic ) diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockface.cpp --- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockface.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockface.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -113,16 +113,6 @@ CXnNodePluginIf* date( aAdapter.Date() ); - TInt ampmWidth( 0 ); - - if( TLocale().TimeFormat() == ETime12 ) - { - // Measure the full width of the ampm string - ampmWidth = AknBidiTextUtils::MeasureTextBoundsWidth( *ampmFont, ampm, - CFont::TMeasureTextInput::EFVisualOrder ); - } - - const TInt deltaHeight( aRect.Height() - clockFont->TextPaneHeight() ); TInt offset( clockFont->TextPaneTopToBaseline() + deltaHeight / 2 ); diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/inc/xnnewstickercontrol.h --- a/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/inc/xnnewstickercontrol.h Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/inc/xnnewstickercontrol.h Wed Mar 31 21:17:19 2010 +0300 @@ -90,7 +90,13 @@ * @return The title of the given index. */ const TDesC& Title(TInt aIndex) const; - + + /** + * Returns last index from iTitleTexts + * Which is not empty string + */ + TInt LastIndexWithContent(); + /** * Delete all titles. */ diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewstickercontrol.cpp --- a/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewstickercontrol.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewstickercontrol.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -174,6 +174,22 @@ } // ----------------------------------------------------------------------------- +// CXnNewstickerControl::LastIndexWithContent +// ----------------------------------------------------------------------------- +// +TInt CXnNewstickerControl::LastIndexWithContent() + { + for( TInt i(iTitleTexts.Count()-1); i>=0; --i ) + { + if ( iTitleTexts[ i ]->Des().Length() > 0 ) + { + return i; + } + } + return KErrNotFound; + } + +// ----------------------------------------------------------------------------- // CXnNewstickerControl::ClearTitles // ----------------------------------------------------------------------------- // @@ -252,22 +268,38 @@ { TBool ret( EFalse ); TInt lastIndex( iTitleTexts.Count() - 1 ); + TInt lastIndexWithContent = LastIndexWithContent(); if( aSetDefault ) { + // set last index as default iCurrentTitleIndex = GetNextTitleWithContent( lastIndex, ETrue ); } else if( iCurrentTitleIndex >= lastIndex ) { + // if iCurrentTitleIndex is in last position start from beginning iCurrentTitleIndex = GetNextTitleWithContent( 0 ); } else { - iCurrentTitleIndex = GetNextTitleWithContent( iCurrentTitleIndex + 1 ); + if ( iCurrentTitleIndex + 1 > lastIndexWithContent ) + { + // if lastIndexWithContent is creater than next item + // it means all next items are empty strings + iCurrentTitleIndex = lastIndexWithContent; + } + else + { + // find next index with content + iCurrentTitleIndex + = GetNextTitleWithContent( iCurrentTitleIndex + 1 ); + } } - if( iCurrentTitleIndex == lastIndex) + if( iCurrentTitleIndex == lastIndexWithContent || + lastIndexWithContent == KErrNotFound ) { + // loop done stop periodic timer. ret = ETrue; } diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditoradapter.cpp --- a/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditoradapter.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditoradapter.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -226,7 +226,13 @@ iEditor->SetAknEditorFlags( EAknEditorFlagEnablePartialScreen ); SetFlag( iSplitInputFlags, ESplitInputEnabled ); } - + + // for RTL languages + iEditor->SetAknEditorLocalLanguage( User::Language() ); + ( AknLayoutUtils::LayoutMirrored() ? + iEditor->SetAlignment( EHRightVCenter ) : + iEditor->SetAlignment( EHLeftVCenter ) ); + iEditor->SetObserver( this ); // Default not focused diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/uiengine/bwins/xn3layoutengineu.def --- a/idlehomescreen/xmluirendering/uiengine/bwins/xn3layoutengineu.def Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/uiengine/bwins/xn3layoutengineu.def Wed Mar 31 21:17:19 2010 +0300 @@ -40,198 +40,198 @@ ?SetDataL@CXnControlAdapter@@UAEXABVTDesC8@@ABVTDesC16@@H@Z @ 39 NONAME ; void CXnControlAdapter::SetDataL(class TDesC8 const &, class TDesC16 const &, int) ?ComponentNodeImpl@CXnNodePluginIf@@QAEPAVCXnComponentNodeImpl@@XZ @ 40 NONAME ; class CXnComponentNodeImpl * CXnNodePluginIf::ComponentNodeImpl(void) ??0CXnViewsNodeImpl@@IAE@XZ @ 41 NONAME ; CXnViewsNodeImpl::CXnViewsNodeImpl(void) - ?HandlePointerEventL@CXnControlAdapter@@UAEXABUTPointerEvent@@@Z @ 42 NONAME ; void CXnControlAdapter::HandlePointerEventL(struct TPointerEvent const &) - ??1CXnDocument@@UAE@XZ @ 43 NONAME ; CXnDocument::~CXnDocument(void) - ?HandleResourceChangeL@CXnAppUiAdapter@@MAEXH@Z @ 44 NONAME ; void CXnAppUiAdapter::HandleResourceChangeL(int) - ?DoEnterPowerSaveModeL@CXnControlAdapter@@UAEXW4TModeEvent@1@@Z @ 45 NONAME ; void CXnControlAdapter::DoEnterPowerSaveModeL(enum CXnControlAdapter::TModeEvent) - ?CloneL@CXnProperty@@QAEPAV1@XZ @ 46 NONAME ; class CXnProperty * CXnProperty::CloneL(void) - ?ReportTriggerEventL@CXnNodePluginIf@@QAEXABVTDesC8@@00@Z @ 47 NONAME ; void CXnNodePluginIf::ReportTriggerEventL(class TDesC8 const &, class TDesC8 const &, class TDesC8 const &) - ?FocusedNodeL@TXnUiEnginePluginIf@@QAEPAVCXnNodePluginIf@@XZ @ 48 NONAME ; class CXnNodePluginIf * TXnUiEnginePluginIf::FocusedNodeL(void) - ?FindContentSourceNodesL@TXnUiEngineAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@ABVTDesC8@@@Z @ 49 NONAME ; class RPointerArray TXnUiEngineAppIf::FindContentSourceNodesL(class TDesC8 const &) - ?EqualsL@CXnProperty@@QBEHAAV1@@Z @ 50 NONAME ; int CXnProperty::EqualsL(class CXnProperty &) const - ?ScreenDeviceSize@TXnUiEnginePluginIf@@QAE?AVTSize@@XZ @ 51 NONAME ; class TSize TXnUiEnginePluginIf::ScreenDeviceSize(void) - ??0CXnControlAdapter@@IAE@XZ @ 52 NONAME ; CXnControlAdapter::CXnControlAdapter(void) - ?UiEngineL@CXnNodeAppIf@@QAEPAVTXnUiEngineAppIf@@XZ @ 53 NONAME ; class TXnUiEngineAppIf * CXnNodeAppIf::UiEngineL(void) - ?LongTapDetector@CXnControlAdapter@@QBEPAVCAknLongTapDetector@@XZ @ 54 NONAME ; class CAknLongTapDetector * CXnControlAdapter::LongTapDetector(void) const - ??0CXnAppUiAdapter@@QAE@VTUid@@@Z @ 55 NONAME ; CXnAppUiAdapter::CXnAppUiAdapter(class TUid) - ?Rect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 56 NONAME ; class TRect CXnNodePluginIf::Rect(void) - ?AddChildL@CXnNodePluginIf@@QAEXPAV1@@Z @ 57 NONAME ; void CXnNodePluginIf::AddChildL(class CXnNodePluginIf *) - ?SetNode@CXnComponent@@QAEXAAVCXnNodePluginIf@@@Z @ 58 NONAME ; void CXnComponent::SetNode(class CXnNodePluginIf &) - ?ResetStylusCounter@CXnControlAdapter@@QAEXXZ @ 59 NONAME ; void CXnControlAdapter::ResetStylusCounter(void) - ?SetComponent@CXnComponentNodeImpl@@QAEXPAVCXnComponent@@@Z @ 60 NONAME ; void CXnComponentNodeImpl::SetComponent(class CXnComponent *) - ?LayoutUIL@TXnUiEnginePluginIf@@QAEXPAVCXnNodePluginIf@@@Z @ 61 NONAME ; void TXnUiEnginePluginIf::LayoutUIL(class CXnNodePluginIf *) - ?FocusVisible@TXnUiEnginePluginIf@@QAEHXZ @ 62 NONAME ; int TXnUiEnginePluginIf::FocusVisible(void) - ?ExitPowerSaveModeL@CXnControlAdapter@@QAEXW4TModeEvent@1@@Z @ 63 NONAME ; void CXnControlAdapter::ExitPowerSaveModeL(enum CXnControlAdapter::TModeEvent) - ?GetThemeResource@TXnUiEngineAppIf@@QAEHABVTDesC16@@AAVRFile@@@Z @ 64 NONAME ; int TXnUiEngineAppIf::GetThemeResource(class TDesC16 const &, class RFile &) - ?ConstructL@CXnComponent@@IAEXXZ @ 65 NONAME ; void CXnComponent::ConstructL(void) - ?FindResource@CXnUtils@@SAPAVCXnResource@@AAV?$CArrayPtrSeg@VCXnResource@@@@ABVTDesC16@@AAH@Z @ 66 NONAME ; class CXnResource * CXnUtils::FindResource(class CArrayPtrSeg &, class TDesC16 const &, int &) - ?UnsetStateL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 67 NONAME ; void CXnNodeAppIf::UnsetStateL(class TDesC8 const &) - ?Uid@CXnDocument@@QAE?AVTUid@@XZ @ 68 NONAME ; class TUid CXnDocument::Uid(void) - ?FocusChanged@CXnControlAdapter@@UAEXW4TDrawNow@@@Z @ 69 NONAME ; void CXnControlAdapter::FocusChanged(enum TDrawNow) - ?SetBlank@CXnControlAdapter@@QAEXH@Z @ 70 NONAME ; void CXnControlAdapter::SetBlank(int) - ?Component@CXnNodeAppIf@@QAEAAVCXnComponent@@XZ @ 71 NONAME ; class CXnComponent & CXnNodeAppIf::Component(void) - ?SetLayoutCapable@CXnNodePluginIf@@QAEXH@Z @ 72 NONAME ; void CXnNodePluginIf::SetLayoutCapable(int) - ?MarginRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 73 NONAME ; class TRect CXnNodePluginIf::MarginRect(void) - ?UiEngineL@CXnAppUiAdapter@@QAEPAVTXnUiEngineAppIf@@XZ @ 74 NONAME ; class TXnUiEngineAppIf * CXnAppUiAdapter::UiEngineL(void) - ?SwipeEnabledL@TXnUiEnginePluginIf@@QAEHXZ @ 75 NONAME ; int TXnUiEnginePluginIf::SwipeEnabledL(void) - ?SetFocusVisibleL@TXnUiEnginePluginIf@@QAEXH@Z @ 76 NONAME ; void TXnUiEnginePluginIf::SetFocusVisibleL(int) - ?ActiveView@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@XZ @ 77 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::ActiveView(void) - ?HandleXuikonEventL@CXnAppUiAdapter@@UAEXAAVCXnNodeAppIf@@0AAVCXnDomNode@@1@Z @ 78 NONAME ; void CXnAppUiAdapter::HandleXuikonEventL(class CXnNodeAppIf &, class CXnNodeAppIf &, class CXnDomNode &, class CXnDomNode &) - ?RenderUIL@TXnUiEngineAppIf@@QAEXPAVCXnNodeAppIf@@@Z @ 79 NONAME ; void TXnUiEngineAppIf::RenderUIL(class CXnNodeAppIf *) - ?PrepareToExit@CXnAppUiAdapter@@MAEXXZ @ 80 NONAME ; void CXnAppUiAdapter::PrepareToExit(void) - ?DoHandlePropertyChangeL@CXnControlAdapter@@UAEXPAVCXnProperty@@@Z @ 81 NONAME ; void CXnControlAdapter::DoHandlePropertyChangeL(class CXnProperty *) - ?ConstructL@CXnControlAdapter@@IAEXAAVCXnNodePluginIf@@@Z @ 82 NONAME ; void CXnControlAdapter::ConstructL(class CXnNodePluginIf &) - ?FocusedNode@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@XZ @ 83 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FocusedNode(void) - ?SetDataL@CXnComponent@@QAEXABVTDesC8@@ABVTDesC16@@H@Z @ 84 NONAME ; void CXnComponent::SetDataL(class TDesC8 const &, class TDesC16 const &, int) - ?OfferKeyEventL@CXnControlAdapter@@UAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 85 NONAME ; enum TKeyResponse CXnControlAdapter::OfferKeyEventL(struct TKeyEvent const &, enum TEventCode) - ?IsDrawingAllowed@CXnControlAdapter@@QBEHXZ @ 86 NONAME ; int CXnControlAdapter::IsDrawingAllowed(void) const - ?DisplayL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 87 NONAME ; class CXnProperty * CXnNodePluginIf::DisplayL(void) - ?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@PAVCXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 88 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class CXnDomPropertyValue *, class CXnDomStringPool &) - ?Rect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 89 NONAME ; class TRect CXnNodeAppIf::Rect(void) - ?NewL@CXnComponentNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 90 NONAME ; class CXnComponentNodeImpl * CXnComponentNodeImpl::NewL(class CXnType *) - ?WidgetsVisible@TXnUiEngineAppIf@@QBEHXZ @ 91 NONAME ; int TXnUiEngineAppIf::WidgetsVisible(void) const - ?Type@CXnNodePluginIf@@QAEPAVCXnType@@XZ @ 92 NONAME ; class CXnType * CXnNodePluginIf::Type(void) - ?MakeXnComponentL@MXnComponentFactory@@EAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 93 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::MakeXnComponentL(class CXnNodePluginIf &, class CXnComponent * &) - ?ActivateViewL@TXnUiEngineAppIf@@QAEXAAVCXnNodeAppIf@@@Z @ 94 NONAME ; void TXnUiEngineAppIf::ActivateViewL(class CXnNodeAppIf &) - ?UnsetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 95 NONAME ; void CXnNodePluginIf::UnsetStateL(class TDesC8 const &) - ?StringValueL@CXnProperty@@QAEPAVHBufC16@@XZ @ 96 NONAME ; class HBufC16 * CXnProperty::StringValueL(void) - ?DisableRenderUiLC@TXnUiEnginePluginIf@@QAEXXZ @ 97 NONAME ; void TXnUiEnginePluginIf::DisableRenderUiLC(void) - ?SetPropertyL@CXnNodeAppIf@@QAEXPAVCXnProperty@@@Z @ 98 NONAME ; void CXnNodeAppIf::SetPropertyL(class CXnProperty *) - ?View@CXnAppUiAdapter@@QBEAAVCAknView@@XZ @ 99 NONAME ; class CAknView & CXnAppUiAdapter::View(void) const - ?ViewNodeImpl@CXnNodePluginIf@@QAEPAVCXnViewNodeImpl@@XZ @ 100 NONAME ; class CXnViewNodeImpl * CXnNodePluginIf::ViewNodeImpl(void) - ?StripQuotes@CXnUtils@@SAXAAPAVHBufC16@@@Z @ 101 NONAME ; void CXnUtils::StripQuotes(class HBufC16 * &) - ?SetPCDataL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 102 NONAME ; void CXnNodePluginIf::SetPCDataL(class TDesC8 const &) - ?VisibilityL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 103 NONAME ; class CXnProperty * CXnNodePluginIf::VisibilityL(void) - ?Draw@CXnControlAdapter@@MBEXABVTRect@@@Z @ 104 NONAME ; void CXnControlAdapter::Draw(class TRect const &) const - ??1CXnApplication@@UAE@XZ @ 105 NONAME ; CXnApplication::~CXnApplication(void) - ?DoesNodeNeedComponentImplL@MXnComponentFactory@@QAEHABVTDesC8@@@Z @ 106 NONAME ; int MXnComponentFactory::DoesNodeNeedComponentImplL(class TDesC8 const &) - ?ConstructL@CXnViewsNodeImpl@@IAEXPAVCXnType@@@Z @ 107 NONAME ; void CXnViewsNodeImpl::ConstructL(class CXnType *) - ?StringPool@TXnUiEngineAppIf@@QAEAAVCXnDomStringPool@@XZ @ 108 NONAME ; class CXnDomStringPool & TXnUiEngineAppIf::StringPool(void) - ?UiEngineL@CXnNodePluginIf@@QAEPAVTXnUiEnginePluginIf@@XZ @ 109 NONAME ; class TXnUiEnginePluginIf * CXnNodePluginIf::UiEngineL(void) - ?ShowFocus@TXnUiEnginePluginIf@@QAEHXZ @ 110 NONAME ; int TXnUiEnginePluginIf::ShowFocus(void) - ?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@@Z @ 111 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &) - ?PluginNodeL@TXnUiEnginePluginIf@@QAEAAVCXnNodePluginIf@@PAV2@@Z @ 112 NONAME ; class CXnNodePluginIf & TXnUiEnginePluginIf::PluginNodeL(class CXnNodePluginIf *) - ?VerticalPixelValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 113 NONAME ; int TXnUiEnginePluginIf::VerticalPixelValueL(class CXnProperty *, int) - ?SetComponent@CXnControlAdapter@@QAEXPAVCXnComponent@@@Z @ 114 NONAME ; void CXnControlAdapter::SetComponent(class CXnComponent *) - ??0MXnNodePredicate@@QAE@XZ @ 115 NONAME ; MXnNodePredicate::MXnNodePredicate(void) - ??1CXnViewsNodeImpl@@UAE@XZ @ 116 NONAME ; CXnViewsNodeImpl::~CXnViewsNodeImpl(void) - ?HandleControlEventL@CXnControlAdapter@@UAEXPAVCCoeControl@@W4TCoeEvent@MCoeControlObserver@@@Z @ 117 NONAME ; void CXnControlAdapter::HandleControlEventL(class CCoeControl *, enum MCoeControlObserver::TCoeEvent) - ?ActivateViewL@TXnUiEnginePluginIf@@QAEXAAVCXnNodePluginIf@@@Z @ 118 NONAME ; void TXnUiEnginePluginIf::ActivateViewL(class CXnNodePluginIf &) - ?HandleScreenDeviceChangedL@CXnControlAdapter@@UAEXXZ @ 119 NONAME ; void CXnControlAdapter::HandleScreenDeviceChangedL(void) - ?SizeChanged@CXnControlAdapter@@MAEXXZ @ 120 NONAME ; void CXnControlAdapter::SizeChanged(void) - ?CountComponentControls@CXnControlAdapter@@MBEHXZ @ 121 NONAME ; int CXnControlAdapter::CountComponentControls(void) const - ?HideTooltipsL@CXnNodeAppIf@@QAEXXZ @ 122 NONAME ; void CXnNodeAppIf::HideTooltipsL(void) - ?GetPropertyL@CXnNodeAppIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 123 NONAME ; class CXnProperty * CXnNodeAppIf::GetPropertyL(class TDesC8 const &) const - ?DeactivateFocusedNodeL@TXnUiEnginePluginIf@@QAEXXZ @ 124 NONAME ; void TXnUiEnginePluginIf::DeactivateFocusedNodeL(void) - ?FindNodeByClassL@TXnUiEngineAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@ABVTDesC8@@0@Z @ 125 NONAME ; class RPointerArray TXnUiEngineAppIf::FindNodeByClassL(class TDesC8 const &, class TDesC8 const &) - ?Match@MXnNodePredicate@@UAEHAAVCXnNode@@@Z @ 126 NONAME ; int MXnNodePredicate::Match(class CXnNode &) - ?GetBitmapAndMask@CXnControlAdapter@@QAEXABVTDesC16@@0AAPAVCFbsBitmap@@1@Z @ 127 NONAME ; void CXnControlAdapter::GetBitmapAndMask(class TDesC16 const &, class TDesC16 const &, class CFbsBitmap * &, class CFbsBitmap * &) - ?NewL@CXnViewsNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 128 NONAME ; class CXnViewsNodeImpl * CXnViewsNodeImpl::NewL(class CXnType *) - ?PaddingRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 129 NONAME ; class TRect CXnNodeAppIf::PaddingRect(void) - ?SetMarginRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 130 NONAME ; void CXnNodePluginIf::SetMarginRect(class TRect const &) - ?IsDialogDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 131 NONAME ; int TXnUiEnginePluginIf::IsDialogDisplaying(void) - ?HandleEventL@CXnAppUiAdapter@@UAEXABVTDesC16@@AAVCXnNodeAppIf@@@Z @ 132 NONAME ; void CXnAppUiAdapter::HandleEventL(class TDesC16 const &, class CXnNodeAppIf &) - ?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 133 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class TDesC8 const &) const - ?SetPropertyArrayL@CXnNodeAppIf@@QAEXPAV?$RPointerArray@VCXnProperty@@@@@Z @ 134 NONAME ; void CXnNodeAppIf::SetPropertyArrayL(class RPointerArray *) - ?RestorePreviousFocusedNode@TXnUiEnginePluginIf@@QAEXXZ @ 135 NONAME ; void TXnUiEnginePluginIf::RestorePreviousFocusedNode(void) - ?RemoveViewL@CXnAppUiAdapter@@QAEXAAVCAknView@@@Z @ 136 NONAME ; void CXnAppUiAdapter::RemoveViewL(class CAknView &) - ?EnterPowerSaveModeL@CXnComponent@@UAEXXZ @ 137 NONAME ; void CXnComponent::EnterPowerSaveModeL(void) - ?SetRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 138 NONAME ; void CXnNodePluginIf::SetRect(class TRect const &) - ??0CXnComponent@@IAE@XZ @ 139 NONAME ; CXnComponent::CXnComponent(void) - ?CollapseWhiteSpace@CXnUtils@@SAXAAVCXnNodePluginIf@@AAVTDes16@@@Z @ 140 NONAME ; void CXnUtils::CollapseWhiteSpace(class CXnNodePluginIf &, class TDes16 &) - ?SetHandleTooltip@CXnNodePluginIf@@QAEXH@Z @ 141 NONAME ; void CXnNodePluginIf::SetHandleTooltip(int) - ??1CXnAppUiAdapter@@UAE@XZ @ 142 NONAME ; CXnAppUiAdapter::~CXnAppUiAdapter(void) - ?NewL@CXnControlAdapter@@SAPAV1@AAVCXnNodePluginIf@@@Z @ 143 NONAME ; class CXnControlAdapter * CXnControlAdapter::NewL(class CXnNodePluginIf &) - ?EnableLongTapAnimation@CXnControlAdapter@@QAEXH@Z @ 144 NONAME ; void CXnControlAdapter::EnableLongTapAnimation(int) - ?SetPaddingRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 145 NONAME ; void CXnNodePluginIf::SetPaddingRect(class TRect const &) - ?SetFocusedNode@TXnUiEnginePluginIf@@QAEXPAVCXnNodePluginIf@@@Z @ 146 NONAME ; void TXnUiEnginePluginIf::SetFocusedNode(class CXnNodePluginIf *) - ?ExitPowerSaveModeL@CXnComponent@@UAEXXZ @ 147 NONAME ; void CXnComponent::ExitPowerSaveModeL(void) - ?EnableSwipeL@TXnUiEnginePluginIf@@QAEXH@Z @ 148 NONAME ; void TXnUiEnginePluginIf::EnableSwipeL(int) - ?GetPCData@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 149 NONAME ; class TDesC8 const & CXnNodeAppIf::GetPCData(void) const - ?Namespace@CXnNodeAppIf@@QAEABVTDesC8@@XZ @ 150 NONAME ; class TDesC8 const & CXnNodeAppIf::Namespace(void) - ??1CXnComponentNodeImpl@@UAE@XZ @ 151 NONAME ; CXnComponentNodeImpl::~CXnComponentNodeImpl(void) - ?SetPropertyWithoutNotificationL@CXnNodePluginIf@@QAEXPAVCXnProperty@@@Z @ 152 NONAME ; void CXnNodePluginIf::SetPropertyWithoutNotificationL(class CXnProperty *) - ?GetPCData@CXnNodePluginIf@@QBEABVTDesC8@@XZ @ 153 NONAME ; class TDesC8 const & CXnNodePluginIf::GetPCData(void) const - ?SetPCDataL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 154 NONAME ; void CXnNodeAppIf::SetPCDataL(class TDesC8 const &) - ?Resources@TXnUiEnginePluginIf@@QAEAAV?$CArrayPtrSeg@VCXnResource@@@@XZ @ 155 NONAME ; class CArrayPtrSeg & TXnUiEnginePluginIf::Resources(void) - ?SetContentBitmaps@CXnControlAdapter@@QAEXABVTDesC16@@0@Z @ 156 NONAME ; void CXnControlAdapter::SetContentBitmaps(class TDesC16 const &, class TDesC16 const &) - ??1CXnControlAdapter@@UAE@XZ @ 157 NONAME ; CXnControlAdapter::~CXnControlAdapter(void) - ??1MXnNodePredicate@@UAE@XZ @ 158 NONAME ; MXnNodePredicate::~MXnNodePredicate(void) - ?HorizontalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 159 NONAME ; int TXnUiEnginePluginIf::HorizontalTwipValueL(class CXnProperty *, int) - ?ConstructL@CXnAppUiAdapter@@UAEXXZ @ 160 NONAME ; void CXnAppUiAdapter::ConstructL(void) - ?CreateFontL@CXnUtils@@SAXAAVCXnNodePluginIf@@AAPAVCFont@@AAH@Z @ 161 NONAME ; void CXnUtils::CreateFontL(class CXnNodePluginIf &, class CFont * &, int &) - ??0CXnApplication@@QAE@VTUid@@@Z @ 162 NONAME ; CXnApplication::CXnApplication(class TUid) - ?ComponentControl@CXnControlAdapter@@MBEPAVCCoeControl@@H@Z @ 163 NONAME ; class CCoeControl * CXnControlAdapter::ComponentControl(int) const - ?HandleLongTapEventL@CXnControlAdapter@@UAEXABVTPoint@@0@Z @ 164 NONAME ; void CXnControlAdapter::HandleLongTapEventL(class TPoint const &, class TPoint const &) - ?ParentL@CXnNodeAppIf@@QBEPAV1@XZ @ 165 NONAME ; class CXnNodeAppIf * CXnNodeAppIf::ParentL(void) const - ??1CXnComponent@@UAE@XZ @ 166 NONAME ; CXnComponent::~CXnComponent(void) - ?ControlAdapter@CXnComponent@@QAEPAVCXnControlAdapter@@XZ @ 167 NONAME ; class CXnControlAdapter * CXnComponent::ControlAdapter(void) - ?DrawContentImage@CXnControlAdapter@@IBEXXZ @ 168 NONAME ; void CXnControlAdapter::DrawContentImage(void) const - ?Component@CXnComponentNodeImpl@@QAEPAVCXnComponent@@XZ @ 169 NONAME ; class CXnComponent * CXnComponentNodeImpl::Component(void) - ?WidgetsVisible@TXnUiEnginePluginIf@@QBEHXZ @ 170 NONAME ; int TXnUiEnginePluginIf::WidgetsVisible(void) const - ?SetControlAdapter@CXnComponent@@QAEXPAVCXnControlAdapter@@@Z @ 171 NONAME ; void CXnComponent::SetControlAdapter(class CXnControlAdapter *) - ?SetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 172 NONAME ; void CXnNodePluginIf::SetStateL(class TDesC8 const &) - ?DoesComponentNeedCreation@CXnComponentNodeImpl@@QBEHXZ @ 173 NONAME ; int CXnComponentNodeImpl::DoesComponentNeedCreation(void) const - ??0CXnDocument@@QAE@AAVCEikApplication@@VTUid@@@Z @ 174 NONAME ; CXnDocument::CXnDocument(class CEikApplication &, class TUid) - ?FindNodeByClassL@TXnUiEnginePluginIf@@QAE?AV?$RPointerArray@VCXnNodePluginIf@@@@ABVTDesC16@@@Z @ 175 NONAME ; class RPointerArray TXnUiEnginePluginIf::FindNodeByClassL(class TDesC16 const &) - ?InternalDomNodeType@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 176 NONAME ; class TDesC8 const & CXnNodeAppIf::InternalDomNodeType(void) const - ?UiActivated@CXnAppUiAdapter@@UAEXXZ @ 177 NONAME ; void CXnAppUiAdapter::UiActivated(void) - ?StringPool@TXnUiEnginePluginIf@@QAEAAVCXnDomStringPool@@XZ @ 178 NONAME ; class CXnDomStringPool & TXnUiEnginePluginIf::StringPool(void) - ?SetStateL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 179 NONAME ; void CXnNodeAppIf::SetStateL(class TDesC8 const &) - ?Type@CXnNodeAppIf@@QAEPAVCXnType@@XZ @ 180 NONAME ; class CXnType * CXnNodeAppIf::Type(void) - ?BorderRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 181 NONAME ; class TRect CXnNodeAppIf::BorderRect(void) - ?IdL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 182 NONAME ; class CXnProperty * CXnNodePluginIf::IdL(void) - ?RootNodeL@TXnUiEngineAppIf@@QAEAAVCXnNodeAppIf@@XZ @ 183 NONAME ; class CXnNodeAppIf & TXnUiEngineAppIf::RootNodeL(void) - ?CreateXnComponentL@MXnComponentFactory@@QAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 184 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::CreateXnComponentL(class CXnNodePluginIf &, class CXnComponent * &) - ?RefreshMenuL@TXnUiEngineAppIf@@QAEXXZ @ 185 NONAME ; void TXnUiEngineAppIf::RefreshMenuL(void) - ?PaddingRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 186 NONAME ; class TRect CXnNodePluginIf::PaddingRect(void) - ?MeasureAdaptiveContentL@CXnControlAdapter@@UAE?AVTSize@@ABV2@@Z @ 187 NONAME ; class TSize CXnControlAdapter::MeasureAdaptiveContentL(class TSize const &) - ?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@0W4TPrimitiveValueType@CXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 188 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class TDesC8 const &, enum CXnDomPropertyValue::TPrimitiveValueType, class CXnDomStringPool &) - ?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@AAV2@@Z @ 189 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class CXnProperty &) const - ?HitRegion@TXnUiEnginePluginIf@@QBEPAVCXnControlAdapter@@XZ @ 190 NONAME ; class CXnControlAdapter * TXnUiEnginePluginIf::HitRegion(void) const - ?MarginRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 191 NONAME ; class TRect CXnNodeAppIf::MarginRect(void) - ?EditMode@TXnUiEnginePluginIf@@QAEHXZ @ 192 NONAME ; int TXnUiEnginePluginIf::EditMode(void) - ?FindNodeByIdL@TXnUiEnginePluginIf@@QAEPAVCXnNodePluginIf@@ABVTDesC8@@0@Z @ 193 NONAME ; class CXnNodePluginIf * TXnUiEnginePluginIf::FindNodeByIdL(class TDesC8 const &, class TDesC8 const &) - ?MakeInterfaceL@CXnComponent@@UAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 194 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnComponent::MakeInterfaceL(class TDesC8 const &) - ?EnableRenderUi@CXnUiEngineImpl@@CAXPAX@Z @ 195 NONAME ; void CXnUiEngineImpl::EnableRenderUi(void *) - ?IsMenuDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 196 NONAME ; int TXnUiEnginePluginIf::IsMenuDisplaying(void) - ?IsMenuDisplaying@TXnUiEngineAppIf@@QAEHXZ @ 197 NONAME ; int TXnUiEngineAppIf::IsMenuDisplaying(void) - ?NewL@CXnProperty@@SAPAV1@PAVCXnDomProperty@@@Z @ 198 NONAME ; class CXnProperty * CXnProperty::NewL(class CXnDomProperty *) - ?ConstructL@CXnComponentNodeImpl@@IAEXPAVCXnType@@@Z @ 199 NONAME ; void CXnComponentNodeImpl::ConstructL(class CXnType *) - ?ChildrenL@CXnNodeAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@XZ @ 200 NONAME ; class RPointerArray CXnNodeAppIf::ChildrenL(void) - ?ConvertHslToRgb@CXnUtils@@SA?AVTRgb@@HHH@Z @ 201 NONAME ; class TRgb CXnUtils::ConvertHslToRgb(int, int, int) + ?IsTextEditorActive@TXnUiEnginePluginIf@@QAEHXZ @ 42 NONAME ; int TXnUiEnginePluginIf::IsTextEditorActive(void) + ?HandlePointerEventL@CXnControlAdapter@@UAEXABUTPointerEvent@@@Z @ 43 NONAME ; void CXnControlAdapter::HandlePointerEventL(struct TPointerEvent const &) + ??1CXnDocument@@UAE@XZ @ 44 NONAME ; CXnDocument::~CXnDocument(void) + ?HandleResourceChangeL@CXnAppUiAdapter@@MAEXH@Z @ 45 NONAME ; void CXnAppUiAdapter::HandleResourceChangeL(int) + ?DoEnterPowerSaveModeL@CXnControlAdapter@@UAEXW4TModeEvent@1@@Z @ 46 NONAME ; void CXnControlAdapter::DoEnterPowerSaveModeL(enum CXnControlAdapter::TModeEvent) + ?CloneL@CXnProperty@@QAEPAV1@XZ @ 47 NONAME ; class CXnProperty * CXnProperty::CloneL(void) + ?ReportTriggerEventL@CXnNodePluginIf@@QAEXABVTDesC8@@00@Z @ 48 NONAME ; void CXnNodePluginIf::ReportTriggerEventL(class TDesC8 const &, class TDesC8 const &, class TDesC8 const &) + ?FocusedNodeL@TXnUiEnginePluginIf@@QAEPAVCXnNodePluginIf@@XZ @ 49 NONAME ; class CXnNodePluginIf * TXnUiEnginePluginIf::FocusedNodeL(void) + ?FindContentSourceNodesL@TXnUiEngineAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@ABVTDesC8@@@Z @ 50 NONAME ; class RPointerArray TXnUiEngineAppIf::FindContentSourceNodesL(class TDesC8 const &) + ?EqualsL@CXnProperty@@QBEHAAV1@@Z @ 51 NONAME ; int CXnProperty::EqualsL(class CXnProperty &) const + ?ScreenDeviceSize@TXnUiEnginePluginIf@@QAE?AVTSize@@XZ @ 52 NONAME ; class TSize TXnUiEnginePluginIf::ScreenDeviceSize(void) + ??0CXnControlAdapter@@IAE@XZ @ 53 NONAME ; CXnControlAdapter::CXnControlAdapter(void) + ?UiEngineL@CXnNodeAppIf@@QAEPAVTXnUiEngineAppIf@@XZ @ 54 NONAME ; class TXnUiEngineAppIf * CXnNodeAppIf::UiEngineL(void) + ?LongTapDetector@CXnControlAdapter@@QBEPAVCAknLongTapDetector@@XZ @ 55 NONAME ; class CAknLongTapDetector * CXnControlAdapter::LongTapDetector(void) const + ??0CXnAppUiAdapter@@QAE@VTUid@@@Z @ 56 NONAME ; CXnAppUiAdapter::CXnAppUiAdapter(class TUid) + ?Rect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 57 NONAME ; class TRect CXnNodePluginIf::Rect(void) + ?AddChildL@CXnNodePluginIf@@QAEXPAV1@@Z @ 58 NONAME ; void CXnNodePluginIf::AddChildL(class CXnNodePluginIf *) + ?SetNode@CXnComponent@@QAEXAAVCXnNodePluginIf@@@Z @ 59 NONAME ; void CXnComponent::SetNode(class CXnNodePluginIf &) + ?ResetStylusCounter@CXnControlAdapter@@QAEXXZ @ 60 NONAME ; void CXnControlAdapter::ResetStylusCounter(void) + ?SetComponent@CXnComponentNodeImpl@@QAEXPAVCXnComponent@@@Z @ 61 NONAME ; void CXnComponentNodeImpl::SetComponent(class CXnComponent *) + ?LayoutUIL@TXnUiEnginePluginIf@@QAEXPAVCXnNodePluginIf@@@Z @ 62 NONAME ; void TXnUiEnginePluginIf::LayoutUIL(class CXnNodePluginIf *) + ?FocusVisible@TXnUiEnginePluginIf@@QAEHXZ @ 63 NONAME ; int TXnUiEnginePluginIf::FocusVisible(void) + ?ExitPowerSaveModeL@CXnControlAdapter@@QAEXW4TModeEvent@1@@Z @ 64 NONAME ; void CXnControlAdapter::ExitPowerSaveModeL(enum CXnControlAdapter::TModeEvent) + ?GetThemeResource@TXnUiEngineAppIf@@QAEHABVTDesC16@@AAVRFile@@@Z @ 65 NONAME ; int TXnUiEngineAppIf::GetThemeResource(class TDesC16 const &, class RFile &) + ?ConstructL@CXnComponent@@IAEXXZ @ 66 NONAME ; void CXnComponent::ConstructL(void) + ?FindResource@CXnUtils@@SAPAVCXnResource@@AAV?$CArrayPtrSeg@VCXnResource@@@@ABVTDesC16@@AAH@Z @ 67 NONAME ; class CXnResource * CXnUtils::FindResource(class CArrayPtrSeg &, class TDesC16 const &, int &) + ?UnsetStateL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 68 NONAME ; void CXnNodeAppIf::UnsetStateL(class TDesC8 const &) + ?Uid@CXnDocument@@QAE?AVTUid@@XZ @ 69 NONAME ; class TUid CXnDocument::Uid(void) + ?FocusChanged@CXnControlAdapter@@UAEXW4TDrawNow@@@Z @ 70 NONAME ; void CXnControlAdapter::FocusChanged(enum TDrawNow) + ?SetBlank@CXnControlAdapter@@QAEXH@Z @ 71 NONAME ; void CXnControlAdapter::SetBlank(int) + ?ProcessMessageL@CXnAppUiAdapter@@UAEXVTUid@@ABVTDesC8@@@Z @ 72 NONAME ; void CXnAppUiAdapter::ProcessMessageL(class TUid, class TDesC8 const &) + ?Component@CXnNodeAppIf@@QAEAAVCXnComponent@@XZ @ 73 NONAME ; class CXnComponent & CXnNodeAppIf::Component(void) + ?SetLayoutCapable@CXnNodePluginIf@@QAEXH@Z @ 74 NONAME ; void CXnNodePluginIf::SetLayoutCapable(int) + ?MarginRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 75 NONAME ; class TRect CXnNodePluginIf::MarginRect(void) + ?UiEngineL@CXnAppUiAdapter@@QAEPAVTXnUiEngineAppIf@@XZ @ 76 NONAME ; class TXnUiEngineAppIf * CXnAppUiAdapter::UiEngineL(void) + ?SwipeEnabledL@TXnUiEnginePluginIf@@QAEHXZ @ 77 NONAME ; int TXnUiEnginePluginIf::SwipeEnabledL(void) + ?SetFocusVisibleL@TXnUiEnginePluginIf@@QAEXH@Z @ 78 NONAME ; void TXnUiEnginePluginIf::SetFocusVisibleL(int) + ?ActiveView@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@XZ @ 79 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::ActiveView(void) + ?HandleXuikonEventL@CXnAppUiAdapter@@UAEXAAVCXnNodeAppIf@@0AAVCXnDomNode@@1@Z @ 80 NONAME ; void CXnAppUiAdapter::HandleXuikonEventL(class CXnNodeAppIf &, class CXnNodeAppIf &, class CXnDomNode &, class CXnDomNode &) + ?RenderUIL@TXnUiEngineAppIf@@QAEXPAVCXnNodeAppIf@@@Z @ 81 NONAME ; void TXnUiEngineAppIf::RenderUIL(class CXnNodeAppIf *) + ?PrepareToExit@CXnAppUiAdapter@@MAEXXZ @ 82 NONAME ; void CXnAppUiAdapter::PrepareToExit(void) + ?DoHandlePropertyChangeL@CXnControlAdapter@@UAEXPAVCXnProperty@@@Z @ 83 NONAME ; void CXnControlAdapter::DoHandlePropertyChangeL(class CXnProperty *) + ?ConstructL@CXnControlAdapter@@IAEXAAVCXnNodePluginIf@@@Z @ 84 NONAME ; void CXnControlAdapter::ConstructL(class CXnNodePluginIf &) + ?FocusedNode@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@XZ @ 85 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FocusedNode(void) + ?SetDataL@CXnComponent@@QAEXABVTDesC8@@ABVTDesC16@@H@Z @ 86 NONAME ; void CXnComponent::SetDataL(class TDesC8 const &, class TDesC16 const &, int) + ?OfferKeyEventL@CXnControlAdapter@@UAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 87 NONAME ; enum TKeyResponse CXnControlAdapter::OfferKeyEventL(struct TKeyEvent const &, enum TEventCode) + ?IsDrawingAllowed@CXnControlAdapter@@QBEHXZ @ 88 NONAME ; int CXnControlAdapter::IsDrawingAllowed(void) const + ?DisplayL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 89 NONAME ; class CXnProperty * CXnNodePluginIf::DisplayL(void) + ?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@PAVCXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 90 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class CXnDomPropertyValue *, class CXnDomStringPool &) + ?Rect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 91 NONAME ; class TRect CXnNodeAppIf::Rect(void) + ?NewL@CXnComponentNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 92 NONAME ; class CXnComponentNodeImpl * CXnComponentNodeImpl::NewL(class CXnType *) + ?WidgetsVisible@TXnUiEngineAppIf@@QBEHXZ @ 93 NONAME ; int TXnUiEngineAppIf::WidgetsVisible(void) const + ?Type@CXnNodePluginIf@@QAEPAVCXnType@@XZ @ 94 NONAME ; class CXnType * CXnNodePluginIf::Type(void) + ?MakeXnComponentL@MXnComponentFactory@@EAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 95 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::MakeXnComponentL(class CXnNodePluginIf &, class CXnComponent * &) + ?ActivateViewL@TXnUiEngineAppIf@@QAEXAAVCXnNodeAppIf@@@Z @ 96 NONAME ; void TXnUiEngineAppIf::ActivateViewL(class CXnNodeAppIf &) + ?UnsetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 97 NONAME ; void CXnNodePluginIf::UnsetStateL(class TDesC8 const &) + ?StringValueL@CXnProperty@@QAEPAVHBufC16@@XZ @ 98 NONAME ; class HBufC16 * CXnProperty::StringValueL(void) + ?DisableRenderUiLC@TXnUiEnginePluginIf@@QAEXXZ @ 99 NONAME ; void TXnUiEnginePluginIf::DisableRenderUiLC(void) + ?SetPropertyL@CXnNodeAppIf@@QAEXPAVCXnProperty@@@Z @ 100 NONAME ; void CXnNodeAppIf::SetPropertyL(class CXnProperty *) + ?View@CXnAppUiAdapter@@QBEAAVCAknView@@XZ @ 101 NONAME ; class CAknView & CXnAppUiAdapter::View(void) const + ?ViewNodeImpl@CXnNodePluginIf@@QAEPAVCXnViewNodeImpl@@XZ @ 102 NONAME ; class CXnViewNodeImpl * CXnNodePluginIf::ViewNodeImpl(void) + ?StripQuotes@CXnUtils@@SAXAAPAVHBufC16@@@Z @ 103 NONAME ; void CXnUtils::StripQuotes(class HBufC16 * &) + ?SetPCDataL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 104 NONAME ; void CXnNodePluginIf::SetPCDataL(class TDesC8 const &) + ?VisibilityL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 105 NONAME ; class CXnProperty * CXnNodePluginIf::VisibilityL(void) + ?Draw@CXnControlAdapter@@MBEXABVTRect@@@Z @ 106 NONAME ; void CXnControlAdapter::Draw(class TRect const &) const + ??1CXnApplication@@UAE@XZ @ 107 NONAME ; CXnApplication::~CXnApplication(void) + ?DoesNodeNeedComponentImplL@MXnComponentFactory@@QAEHABVTDesC8@@@Z @ 108 NONAME ; int MXnComponentFactory::DoesNodeNeedComponentImplL(class TDesC8 const &) + ?ConstructL@CXnViewsNodeImpl@@IAEXPAVCXnType@@@Z @ 109 NONAME ; void CXnViewsNodeImpl::ConstructL(class CXnType *) + ?StringPool@TXnUiEngineAppIf@@QAEAAVCXnDomStringPool@@XZ @ 110 NONAME ; class CXnDomStringPool & TXnUiEngineAppIf::StringPool(void) + ?UiEngineL@CXnNodePluginIf@@QAEPAVTXnUiEnginePluginIf@@XZ @ 111 NONAME ; class TXnUiEnginePluginIf * CXnNodePluginIf::UiEngineL(void) + ?ShowFocus@TXnUiEnginePluginIf@@QAEHXZ @ 112 NONAME ; int TXnUiEnginePluginIf::ShowFocus(void) + ?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@@Z @ 113 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &) + ?PluginNodeL@TXnUiEnginePluginIf@@QAEAAVCXnNodePluginIf@@PAV2@@Z @ 114 NONAME ; class CXnNodePluginIf & TXnUiEnginePluginIf::PluginNodeL(class CXnNodePluginIf *) + ?VerticalPixelValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 115 NONAME ; int TXnUiEnginePluginIf::VerticalPixelValueL(class CXnProperty *, int) + ?SetComponent@CXnControlAdapter@@QAEXPAVCXnComponent@@@Z @ 116 NONAME ; void CXnControlAdapter::SetComponent(class CXnComponent *) + ??0MXnNodePredicate@@QAE@XZ @ 117 NONAME ; MXnNodePredicate::MXnNodePredicate(void) + ??1CXnViewsNodeImpl@@UAE@XZ @ 118 NONAME ; CXnViewsNodeImpl::~CXnViewsNodeImpl(void) + ?HandleControlEventL@CXnControlAdapter@@UAEXPAVCCoeControl@@W4TCoeEvent@MCoeControlObserver@@@Z @ 119 NONAME ; void CXnControlAdapter::HandleControlEventL(class CCoeControl *, enum MCoeControlObserver::TCoeEvent) + ?ActivateViewL@TXnUiEnginePluginIf@@QAEXAAVCXnNodePluginIf@@@Z @ 120 NONAME ; void TXnUiEnginePluginIf::ActivateViewL(class CXnNodePluginIf &) + ?HandleScreenDeviceChangedL@CXnControlAdapter@@UAEXXZ @ 121 NONAME ; void CXnControlAdapter::HandleScreenDeviceChangedL(void) + ?SizeChanged@CXnControlAdapter@@MAEXXZ @ 122 NONAME ; void CXnControlAdapter::SizeChanged(void) + ?CountComponentControls@CXnControlAdapter@@MBEHXZ @ 123 NONAME ; int CXnControlAdapter::CountComponentControls(void) const + ?HideTooltipsL@CXnNodeAppIf@@QAEXXZ @ 124 NONAME ; void CXnNodeAppIf::HideTooltipsL(void) + ?GetPropertyL@CXnNodeAppIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 125 NONAME ; class CXnProperty * CXnNodeAppIf::GetPropertyL(class TDesC8 const &) const + ?DeactivateFocusedNodeL@TXnUiEnginePluginIf@@QAEXXZ @ 126 NONAME ; void TXnUiEnginePluginIf::DeactivateFocusedNodeL(void) + ?FindNodeByClassL@TXnUiEngineAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@ABVTDesC8@@0@Z @ 127 NONAME ; class RPointerArray TXnUiEngineAppIf::FindNodeByClassL(class TDesC8 const &, class TDesC8 const &) + ?Match@MXnNodePredicate@@UAEHAAVCXnNode@@@Z @ 128 NONAME ; int MXnNodePredicate::Match(class CXnNode &) + ?GetBitmapAndMask@CXnControlAdapter@@QAEXABVTDesC16@@0AAPAVCFbsBitmap@@1@Z @ 129 NONAME ; void CXnControlAdapter::GetBitmapAndMask(class TDesC16 const &, class TDesC16 const &, class CFbsBitmap * &, class CFbsBitmap * &) + ?NewL@CXnViewsNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 130 NONAME ; class CXnViewsNodeImpl * CXnViewsNodeImpl::NewL(class CXnType *) + ?PaddingRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 131 NONAME ; class TRect CXnNodeAppIf::PaddingRect(void) + ?SetMarginRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 132 NONAME ; void CXnNodePluginIf::SetMarginRect(class TRect const &) + ?IsDialogDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 133 NONAME ; int TXnUiEnginePluginIf::IsDialogDisplaying(void) + ?HandleEventL@CXnAppUiAdapter@@UAEXABVTDesC16@@AAVCXnNodeAppIf@@@Z @ 134 NONAME ; void CXnAppUiAdapter::HandleEventL(class TDesC16 const &, class CXnNodeAppIf &) + ?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 135 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class TDesC8 const &) const + ?SetPropertyArrayL@CXnNodeAppIf@@QAEXPAV?$RPointerArray@VCXnProperty@@@@@Z @ 136 NONAME ; void CXnNodeAppIf::SetPropertyArrayL(class RPointerArray *) + ?RestorePreviousFocusedNode@TXnUiEnginePluginIf@@QAEXXZ @ 137 NONAME ; void TXnUiEnginePluginIf::RestorePreviousFocusedNode(void) + ?RemoveViewL@CXnAppUiAdapter@@QAEXAAVCAknView@@@Z @ 138 NONAME ; void CXnAppUiAdapter::RemoveViewL(class CAknView &) + ?EnterPowerSaveModeL@CXnComponent@@UAEXXZ @ 139 NONAME ; void CXnComponent::EnterPowerSaveModeL(void) + ?SetRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 140 NONAME ; void CXnNodePluginIf::SetRect(class TRect const &) + ??0CXnComponent@@IAE@XZ @ 141 NONAME ; CXnComponent::CXnComponent(void) + ?CollapseWhiteSpace@CXnUtils@@SAXAAVCXnNodePluginIf@@AAVTDes16@@@Z @ 142 NONAME ; void CXnUtils::CollapseWhiteSpace(class CXnNodePluginIf &, class TDes16 &) + ?SetHandleTooltip@CXnNodePluginIf@@QAEXH@Z @ 143 NONAME ; void CXnNodePluginIf::SetHandleTooltip(int) + ??1CXnAppUiAdapter@@UAE@XZ @ 144 NONAME ; CXnAppUiAdapter::~CXnAppUiAdapter(void) + ?NewL@CXnControlAdapter@@SAPAV1@AAVCXnNodePluginIf@@@Z @ 145 NONAME ; class CXnControlAdapter * CXnControlAdapter::NewL(class CXnNodePluginIf &) + ?EnableLongTapAnimation@CXnControlAdapter@@QAEXH@Z @ 146 NONAME ; void CXnControlAdapter::EnableLongTapAnimation(int) + ?SetPaddingRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 147 NONAME ; void CXnNodePluginIf::SetPaddingRect(class TRect const &) + ?SetFocusedNode@TXnUiEnginePluginIf@@QAEXPAVCXnNodePluginIf@@@Z @ 148 NONAME ; void TXnUiEnginePluginIf::SetFocusedNode(class CXnNodePluginIf *) + ?ExitPowerSaveModeL@CXnComponent@@UAEXXZ @ 149 NONAME ; void CXnComponent::ExitPowerSaveModeL(void) + ?EnableSwipeL@TXnUiEnginePluginIf@@QAEXH@Z @ 150 NONAME ; void TXnUiEnginePluginIf::EnableSwipeL(int) + ?GetPCData@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 151 NONAME ; class TDesC8 const & CXnNodeAppIf::GetPCData(void) const + ?Namespace@CXnNodeAppIf@@QAEABVTDesC8@@XZ @ 152 NONAME ; class TDesC8 const & CXnNodeAppIf::Namespace(void) + ??1CXnComponentNodeImpl@@UAE@XZ @ 153 NONAME ; CXnComponentNodeImpl::~CXnComponentNodeImpl(void) + ?SetPropertyWithoutNotificationL@CXnNodePluginIf@@QAEXPAVCXnProperty@@@Z @ 154 NONAME ; void CXnNodePluginIf::SetPropertyWithoutNotificationL(class CXnProperty *) + ?GetPCData@CXnNodePluginIf@@QBEABVTDesC8@@XZ @ 155 NONAME ; class TDesC8 const & CXnNodePluginIf::GetPCData(void) const + ?SetPCDataL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 156 NONAME ; void CXnNodeAppIf::SetPCDataL(class TDesC8 const &) + ?Resources@TXnUiEnginePluginIf@@QAEAAV?$CArrayPtrSeg@VCXnResource@@@@XZ @ 157 NONAME ; class CArrayPtrSeg & TXnUiEnginePluginIf::Resources(void) + ?SetContentBitmaps@CXnControlAdapter@@QAEXABVTDesC16@@0@Z @ 158 NONAME ; void CXnControlAdapter::SetContentBitmaps(class TDesC16 const &, class TDesC16 const &) + ??1CXnControlAdapter@@UAE@XZ @ 159 NONAME ; CXnControlAdapter::~CXnControlAdapter(void) + ??1MXnNodePredicate@@UAE@XZ @ 160 NONAME ; MXnNodePredicate::~MXnNodePredicate(void) + ?HorizontalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 161 NONAME ; int TXnUiEnginePluginIf::HorizontalTwipValueL(class CXnProperty *, int) + ?ConstructL@CXnAppUiAdapter@@UAEXXZ @ 162 NONAME ; void CXnAppUiAdapter::ConstructL(void) + ?CreateFontL@CXnUtils@@SAXAAVCXnNodePluginIf@@AAPAVCFont@@AAH@Z @ 163 NONAME ; void CXnUtils::CreateFontL(class CXnNodePluginIf &, class CFont * &, int &) + ??0CXnApplication@@QAE@VTUid@@@Z @ 164 NONAME ; CXnApplication::CXnApplication(class TUid) + ?ComponentControl@CXnControlAdapter@@MBEPAVCCoeControl@@H@Z @ 165 NONAME ; class CCoeControl * CXnControlAdapter::ComponentControl(int) const + ?HandleLongTapEventL@CXnControlAdapter@@UAEXABVTPoint@@0@Z @ 166 NONAME ; void CXnControlAdapter::HandleLongTapEventL(class TPoint const &, class TPoint const &) + ?ParentL@CXnNodeAppIf@@QBEPAV1@XZ @ 167 NONAME ; class CXnNodeAppIf * CXnNodeAppIf::ParentL(void) const + ??1CXnComponent@@UAE@XZ @ 168 NONAME ; CXnComponent::~CXnComponent(void) + ?ControlAdapter@CXnComponent@@QAEPAVCXnControlAdapter@@XZ @ 169 NONAME ; class CXnControlAdapter * CXnComponent::ControlAdapter(void) + ?DrawContentImage@CXnControlAdapter@@IBEXXZ @ 170 NONAME ; void CXnControlAdapter::DrawContentImage(void) const + ?Component@CXnComponentNodeImpl@@QAEPAVCXnComponent@@XZ @ 171 NONAME ; class CXnComponent * CXnComponentNodeImpl::Component(void) + ?WidgetsVisible@TXnUiEnginePluginIf@@QBEHXZ @ 172 NONAME ; int TXnUiEnginePluginIf::WidgetsVisible(void) const + ?SetControlAdapter@CXnComponent@@QAEXPAVCXnControlAdapter@@@Z @ 173 NONAME ; void CXnComponent::SetControlAdapter(class CXnControlAdapter *) + ?SetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 174 NONAME ; void CXnNodePluginIf::SetStateL(class TDesC8 const &) + ?DoesComponentNeedCreation@CXnComponentNodeImpl@@QBEHXZ @ 175 NONAME ; int CXnComponentNodeImpl::DoesComponentNeedCreation(void) const + ??0CXnDocument@@QAE@AAVCEikApplication@@VTUid@@@Z @ 176 NONAME ; CXnDocument::CXnDocument(class CEikApplication &, class TUid) + ?FindNodeByClassL@TXnUiEnginePluginIf@@QAE?AV?$RPointerArray@VCXnNodePluginIf@@@@ABVTDesC16@@@Z @ 177 NONAME ; class RPointerArray TXnUiEnginePluginIf::FindNodeByClassL(class TDesC16 const &) + ?InternalDomNodeType@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 178 NONAME ; class TDesC8 const & CXnNodeAppIf::InternalDomNodeType(void) const + ?StringPool@TXnUiEnginePluginIf@@QAEAAVCXnDomStringPool@@XZ @ 179 NONAME ; class CXnDomStringPool & TXnUiEnginePluginIf::StringPool(void) + ?SetStateL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 180 NONAME ; void CXnNodeAppIf::SetStateL(class TDesC8 const &) + ?Type@CXnNodeAppIf@@QAEPAVCXnType@@XZ @ 181 NONAME ; class CXnType * CXnNodeAppIf::Type(void) + ?BorderRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 182 NONAME ; class TRect CXnNodeAppIf::BorderRect(void) + ?IdL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 183 NONAME ; class CXnProperty * CXnNodePluginIf::IdL(void) + ?RootNodeL@TXnUiEngineAppIf@@QAEAAVCXnNodeAppIf@@XZ @ 184 NONAME ; class CXnNodeAppIf & TXnUiEngineAppIf::RootNodeL(void) + ?CreateXnComponentL@MXnComponentFactory@@QAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 185 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::CreateXnComponentL(class CXnNodePluginIf &, class CXnComponent * &) + ?RefreshMenuL@TXnUiEngineAppIf@@QAEXXZ @ 186 NONAME ; void TXnUiEngineAppIf::RefreshMenuL(void) + ?PaddingRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 187 NONAME ; class TRect CXnNodePluginIf::PaddingRect(void) + ?MeasureAdaptiveContentL@CXnControlAdapter@@UAE?AVTSize@@ABV2@@Z @ 188 NONAME ; class TSize CXnControlAdapter::MeasureAdaptiveContentL(class TSize const &) + ?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@0W4TPrimitiveValueType@CXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 189 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class TDesC8 const &, enum CXnDomPropertyValue::TPrimitiveValueType, class CXnDomStringPool &) + ?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@AAV2@@Z @ 190 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class CXnProperty &) const + ?HitRegion@TXnUiEnginePluginIf@@QBEPAVCXnControlAdapter@@XZ @ 191 NONAME ; class CXnControlAdapter * TXnUiEnginePluginIf::HitRegion(void) const + ?MarginRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 192 NONAME ; class TRect CXnNodeAppIf::MarginRect(void) + ?MakeInterfaceL@CXnComponent@@UAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 193 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnComponent::MakeInterfaceL(class TDesC8 const &) + ?EditMode@TXnUiEnginePluginIf@@QAEHXZ @ 194 NONAME ; int TXnUiEnginePluginIf::EditMode(void) + ?FindNodeByIdL@TXnUiEnginePluginIf@@QAEPAVCXnNodePluginIf@@ABVTDesC8@@0@Z @ 195 NONAME ; class CXnNodePluginIf * TXnUiEnginePluginIf::FindNodeByIdL(class TDesC8 const &, class TDesC8 const &) + ?EnableRenderUi@CXnUiEngineImpl@@CAXPAX@Z @ 196 NONAME ; void CXnUiEngineImpl::EnableRenderUi(void *) + ?IsMenuDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 197 NONAME ; int TXnUiEnginePluginIf::IsMenuDisplaying(void) + ?IsMenuDisplaying@TXnUiEngineAppIf@@QAEHXZ @ 198 NONAME ; int TXnUiEngineAppIf::IsMenuDisplaying(void) + ?NewL@CXnProperty@@SAPAV1@PAVCXnDomProperty@@@Z @ 199 NONAME ; class CXnProperty * CXnProperty::NewL(class CXnDomProperty *) + ?ConstructL@CXnComponentNodeImpl@@IAEXPAVCXnType@@@Z @ 200 NONAME ; void CXnComponentNodeImpl::ConstructL(class CXnType *) + ?ChildrenL@CXnNodeAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@XZ @ 201 NONAME ; class RPointerArray CXnNodeAppIf::ChildrenL(void) ?LoadPublisher@CXnAppUiAdapter@@UAEHAAVCXnNodeAppIf@@H@Z @ 202 NONAME ; int CXnAppUiAdapter::LoadPublisher(class CXnNodeAppIf &, int) - ?LoadBitmap@CXnControlAdapter@@QAEPAVCFbsBitmap@@ABVTDesC16@@@Z @ 203 NONAME ; class CFbsBitmap * CXnControlAdapter::LoadBitmap(class TDesC16 const &) - ??0MXnComponentFactory@@IAE@XZ @ 204 NONAME ; MXnComponentFactory::MXnComponentFactory(void) - ?SetComponent@CXnViewsNodeImpl@@QAEXPAVCXnComponent@@@Z @ 205 NONAME ; void CXnViewsNodeImpl::SetComponent(class CXnComponent *) - ?BorderRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 206 NONAME ; class TRect CXnNodePluginIf::BorderRect(void) - ?CreateDocumentL@CXnApplication@@MAEPAVCApaDocument@@XZ @ 207 NONAME ; class CApaDocument * CXnApplication::CreateDocumentL(void) - ?CreateFontL@CXnUtils@@SAXABVTDesC16@@HVTFontStyle@@AAPAVCFont@@AAH@Z @ 208 NONAME ; void CXnUtils::CreateFontL(class TDesC16 const &, int, class TFontStyle, class CFont * &, int &) - ?GetPluginNodeArrayL@TXnUiEngineAppIf@@QAEHAAV?$RPointerArray@VCXnNodeAppIf@@@@@Z @ 209 NONAME ; int TXnUiEngineAppIf::GetPluginNodeArrayL(class RPointerArray &) - ?MakeXnControlAdapterL@MXnComponentFactory@@EAEPAVCXnControlAdapter@@AAVCXnNodePluginIf@@PAV2@@Z @ 210 NONAME ; class CXnControlAdapter * MXnComponentFactory::MakeXnControlAdapterL(class CXnNodePluginIf &, class CXnControlAdapter *) - ?IsDrawingAllowed@CXnNodePluginIf@@QBEHXZ @ 211 NONAME ; int CXnNodePluginIf::IsDrawingAllowed(void) const - ?MakeInterfaceL@CXnNodeAppIf@@QAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 212 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnNodeAppIf::MakeInterfaceL(class TDesC8 const &) - ?VerticalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 213 NONAME ; int TXnUiEnginePluginIf::VerticalTwipValueL(class CXnProperty *, int) - ?Component@CXnControlAdapter@@QAEPAVCXnComponent@@XZ @ 214 NONAME ; class CXnComponent * CXnControlAdapter::Component(void) - ?FloatValueL@CXnProperty@@QAENXZ @ 215 NONAME ; double CXnProperty::FloatValueL(void) - ?SetUiEngine@TXnUiEngineAppIf@@QAEXPAVCXnUiEngine@@@Z @ 216 NONAME ; void TXnUiEngineAppIf::SetUiEngine(class CXnUiEngine *) - ?FindNodeByIdL@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@ABVTDesC16@@0@Z @ 217 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FindNodeByIdL(class TDesC16 const &, class TDesC16 const &) - ?IsEditMode@TXnUiEngineAppIf@@QAEHXZ @ 218 NONAME ; int TXnUiEngineAppIf::IsEditMode(void) - ?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@AAH@Z @ 219 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &, int &) - ?EnablePartialTouchInput@TXnUiEnginePluginIf@@QAEXAAVCXnNodePluginIf@@H@Z @ 220 NONAME ; void TXnUiEnginePluginIf::EnablePartialTouchInput(class CXnNodePluginIf &, int) - ?RootNodeL@TXnUiEnginePluginIf@@QAEAAVCXnNodePluginIf@@XZ @ 221 NONAME ; class CXnNodePluginIf & TXnUiEnginePluginIf::RootNodeL(void) - ?CreateAppUiL@CXnDocument@@UAEPAVCEikAppUi@@XZ @ 222 NONAME ; class CEikAppUi * CXnDocument::CreateAppUiL(void) - ?PathL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 223 NONAME ; class CXnProperty * CXnNodePluginIf::PathL(void) - ?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@NW4TPrimitiveValueType@CXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 224 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, double, enum CXnDomPropertyValue::TPrimitiveValueType, class CXnDomStringPool &) - ?MaskPathL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 225 NONAME ; class CXnProperty * CXnNodePluginIf::MaskPathL(void) - ?AppDllUid@CXnApplication@@MBE?AVTUid@@XZ @ 226 NONAME ; class TUid CXnApplication::AppDllUid(void) const - ?DoExitPowerSaveModeL@CXnControlAdapter@@UAEXW4TModeEvent@1@@Z @ 227 NONAME ; void CXnControlAdapter::DoExitPowerSaveModeL(enum CXnControlAdapter::TModeEvent) - ?LabelL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 228 NONAME ; class CXnProperty * CXnNodePluginIf::LabelL(void) - ?Component@CXnViewsNodeImpl@@QAEPAVCXnComponent@@XZ @ 229 NONAME ; class CXnComponent * CXnViewsNodeImpl::Component(void) - ?GetRgbValue@CXnUtils@@SAHAAVTRgb@@ABVTDesC8@@@Z @ 230 NONAME ; int CXnUtils::GetRgbValue(class TRgb &, class TDesC8 const &) - ?StringValue@CXnProperty@@QAEABVTDesC8@@XZ @ 231 NONAME ; class TDesC8 const & CXnProperty::StringValue(void) - ?SetVisible@CXnControlAdapter@@QAEXH@Z @ 232 NONAME ; void CXnControlAdapter::SetVisible(int) - ?Node@CXnComponent@@QAEPAVCXnNodePluginIf@@XZ @ 233 NONAME ; class CXnNodePluginIf * CXnComponent::Node(void) - ?ProcessMessageL@CXnAppUiAdapter@@UAEXVTUid@@ABVTDesC8@@@Z @ 234 NONAME ; void CXnAppUiAdapter::ProcessMessageL(class TUid, class TDesC8 const &) - ?IsTextEditorActive@TXnUiEnginePluginIf@@QAEHXZ @ 235 NONAME ; int TXnUiEnginePluginIf::IsTextEditorActive(void) + ?ConvertHslToRgb@CXnUtils@@SA?AVTRgb@@HHH@Z @ 203 NONAME ; class TRgb CXnUtils::ConvertHslToRgb(int, int, int) + ?LoadBitmap@CXnControlAdapter@@QAEPAVCFbsBitmap@@ABVTDesC16@@@Z @ 204 NONAME ; class CFbsBitmap * CXnControlAdapter::LoadBitmap(class TDesC16 const &) + ??0MXnComponentFactory@@IAE@XZ @ 205 NONAME ; MXnComponentFactory::MXnComponentFactory(void) + ?SetComponent@CXnViewsNodeImpl@@QAEXPAVCXnComponent@@@Z @ 206 NONAME ; void CXnViewsNodeImpl::SetComponent(class CXnComponent *) + ?BorderRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 207 NONAME ; class TRect CXnNodePluginIf::BorderRect(void) + ?CreateDocumentL@CXnApplication@@MAEPAVCApaDocument@@XZ @ 208 NONAME ; class CApaDocument * CXnApplication::CreateDocumentL(void) + ?HandleUiReadyEventL@CXnAppUiAdapter@@UAEXXZ @ 209 NONAME ; void CXnAppUiAdapter::HandleUiReadyEventL(void) + ?CreateFontL@CXnUtils@@SAXABVTDesC16@@HVTFontStyle@@AAPAVCFont@@AAH@Z @ 210 NONAME ; void CXnUtils::CreateFontL(class TDesC16 const &, int, class TFontStyle, class CFont * &, int &) + ?GetPluginNodeArrayL@TXnUiEngineAppIf@@QAEHAAV?$RPointerArray@VCXnNodeAppIf@@@@@Z @ 211 NONAME ; int TXnUiEngineAppIf::GetPluginNodeArrayL(class RPointerArray &) + ?MakeXnControlAdapterL@MXnComponentFactory@@EAEPAVCXnControlAdapter@@AAVCXnNodePluginIf@@PAV2@@Z @ 212 NONAME ; class CXnControlAdapter * MXnComponentFactory::MakeXnControlAdapterL(class CXnNodePluginIf &, class CXnControlAdapter *) + ?IsDrawingAllowed@CXnNodePluginIf@@QBEHXZ @ 213 NONAME ; int CXnNodePluginIf::IsDrawingAllowed(void) const + ?MakeInterfaceL@CXnNodeAppIf@@QAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 214 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnNodeAppIf::MakeInterfaceL(class TDesC8 const &) + ?VerticalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 215 NONAME ; int TXnUiEnginePluginIf::VerticalTwipValueL(class CXnProperty *, int) + ?Component@CXnControlAdapter@@QAEPAVCXnComponent@@XZ @ 216 NONAME ; class CXnComponent * CXnControlAdapter::Component(void) + ?FloatValueL@CXnProperty@@QAENXZ @ 217 NONAME ; double CXnProperty::FloatValueL(void) + ?SetUiEngine@TXnUiEngineAppIf@@QAEXPAVCXnUiEngine@@@Z @ 218 NONAME ; void TXnUiEngineAppIf::SetUiEngine(class CXnUiEngine *) + ?FindNodeByIdL@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@ABVTDesC16@@0@Z @ 219 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FindNodeByIdL(class TDesC16 const &, class TDesC16 const &) + ?IsEditMode@TXnUiEngineAppIf@@QAEHXZ @ 220 NONAME ; int TXnUiEngineAppIf::IsEditMode(void) + ?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@AAH@Z @ 221 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &, int &) + ?EnablePartialTouchInput@TXnUiEnginePluginIf@@QAEXAAVCXnNodePluginIf@@H@Z @ 222 NONAME ; void TXnUiEnginePluginIf::EnablePartialTouchInput(class CXnNodePluginIf &, int) + ?RootNodeL@TXnUiEnginePluginIf@@QAEAAVCXnNodePluginIf@@XZ @ 223 NONAME ; class CXnNodePluginIf & TXnUiEnginePluginIf::RootNodeL(void) + ?CreateAppUiL@CXnDocument@@UAEPAVCEikAppUi@@XZ @ 224 NONAME ; class CEikAppUi * CXnDocument::CreateAppUiL(void) + ?PathL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 225 NONAME ; class CXnProperty * CXnNodePluginIf::PathL(void) + ?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@NW4TPrimitiveValueType@CXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 226 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, double, enum CXnDomPropertyValue::TPrimitiveValueType, class CXnDomStringPool &) + ?MaskPathL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 227 NONAME ; class CXnProperty * CXnNodePluginIf::MaskPathL(void) + ?AppDllUid@CXnApplication@@MBE?AVTUid@@XZ @ 228 NONAME ; class TUid CXnApplication::AppDllUid(void) const + ?DoExitPowerSaveModeL@CXnControlAdapter@@UAEXW4TModeEvent@1@@Z @ 229 NONAME ; void CXnControlAdapter::DoExitPowerSaveModeL(enum CXnControlAdapter::TModeEvent) + ?LabelL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 230 NONAME ; class CXnProperty * CXnNodePluginIf::LabelL(void) + ?Component@CXnViewsNodeImpl@@QAEPAVCXnComponent@@XZ @ 231 NONAME ; class CXnComponent * CXnViewsNodeImpl::Component(void) + ?GetRgbValue@CXnUtils@@SAHAAVTRgb@@ABVTDesC8@@@Z @ 232 NONAME ; int CXnUtils::GetRgbValue(class TRgb &, class TDesC8 const &) + ?StringValue@CXnProperty@@QAEABVTDesC8@@XZ @ 233 NONAME ; class TDesC8 const & CXnProperty::StringValue(void) + ?SetVisible@CXnControlAdapter@@QAEXH@Z @ 234 NONAME ; void CXnControlAdapter::SetVisible(int) + ?Node@CXnComponent@@QAEPAVCXnNodePluginIf@@XZ @ 235 NONAME ; class CXnNodePluginIf * CXnComponent::Node(void) diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/uiengine/eabi/xn3layoutengineu.def --- a/idlehomescreen/xmluirendering/uiengine/eabi/xn3layoutengineu.def Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/uiengine/eabi/xn3layoutengineu.def Wed Mar 31 21:17:19 2010 +0300 @@ -56,234 +56,234 @@ _ZN14CXnApplicationD2Ev @ 55 NONAME _ZN15CXnAppUiAdapter10ConstructLEv @ 56 NONAME _ZN15CXnAppUiAdapter11RemoveViewLER8CAknView @ 57 NONAME - _ZN15CXnAppUiAdapter11UiActivatedEv @ 58 NONAME - _ZN15CXnAppUiAdapter12HandleEventLERK7TDesC16R12CXnNodeAppIf @ 59 NONAME - _ZN15CXnAppUiAdapter13LoadPublisherER12CXnNodeAppIfi @ 60 NONAME - _ZN15CXnAppUiAdapter13PrepareToExitEv @ 61 NONAME + _ZN15CXnAppUiAdapter12HandleEventLERK7TDesC16R12CXnNodeAppIf @ 58 NONAME + _ZN15CXnAppUiAdapter13LoadPublisherER12CXnNodeAppIfi @ 59 NONAME + _ZN15CXnAppUiAdapter13PrepareToExitEv @ 60 NONAME + _ZN15CXnAppUiAdapter15ProcessMessageLE4TUidRK6TDesC8 @ 61 NONAME _ZN15CXnAppUiAdapter16DestroyPublisherER12CXnNodeAppIfi @ 62 NONAME _ZN15CXnAppUiAdapter16DynInitMenuItemLERK7TDesC16P13RPointerArrayI12CXnNodeAppIfE @ 63 NONAME _ZN15CXnAppUiAdapter18HandleXuikonEventLER12CXnNodeAppIfS1_R10CXnDomNodeS3_ @ 64 NONAME - _ZN15CXnAppUiAdapter20HandleEnterEditModeLEi @ 65 NONAME - _ZN15CXnAppUiAdapter21HandleResourceChangeLEi @ 66 NONAME - _ZN15CXnAppUiAdapter9UiEngineLEv @ 67 NONAME - _ZN15CXnAppUiAdapterC1E4TUid @ 68 NONAME - _ZN15CXnAppUiAdapterC2E4TUid @ 69 NONAME - _ZN15CXnAppUiAdapterD0Ev @ 70 NONAME - _ZN15CXnAppUiAdapterD1Ev @ 71 NONAME - _ZN15CXnAppUiAdapterD2Ev @ 72 NONAME - _ZN15CXnNodePluginIf10BorderRectEv @ 73 NONAME - _ZN15CXnNodePluginIf10MarginRectEv @ 74 NONAME - _ZN15CXnNodePluginIf10SetPCDataLERK6TDesC8 @ 75 NONAME - _ZN15CXnNodePluginIf11PaddingRectEv @ 76 NONAME - _ZN15CXnNodePluginIf11UnsetStateLERK6TDesC8 @ 77 NONAME - _ZN15CXnNodePluginIf11VisibilityLEv @ 78 NONAME - _ZN15CXnNodePluginIf12SetPropertyLEP11CXnProperty @ 79 NONAME - _ZN15CXnNodePluginIf12ViewNodeImplEv @ 80 NONAME - _ZN15CXnNodePluginIf13SetBorderRectERK5TRect @ 81 NONAME - _ZN15CXnNodePluginIf13SetMarginRectERK5TRect @ 82 NONAME - _ZN15CXnNodePluginIf14IsFocusedStateEv @ 83 NONAME - _ZN15CXnNodePluginIf14MakeInterfaceLERK6TDesC8 @ 84 NONAME - _ZN15CXnNodePluginIf14SetPaddingRectERK5TRect @ 85 NONAME - _ZN15CXnNodePluginIf16SetHandleTooltipEi @ 86 NONAME - _ZN15CXnNodePluginIf16SetLayoutCapableEi @ 87 NONAME - _ZN15CXnNodePluginIf17ComponentNodeImplEv @ 88 NONAME - _ZN15CXnNodePluginIf19ReportTriggerEventLERK6TDesC8S2_S2_ @ 89 NONAME - _ZN15CXnNodePluginIf31SetPropertyWithoutNotificationLEP11CXnProperty @ 90 NONAME - _ZN15CXnNodePluginIf3IdLEv @ 91 NONAME - _ZN15CXnNodePluginIf4RectEv @ 92 NONAME - _ZN15CXnNodePluginIf4TypeEv @ 93 NONAME - _ZN15CXnNodePluginIf5PathLEv @ 94 NONAME - _ZN15CXnNodePluginIf6AppIfLEv @ 95 NONAME - _ZN15CXnNodePluginIf6LabelLEv @ 96 NONAME - _ZN15CXnNodePluginIf7SetRectERK5TRect @ 97 NONAME - _ZN15CXnNodePluginIf8DisplayLEv @ 98 NONAME - _ZN15CXnNodePluginIf9AddChildLEPS_ @ 99 NONAME - _ZN15CXnNodePluginIf9ChildrenLEv @ 100 NONAME - _ZN15CXnNodePluginIf9MaskPathLEv @ 101 NONAME - _ZN15CXnNodePluginIf9NamespaceEv @ 102 NONAME - _ZN15CXnNodePluginIf9SetDirtyLEv @ 103 NONAME - _ZN15CXnNodePluginIf9SetStateLERK6TDesC8 @ 104 NONAME - _ZN15CXnNodePluginIf9UiEngineLEv @ 105 NONAME - _ZN15CXnUiEngineImpl14EnableRenderUiEPv @ 106 NONAME - _ZN16CXnViewsNodeImpl10ConstructLEP7CXnType @ 107 NONAME - _ZN16CXnViewsNodeImpl12SetComponentEP12CXnComponent @ 108 NONAME - _ZN16CXnViewsNodeImpl4NewLEP7CXnType @ 109 NONAME - _ZN16CXnViewsNodeImpl9ComponentEv @ 110 NONAME - _ZN16CXnViewsNodeImplC1Ev @ 111 NONAME - _ZN16CXnViewsNodeImplC2Ev @ 112 NONAME - _ZN16CXnViewsNodeImplD0Ev @ 113 NONAME - _ZN16CXnViewsNodeImplD1Ev @ 114 NONAME - _ZN16CXnViewsNodeImplD2Ev @ 115 NONAME - _ZN16MXnNodePredicate5MatchER7CXnNode @ 116 NONAME - _ZN16MXnNodePredicateC1Ev @ 117 NONAME - _ZN16MXnNodePredicateC2Ev @ 118 NONAME - _ZN16MXnNodePredicateD0Ev @ 119 NONAME - _ZN16MXnNodePredicateD1Ev @ 120 NONAME - _ZN16MXnNodePredicateD2Ev @ 121 NONAME - _ZN16TXnUiEngineAppIf10ActiveViewEv @ 122 NONAME - _ZN16TXnUiEngineAppIf10IsEditModeEv @ 123 NONAME - _ZN16TXnUiEngineAppIf10StringPoolEv @ 124 NONAME - _ZN16TXnUiEngineAppIf11FocusedNodeEv @ 125 NONAME - _ZN16TXnUiEngineAppIf11SetUiEngineEP11CXnUiEngine @ 126 NONAME - _ZN16TXnUiEngineAppIf12RefreshMenuLEv @ 127 NONAME - _ZN16TXnUiEngineAppIf13ActivateViewLER12CXnNodeAppIf @ 128 NONAME - _ZN16TXnUiEngineAppIf13FindNodeByIdLERK6TDesC8S2_ @ 129 NONAME - _ZN16TXnUiEngineAppIf13FindNodeByIdLERK7TDesC16S2_ @ 130 NONAME - _ZN16TXnUiEngineAppIf16FindNodeByClassLERK6TDesC8S2_ @ 131 NONAME - _ZN16TXnUiEngineAppIf16FindNodeByClassLERK7TDesC16S2_ @ 132 NONAME - _ZN16TXnUiEngineAppIf16GetThemeResourceERK7TDesC16R5RFile @ 133 NONAME - _ZN16TXnUiEngineAppIf16IsMenuDisplayingEv @ 134 NONAME - _ZN16TXnUiEngineAppIf19GetPluginNodeArrayLER13RPointerArrayI12CXnNodeAppIfE @ 135 NONAME - _ZN16TXnUiEngineAppIf23FindContentSourceNodesLERK6TDesC8 @ 136 NONAME - _ZN16TXnUiEngineAppIf9RenderUILEP12CXnNodeAppIf @ 137 NONAME - _ZN16TXnUiEngineAppIf9RootNodeLEv @ 138 NONAME - _ZN17CXnControlAdapter10ConstructLER15CXnNodePluginIf @ 139 NONAME - _ZN17CXnControlAdapter10LoadBitmapERK7TDesC16 @ 140 NONAME - _ZN17CXnControlAdapter10SetVisibleEi @ 141 NONAME - _ZN17CXnControlAdapter11SizeChangedEv @ 142 NONAME - _ZN17CXnControlAdapter11SkinChangedEv @ 143 NONAME - _ZN17CXnControlAdapter12FocusChangedE8TDrawNow @ 144 NONAME - _ZN17CXnControlAdapter12SetComponentEP12CXnComponent @ 145 NONAME - _ZN17CXnControlAdapter14ContentBitmapsERP10CFbsBitmapS2_ @ 146 NONAME - _ZN17CXnControlAdapter14OfferKeyEventLERK9TKeyEvent10TEventCode @ 147 NONAME - _ZN17CXnControlAdapter15SetLocalUiZoomLE10TAknUiZoom @ 148 NONAME - _ZN17CXnControlAdapter16GetBitmapAndMaskERK7TDesC16S2_RP10CFbsBitmapS5_ @ 149 NONAME - _ZN17CXnControlAdapter17SetContentBitmapsEP10CFbsBitmapS1_ @ 150 NONAME - _ZN17CXnControlAdapter17SetContentBitmapsERK7TDesC16S2_ @ 151 NONAME - _ZN17CXnControlAdapter18ExitPowerSaveModeLENS_10TModeEventE @ 152 NONAME - _ZN17CXnControlAdapter18ResetStylusCounterEv @ 153 NONAME - _ZN17CXnControlAdapter19EnterPowerSaveModeLENS_10TModeEventE @ 154 NONAME - _ZN17CXnControlAdapter19HandleControlEventLEP11CCoeControlN19MCoeControlObserver9TCoeEventE @ 155 NONAME - _ZN17CXnControlAdapter19HandleLongTapEventLERK6TPointS2_ @ 156 NONAME - _ZN17CXnControlAdapter19HandlePointerEventLERK13TPointerEvent @ 157 NONAME - _ZN17CXnControlAdapter20DoExitPowerSaveModeLENS_10TModeEventE @ 158 NONAME - _ZN17CXnControlAdapter21DoEnterPowerSaveModeLENS_10TModeEventE @ 159 NONAME - _ZN17CXnControlAdapter21HandlePropertyChangeLEP11CXnProperty @ 160 NONAME - _ZN17CXnControlAdapter22EnableLongTapAnimationEi @ 161 NONAME - _ZN17CXnControlAdapter23DoHandlePropertyChangeLEP11CXnProperty @ 162 NONAME - _ZN17CXnControlAdapter23MeasureAdaptiveContentLERK5TSize @ 163 NONAME - _ZN17CXnControlAdapter26HandleScreenDeviceChangedLEv @ 164 NONAME - _ZN17CXnControlAdapter4NewLER15CXnNodePluginIf @ 165 NONAME - _ZN17CXnControlAdapter8SetBlankEi @ 166 NONAME - _ZN17CXnControlAdapter8SetDataLERK6TDesC8RK7TDesC16i @ 167 NONAME - _ZN17CXnControlAdapter9ComponentEv @ 168 NONAME - _ZN17CXnControlAdapterC1Ev @ 169 NONAME - _ZN17CXnControlAdapterC2Ev @ 170 NONAME - _ZN17CXnControlAdapterD0Ev @ 171 NONAME - _ZN17CXnControlAdapterD1Ev @ 172 NONAME - _ZN17CXnControlAdapterD2Ev @ 173 NONAME - _ZN19MXnComponentFactory16MakeXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 174 NONAME - _ZN19MXnComponentFactory18CreateXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 175 NONAME - _ZN19MXnComponentFactory21MakeXnControlAdapterLER15CXnNodePluginIfP17CXnControlAdapter @ 176 NONAME - _ZN19MXnComponentFactory26DoesNodeNeedComponentImplLERK6TDesC8 @ 177 NONAME - _ZN19MXnComponentFactoryC2Ev @ 178 NONAME - _ZN19MXnComponentFactoryD0Ev @ 179 NONAME - _ZN19MXnComponentFactoryD1Ev @ 180 NONAME - _ZN19MXnComponentFactoryD2Ev @ 181 NONAME - _ZN19TXnUiEnginePluginIf10StringPoolEv @ 182 NONAME - _ZN19TXnUiEnginePluginIf11PluginNodeLEP15CXnNodePluginIf @ 183 NONAME - _ZN19TXnUiEnginePluginIf12EnableSwipeLEi @ 184 NONAME - _ZN19TXnUiEnginePluginIf12FocusVisibleEv @ 185 NONAME - _ZN19TXnUiEnginePluginIf12FocusedNodeLEv @ 186 NONAME - _ZN19TXnUiEnginePluginIf13ActivateViewLER15CXnNodePluginIf @ 187 NONAME - _ZN19TXnUiEnginePluginIf13AddDirtyNodeLER15CXnNodePluginIf @ 188 NONAME - _ZN19TXnUiEnginePluginIf13FindNodeByIdLERK6TDesC8S2_ @ 189 NONAME - _ZN19TXnUiEnginePluginIf13FindNodeByIdLERK7TDesC16S2_ @ 190 NONAME - _ZN19TXnUiEnginePluginIf13SwipeEnabledLEv @ 191 NONAME - _ZN19TXnUiEnginePluginIf14SetFocusedNodeEP15CXnNodePluginIf @ 192 NONAME - _ZN19TXnUiEnginePluginIf16FindNodeByClassLERK7TDesC16 @ 193 NONAME - _ZN19TXnUiEnginePluginIf16IsMenuDisplayingEv @ 194 NONAME - _ZN19TXnUiEnginePluginIf16ScreenDeviceSizeEv @ 195 NONAME - _ZN19TXnUiEnginePluginIf16SetFocusVisibleLEi @ 196 NONAME - _ZN19TXnUiEnginePluginIf17DisableRenderUiLCEv @ 197 NONAME - _ZN19TXnUiEnginePluginIf18IsDialogDisplayingEv @ 198 NONAME - _ZN19TXnUiEnginePluginIf18VerticalTwipValueLEP11CXnPropertyi @ 199 NONAME - _ZN19TXnUiEnginePluginIf19VerticalPixelValueLEP11CXnPropertyi @ 200 NONAME - _ZN19TXnUiEnginePluginIf20HorizontalTwipValueLEP11CXnPropertyi @ 201 NONAME - _ZN19TXnUiEnginePluginIf21HorizontalPixelValueLEP11CXnPropertyi @ 202 NONAME - _ZN19TXnUiEnginePluginIf22DeactivateFocusedNodeLEv @ 203 NONAME - _ZN19TXnUiEnginePluginIf23EnablePartialTouchInputER15CXnNodePluginIfi @ 204 NONAME - _ZN19TXnUiEnginePluginIf26RestorePreviousFocusedNodeEv @ 205 NONAME - _ZN19TXnUiEnginePluginIf8EditModeEv @ 206 NONAME - _ZN19TXnUiEnginePluginIf9LayoutUILEP15CXnNodePluginIf @ 207 NONAME - _ZN19TXnUiEnginePluginIf9RenderUILEP15CXnNodePluginIf @ 208 NONAME - _ZN19TXnUiEnginePluginIf9ResourcesEv @ 209 NONAME - _ZN19TXnUiEnginePluginIf9RootNodeLEv @ 210 NONAME - _ZN19TXnUiEnginePluginIf9ShowFocusEv @ 211 NONAME - _ZN20CXnComponentNodeImpl10ConstructLEP7CXnType @ 212 NONAME - _ZN20CXnComponentNodeImpl12SetComponentEP12CXnComponent @ 213 NONAME - _ZN20CXnComponentNodeImpl14MakeInterfaceLERK6TDesC8 @ 214 NONAME - _ZN20CXnComponentNodeImpl25SetComponentNeedsCreationEi @ 215 NONAME - _ZN20CXnComponentNodeImpl4NewLEP7CXnType @ 216 NONAME - _ZN20CXnComponentNodeImpl9ComponentEv @ 217 NONAME - _ZN20CXnComponentNodeImplC1Ev @ 218 NONAME - _ZN20CXnComponentNodeImplC2Ev @ 219 NONAME - _ZN20CXnComponentNodeImplD0Ev @ 220 NONAME - _ZN20CXnComponentNodeImplD1Ev @ 221 NONAME - _ZN20CXnComponentNodeImplD2Ev @ 222 NONAME - _ZN8CXnUtils11CreateFontLER15CXnNodePluginIfRP5CFontRi @ 223 NONAME - _ZN8CXnUtils11CreateFontLERK7TDesC16i10TFontStyleRP5CFontRi @ 224 NONAME - _ZN8CXnUtils11GetRgbValueER4TRgbRK6TDesC8 @ 225 NONAME - _ZN8CXnUtils11StripQuotesERP7HBufC16 @ 226 NONAME - _ZN8CXnUtils12FindResourceER12CArrayPtrSegI11CXnResourceERK7TDesC16Ri @ 227 NONAME - _ZN8CXnUtils12ScaleBitmapLERK5TRectP10CFbsBitmapS4_ @ 228 NONAME - _ZN8CXnUtils13TextAlignmentER15CXnNodePluginIf @ 229 NONAME - _ZN8CXnUtils15ConvertHslToRgbEiii @ 230 NONAME - _ZN8CXnUtils18CollapseWhiteSpaceER15CXnNodePluginIfR6TDes16 @ 231 NONAME - _ZN8CXnUtils18ResolveSkinItemIDLERK7TDesC16R11TAknsItemIDRi @ 232 NONAME - _ZN8CXnUtils20HandlePowerSaveModeLEP7CXnNodeii @ 233 NONAME - _ZNK11CXnProperty7EqualsLERS_ @ 234 NONAME - _ZNK12CXnNodeAppIf12GetPropertyLER11CXnProperty @ 235 NONAME - _ZNK12CXnNodeAppIf12GetPropertyLERK6TDesC8 @ 236 NONAME - _ZNK12CXnNodeAppIf19InternalDomNodeTypeEv @ 237 NONAME - _ZNK12CXnNodeAppIf7ParentLEv @ 238 NONAME - _ZNK12CXnNodeAppIf9GetPCDataEv @ 239 NONAME - _ZNK14CXnApplication9AppDllUidEv @ 240 NONAME - _ZNK15CXnAppUiAdapter4ViewEv @ 241 NONAME - _ZNK15CXnNodePluginIf12GetPropertyLER11CXnProperty @ 242 NONAME - _ZNK15CXnNodePluginIf12GetPropertyLERK6TDesC8 @ 243 NONAME - _ZNK15CXnNodePluginIf7ControlEv @ 244 NONAME - _ZNK15CXnNodePluginIf7ParentLEv @ 245 NONAME - _ZNK15CXnNodePluginIf9GetPCDataEv @ 246 NONAME - _ZNK16TXnUiEngineAppIf14WidgetsVisibleEv @ 247 NONAME - _ZNK17CXnControlAdapter15LongTapDetectorEv @ 248 NONAME - _ZNK17CXnControlAdapter16ComponentControlEi @ 249 NONAME - _ZNK17CXnControlAdapter16DrawContentImageEv @ 250 NONAME - _ZNK17CXnControlAdapter16IsDrawingAllowedEv @ 251 NONAME - _ZNK17CXnControlAdapter22CountComponentControlsEv @ 252 NONAME - _ZNK17CXnControlAdapter4DrawERK5TRect @ 253 NONAME - _ZNK17CXnControlAdapter4DrawERK5TRectR9CWindowGc @ 254 NONAME - _ZNK19TXnUiEnginePluginIf14WidgetsVisibleEv @ 255 NONAME - _ZNK19TXnUiEnginePluginIf9HitRegionEv @ 256 NONAME - _ZNK20CXnComponentNodeImpl25DoesComponentNeedCreationEv @ 257 NONAME - _ZTI11CXnDocument @ 258 NONAME - _ZTI11CXnProperty @ 259 NONAME - _ZTI12CXnComponent @ 260 NONAME - _ZTI14CXnApplication @ 261 NONAME - _ZTI15CXnAppUiAdapter @ 262 NONAME - _ZTI16CXnViewsNodeImpl @ 263 NONAME - _ZTI16MXnNodePredicate @ 264 NONAME - _ZTI17CXnControlAdapter @ 265 NONAME - _ZTI18CXnListQueryDialog @ 266 NONAME - _ZTI19MXnComponentFactory @ 267 NONAME - _ZTI20CXnComponentNodeImpl @ 268 NONAME - _ZTI27CXnNodeBreadthFirstIteratorI7CXnNodeE @ 269 NONAME - _ZTIN21CXnControlAdapterImpl13TIconProviderE @ 270 NONAME - _ZTV11CXnDocument @ 271 NONAME - _ZTV11CXnProperty @ 272 NONAME - _ZTV12CXnComponent @ 273 NONAME - _ZTV14CXnApplication @ 274 NONAME - _ZTV15CXnAppUiAdapter @ 275 NONAME - _ZTV16CXnViewsNodeImpl @ 276 NONAME - _ZTV16MXnNodePredicate @ 277 NONAME - _ZTV17CXnControlAdapter @ 278 NONAME - _ZTV18CXnListQueryDialog @ 279 NONAME - _ZTV19MXnComponentFactory @ 280 NONAME - _ZTV20CXnComponentNodeImpl @ 281 NONAME - _ZTV27CXnNodeBreadthFirstIteratorI7CXnNodeE @ 282 NONAME - _ZTVN21CXnControlAdapterImpl13TIconProviderE @ 283 NONAME - _ZThn52_N17CXnControlAdapter19HandleControlEventLEP11CCoeControlN19MCoeControlObserver9TCoeEventE @ 284 NONAME - _ZThn60_N17CXnControlAdapter19HandleLongTapEventLERK6TPointS2_ @ 285 NONAME - _ZN15CXnAppUiAdapter15ProcessMessageLE4TUidRK6TDesC8 @ 286 NONAME - _ZN19TXnUiEnginePluginIf18IsTextEditorActiveEv @ 287 NONAME + _ZN15CXnAppUiAdapter19HandleUiReadyEventLEv @ 65 NONAME + _ZN15CXnAppUiAdapter20HandleEnterEditModeLEi @ 66 NONAME + _ZN15CXnAppUiAdapter21HandleResourceChangeLEi @ 67 NONAME + _ZN15CXnAppUiAdapter9UiEngineLEv @ 68 NONAME + _ZN15CXnAppUiAdapterC1E4TUid @ 69 NONAME + _ZN15CXnAppUiAdapterC2E4TUid @ 70 NONAME + _ZN15CXnAppUiAdapterD0Ev @ 71 NONAME + _ZN15CXnAppUiAdapterD1Ev @ 72 NONAME + _ZN15CXnAppUiAdapterD2Ev @ 73 NONAME + _ZN15CXnNodePluginIf10BorderRectEv @ 74 NONAME + _ZN15CXnNodePluginIf10MarginRectEv @ 75 NONAME + _ZN15CXnNodePluginIf10SetPCDataLERK6TDesC8 @ 76 NONAME + _ZN15CXnNodePluginIf11PaddingRectEv @ 77 NONAME + _ZN15CXnNodePluginIf11UnsetStateLERK6TDesC8 @ 78 NONAME + _ZN15CXnNodePluginIf11VisibilityLEv @ 79 NONAME + _ZN15CXnNodePluginIf12SetPropertyLEP11CXnProperty @ 80 NONAME + _ZN15CXnNodePluginIf12ViewNodeImplEv @ 81 NONAME + _ZN15CXnNodePluginIf13SetBorderRectERK5TRect @ 82 NONAME + _ZN15CXnNodePluginIf13SetMarginRectERK5TRect @ 83 NONAME + _ZN15CXnNodePluginIf14IsFocusedStateEv @ 84 NONAME + _ZN15CXnNodePluginIf14MakeInterfaceLERK6TDesC8 @ 85 NONAME + _ZN15CXnNodePluginIf14SetPaddingRectERK5TRect @ 86 NONAME + _ZN15CXnNodePluginIf16SetHandleTooltipEi @ 87 NONAME + _ZN15CXnNodePluginIf16SetLayoutCapableEi @ 88 NONAME + _ZN15CXnNodePluginIf17ComponentNodeImplEv @ 89 NONAME + _ZN15CXnNodePluginIf19ReportTriggerEventLERK6TDesC8S2_S2_ @ 90 NONAME + _ZN15CXnNodePluginIf31SetPropertyWithoutNotificationLEP11CXnProperty @ 91 NONAME + _ZN15CXnNodePluginIf3IdLEv @ 92 NONAME + _ZN15CXnNodePluginIf4RectEv @ 93 NONAME + _ZN15CXnNodePluginIf4TypeEv @ 94 NONAME + _ZN15CXnNodePluginIf5PathLEv @ 95 NONAME + _ZN15CXnNodePluginIf6AppIfLEv @ 96 NONAME + _ZN15CXnNodePluginIf6LabelLEv @ 97 NONAME + _ZN15CXnNodePluginIf7SetRectERK5TRect @ 98 NONAME + _ZN15CXnNodePluginIf8DisplayLEv @ 99 NONAME + _ZN15CXnNodePluginIf9AddChildLEPS_ @ 100 NONAME + _ZN15CXnNodePluginIf9ChildrenLEv @ 101 NONAME + _ZN15CXnNodePluginIf9MaskPathLEv @ 102 NONAME + _ZN15CXnNodePluginIf9NamespaceEv @ 103 NONAME + _ZN15CXnNodePluginIf9SetDirtyLEv @ 104 NONAME + _ZN15CXnNodePluginIf9SetStateLERK6TDesC8 @ 105 NONAME + _ZN15CXnNodePluginIf9UiEngineLEv @ 106 NONAME + _ZN15CXnUiEngineImpl14EnableRenderUiEPv @ 107 NONAME + _ZN16CXnViewsNodeImpl10ConstructLEP7CXnType @ 108 NONAME + _ZN16CXnViewsNodeImpl12SetComponentEP12CXnComponent @ 109 NONAME + _ZN16CXnViewsNodeImpl4NewLEP7CXnType @ 110 NONAME + _ZN16CXnViewsNodeImpl9ComponentEv @ 111 NONAME + _ZN16CXnViewsNodeImplC1Ev @ 112 NONAME + _ZN16CXnViewsNodeImplC2Ev @ 113 NONAME + _ZN16CXnViewsNodeImplD0Ev @ 114 NONAME + _ZN16CXnViewsNodeImplD1Ev @ 115 NONAME + _ZN16CXnViewsNodeImplD2Ev @ 116 NONAME + _ZN16MXnNodePredicate5MatchER7CXnNode @ 117 NONAME + _ZN16MXnNodePredicateC1Ev @ 118 NONAME + _ZN16MXnNodePredicateC2Ev @ 119 NONAME + _ZN16MXnNodePredicateD0Ev @ 120 NONAME + _ZN16MXnNodePredicateD1Ev @ 121 NONAME + _ZN16MXnNodePredicateD2Ev @ 122 NONAME + _ZN16TXnUiEngineAppIf10ActiveViewEv @ 123 NONAME + _ZN16TXnUiEngineAppIf10IsEditModeEv @ 124 NONAME + _ZN16TXnUiEngineAppIf10StringPoolEv @ 125 NONAME + _ZN16TXnUiEngineAppIf11FocusedNodeEv @ 126 NONAME + _ZN16TXnUiEngineAppIf11SetUiEngineEP11CXnUiEngine @ 127 NONAME + _ZN16TXnUiEngineAppIf12RefreshMenuLEv @ 128 NONAME + _ZN16TXnUiEngineAppIf13ActivateViewLER12CXnNodeAppIf @ 129 NONAME + _ZN16TXnUiEngineAppIf13FindNodeByIdLERK6TDesC8S2_ @ 130 NONAME + _ZN16TXnUiEngineAppIf13FindNodeByIdLERK7TDesC16S2_ @ 131 NONAME + _ZN16TXnUiEngineAppIf16FindNodeByClassLERK6TDesC8S2_ @ 132 NONAME + _ZN16TXnUiEngineAppIf16FindNodeByClassLERK7TDesC16S2_ @ 133 NONAME + _ZN16TXnUiEngineAppIf16GetThemeResourceERK7TDesC16R5RFile @ 134 NONAME + _ZN16TXnUiEngineAppIf16IsMenuDisplayingEv @ 135 NONAME + _ZN16TXnUiEngineAppIf19GetPluginNodeArrayLER13RPointerArrayI12CXnNodeAppIfE @ 136 NONAME + _ZN16TXnUiEngineAppIf23FindContentSourceNodesLERK6TDesC8 @ 137 NONAME + _ZN16TXnUiEngineAppIf9RenderUILEP12CXnNodeAppIf @ 138 NONAME + _ZN16TXnUiEngineAppIf9RootNodeLEv @ 139 NONAME + _ZN17CXnControlAdapter10ConstructLER15CXnNodePluginIf @ 140 NONAME + _ZN17CXnControlAdapter10LoadBitmapERK7TDesC16 @ 141 NONAME + _ZN17CXnControlAdapter10SetVisibleEi @ 142 NONAME + _ZN17CXnControlAdapter11SizeChangedEv @ 143 NONAME + _ZN17CXnControlAdapter11SkinChangedEv @ 144 NONAME + _ZN17CXnControlAdapter12FocusChangedE8TDrawNow @ 145 NONAME + _ZN17CXnControlAdapter12SetComponentEP12CXnComponent @ 146 NONAME + _ZN17CXnControlAdapter14ContentBitmapsERP10CFbsBitmapS2_ @ 147 NONAME + _ZN17CXnControlAdapter14OfferKeyEventLERK9TKeyEvent10TEventCode @ 148 NONAME + _ZN17CXnControlAdapter15SetLocalUiZoomLE10TAknUiZoom @ 149 NONAME + _ZN17CXnControlAdapter16GetBitmapAndMaskERK7TDesC16S2_RP10CFbsBitmapS5_ @ 150 NONAME + _ZN17CXnControlAdapter17SetContentBitmapsEP10CFbsBitmapS1_ @ 151 NONAME + _ZN17CXnControlAdapter17SetContentBitmapsERK7TDesC16S2_ @ 152 NONAME + _ZN17CXnControlAdapter18ExitPowerSaveModeLENS_10TModeEventE @ 153 NONAME + _ZN17CXnControlAdapter18ResetStylusCounterEv @ 154 NONAME + _ZN17CXnControlAdapter19EnterPowerSaveModeLENS_10TModeEventE @ 155 NONAME + _ZN17CXnControlAdapter19HandleControlEventLEP11CCoeControlN19MCoeControlObserver9TCoeEventE @ 156 NONAME + _ZN17CXnControlAdapter19HandleLongTapEventLERK6TPointS2_ @ 157 NONAME + _ZN17CXnControlAdapter19HandlePointerEventLERK13TPointerEvent @ 158 NONAME + _ZN17CXnControlAdapter20DoExitPowerSaveModeLENS_10TModeEventE @ 159 NONAME + _ZN17CXnControlAdapter21DoEnterPowerSaveModeLENS_10TModeEventE @ 160 NONAME + _ZN17CXnControlAdapter21HandlePropertyChangeLEP11CXnProperty @ 161 NONAME + _ZN17CXnControlAdapter22EnableLongTapAnimationEi @ 162 NONAME + _ZN17CXnControlAdapter23DoHandlePropertyChangeLEP11CXnProperty @ 163 NONAME + _ZN17CXnControlAdapter23MeasureAdaptiveContentLERK5TSize @ 164 NONAME + _ZN17CXnControlAdapter26HandleScreenDeviceChangedLEv @ 165 NONAME + _ZN17CXnControlAdapter4NewLER15CXnNodePluginIf @ 166 NONAME + _ZN17CXnControlAdapter8SetBlankEi @ 167 NONAME + _ZN17CXnControlAdapter8SetDataLERK6TDesC8RK7TDesC16i @ 168 NONAME + _ZN17CXnControlAdapter9ComponentEv @ 169 NONAME + _ZN17CXnControlAdapterC1Ev @ 170 NONAME + _ZN17CXnControlAdapterC2Ev @ 171 NONAME + _ZN17CXnControlAdapterD0Ev @ 172 NONAME + _ZN17CXnControlAdapterD1Ev @ 173 NONAME + _ZN17CXnControlAdapterD2Ev @ 174 NONAME + _ZN19MXnComponentFactory16MakeXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 175 NONAME + _ZN19MXnComponentFactory18CreateXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 176 NONAME + _ZN19MXnComponentFactory21MakeXnControlAdapterLER15CXnNodePluginIfP17CXnControlAdapter @ 177 NONAME + _ZN19MXnComponentFactory26DoesNodeNeedComponentImplLERK6TDesC8 @ 178 NONAME + _ZN19MXnComponentFactoryC2Ev @ 179 NONAME + _ZN19MXnComponentFactoryD0Ev @ 180 NONAME + _ZN19MXnComponentFactoryD1Ev @ 181 NONAME + _ZN19MXnComponentFactoryD2Ev @ 182 NONAME + _ZN19TXnUiEnginePluginIf10StringPoolEv @ 183 NONAME + _ZN19TXnUiEnginePluginIf11PluginNodeLEP15CXnNodePluginIf @ 184 NONAME + _ZN19TXnUiEnginePluginIf12EnableSwipeLEi @ 185 NONAME + _ZN19TXnUiEnginePluginIf12FocusVisibleEv @ 186 NONAME + _ZN19TXnUiEnginePluginIf12FocusedNodeLEv @ 187 NONAME + _ZN19TXnUiEnginePluginIf13ActivateViewLER15CXnNodePluginIf @ 188 NONAME + _ZN19TXnUiEnginePluginIf13AddDirtyNodeLER15CXnNodePluginIf @ 189 NONAME + _ZN19TXnUiEnginePluginIf13FindNodeByIdLERK6TDesC8S2_ @ 190 NONAME + _ZN19TXnUiEnginePluginIf13FindNodeByIdLERK7TDesC16S2_ @ 191 NONAME + _ZN19TXnUiEnginePluginIf13SwipeEnabledLEv @ 192 NONAME + _ZN19TXnUiEnginePluginIf14SetFocusedNodeEP15CXnNodePluginIf @ 193 NONAME + _ZN19TXnUiEnginePluginIf16FindNodeByClassLERK7TDesC16 @ 194 NONAME + _ZN19TXnUiEnginePluginIf16IsMenuDisplayingEv @ 195 NONAME + _ZN19TXnUiEnginePluginIf16ScreenDeviceSizeEv @ 196 NONAME + _ZN19TXnUiEnginePluginIf16SetFocusVisibleLEi @ 197 NONAME + _ZN19TXnUiEnginePluginIf17DisableRenderUiLCEv @ 198 NONAME + _ZN19TXnUiEnginePluginIf18IsDialogDisplayingEv @ 199 NONAME + _ZN19TXnUiEnginePluginIf18IsTextEditorActiveEv @ 200 NONAME + _ZN19TXnUiEnginePluginIf18VerticalTwipValueLEP11CXnPropertyi @ 201 NONAME + _ZN19TXnUiEnginePluginIf19VerticalPixelValueLEP11CXnPropertyi @ 202 NONAME + _ZN19TXnUiEnginePluginIf20HorizontalTwipValueLEP11CXnPropertyi @ 203 NONAME + _ZN19TXnUiEnginePluginIf21HorizontalPixelValueLEP11CXnPropertyi @ 204 NONAME + _ZN19TXnUiEnginePluginIf22DeactivateFocusedNodeLEv @ 205 NONAME + _ZN19TXnUiEnginePluginIf23EnablePartialTouchInputER15CXnNodePluginIfi @ 206 NONAME + _ZN19TXnUiEnginePluginIf26RestorePreviousFocusedNodeEv @ 207 NONAME + _ZN19TXnUiEnginePluginIf8EditModeEv @ 208 NONAME + _ZN19TXnUiEnginePluginIf9LayoutUILEP15CXnNodePluginIf @ 209 NONAME + _ZN19TXnUiEnginePluginIf9RenderUILEP15CXnNodePluginIf @ 210 NONAME + _ZN19TXnUiEnginePluginIf9ResourcesEv @ 211 NONAME + _ZN19TXnUiEnginePluginIf9RootNodeLEv @ 212 NONAME + _ZN19TXnUiEnginePluginIf9ShowFocusEv @ 213 NONAME + _ZN20CXnComponentNodeImpl10ConstructLEP7CXnType @ 214 NONAME + _ZN20CXnComponentNodeImpl12SetComponentEP12CXnComponent @ 215 NONAME + _ZN20CXnComponentNodeImpl14MakeInterfaceLERK6TDesC8 @ 216 NONAME + _ZN20CXnComponentNodeImpl25SetComponentNeedsCreationEi @ 217 NONAME + _ZN20CXnComponentNodeImpl4NewLEP7CXnType @ 218 NONAME + _ZN20CXnComponentNodeImpl9ComponentEv @ 219 NONAME + _ZN20CXnComponentNodeImplC1Ev @ 220 NONAME + _ZN20CXnComponentNodeImplC2Ev @ 221 NONAME + _ZN20CXnComponentNodeImplD0Ev @ 222 NONAME + _ZN20CXnComponentNodeImplD1Ev @ 223 NONAME + _ZN20CXnComponentNodeImplD2Ev @ 224 NONAME + _ZN8CXnUtils11CreateFontLER15CXnNodePluginIfRP5CFontRi @ 225 NONAME + _ZN8CXnUtils11CreateFontLERK7TDesC16i10TFontStyleRP5CFontRi @ 226 NONAME + _ZN8CXnUtils11GetRgbValueER4TRgbRK6TDesC8 @ 227 NONAME + _ZN8CXnUtils11StripQuotesERP7HBufC16 @ 228 NONAME + _ZN8CXnUtils12FindResourceER12CArrayPtrSegI11CXnResourceERK7TDesC16Ri @ 229 NONAME + _ZN8CXnUtils12ScaleBitmapLERK5TRectP10CFbsBitmapS4_ @ 230 NONAME + _ZN8CXnUtils13TextAlignmentER15CXnNodePluginIf @ 231 NONAME + _ZN8CXnUtils15ConvertHslToRgbEiii @ 232 NONAME + _ZN8CXnUtils18CollapseWhiteSpaceER15CXnNodePluginIfR6TDes16 @ 233 NONAME + _ZN8CXnUtils18ResolveSkinItemIDLERK7TDesC16R11TAknsItemIDRi @ 234 NONAME + _ZN8CXnUtils20HandlePowerSaveModeLEP7CXnNodeii @ 235 NONAME + _ZNK11CXnProperty7EqualsLERS_ @ 236 NONAME + _ZNK12CXnNodeAppIf12GetPropertyLER11CXnProperty @ 237 NONAME + _ZNK12CXnNodeAppIf12GetPropertyLERK6TDesC8 @ 238 NONAME + _ZNK12CXnNodeAppIf19InternalDomNodeTypeEv @ 239 NONAME + _ZNK12CXnNodeAppIf7ParentLEv @ 240 NONAME + _ZNK12CXnNodeAppIf9GetPCDataEv @ 241 NONAME + _ZNK14CXnApplication9AppDllUidEv @ 242 NONAME + _ZNK15CXnAppUiAdapter4ViewEv @ 243 NONAME + _ZNK15CXnNodePluginIf12GetPropertyLER11CXnProperty @ 244 NONAME + _ZNK15CXnNodePluginIf12GetPropertyLERK6TDesC8 @ 245 NONAME + _ZNK15CXnNodePluginIf7ControlEv @ 246 NONAME + _ZNK15CXnNodePluginIf7ParentLEv @ 247 NONAME + _ZNK15CXnNodePluginIf9GetPCDataEv @ 248 NONAME + _ZNK16TXnUiEngineAppIf14WidgetsVisibleEv @ 249 NONAME + _ZNK17CXnControlAdapter15LongTapDetectorEv @ 250 NONAME + _ZNK17CXnControlAdapter16ComponentControlEi @ 251 NONAME + _ZNK17CXnControlAdapter16DrawContentImageEv @ 252 NONAME + _ZNK17CXnControlAdapter16IsDrawingAllowedEv @ 253 NONAME + _ZNK17CXnControlAdapter22CountComponentControlsEv @ 254 NONAME + _ZNK17CXnControlAdapter4DrawERK5TRect @ 255 NONAME + _ZNK17CXnControlAdapter4DrawERK5TRectR9CWindowGc @ 256 NONAME + _ZNK19TXnUiEnginePluginIf14WidgetsVisibleEv @ 257 NONAME + _ZNK19TXnUiEnginePluginIf9HitRegionEv @ 258 NONAME + _ZNK20CXnComponentNodeImpl25DoesComponentNeedCreationEv @ 259 NONAME + _ZTI11CXnDocument @ 260 NONAME + _ZTI11CXnProperty @ 261 NONAME + _ZTI12CXnComponent @ 262 NONAME + _ZTI14CXnApplication @ 263 NONAME + _ZTI15CXnAppUiAdapter @ 264 NONAME + _ZTI16CXnViewsNodeImpl @ 265 NONAME + _ZTI16MXnNodePredicate @ 266 NONAME + _ZTI17CXnControlAdapter @ 267 NONAME + _ZTI18CXnListQueryDialog @ 268 NONAME + _ZTI19MXnComponentFactory @ 269 NONAME + _ZTI20CXnComponentNodeImpl @ 270 NONAME + _ZTI27CXnNodeBreadthFirstIteratorI7CXnNodeE @ 271 NONAME + _ZTIN21CXnControlAdapterImpl13TIconProviderE @ 272 NONAME + _ZTV11CXnDocument @ 273 NONAME + _ZTV11CXnProperty @ 274 NONAME + _ZTV12CXnComponent @ 275 NONAME + _ZTV14CXnApplication @ 276 NONAME + _ZTV15CXnAppUiAdapter @ 277 NONAME + _ZTV16CXnViewsNodeImpl @ 278 NONAME + _ZTV16MXnNodePredicate @ 279 NONAME + _ZTV17CXnControlAdapter @ 280 NONAME + _ZTV18CXnListQueryDialog @ 281 NONAME + _ZTV19MXnComponentFactory @ 282 NONAME + _ZTV20CXnComponentNodeImpl @ 283 NONAME + _ZTV27CXnNodeBreadthFirstIteratorI7CXnNodeE @ 284 NONAME + _ZTVN21CXnControlAdapterImpl13TIconProviderE @ 285 NONAME + _ZThn52_N17CXnControlAdapter19HandleControlEventLEP11CCoeControlN19MCoeControlObserver9TCoeEventE @ 286 NONAME + _ZThn60_N17CXnControlAdapter19HandleLongTapEventLERK6TPointS2_ @ 287 NONAME diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/uiengine/inc/xnbackgroundmanager.h --- a/idlehomescreen/xmluirendering/uiengine/inc/xnbackgroundmanager.h Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/uiengine/inc/xnbackgroundmanager.h Wed Mar 31 21:17:19 2010 +0300 @@ -28,6 +28,7 @@ class CXnViewManager; class CXnViewData; class CAknsLayeredBackgroundControlContext; +class CXnOomSysHandler; namespace hspswrapper { @@ -115,7 +116,7 @@ */ void WallpaperChanged( const CXnViewData& aOldView, const CXnViewData& aNewView ); - + /** * Draws wallpaper immediately, or once the window comes visible. * @@ -162,7 +163,7 @@ /** * From MDiskNotifyHandlerCallback. */ - void HandleNotifyDisk( TInt aError, const TDiskEvent& aEvent ); + void HandleNotifyDisk( TInt aError, const TDiskEvent& aEvent ); private: @@ -189,6 +190,8 @@ TInt AddCommonWallpaperL( const TDesC& aFileName, TBool aSave = ETrue ); void ReadWallpaperFromCenrepL(); void DrawEditModeBackgroundSkin() const; + CXnOomSysHandler& OomSysHandler() const; + void DrawStatusPaneMask() const; /** * Callback function to be used with CPeriodic. @@ -240,7 +243,7 @@ * Stores wallpaper type. */ CXnBackgroundManager::WppType iType; - + /** * Internal wallpaper update in progress */ @@ -272,6 +275,12 @@ */ CPeriodic* iTimer; + /** + * OOM system handler. + * Own. + */ + CXnOomSysHandler* iOomSysHandler; + }; #endif // CXNBACKGROUNDMANAGER_H diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/uiengine/inc/xnbgcontrol.h --- a/idlehomescreen/xmluirendering/uiengine/inc/xnbgcontrol.h Mon Mar 15 12:39:47 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,145 +0,0 @@ -/* -* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Background appearance drawer -* -*/ - - -#ifndef _XNBGCONTROL_H -#define _XNBGCONTROL_H - -// System includes -#include -#include - -// User includes -#include "xnuistatelistener.h" - -// Forward declarations - -/** - * Background appearance drawer - * - * @ingroup group_xnlayoutengine - * @lib xn3layoutengine.lib - * @since S60 5.0 - */ -NONSHARABLE_CLASS( CXnBgControl ) : public CCoeControl , public MXnUiStateObserver - { -public: - // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CXnBgControl* NewL(); - - /** - * Two-phased constructor. Leaving on stack - */ - static CXnBgControl* NewLC(); - - /** - * Destructor - */ - ~CXnBgControl(); - -private: - // private constructors - - /** - * Leaving constructor - */ - void ConstructL(); - - /** - * C++ default constructor - */ - CXnBgControl(); - -public: - // from CCoeControl - - /** - * @see CCoeControl - */ - TInt CountComponentControls() const; - - /** - * @see CCoeControl - */ - CCoeControl* ComponentControl( TInt aIndex ) const; - - /** - * @see CCoeControl - */ - void SizeChanged(); - - /** - * @see CCoeControl - */ - void Draw( const TRect& aRect ) const; - - /** - * @see CCoeControl - */ - void HandlePointerEventL( const TPointerEvent& aPointerEvent ); - -public: - // new functions - void SetCompoundControl( CCoeControl* aControl ); - - /** - * Service for removing grabbing controls - */ - void ResetGrabbingL(); - -private: - // new functions - - /** - * Removes recursively grabbing controls - */ - void RemoveGrabbingControL( const CCoeControl* aControl, const TPointerEvent& aEvent ) const; - -private: - // from MXnUiStateObserver - - /** - * @see MXnUiStateObserver - */ - void NotifyForegroundChanged( TForegroundStatus aStatus ); - - /** - * @see MXnUiStateObserver - */ - void NotifyLightStatusChanged( TBool aLightsOn ); - - /** - * @see MXnUiStateObserver - */ - void NotifyInCallStateChaged( TBool aInCall ); - -private: - // data - - /** Compound Control, Not owned */ - CCoeControl* iControl; - - /** stored point of EButton1Down */ - TPoint iHitpoint; - - }; - -#endif // _XNBGCONTROL_H diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/uiengine/inc/xncontroladapterimpl.h --- a/idlehomescreen/xmluirendering/uiengine/inc/xncontroladapterimpl.h Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/uiengine/inc/xncontroladapterimpl.h Wed Mar 31 21:17:19 2010 +0300 @@ -557,6 +557,8 @@ TBool iBlank; /** flag: to detect whether longtap occured */ TBool iLongtap; + /** record right softkey node of menubar when keydown event happened */ + mutable CXnNode* iKeyDownNode; }; #endif //__XNCONTROLADAPTERIMPL_H__ diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/uiengine/inc/xneditor.h --- a/idlehomescreen/xmluirendering/uiengine/inc/xneditor.h Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/uiengine/inc/xneditor.h Wed Mar 31 21:17:19 2010 +0300 @@ -39,6 +39,7 @@ class CXnViewData; class CRepository; class CXnBackgroundManager; +class CXnOomSysHandler; namespace hspswrapper { @@ -238,20 +239,21 @@ private: // new functions - void TemplatedWidgetsL( RPointerArray< CHsContentInfo >& aWidgets ); - - void HSPSPluginsL( RPointerArray< CHsContentInfo >& aWidgets, - const TDesC8& aType ); - - CPublisherInfo* PublisherInfoL( const CHsContentInfo& aContentInfo ); + CPublisherInfo* PublisherInfoL( const CHsContentInfo& aContentInfo ); TInt TemplateWidgetCanBeAddedRemovedL( CHsContentInfo& aContentInfo ); TInt NonTemplateWidgetCanBeAddedRemovedL( CHsContentInfo& aContentInfo ); TBool IsCurrentViewFull(); - void FilterWidgetListL( CHsContentInfoArray& aContentInfoArray, + + /** + * Filters plugins from the list and checks whether the plugins can be added or removed. + */ + void FilterPluginsL( CHsContentInfoArray& aContentInfoArray, TBool aIgnoreViewFull ); + void FilterViewListL( CHsContentInfoArray& aContentInfoArray ); + CXnOomSysHandler& OomSysHandler() const; /** * Notifies the MHsContentControl and the MHsContentControlUi if widget list was changed. @@ -269,6 +271,39 @@ CHsContentInfo* CreateContentInfoLC( CXnPluginData& aPlugin, RPointerArray< CHsContentInfo >& aInfos ); + /** + * Appends plugin configurations to the content info array. + */ + void AppendPluginsL( + RPointerArray< hspswrapper::CPluginInfo > aPlugins, + RPointerArray< CHsContentInfo >& aWidgets ); + + /** + * Resets runtime cache. + */ + void ResetCache(); + + /** + * Retrieves native application configuration plugins from HSPS + */ + void HspsApplicationPluginsL( RPointerArray< CHsContentInfo >& aWidgets ); + + /** + * Retrieves native view configuration plugins from HSPS + */ + void HspsViewPluginsL( RPointerArray< CHsContentInfo >& aWidgets ); + + /** + * Retrieves widget and template configuration plugins from HSPS + */ + void HspsWidgetPluginsL( RPointerArray< CHsContentInfo >& aWidgets ); + void DoHspsWidgetPluginsL(); + + /** + * Retrieves publishers from CPS and them with the HSPS's template plugins + */ + void CpsWidgetPluginsL( RPointerArray< CHsContentInfo >& aWidgets ); + private: // from MXnViewObserver @@ -320,6 +355,9 @@ TBool iWidgetsVisibilityState; /** Central repository , to choose plugin, owned*/ CRepository* iRepository; + /** Plugins cache, owned */ + RPointerArray< hspswrapper::CPluginInfo > iPluginsCache; + CXnOomSysHandler* iOomSysHandler; }; #endif // C_XNEDITOR_H diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/uiengine/inc/xngesturedefs.h --- a/idlehomescreen/xmluirendering/uiengine/inc/xngesturedefs.h Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/uiengine/inc/xngesturedefs.h Wed Mar 31 21:17:19 2010 +0300 @@ -56,7 +56,7 @@ * tolerance in degrees to either side of an angle, for direction to be * the same as reference angle */ - const TReal KAngleTolerance = 35; + const TReal KAngleTolerance = 80; /** * maximum pointer movement from pointer down position for a gesture be @@ -68,7 +68,7 @@ * minimum length of a valid swipe in pixels. should be larger than * KTapTolerance */ - const TReal KMinSwipeLength = 100; + const TReal KMinSwipeLength = 10; /** Nth pointer event before the latest point */ const TInt KPreviousPointOffset = 3; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/uiengine/inc/xnwidgetextensionadapter.h --- a/idlehomescreen/xmluirendering/uiengine/inc/xnwidgetextensionadapter.h Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/uiengine/inc/xnwidgetextensionadapter.h Wed Mar 31 21:17:19 2010 +0300 @@ -63,6 +63,13 @@ * Destructor. */ ~CXnWidgetExtensionAdapter(); +public: + /** + * From CCoeAppUiBase. + * Informs the components about the screen layout switch. + */ + void HandleScreenDeviceChangedL(); + private: // Functions from base classes diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/uiengine/src/xnappuiadapter.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnappuiadapter.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnappuiadapter.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -287,11 +287,11 @@ } // ----------------------------------------------------------------------------- -// CXnAppUiAdapter::UiActivated +// CXnAppUiAdapter::HandleUiReadyEventL // // ----------------------------------------------------------------------------- // -EXPORT_C void CXnAppUiAdapter::UiActivated() +EXPORT_C void CXnAppUiAdapter::HandleUiReadyEventL() { // Default empty implementation } diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -27,6 +27,7 @@ #include "xnwallpaperview.h" #include "xnrootdata.h" #include "xnuiengine.h" +#include "xnoomsyshandler.h" #include "xneffectmanager.h" // SYSTEM INCLUDE FILES @@ -45,6 +46,7 @@ #include #include #include +#include using namespace hspswrapper; @@ -101,8 +103,10 @@ CheckFeatureTypeL(); iTimer = CPeriodic::NewL( CActive::EPriorityIdle ); - + GfxTransEffect::Register( this, KGfxContextBgAppear ); + + iOomSysHandler = CXnOomSysHandler::NewL(); } // ----------------------------------------------------------------------------- @@ -136,6 +140,7 @@ delete iBgContext; delete iBgImage; delete iBgImagePath; + delete iOomSysHandler; } // ----------------------------------------------------------------------------- @@ -177,6 +182,7 @@ { SystemGc().DrawBitmap( iRect, wallpaper ); } + DrawStatusPaneMask(); } // Skin bg is used by default @@ -353,7 +359,7 @@ { return iType; } - + // ----------------------------------------------------------------------------- // CXnBackgroundManager::WallpaperChanged // ----------------------------------------------------------------------------- @@ -505,12 +511,19 @@ } else if ( selectedIndex == 1 ) { + if ( CXnOomSysHandler::HeapAvailable( CXnOomSysHandler::EMem2MB ) ) + { CXnAppUiAdapter& appui( iViewManager.AppUiAdapter() ); appui.EffectManager()->BeginFullscreenEffectL( KGfxContextOpenWallpaperView, iViewManager.ActiveViewData() ); appui.ActivateLocalViewL( KWallpaperViewUid, KDummyUid, KSingle ); + } + else + { + OomSysHandler().HandlePotentialOomL(); + } } } CleanupStack::Pop( query ); @@ -929,5 +942,52 @@ return EFalse; } +// ----------------------------------------------------------------------------- +// CXnBackgroundManager::DrawStatusPaneMask +// ----------------------------------------------------------------------------- +// +void CXnBackgroundManager::DrawStatusPaneMask() const + { + TRect spRect; + AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EStatusPane, spRect ); + + CFbsBitmap* maskBmp( NULL ); + TInt err( KErrNone ); + + if( Layout_Meta_Data::IsLandscapeOrientation() ) + { + TRAP( err, maskBmp = AknsUtils::CreateBitmapL( AknsUtils::SkinInstance(), + KAknsIIDQgnGrafBgLscTopMaskIcon ) ); + } + else + { + TRAP( err, maskBmp = AknsUtils::CreateBitmapL( AknsUtils::SkinInstance(), + KAknsIIDQgnGrafBgPrtTopMaskIcon ) ); + } + + if( err ) + { + return; + } + + // draw mask + if( maskBmp ) + { + AknIconUtils::SetSize( maskBmp, spRect.Size(), EAspectRatioNotPreserved ); + SystemGc().DrawBitmap( spRect, maskBmp ); + delete maskBmp; + } + } + +// ----------------------------------------------------------------------------- +// CXnBackgroundManager::OOMSysHandler +// ----------------------------------------------------------------------------- +// +CXnOomSysHandler& CXnBackgroundManager::OomSysHandler() const + { + __ASSERT_DEBUG( iOomSysHandler , User::Panic( _L("xnbackgroundmanager"), 0 ) ); + + return *iOomSysHandler; + } // End of File diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/uiengine/src/xnbgcontrol.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnbgcontrol.cpp Mon Mar 15 12:39:47 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,315 +0,0 @@ -/* -* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Background appearance drawer -* -*/ - -// System includes -#include - -// User includes -#include "xnappuiadapter.h" -#include "xnuiengine.h" -#include "xneditmode.h" - -#include "xnbgcontrol.h" - -// Constants - -// ============================ LOCAL FUNCTIONS ================================ - -// ============================ MEMBER FUNCTIONS =============================== -// ----------------------------------------------------------------------------- -// CXnBgControl::NewL() -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CXnBgControl* CXnBgControl::NewL() - { - CXnBgControl* self = CXnBgControl::NewLC(); - CleanupStack::Pop( self ); - return self; - } - -// ----------------------------------------------------------------------------- -// CXnBgControl::NewLC() -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CXnBgControl* CXnBgControl::NewLC() - { - CXnBgControl* self = new ( ELeave ) CXnBgControl(); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// ----------------------------------------------------------------------------- -// CXnBgControl::~CXnBgControl() -// C++ default destructor. -// ----------------------------------------------------------------------------- -// -CXnBgControl::~CXnBgControl() - { - } - -// ----------------------------------------------------------------------------- -// CXnBgControl::CXnBgControl() -// C++ default constructor. -// ----------------------------------------------------------------------------- -// -CXnBgControl::CXnBgControl() - : iHitpoint( TPoint( -1,-1 ) ) - { - } - -// ----------------------------------------------------------------------------- -// CXnBgControl::ConstructL() -// 2nd phase constructor -// ----------------------------------------------------------------------------- -// -void CXnBgControl::ConstructL() - { - CreateWindowL(); - - TRgb backgroundColour = KRgbWhite; - if( KErrNone == Window().SetTransparencyAlphaChannel() ) - { - backgroundColour.SetAlpha( 0 ); - } - Window().SetBackgroundColor( backgroundColour ); - - EnableDragEvents(); - - Window().SetPointerGrab( ETrue ); - - - ActivateL(); - - MakeVisible( ETrue ); - - SetComponentsToInheritVisibility( ETrue ); - - static_cast< CXnAppUiAdapter* >( iAvkonAppUi ) - ->UiStateListener().AddObserver( *this ); - - } - -// ----------------------------------------------------------------------------- -// CXnBgControl::CountComponentControls() -// -// ----------------------------------------------------------------------------- -// -TInt CXnBgControl::CountComponentControls() const - { - if ( iControl ) - { - return 1; - } - - return 0; - } - -// ----------------------------------------------------------------------------- -// CXnBgControl::ComponentControl() -// -// ----------------------------------------------------------------------------- -// -CCoeControl* CXnBgControl::ComponentControl( TInt aIndex ) const - { - if ( aIndex == 0 ) - { - return iControl; - } - - return NULL; - } - -// ----------------------------------------------------------------------------- -// CXnBgControl::SizeChanged() -// -// ----------------------------------------------------------------------------- -// -void CXnBgControl::SizeChanged() - { - } - -// ----------------------------------------------------------------------------- -// CXnBgControl::Draw() -// -// ----------------------------------------------------------------------------- -// -void CXnBgControl::Draw( const TRect& aRect ) const - { - CXnAppUiAdapter* appui( - static_cast< CXnAppUiAdapter* >( iAvkonAppUi ) ); - - TInt state( appui->UiEngine().EditMode()->EditState() ); - - CWindowGc& gc( SystemGc() ); - - if ( state == CXnEditMode::EShootContent ) - { - // No background needed for dragging widget screenshot - } - else - { - gc.Clear( aRect ); - } - } - -// ----------------------------------------------------------------------------- -// CXnBgControl::SetCompoundControl() -// -// ----------------------------------------------------------------------------- -// -void CXnBgControl::HandlePointerEventL( const TPointerEvent& aPointerEvent ) - { - switch( aPointerEvent.iType ) - { - case TPointerEvent::EButton1Down: - iHitpoint = aPointerEvent.iPosition; - break; - - case TPointerEvent::EButton1Up: - break; - - default: - break; - } - - CXnAppUiAdapter* appui( static_cast< CXnAppUiAdapter* >( iAvkonAppUi ) ); - - appui->UiEngine().DisableRenderUiLC(); - - CCoeControl::HandlePointerEventL( aPointerEvent ); - - appui->UiEngine().RenderUIL(); - - CleanupStack::PopAndDestroy(); - } - -// ----------------------------------------------------------------------------- -// CXnBgControl::SetCompoundControl() -// -// ----------------------------------------------------------------------------- -// -void CXnBgControl::SetCompoundControl( CCoeControl* aControl ) - { - if ( iControl == aControl ) - { - return; - } - - if ( iControl ) - { - // Remove parents - iControl->SetParent( NULL ); - iControl->SetMopParent( NULL ); - - iControl->MakeVisible( EFalse ); - } - - if ( aControl ) - { - // Set self as parent - aControl->SetParent( this ); - aControl->SetMopParent( this ); - - aControl->MakeVisible( ETrue ); - } - - iControl = aControl; - } - -// ----------------------------------------------------------------------------- -// CXnBgControl::ResetGrabbingL() -// Service for removing grabbing controls -// ----------------------------------------------------------------------------- -// -void CXnBgControl::ResetGrabbingL() - { - TPointerEvent event; - event.iType = TPointerEvent::EButton1Up; - - RemoveGrabbingControL( this, event ); - - iHitpoint.SetXY( -1, -1 ); - } - -// ----------------------------------------------------------------------------- -// CXnBgControl::RemoveGrabbingControL() -// Removes recursively grabbing controls -// ----------------------------------------------------------------------------- -// -void CXnBgControl::RemoveGrabbingControL( const CCoeControl* aControl, - const TPointerEvent& aEvent ) const - { - TInt count = aControl->CountComponentControls(); - - for( TInt i = 0; i < count; i++ ) - { - CCoeControl* child = aControl->ComponentControl( i ); - - if( child && child->Rect().Contains( iHitpoint ) ) - { - child->CCoeControl::HandlePointerEventL( aEvent ); - RemoveGrabbingControL( child, aEvent ); - } - } - } - -// ----------------------------------------------------------------------------- -// CXnBgControl::NotifyForegroundChanged() -// Notifies foreground changes. -// ----------------------------------------------------------------------------- -// -void CXnBgControl::NotifyForegroundChanged( TForegroundStatus aStatus ) - { - switch( aStatus ) - { - case EForeground: - break; - - case EUnknown: - case EBackground: - case EPartialForeground: - default: - TRAP_IGNORE( ResetGrabbingL(); ) - break; - } - } - -// ----------------------------------------------------------------------------- -// CXnBgControl::NotifyLightStatusChanged() -// Notifies primary display light status is changed. -// ----------------------------------------------------------------------------- -// -void CXnBgControl::NotifyLightStatusChanged( TBool /*aLightsOn*/ ) - { - - } - -// ----------------------------------------------------------------------------- -// CXnBgControl::NotifyInCallStateChaged() -// Notifies in-call state is changed. -// ----------------------------------------------------------------------------- -// -void CXnBgControl::NotifyInCallStateChaged( TBool /*aInCall*/ ) - { - - } - -// End of file - diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/uiengine/src/xncontroladapterimpl.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xncontroladapterimpl.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/uiengine/src/xncontroladapterimpl.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -21,6 +21,7 @@ #include #include #include +//skinning support #include #include #include @@ -3759,6 +3760,7 @@ { if ( aType == EEventKeyDown ) { + iKeyDownNode = node; iLongtap = EFalse; if ( aKeyEvent.iScanCode == EStdKeyDevice3 || @@ -3787,6 +3789,10 @@ } else if( aType == EEventKey ) { + if( iKeyDownNode != node) + { + node = iKeyDownNode; + } if ( aKeyEvent.iRepeats == 0 ) { if ( !HasHoldTrigger( node->DomNode() ) ) @@ -3815,6 +3821,10 @@ { if ( !iLongtap ) { + if( iKeyDownNode != node) + { + node = iKeyDownNode; + } if ( HasHoldTrigger( node->DomNode() ) ) { // Hold trigger defined, report activate event here @@ -3907,8 +3917,8 @@ control->IgnoreEventsUntilNextPointerUp(); control->ResetGrabbing(); } - - // Indicate long tap has taken plave + + // Indicate long tap has taken place iLongtap = ETrue; CXnNode* hold = BuildTriggerNodeL( *engine, @@ -3952,6 +3962,7 @@ // Swipe took place, consume this event return ETrue; } + } TBool menuBar( node == engine->MenuBarNode() ); @@ -4011,6 +4022,7 @@ if ( event.iType == TPointerEvent::EButton1Down ) { iLongtap = EFalse; + node->HideTooltipsL(); if ( !menuBar ) { diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -61,6 +61,8 @@ #include "xneditor.h" #include "xnpanic.h" +#include "xnoomsyshandler.h" + using namespace hspswrapper; using namespace cpswrapper; @@ -306,6 +308,7 @@ iCpsWrapper = CCpsWrapper::NewL( *this ); iHspsWrapper = CHspsWrapper::NewL( aUid, this ); iRepository= CRepository::NewL( TUid::Uid( KCRUidActiveIdleLV ) ); + iOomSysHandler = CXnOomSysHandler::NewL(); } // --------------------------------------------------------------------------- @@ -315,11 +318,15 @@ CXnEditor::~CXnEditor() { iViewManager.RemoveObserver( *this ); - + if( iPluginsCache.Count() ) + { + iPluginsCache.ResetAndDestroy(); + } delete iCpsWrapper; delete iHspsWrapper; delete iPublisherMap; delete iRepository; + delete iOomSysHandler; } // ----------------------------------------------------------------------------- @@ -346,10 +353,10 @@ } // ----------------------------------------------------------------------------- -// CXnEditor::FilterWidgetListL +// CXnEditor::FilterPluginsL // ----------------------------------------------------------------------------- // -void CXnEditor::FilterWidgetListL( CHsContentInfoArray& aContentInfoArray, +void CXnEditor::FilterPluginsL( CHsContentInfoArray& aContentInfoArray, TBool aIgnoreViewFull ) { RPointerArray< CHsContentInfo >& list( aContentInfoArray.Array() ); @@ -639,6 +646,12 @@ // void CXnEditor::AddWidgetL() { + if ( !CXnOomSysHandler::HeapAvailable( VIEW_MIN_MEM ) ) + { + OomSysHandler().HandlePotentialOomL(); + return; + } + TBuf8 oPaqDataStr; MHsContentControlUi* ui( NULL ); @@ -671,13 +684,15 @@ CleanupStack::PushL( info ); RPointerArray< CHsContentInfo >& widgets( info->Array() ); - - // get installed widgets from HSPS (type: "widget") - HSPSPluginsL( widgets, KKeyWidget ); - // get installed widgets from HSPS - TemplatedWidgetsL( widgets ); - FilterWidgetListL( *info, ETrue ); + // get installed widgets and template configurations from HSPS + HspsWidgetPluginsL( widgets ); + + // get installed widgets from HSPS (type: "template") + CpsWidgetPluginsL( widgets ); + + // check whether the plugins can be added or removed + FilterPluginsL( *info, ETrue ); CDesCArrayFlat* array = new ( ELeave ) CDesCArrayFlat( 8 ); CleanupStack::PushL( array ); @@ -903,106 +918,59 @@ } // --------------------------------------------------------------------------- -// CXnEditor::TemplatedWidgetsL +// CXnEditor::CpsWidgetPluginsL // --------------------------------------------------------------------------- // -void CXnEditor::TemplatedWidgetsL( RPointerArray< CHsContentInfo >& aWidgets ) +void CXnEditor::CpsWidgetPluginsL( RPointerArray< CHsContentInfo >& aWidgets ) { - RPointerArray< CHsContentInfo > widgetTemplates; - CleanupStack::PushL( TCleanupItem( DeleteWidgetInfo, &widgetTemplates ) ); - - // Gets all the installed templates from CPS - HSPSPluginsL( widgetTemplates, KKeyTemplate ); - - delete iPublisherMap; - iPublisherMap = NULL; - - iPublisherMap = iCpsWrapper->GetTemplatedPublishersL(); - - RPointerArray< CPublisherInfo >& publisherInfo( - iPublisherMap->PublisherInfo() ); - + // Get publishers from CPS + + if( !iPublisherMap ) + { + iPublisherMap = iCpsWrapper->GetTemplatedPublishersL(); + } + + RPointerArray< CPublisherInfo >& publisherInfo( iPublisherMap->PublisherInfo() ); + + // Find templates for the published data for ( TInt i = 0; i < publisherInfo.Count(); i++ ) { CPublisherInfo* info( publisherInfo[i] ); - for ( TInt j = 0; j < widgetTemplates.Count(); j++ ) - { - const TDesC& name( widgetTemplates[j]->Name() ); - - if ( name == info->TemplateType() ) - { - CHsContentInfo* contentInfo = CHsContentInfo::NewLC(); - - contentInfo->SetNameL( info->WidgetName() ); - contentInfo->SetPublisherIdL( info->PublisherId() ); - contentInfo->SetMaxWidgets( info->MaxWidgets() ); - contentInfo->SetUidL( widgetTemplates[j]->Uid() ); - contentInfo->SetTypeL( widgetTemplates[j]->Type() ); - contentInfo->SetDescriptionL( info->Description() ); - contentInfo->SetIconPathL( info->LogoIcon() ); - - contentInfo->SetIsWrt( - ( info->ContentType() == KWRTTemplate() ) ); - - aWidgets.AppendL( contentInfo ); - CleanupStack::Pop( contentInfo ); - - break; + for ( TInt j = 0; j < iPluginsCache.Count(); j++ ) + { + if( iPluginsCache[j]->Name().Length() > 0 ) + { + // 8 to 16bit conv + HBufC* nameBuf = HBufC::NewLC( iPluginsCache[j]->Name().Length() ); + nameBuf->Des().Copy( iPluginsCache[j]->Name() ); + TBool matchingNames = ( nameBuf->Des() == info->TemplateType() ); + CleanupStack::PopAndDestroy(); + if ( matchingNames ) + { + + // Add published widget + CHsContentInfo* contentInfo = CHsContentInfo::NewLC(); + + contentInfo->SetNameL( info->WidgetName() ); + contentInfo->SetPublisherIdL( info->PublisherId() ); + contentInfo->SetMaxWidgets( info->MaxWidgets() ); + contentInfo->SetUidL( iPluginsCache[j]->Uid() ); + contentInfo->SetTypeL( iPluginsCache[j]->Type() ); + contentInfo->SetDescriptionL( info->Description() ); + contentInfo->SetIconPathL( info->LogoIcon() ); + contentInfo->SetIsWrt( info->ContentType() == KWRTTemplate() ); + + aWidgets.AppendL( contentInfo ); + + CleanupStack::Pop( contentInfo ); + break; + } } } - } - - CleanupStack::PopAndDestroy(); // cleanupitem + } } -// --------------------------------------------------------------------------- -// CXnEditor::HSPSPluginsL -// --------------------------------------------------------------------------- -// -void CXnEditor::HSPSPluginsL( RPointerArray< CHsContentInfo >& aWidgets, - const TDesC8& aType ) - { - RPointerArray< hspswrapper::CPluginInfo > plugins; - CleanupStack::PushL( TCleanupItem( DeletePluginInfos, &plugins ) ); - - if ( aType == KApplication ) - { - iHspsWrapper->GetAppConfigurationsL( plugins ); - } - else - { - iHspsWrapper->GetPluginsL( plugins, KPluginInterface, aType ); - } - - for ( TInt i = 0; i < plugins.Count(); i++ ) - { - if ( plugins[i]->Uid().CompareF( KEmptyWidgetUid ) == 0 ) - { - // Skip empty - continue; - } - - CHsContentInfo* contentInfo = CHsContentInfo::NewLC(); - - contentInfo->SetNameL( plugins[i]->Name() ); - contentInfo->SetUidL( plugins[i]->Uid() ); - contentInfo->SetTypeL( aType ); - - if ( aType == KKeyWidget || aType == KKeyTemplate ) - { - contentInfo->SetMaxWidgets( plugins[i]->MultiInstance() ); - } - - contentInfo->SetDescriptionL( plugins[i]->Description() ); - contentInfo->SetIconPathL( plugins[i]->LogoIcon() ); - - aWidgets.AppendL( contentInfo ); - CleanupStack::Pop( contentInfo ); - } - - CleanupStack::PopAndDestroy( &plugins ); - } // --------------------------------------------------------------------------- // CXnEditor::ToggleWidgetsVisibiltyL @@ -1410,6 +1378,7 @@ // void CXnEditor::NotifyWidgetUnregisteredL( const TDesC& aPublisher ) { + ResetCache(); RemoveUnRegisteredWidgetL( aPublisher ); WidgetListChanged(); } @@ -1420,6 +1389,7 @@ // void CXnEditor::NotifyWidgetRegisteredL() { + ResetCache(); WidgetListChanged(); } @@ -1483,6 +1453,8 @@ { if ( aEvent == KEventPluginUnInstalled ) { + ResetCache(); + CHsContentInfo* info = CHsContentInfo::NewLC(); info->SetNameL( aPluginName ); @@ -1500,10 +1472,14 @@ } else if ( aEvent == KEventPluginInstalled ) { + ResetCache(); + WidgetListChanged(); } else if ( aEvent == KEventPluginUpdated ) { + ResetCache(); + // If the plugin is in use then reload the widget if ( aPluginId.Length() > 0 ) { @@ -1578,19 +1554,137 @@ } // ----------------------------------------------------------------------------- +// CXnEditor::AppendPluginsL +// ----------------------------------------------------------------------------- +// +void CXnEditor::AppendPluginsL( + RPointerArray< hspswrapper::CPluginInfo > aPlugins, + RPointerArray< CHsContentInfo >& aWidgets ) + { + // Append plugins to the content info array + for ( TInt i = 0; i < aPlugins.Count(); i++ ) + { + + // Block the empty and template plugins from the list + if ( aPlugins[i]->Uid().CompareF( KEmptyWidgetUid ) == 0 + || aPlugins[i]->Type() == KKeyTemplate ) + { + continue; + } + + CHsContentInfo* contentInfo = CHsContentInfo::NewLC(); + contentInfo->SetNameL( aPlugins[i]->Name() ); + contentInfo->SetUidL( aPlugins[i]->Uid() ); + contentInfo->SetTypeL( aPlugins[i]->Type() ); + if ( aPlugins[i]->Type() == KKeyWidget + || aPlugins[i]->Type() == KKeyTemplate ) + { + contentInfo->SetMaxWidgets( aPlugins[i]->MultiInstance() ); + } + contentInfo->SetDescriptionL( aPlugins[i]->Description() ); + contentInfo->SetIconPathL( aPlugins[i]->LogoIcon() ); + + aWidgets.AppendL( contentInfo ); + CleanupStack::Pop( contentInfo ); + } + } + +// ----------------------------------------------------------------------------- +// CXnEditor::ResetCache +// ----------------------------------------------------------------------------- +// +void CXnEditor::ResetCache() + { + // Force loading of widget/template plugin configurations + iPluginsCache.ResetAndDestroy(); + + // Forece reloading of CPS publishers + delete iPublisherMap; + iPublisherMap = NULL; + } + +// ----------------------------------------------------------------------------- +// CXnEditor::HspsApplicationPluginsL +// ----------------------------------------------------------------------------- +// +void CXnEditor::HspsApplicationPluginsL( RPointerArray< CHsContentInfo >& aWidgets ) + { + RPointerArray< hspswrapper::CPluginInfo > plugins; + CleanupStack::PushL( TCleanupItem( DeletePluginInfos, &plugins ) ); + + iHspsWrapper->GetAppConfigurationsL( plugins ); + + // Append plugins to the content info array + AppendPluginsL( plugins, aWidgets ); + + CleanupStack::PopAndDestroy( &plugins ); + } + +// ----------------------------------------------------------------------------- +// CXnEditor::HspsViewPluginsL +// ----------------------------------------------------------------------------- +// +void CXnEditor::HspsViewPluginsL( RPointerArray< CHsContentInfo >& aWidgets ) + { + RPointerArray< hspswrapper::CPluginInfo > plugins; + CleanupStack::PushL( TCleanupItem( DeletePluginInfos, &plugins ) ); + + iHspsWrapper->GetPluginsL( plugins, KPluginInterface, KView ); + + // Append plugins to the content info array + AppendPluginsL( plugins, aWidgets ); + + CleanupStack::PopAndDestroy( &plugins ); + } + +// ----------------------------------------------------------------------------- +// CXnEditor::HspsWidgetPluginsL +// ----------------------------------------------------------------------------- +// +void CXnEditor::HspsWidgetPluginsL( RPointerArray< CHsContentInfo >& aWidgets ) + { + __ASSERT_DEBUG( aWidgets.Count() == 0, User::Leave( KErrGeneral ) ); + + // If widget/template plugins haven't been fetched yet + if( iPluginsCache.Count() == 0 ) + { + // Fetch the plugins into the runtime cache + TRAPD( err, DoHspsWidgetPluginsL() ); + if( err ) + { + ResetCache(); + User::LeaveIfError( err ); + } + } + + // Append plugins to the content info array + AppendPluginsL( iPluginsCache, aWidgets ); + } + +// ----------------------------------------------------------------------------- +// CXnEditor::DoHspsWidgetPluginsL +// ----------------------------------------------------------------------------- +// +void CXnEditor::DoHspsWidgetPluginsL() + { + iHspsWrapper->GetPluginsL( iPluginsCache, KPluginInterface, KKeyWidget ); + iHspsWrapper->GetPluginsL( iPluginsCache, KPluginInterface, KKeyTemplate ); + } + +// ----------------------------------------------------------------------------- // from MHsContentController // ----------------------------------------------------------------------------- // TInt CXnEditor::WidgetListL( CHsContentInfoArray& aArray ) { - RPointerArray< CHsContentInfo >& array( aArray.Array() ); + // append the list with native widget and template plugins from HSPS + HspsWidgetPluginsL( aArray.Array() ); + + // append the list with published template plugins from CPS + CpsWidgetPluginsL( aArray.Array() ); - // get installed widgets from HSPS (type: "widget") - HSPSPluginsL( array, KKeyWidget ); - // get installed widgets from HSPS - TemplatedWidgetsL( array ); - - FilterWidgetListL( aArray, ETrue ); + // check whether the plugins can be added or removed + FilterPluginsL( aArray, ETrue ); return KErrNone; } @@ -1633,9 +1727,13 @@ // Get installed widget content infos RPointerArray< CHsContentInfo > array; CleanupClosePushL( array ); - HSPSPluginsL( array, KKeyWidget ); - TemplatedWidgetsL( array ); - + + // get installed widgets and template configurations from HSPS + HspsWidgetPluginsL( array ); + + // get published widgets + CpsWidgetPluginsL( array ); + // Create content info for each found widget for ( TInt i = 0; i < widgets.Count(); i++ ) { @@ -1662,8 +1760,9 @@ { RPointerArray< CHsContentInfo >& array( aArray.Array() ); - // get installed views from HSPS - HSPSPluginsL( array, KView ); + + // get installed view configurations from HSPS + HspsViewPluginsL( array ); FilterViewListL( aArray ); @@ -1678,7 +1777,8 @@ { RPointerArray< CHsContentInfo >& array( aArray.Array() ); - HSPSPluginsL( array, KApplication ); + // get installed application configurations from HSPS + HspsApplicationPluginsL( array ); return KErrNone; } @@ -1940,4 +2040,15 @@ return contentInfo; } +// ----------------------------------------------------------------------------- +// CXnBackgroundManager::OOMSysHandler +// ----------------------------------------------------------------------------- +// +CXnOomSysHandler& CXnEditor::OomSysHandler() const + { + __ASSERT_DEBUG( iOomSysHandler , User::Panic( _L("xneditor"), 0 ) ); + + return *iOomSysHandler; + } + // End of file diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/uiengine/src/xnextrenderingpluginwrapper.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnextrenderingpluginwrapper.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnextrenderingpluginwrapper.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -226,6 +226,10 @@ CXnNode* node = iNode->Node().UiEngine()->FindNodeByIdL( aDestination ); CXnAppUiAdapter* appui = static_cast(iAvkonAppUi); + if ( !appui || !node ) + { + User::Leave( KErrNotFound ); + } appui->HandleEventL( aEvent, node->AppIfL() ); } diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/uiengine/src/xngesturehelper.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xngesturehelper.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/uiengine/src/xngesturehelper.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -251,34 +251,18 @@ // Also, while stylus down, the same event is received repeatedly // even if stylus does not move. Filter out by checking if point // is the same as the latest point - if ( iDirection != EGestureCanceled ) + iDirection = iGesture->LastDirection( CXnGesture::EAxisHorizontal ); + + if ( !IsIdle() && !iGesture->IsLatestPoint( Position( aEvent ) ) ) { - if ( iDirection == EGestureUnknown ) - { - // check current direction - iDirection = iGesture->CodeFromPoints( CXnGesture::EAxisBoth ); - } - else + AddPointL( aEvent ); + if ( !( iGesture->IsHolding() || + iGesture->IsNearHoldingPoint( Position( aEvent ) ) ) ) { - // check if direction has changed - if ( iDirection != iGesture->LastDirection( CXnGesture::EAxisBoth ) ) - { - // cancel swipe - iDirection = EGestureCanceled; - } - } - - if ( !IsIdle() && !iGesture->IsLatestPoint( Position( aEvent ) ) ) - { - AddPointL( aEvent ); - if ( !( iGesture->IsHolding() || - iGesture->IsNearHoldingPoint( Position( aEvent ) ) ) ) - { - // restart hold timer, since pointer has moved - iHoldingTimer->Start(); - // Remember the point in which holding was started - iGesture->SetHoldingPoint(); - } + // restart hold timer, since pointer has moved + iHoldingTimer->Start(); + // Remember the point in which holding was started + iGesture->SetHoldingPoint(); } } break; @@ -293,27 +277,24 @@ // observer leaves CleanupStack::PushL( TCleanupItem( &ResetHelper, this ) ); iGesture->SetComplete(); - if ( iDirection != EGestureCanceled ) + // if adding of the point fails, notify client with a + // cancelled event. It would be wrong to send another + // gesture code when the up point is not known + if ( AddPoint( aEvent ) != KErrNone ) { - // if adding of the point fails, notify client with a - // cancelled event. It would be wrong to send another - // gesture code when the up point is not known - if ( AddPoint( aEvent ) != KErrNone ) - { - iGesture->SetCancelled(); - } - else + iGesture->SetCancelled(); + } + else + { + // send gesture code if holding has not been started + if ( !iGesture->IsHolding() ) { - // send gesture code if holding has not been started - if ( !iGesture->IsHolding() ) - { - // if client leaves, the state is automatically reset. - // In this case the client will not get the released event - ret = iDirection; - } - // send an event that stylus was lifted - iGesture->SetReleased(); + // if client leaves, the state is automatically reset. + // In this case the client will not get the released event + ret = iDirection; } + // send an event that stylus was lifted + iGesture->SetReleased(); } // reset state CleanupStack::PopAndDestroy( this ); diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/uiengine/src/xngesturerecogniser.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xngesturerecogniser.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/uiengine/src/xngesturerecogniser.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -184,19 +184,30 @@ /** @return direction between last two points */ TXnGestureCode TXnGestureRecogniser::LastDirection( const TXnPointArray& aPoints ) const { - if ( aPoints.Count() > minPointCount ) + TXnGestureCode ret = EGestureUnknown; + + if ( ( aPoints.Count() > 0 ) && + ( GestureLength( aPoints ) >= KMinSwipeLength )) { - // return direction between latest and previous points. - // pick the previous point that is different than the last point - // because while using an x or y filter array, more than one - // sequential points may look like the same point because - // the differing coordinate coordinate is filtered out. For example, - // if dragging left and slightly up, many y coordinates will have the - // same value, while only x differs. - return Direction( aPoints[ aPoints.Count() - minPointCount ], - aPoints[ aPoints.Count() - 1 ] ); + if ( aPoints.Count() > minPointCount ) + { + // return direction between latest and previous points. + // pick the previous point that is different than the last point + // because while using an x or y filter array, more than one + // sequential points may look like the same point because + // the differing coordinate coordinate is filtered out. For example, + // if dragging left and slightly up, many y coordinates will have the + // same value, while only x differs. + ret = Direction( aPoints[ aPoints.Count() - minPointCount ], + aPoints[ aPoints.Count() - 1 ] ); + } + else + { + ret = GeneralDirection( aPoints ); + } } - return GeneralDirection( aPoints ); + + return ret; } // ---------------------------------------------------------------------------- diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -7125,19 +7125,9 @@ XnComponentInterface::MakeInterfaceL( popup, tooltipNode ); - if ( popup ) + if ( popup && aSource != XnEventSource::EStylus ) { - if ( aSource == XnEventSource::EStylus ) - { - const TTimeIntervalMicroSeconds32 delay( 1000 * 100 ); - const TTimeIntervalMicroSeconds32 display( 1000 * 1000 * 6 ); - - popup->ShowPopupL( aRect, delay, display ); - } - else - { - popup->ShowPopupL( aRect ); - } + popup->ShowPopupL( aRect ); } } } @@ -9080,15 +9070,34 @@ } if ( source != -1 && target != -1 ) { + TBool swap = EFalse; + CXnPluginData* data( aTarget->UiEngine()->ViewManager()-> + ActiveViewData().Plugin( aTarget ) ); + if ( data && !data->Occupied() ) + { + // target is empty widget, swap widget places + swap = ETrue; + } + if ( target < source ) { iChildren.InsertL( aSource, target ); iChildren.Remove( source + 1 ); + if ( swap ) + { + iChildren.Remove( target + 1 ); + iChildren.InsertL( aTarget, source ); + } } else if ( source < target ) { iChildren.Remove( source ); iChildren.InsertL( aSource, target ); + if ( swap ) + { + iChildren.Insert( aTarget, source ); + iChildren.Remove( target ); + } } // put the locked nodes to the original places diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/uiengine/src/xnuiengine.rss --- a/idlehomescreen/xmluirendering/uiengine/src/xnuiengine.rss Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnuiengine.rss Wed Mar 31 21:17:19 2010 +0300 @@ -27,6 +27,7 @@ #include #include #include +#include #include #include @@ -103,6 +104,11 @@ buf = qtn_hs_delete_current_page; } +RESOURCE TBUF r_hs_error_content_removed + { + buf = qtn_hs_error_content_removed; + } + RESOURCE DIALOG r_yes_no_hs_remove_view { flags = EGeneralQueryFlags; @@ -151,6 +157,28 @@ }; softkeys = R_AVKON_SOFTKEYS_SELECT_BACK; } + +RESOURCE DIALOG r_hs_content_removed_view + { + flags = EGeneralQueryFlags; + buttons = R_AVKON_SOFTKEYS_OK_EMPTY; + items = + { + DLG_LINE + { + type = EAknCtQuery; + id = EGeneralQuery; + control = AVKON_CONFIRMATION_QUERY + { + layout = EConfirmationQueryLayout; + label = r_hs_error_content_removed; + bmpfile = AVKON_ICON_FILE; + bmpid = EMbmAvkonQgn_note_error; + bmpmask = EMbmAvkonQgn_note_error_mask; + }; + } + }; + } RESOURCE TBUF r_qtn_hs_operation_failed_no_disk { diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -22,6 +22,7 @@ #include #include #include +#include // User includes #include "xnuiengine.h" @@ -35,7 +36,6 @@ #include "xnpopupcontroladapter.h" #include "xnviewcontroladapter.h" #include "xnviewdata.h" -#include "xnrootdata.h" #include "xnnodebreadthfirstiterator.h" #include "xntype.h" #include "xnnodepluginif.h" @@ -58,6 +58,7 @@ #include "xneditor.h" #include "xnbackgroundmanager.h" #include "xntexteditor.h" +#include "xnrootdata.h" #ifdef _XN_PERFORMANCE_TEST_ #include "xntimemon.h" @@ -8106,7 +8107,12 @@ delete iHitTest; iFocusCandidateList.Reset(); - iRedrawRegions.ResetAndDestroy(); + + if ( iRedrawRegions.Count() ) + { + iRedrawRegions.ResetAndDestroy(); + } + iDirtyList.Reset(); } @@ -8327,6 +8333,8 @@ TraceTreeL(iCurrentView ); #endif + __PRINTS("*** CXnUiEngineImpl::RenderUIL ***"); + for( TInt i=0; iiControl; @@ -8337,7 +8345,9 @@ // Mark tree rendered iCurrentView->SetRenderedL(); // Error occured during dirty set, redraw whole window - control->DrawNow(); + control->DrawNow(); + + __PRINTS("* CXnUiEngineImpl::RenderUIL - redraw region error -> full redraw ***"); } else { @@ -8352,7 +8362,10 @@ // Make bounding rect over the dirty areas TRect boundingRect( redrawRegion.BoundingRect() ); - control->DrawNow( boundingRect ); + __PRINT( __DBG_FORMAT( "* CXnUiEngineImpl::RenderUIL - redrawing bounding rect iTl.iX: %d, iTl.iY: %d, iBr.iX: %d, iBr.iY: %d" ), + boundingRect.iTl.iX, boundingRect.iTl.iY, boundingRect.iBr.iX, boundingRect.iBr.iY ); + + control->DrawNow( boundingRect ); } else { @@ -8360,12 +8373,20 @@ { // Draw every dirty area separately TRect redrawRect( redrawRegion[i] ); - + + __PRINT( __DBG_FORMAT( "* CXnUiEngineImpl::RenderUIL - redrawing rect iTl.iX: %d, iTl.iY: %d, iBr.iX: %d, iBr.iY: %d" ), + redrawRect.iTl.iX, redrawRect.iTl.iY, redrawRect.iBr.iX, redrawRect.iBr.iY ); + control->DrawNow( redrawRect ); } } } + else + { + __PRINTS("* CXnUiEngineImpl::RenderUIL - nothing to redraw ***"); + } } + redrawRegion.Clear(); } @@ -8374,6 +8395,8 @@ iLayoutControl &= ~XnLayoutControl::ERenderUI; iAppUiAdapter.EffectManager()->UiRendered(); + + __PRINTS("*** CXnUiEngineImpl::RenderUIL - done ***"); } // ----------------------------------------------------------------------------- @@ -8525,7 +8548,7 @@ return array; } - + // ----------------------------------------------------------------------------- // CXnUiEngineImpl::FindContentSourceNodesL() // ----------------------------------------------------------------------------- @@ -8584,7 +8607,7 @@ return array; } - + // ----------------------------------------------------------------------------- // CXnUiEngineImpl::Resources() // ----------------------------------------------------------------------------- @@ -9070,6 +9093,9 @@ return; } + // remove focus + iAppUiAdapter.HideFocus(); + // Update client rect SetClientRectL( iAppUiAdapter.ClientRect(), EFalse ); @@ -9088,6 +9114,10 @@ ReportScreenDeviceChangeL(); + if ( !iControlAdapterList ) + { + iControlAdapterList = &iViewManager.Controls(); + } for ( TInt i = 0; i < iControlAdapterList->Count(); i++ ) { CXnControlAdapter* adapter( ( *iControlAdapterList )[i] ); @@ -9402,6 +9432,10 @@ { // Force relayout and redraw from current view iDirtyList.Reset(); + if ( !iCurrentView ) + { + iCurrentView = iViewManager.ViewNode(); + } iDirtyList.AppendL( iCurrentView ); TXnDirtyRegion* dirtyRegion = FindDirtyRegionL( *iCurrentView ); if( dirtyRegion ) @@ -9516,7 +9550,7 @@ UpdateInternalUnits( iHorizontalUnitInPixels, iVerticalUnitInPixels, iClientRect ); - + if ( aDrawNow ) { RootNode()->SetDirtyL(); @@ -9860,8 +9894,8 @@ // make sure that we always get up event CXnViewControlAdapter* control = static_cast< CXnViewControlAdapter* >( iViewManager.ActiveViewData().ViewNode()->Control() ); - - control->ResetGrabbing(); + + control->ResetGrabbing(); // Hide all plugins except the one that contains given editor node RPointerArray< CXnNode >& plugins( *Plugins() ); @@ -10096,8 +10130,15 @@ { CXnProperty* blocProgressionProperty( parent->GetPropertyL( XnPropertyNames::style::common::KBlockProgression ) ); - + if ( !blocProgressionProperty ) + { + User::Leave( KErrNotFound ); + } HBufC* blocProgressionValue (blocProgressionProperty->StringValueL()); + if ( !blocProgressionValue ) + { + User::Leave( KErrNotFound ); + } CleanupStack::PushL( blocProgressionValue ); if(iSplitScreenState.iPartialScreenBlock) { diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -56,8 +56,7 @@ // Data types enum { - EIsActivated, - EIsFirstActivation, + EIsActivated, EIsInCall, EIsLightsOn, EIsForeground, @@ -240,9 +239,7 @@ BaseConstructL(); iTimer = CPeriodic::NewL( CActive::EPriorityIdle ); - - iFlags.Set( EIsFirstActivation ); - + // Base class CAknViewAppUi takes ownership of iViewAdapter iAppUiAdapter.AddViewL( this ); iAppUiAdapter.SetDefaultViewL( *this ); @@ -411,38 +408,21 @@ sp->DrawNow(); } - if ( iFlags.IsSet( EIsFirstActivation ) ) - { - // Set the active container - ActivateContainerL( iAppUiAdapter.ViewManager().ActiveViewData() ); - - __TICK( "CXnViewAdapter::DoActivateL - Calling UiActivated" ); - __TIME_MARK( time2 ); + // Set the active container + if ( aCustomMessage == KActivateDefaultView ) + { + __PRINTS( "*** CXnViewAdapter::DoActivateL - activating default container" ); - iFlags.Clear( EIsFirstActivation ); - - iAppUiAdapter.UiActivated(); - - __TIME_ENDMARK( "CXnViewAdapter::DoActivateL - Calling UiActivated", time ); + ActivateDefaultContainerL(); + + iTimer->Cancel(); + iTimer->Start( 1000, 1000, TCallBack( TimerCallback, this ) ); } else { - // Set the active container - if ( aCustomMessage == KActivateDefaultView ) - { - __PRINTS( "*** CXnViewAdapter::DoActivateL - activating default container" ); - - ActivateDefaultContainerL(); - - iTimer->Cancel(); - iTimer->Start( 1000, 1000, TCallBack( TimerCallback, this ) ); - } - else - { - __PRINTS( "*** CXnViewAdapter::DoActivateL - activating container" ); - - ActivateContainerL( viewData ); - } + __PRINTS( "*** CXnViewAdapter::DoActivateL - activating container" ); + + ActivateContainerL( viewData ); } __TIME_ENDMARK( "CXnViewAdapter::DoActivateL, done", time ); @@ -506,11 +486,6 @@ void CXnViewAdapter::ActivateContainerL( CXnViewData& aContainer, TBool aEnterEditState ) { - if ( !iAppUiAdapter.ViewManager().UiStartupPhaseAllDone() ) - { - return; - } - if ( iContainer == &aContainer || iFlags.IsSet( EIsDestructionRunning ) ) { return; diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/uiengine/src/xnviewdata.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnviewdata.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewdata.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -34,7 +34,7 @@ #include "debug.h" // Constants -const TInt KLoadDelay( 100000 ); +const TInt KLoadDelay( 10000 ); const TInt KInterval( 10000 ); // ============================ LOCAL FUNCTIONS ================================ @@ -489,6 +489,8 @@ CXnViewData* self = static_cast< CXnViewData* >( aAny ); + CXnAppUiAdapter* appui = static_cast< CXnAppUiAdapter* >( iAvkonAppUi ); + RPointerArray< CXnPluginData >& plugins( self->PluginData() ); for ( TInt i = self->iLoadIndex; i < plugins.Count(); i++ ) @@ -521,11 +523,9 @@ if( ret != KErrNone ) { - self->iManager.UnloadWidgetFromPluginL( *plugin, ETrue ); - + self->iManager.UnloadWidgetFromPluginL( *plugin, ETrue ); self->iShowContentRemoved = ETrue; - } - + } } else { @@ -542,14 +542,17 @@ { CXnNodeAppIf& plugin( self->iContentSourceNodes[i]->AppIfL() ); - self->iManager.AppUiAdapter().LoadPublisher( plugin, reason ); + appui->LoadPublisher( plugin, reason ); } if ( self->iShowContentRemoved ) { self->ShowContentRemovedError(); self->iShowContentRemoved = EFalse; - } + } + + // Fire UI ready blindly here, it will be handled in AiFw if needed + appui->HandleUiReadyEventL(); } __PRINTS( "*** CXnViewData::DoLoadPublishersL - done" ); diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -63,7 +63,8 @@ const TInt KPSCategoryUid( 0x200286E3 ); const TInt KPSCrashCountKey( 1 ); const TInt KStabilityInterval( 60000000 ); // 1 minute -const TInt KCrashRestoreThreshold( 3 ); +const TInt KCrashRestoreDefaultThreshold( 3 ); +const TInt KCrashRestoreAllTreshold( 4 ); // ============================ LOCAL FUNCTIONS =============================== // ----------------------------------------------------------------------------- @@ -353,28 +354,7 @@ iComposer = CXnComposer::NewL( *iHspsWrapper ); - // Robustness checks. - TInt crashCount = 0; - RProperty::Get( TUid::Uid( KPSCategoryUid ), - KPSCrashCountKey, - crashCount ); - - if( crashCount >= KCrashRestoreThreshold ) - { - iHspsWrapper->RestoreRootL(); - ResetCrashCount(); - ShowErrorNoteL( R_QTN_HS_ERROR_WIDGETS_REMOVED ); - } - else if( crashCount > 0 ) - { - // Start stability timer to ensure that - // if system is stabile at least KStabilityInterval - // then crash count is reset to 0. - iStabilityTimer = CPeriodic::NewL( CActive::EPriorityStandard ); - iStabilityTimer->Start( KStabilityInterval, - KStabilityInterval, - TCallBack( SystemStabileTimerCallback, this ) ); - } + DoRobustnessCheckL(); } // ----------------------------------------------------------------------------- @@ -1234,7 +1214,11 @@ retval = iHspsWrapper->RemovePluginL( view->PluginId() ); // Notify observers of view list change - NotifyViewRemovalL( *view ); + TRAPD( err, NotifyViewRemovalL( *view ) ); + if ( err != KErrNone ) + { + // ignored + } iRootData->DestroyViewData( view ); @@ -1307,7 +1291,11 @@ iHspsWrapper->RemovePluginL( view->PluginId() ); // Notify observers of view list change - NotifyViewRemovalL( *view ); + TRAPD( err, NotifyViewRemovalL( *view ) ); + if ( err != KErrNone ) + { + // ignored + } iRootData->DestroyViewData( view ); @@ -1773,17 +1761,50 @@ // ----------------------------------------------------------------------------- // CXnViewManager::ShowErrorNoteL // ----------------------------------------------------------------------------- -void CXnViewManager::ShowErrorNoteL( const TInt aResourceId ) +void CXnViewManager::ShowErrorNoteL() { - HBufC* msg( StringLoader::LoadLC( aResourceId ) ); - - CAknErrorNote* note = new ( ELeave ) CAknErrorNote; - CleanupStack::PushL( note ); + CAknQueryDialog* query = CAknQueryDialog::NewL(); + query->PrepareLC( R_HS_CONTENT_REMOVED_VIEW ); + + HBufC* queryText( StringLoader::LoadLC( R_HS_ERROR_CONTENT_REMOVED ) ); + query->SetPromptL( queryText->Des() ); + CleanupStack::PopAndDestroy( queryText ); + + query->RunLD(); + } + +// ----------------------------------------------------------------------------- +// CXnViewManager::DoRobustnessCheckL +// ----------------------------------------------------------------------------- +void CXnViewManager::DoRobustnessCheckL() + { + TInt crashCount = 0; + RProperty::Get( TUid::Uid( KPSCategoryUid ), + KPSCrashCountKey, + crashCount ); - note->ExecuteLD( *msg ); + if( crashCount == KCrashRestoreDefaultThreshold ) + { + TInt err = iHspsWrapper->RestoreDefaultConfL(); + ShowErrorNoteL(); + } + else if( crashCount >= KCrashRestoreAllTreshold ) + { + TInt err = iHspsWrapper->RestoreRootL(); + ResetCrashCount(); + return; + } - CleanupStack::Pop( note ); - CleanupStack::PopAndDestroy( msg ); + if( crashCount > 0 ) + { + // Start stability timer to ensure that + // if system is stabile at least KStabilityInterval + // then crash count is reset to 0. + iStabilityTimer = CPeriodic::NewL( CActive::EPriorityStandard ); + iStabilityTimer->Start( KStabilityInterval, + KStabilityInterval, + TCallBack( SystemStabileTimerCallback, this ) ); + } } // End of file diff -r 9674c1a575e9 -r b8fae6b8a148 idlehomescreen/xmluirendering/uiengine/src/xnwidgetextensionadapter.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnwidgetextensionadapter.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnwidgetextensionadapter.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -91,6 +91,20 @@ } GfxTransEffect::Deregister( this ); } +// ----------------------------------------------------------------------------- +// CXnWidgetExtensionAdapter::HandleScreenDeviceChangedL +// +// ----------------------------------------------------------------------------- +// +void CXnWidgetExtensionAdapter::HandleScreenDeviceChangedL() + { + if( IsVisible() ) + { + CCoeControl::MakeVisible( EFalse ); + } + CXnControlAdapter::HandleScreenDeviceChangedL(); + + } // ----------------------------------------------------------------------------- // CXnWidgetExtensionAdapter::CXnWidgetExtensionAdapter diff -r 9674c1a575e9 -r b8fae6b8a148 menufw/menufwui/matrixmenu/group/matrixmenu.mmp --- a/menufw/menufwui/matrixmenu/group/matrixmenu.mmp Mon Mar 15 12:39:47 2010 +0200 +++ b/menufw/menufwui/matrixmenu/group/matrixmenu.mmp Wed Mar 31 21:17:19 2010 +0300 @@ -21,6 +21,8 @@ #include #include "../inc/mmguiuid.hrh" +epocheapsize 1800000 4500000 + TARGET matrixmenu.exe TARGETTYPE exe UID 0x100039CE _MATRIX_UID3 @@ -86,7 +88,6 @@ LIBRARY aknskins.lib LIBRARY aknskinsrv.lib LIBRARY aknswallpaperutils.lib -LIBRARY MemMan.lib #ifdef _MATRIX_MENU_TRACE_PERFORMANCE LIBRARY flogger.lib diff -r 9674c1a575e9 -r b8fae6b8a148 menufw/menufwui/matrixmenu/inc/mmappui.h --- a/menufw/menufwui/matrixmenu/inc/mmappui.h Mon Mar 15 12:39:47 2010 +0200 +++ b/menufw/menufwui/matrixmenu/inc/mmappui.h Wed Mar 31 21:17:19 2010 +0300 @@ -12,7 +12,7 @@ * Contributors: * * Description: Application UI class -* Version : %version: MM_83.1.2.1.23.1.20 % << Don't touch! Updated by Synergy at check-out. +* Version : %version: MM_83.1.2.1.23.1.21 % << Don't touch! Updated by Synergy at check-out. * */ @@ -1000,6 +1000,11 @@ */ TBool iHasFocus; + /** + * ETrue if Matrix is hidden from TS which is used on startup. + */ + TBool isHiddenFromFS; + /** * Own. * Popup menu displayed after long tap. diff -r 9674c1a575e9 -r b8fae6b8a148 menufw/menufwui/matrixmenu/src/mmappui.cpp --- a/menufw/menufwui/matrixmenu/src/mmappui.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/menufw/menufwui/matrixmenu/src/mmappui.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -12,8 +12,8 @@ * Contributors: * * Description: Application UI class -* Version : %version: MM_176.1.28.1.65 % << Don't touch! Updated by Synergy at check-out. -* Version : %version: MM_176.1.28.1.65 % << Don't touch! Updated by Synergy at check-out. +* Version : %version: MM_176.1.28.1.67 % << Don't touch! Updated by Synergy at check-out. +* Version : %version: MM_176.1.28.1.67 % << Don't touch! Updated by Synergy at check-out. * */ @@ -96,7 +96,9 @@ EAknEnableSkin | EAknSingleClickCompatible : EAknEnableSkin | EAknEnableMSK; BaseConstructL( appUiFlags ); - + //hide Menu from TS at startup + HideApplicationFromFSW( ETrue ); + isHiddenFromFS = ETrue; FeatureManager::InitializeLibL(); iIsKastorEffectStarted = EFalse; StartLayoutSwitchFullScreen( AknTransEffect::EApplicationStart ); @@ -1797,15 +1799,21 @@ if( iCurrentContainer != aWidgetContainer ) { - TBool highlightVisibleBefore = iCurrentContainer != NULL && - iCurrentContainer->IsHighlightVisible(); + // We want a highlight to be visible while switching between + // grid and list views but no highlight should be visible + // after opening a folder. + TBool highlightVisibleBefore = + iCurrentContainer && + aWidgetContainer && + iCurrentContainer->IsHighlightVisible() && + iCurrentContainer->WidgetType() != aWidgetContainer->WidgetType(); HandleWidgetChangeRefreshL( aWidgetContainer ); if ( highlightVisibleBefore ) - { - iCurrentContainer->SetHighlightVisibilityL( ETrue ); - } + { + iCurrentContainer->SetHighlightVisibilityL( ETrue ); + } } else { @@ -2973,6 +2981,13 @@ { DEBUG(("_Mm_:CMmAppUi::HandleWsEventL " "- KAknFullOrPartialForegroundGained")); + //show Menu in TS when launched for the first time + if( isHiddenFromFS ) + { + HideApplicationFromFSW( EFalse ); + isHiddenFromFS = EFalse; + } + if (iCurrentContainer && iCurrentSuiteModel ) { iCurrentContainer->HandleForegroundGainedL(); diff -r 9674c1a575e9 -r b8fae6b8a148 menufw/menufwui/matrixmenu/src/mmgui.cpp --- a/menufw/menufwui/matrixmenu/src/mmgui.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/menufw/menufwui/matrixmenu/src/mmgui.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -17,7 +17,6 @@ // INCLUDE FILES -#include #include #include "mmapplication.h" @@ -38,8 +37,5 @@ // GLDEF_C TInt E32Main() { - RAllocator* iAllocator = MemoryManager::SwitchToFastAllocator(); - TInt err = EikStart::RunApplication( NewApplication ); - MemoryManager::CloseFastAllocator(iAllocator); - return err; + return EikStart::RunApplication( NewApplication ); } diff -r 9674c1a575e9 -r b8fae6b8a148 menufw/menufwui/mmwidgets/src/mmwidgetcontainer.cpp --- a/menufw/menufwui/mmwidgets/src/mmwidgetcontainer.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/menufw/menufwui/mmwidgets/src/mmwidgetcontainer.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -12,7 +12,7 @@ * Contributors: * * Description: -* Version : %version: MM_71.1.17.1.57 % << Don't touch! Updated by Synergy at check-out. +* Version : %version: MM_71.1.17.1.59 % << Don't touch! Updated by Synergy at check-out. * */ @@ -237,7 +237,7 @@ CCoeControl::HandleResourceChange( aType ); if ( highlightVisibleBefore ) { - SetHighlightVisibilityL( ETrue ); + TRAP_IGNORE( SetHighlightVisibilityL( ETrue ) ); } if ( aType == KEikDynamicLayoutVariantSwitch && !IsHighlightVisible() ) @@ -638,7 +638,7 @@ if ( aPointerEvent.iType == TPointerEvent::EButton1Down && itemExists ) { - SetHighlightL( index );///////////-- + SetHighlightL( index ); } else if ( aPointerEvent.iType == TPointerEvent::EDrag // the line below is needed to enable edit mode in the list widget diff -r 9674c1a575e9 -r b8fae6b8a148 menufw/menusuites/foldersuite/data/matrixmenudata.dtd --- a/menufw/menusuites/foldersuite/data/matrixmenudata.dtd Mon Mar 15 12:39:47 2010 +0200 +++ b/menufw/menusuites/foldersuite/data/matrixmenudata.dtd Wed Mar 31 21:17:19 2010 +0300 @@ -296,5 +296,114 @@ --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 9674c1a575e9 -r b8fae6b8a148 menufw/menusuites/foldersuite/data/matrixmenudata.xml --- a/menufw/menusuites/foldersuite/data/matrixmenudata.xml Mon Mar 15 12:39:47 2010 +0200 +++ b/menufw/menusuites/foldersuite/data/matrixmenudata.xml Wed Mar 31 21:17:19 2010 +0300 @@ -12,8 +12,8 @@ mask_id="16399" icon_skin_minor_id="0x1ead" icon_skin_major_id="0x101F86E3"> --> - - + + @@ -37,39 +37,15 @@ - - - - - - - + + - - - - - - + + + @@ -116,19 +92,23 @@ + + - + - + icon_file="aimcsplugin.mif" + icon_id="16394" + mask_id="16395" + long_name="&qtn_apps_connectivity_list;"/> + + long_name="&qtn_apps_installations_list;"/> - - - - - @@ -223,7 +181,8 @@ - + + diff -r 9674c1a575e9 -r b8fae6b8a148 menufw/menusuites/foldersuite/loc/matrixmenudata.loc Binary file menufw/menusuites/foldersuite/loc/matrixmenudata.loc has changed diff -r 9674c1a575e9 -r b8fae6b8a148 package_definition.xml --- a/package_definition.xml Mon Mar 15 12:39:47 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r 9674c1a575e9 -r b8fae6b8a148 taskswitcher/contextengine/tsfswserver/engine/group/tsfswengine.mmp --- a/taskswitcher/contextengine/tsfswserver/engine/group/tsfswengine.mmp Mon Mar 15 12:39:47 2010 +0200 +++ b/taskswitcher/contextengine/tsfswserver/engine/group/tsfswengine.mmp Wed Mar 31 21:17:19 2010 +0300 @@ -28,6 +28,8 @@ SOURCE tsfsalwaysshownapplist.cpp SOURCE tsfswidgetlist.cpp SOURCE tsfswiconcache.cpp +SOURCE tsfswdatalist.cpp +SOURCE tscpsnotifier.cpp MW_LAYER_SYSTEMINCLUDE @@ -52,6 +54,7 @@ LIBRARY featmgr.lib LIBRARY bitmaptransforms.lib +LIBRARY liwservicehandler.lib LIBRARY tspreviewprovider.lib LIBRARY tsfswutils.lib diff -r 9674c1a575e9 -r b8fae6b8a148 taskswitcher/contextengine/tsfswserver/engine/inc/tscpsnotifier.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/taskswitcher/contextengine/tsfswserver/engine/inc/tscpsnotifier.h Wed Mar 31 21:17:19 2010 +0300 @@ -0,0 +1,112 @@ +/* +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Task monitor engine + * +*/ + +#ifndef TSCPSNOTIFIER_H +#define TSCPSNOTIFIER_H + +#include +#include + +class CLiwGenericParamList; +class CLiwServiceHandler; +class MLiwInterface; +class CLiwDefaultMap; +class CLiwMap; +class CTsFswEngine; + +NONSHARABLE_CLASS(CTSCpsNotifier) : + public CBase, + private MLiwNotifyCallback + { +public: + /** + * Two-phased constructor. + */ + static CTSCpsNotifier* NewL( CTsFswEngine& aEngine ); + + /** + * Destructor. + */ + virtual ~CTSCpsNotifier(); + +private: + /** + * Constructor. + */ + CTSCpsNotifier( CTsFswEngine& aEngine ); + + /** + * + */ + void ConstructL(); +private: + // Form base class MLiwNotifyCallback. + /** + * Callback from LIW framework to process an event that was expected. + * @see MLiwNotifyCallback::HandleNotifyL + */ + TInt HandleNotifyL( TInt aCmdId, + TInt aEventId, + CLiwGenericParamList& aEventParamList, + const CLiwGenericParamList& aInParamList ); + +private: + /** + * Create and return map filled with widgets identifiers + */ + CLiwDefaultMap* WidgetFilterLC(); + + /** + * Initalise CPS service interface + */ + void InitCpsInterfaceL(); + + /** + * Request for CPS notifications abou widgets + */ + void ExecuteRegistrationCommandL( TUint aOption ); + + /** + * Obtain widget information and + * forward widgets data change handling to iEngine + */ + void HandleWidgetUpdateL( const CLiwMap& aChangeMap ); + + /** + * Obtain from CPS information about widget + */ + void GetWidgetDataL( const TDesC& aContentId, + TInt& aWidgetId, + TInt& aBitmapHandle ); + + /** + * Obtain from CPS information about widget from data map + */ + void GetWidgetDataFromDataMapL( const CLiwMap& aDataMap, + TInt& aWidgetId, + TInt& aBitmapHandle ); + +private: + + MLiwInterface* iCpsInterface;//own + + CLiwServiceHandler* iServiceHandler;//own + + CTsFswEngine& iEngine;//not own + }; + +#endif //TSCPSNOTIFIER_H diff -r 9674c1a575e9 -r b8fae6b8a148 taskswitcher/contextengine/tsfswserver/engine/inc/tsfswdatalist.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswdatalist.h Wed Mar 31 21:17:19 2010 +0300 @@ -0,0 +1,292 @@ +/* +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Non-closeable app list class + * +*/ + + +#ifndef TSFSWDATALIST_H +#define TSFSWDATALIST_H + +#include +#include +#include +#include +#include +#include "tsfswentry.h" +#include "tsfswobservers.h" + +class CTsFswEngine; +class CTsFsAlwaysShownAppList; +class CTsFsHiddenAppList; +class CTsFsWidgetList; +class CTsFswIconCache; +class CApaWindowGroupName; + +/** + * Engine's data list. + */ +NONSHARABLE_CLASS( CTsFswDataList ) : public CBase + { +public: + /** + * Two-phased constructor. + * + * @param aParent + */ + static CTsFswDataList* NewL( CTsFswEngine& aEngine ); + + /* + * Destructor + */ + ~CTsFswDataList(); + +private: + /** + * Constructor. + */ + CTsFswDataList( CTsFswEngine& aEngine ); + + /** + * Performs 2nd phase construction. + */ + void ConstructL(); + +public: + /** + * Returns a reference to the current content. + * Also performs sanity checks, e.g. associates application icons + * when no screenshot has been received. + * @return ref to content array + */ + const RTsFswArray& FswDataL(); + + /** + * Gets the window group list and reconstructs the fsw content. + * @return TBool ETrue if the content iData has been modified + */ + TBool CollectTasksL(); + + /** + * Return contained iAlwaysShownAppList member. + */ + CTsFsAlwaysShownAppList* AlwaysShownApps(); + + /** + * Return contained iHiddenAppList member. + */ + CTsFsHiddenAppList* HiddenApps(); + + /** + * Return containd iWidgetList member + */ + CTsFsWidgetList* Widgets(); + + /** + * Set flag iTaskListDirty; + */ + void SetDirty(); + + /** + * Set flag iAppDataRefreshNeeded + */ + void SetAppDataRefreshNeeded(); + + /** + * Store or updarte screenshot bitmap for specified window group. + */ + TBool StoreScreenshot( TInt aWgId, CFbsBitmap* aBmp ); + + /** + * remove screenshot bitmap. + */ + TBool RemoveScreenshot( TInt aWgId ); + + /** + * Obtain screenshot if exists + */ + CFbsBitmap** FindScreenshot( TInt aWgId ); + + /** + * Moves entry on given window app/widget id to + * the first position on conten data list + */ + void MoveEntryAtStart( TInt aAppId, TBool aWidget ); + +private: + /** + * Adds running apps to the list. + * @param aAppsList array to add to + */ + void CollectAppsL( RTsFswArray& aAppsList ); + + /** + * Called from CollectTasksL for each entry in the task list. + * @param aWgId window group id + * @param aAppUid application uid + * @param aWgName window group name or NULL + * @param aNewList list to add to + * @param aIsWidget true if the entry corresponds to a web widget + * @return TBool ETrue if it was really a new entry in the list + */ + TBool AddEntryL( TInt aWgId, + const TUid& aAppUid, + CApaWindowGroupName* aWgName, + RTsFswArray& aNewList, + TBool aIsWidget ); + + /** + * Checks if there is an entry for same app in the content list. + * If yes then it takes some of the data for the entry that + * will correspond to the same app in the refreshed content list. + * In case of widget, update window group field in content list. + * @param aEntry new entry in content list + * @param aAppUid application uid + * @param aChanged ref to change-flag, set to ETrue if it is sure + * that the new content list will be different from the previous one + * @param aNewList ref to new content list + * @return ETrue if app was found + */ + TBool ConsiderOldDataL( CTsFswEntry& aEntry, + const TUid& aAppUid, + TBool& aChanged, + RTsFswArray& aNewList ); + + /** + * Adds running widgets to the list. + * @param aWidgetsList array to add to + */ + void CollectWidgetsL( RTsFswArray& aWidgetsList ); + + /** + * Returns the parent's wg id or KErrNotFound. + * @param aWgId a valid window group id + * @return parent wg id or KErrNotFound if there is no parent + */ + TInt FindParentWgId( TInt aWgId ); + + /** + * Returns the most top parent's wg id or KErrNotFound. + * @param aWgId a valid window group id + * @return parent wg id or KErrNotFound if there is no parent + */ + TInt FindMostTopParentWgId( TInt aWgId ); + + /** + * Finds out the application name. + * @param aWindowName window group name or NULL + * @param aAppUId application uid + * @param aWgId window group id + * @return application name, ownership transferred to caller + */ + HBufC* FindAppNameLC( CApaWindowGroupName* aWindowName, + const TUid& aAppUid, + TInt aWgId ); + + /** + * Checks if the app to which the screenshot belongs is in the task list + * and updates the entry when found. Also triggers change notification + * to observer when data is modified. + * @param aWgIdForScreenshot wgid for the screenshot + * @param aBitmapHandle handle for screenshot bitmap + * @return TBool ETrue if the list has been modified + */ + TBool AssignScreenshotHandle( TInt aWgIdForScreenshot, TInt aBitmapHandle ); + + /** + * Checks if the app to which the screenshot belongs is in the task list + * and updates the entry when found. + * @param aWgIdForScreenshot wgid for the screenshot, + * in case of widget it stands for widget id + * @param aBitmapHandle handle for screenshot bitmap + * @param aAsigned result of operation + */ + void AssignScreenshotHandle( TInt aWgIdForScreenshot, + TInt aBitmapHandle, + TBool& aAsigned ); + + /** + * Returns the bitmap handle for the screenshot belonging to the given app + * or 0 if not (yet) found. + * @param aWgIdForApp a window group id (from the window group list) + * @return bitmap handle or 0 + */ + TInt LookupScreenshotHandle( TInt aWgIdForApp ); + + /** + * Fit existing class contained data list into give one. + * Data is being changed with application type consideration that is based + * on aConsiderWidgets param. + * Function removes or add entries into data depend on given list. + * @param aListToFit list with actual data + * @param aConsiderWidgets application type + * @return ETrue if change occours on data list, EFalse otherwise + */ + TBool FitDataToListL( RTsFswArray& aListToFit, TBool aConsiderWidgets ); + + /** + * Checks if there is an entry for same app in the given list. + * @param aEntry entry + * @param aNewList ref to list + * @return ETrue if app was found + */ + TBool CheckIfExists( const CTsFswEntry& aEntry, + const RTsFswArray& aNewList ) const; + +private: + CTsFswEngine& iEngine; + + RTsFswArray iData; // current fsw content, i.e. the task list + + // always shown app list, own + CTsFsAlwaysShownAppList* iAlwaysShownAppList; + + // hidden app list, own + CTsFsHiddenAppList* iHiddenAppList; + + // web widget list, own + CTsFsWidgetList* iWidgetList; + + // window server session + RWsSession iWsSession; + + // apparc session + RApaLsSession iAppArcSession; + + /** + * Hash table storing the screenshots. + * Key: window group id for the screenshot + * (the one received in ApplicationChange) + * Value: CFbsBitmap*, pointers owned + */ + RHashMap iScreenshots; + + // app icon provider/container instance, own + CTsFswIconCache* iAppIcons; + + // true if web widgets are supported by the system + TBool iWidgetsSupported; + + // when true CollectTasksL will call GetAllApps etc. + // which is slow and need not be done normally, except + // during startup and perhaps when new applications are installed + TBool iAppDataRefreshNeeded; + + // Dirty flag, indicates that iData is not up-to-date because + // there were no subscribed clients during a previous possible + // change of the task list. + TBool iTaskListDirty; + }; + +#endif //TSFSWDATALIST_H diff -r 9674c1a575e9 -r b8fae6b8a148 taskswitcher/contextengine/tsfswserver/engine/inc/tsfswengine.h --- a/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswengine.h Mon Mar 15 12:39:47 2010 +0200 +++ b/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswengine.h Wed Mar 31 21:17:19 2010 +0300 @@ -32,15 +32,14 @@ #include "tsfswentry.h" #include "tsfswobservers.h" -class CTsFsAlwaysShownAppList; -class CTsFsHiddenAppList; -class CTsFsWidgetList; class MTsFswEngineObserver; -class CTsFswIconCache; class CTsFastSwapPreviewProvider; class CApaWindowGroupName; class CBitmapRotator; class CTsRotationTask; +class CTSCpsNotifier; + +class CTsFswDataList; // descriptor big enough to store hex repr of 32-bit integer plus 0x prefix typedef TBuf<10> TAppUidHexString; @@ -62,12 +61,12 @@ * @param aObserver ref to observer */ IMPORT_C static CTsFswEngine* NewL( MTsFswEngineObserver& aObserver ); - + /** * @copydoc NewL */ IMPORT_C static CTsFswEngine* NewLC( MTsFswEngineObserver& aObserver ); - + /** * Destructor. */ @@ -80,13 +79,13 @@ * @return ref to content array */ IMPORT_C const RTsFswArray& FswDataL(); - + /** * Tries to close the given app. * @param aWgId value given by WgId() for an entry in iData */ IMPORT_C void CloseAppL( TInt aWgId ); - + /** * Brings the given app to foreground. * @param aWgId value given by WgId() for an entry in iData @@ -110,11 +109,18 @@ * Callback for rotation completion. Takes ownership of a given * bitmap. */ - void RotationComplete( TInt aWgId, + void RotationComplete( TInt aWgId, CFbsBitmap* aBitmap, CTsRotationTask* aCompletedTask, TInt aError ); - + + /** + * Called by CPS publisher when changes occours on widgets' CPS data. + * Copies screenshot with use of delivered bitmap handle. + * Moves last changed widget with entry into start position. + */ + void HandleWidgetUpdateL( TInt aWidgetId, TInt aBitmapHandle ); + private: // from CActive void RunL(); @@ -123,7 +129,7 @@ // from MTsFswTaskListObserver void UpdateTaskList(); - + // from MTsFswResourceObserver void HandleResourceChange( TInt aType ); @@ -134,7 +140,7 @@ void HandleFswPpApplicationChange( TInt aWgId, TInt aFbsHandle ); void HandleFswPpApplicationUnregistered( TInt aWgId ); void HandleFswPpApplicationBitmapRotation( TInt aWgId, TBool aClockwise ); - + void RotateL( CFbsBitmap& aBitmap, TInt aWgId, TBool aClockwise ); private: @@ -142,52 +148,17 @@ * Constructor. */ CTsFswEngine( MTsFswEngineObserver& aObserver ); - + /** * Performs 2nd phase construction. */ void ConstructL(); - + /** * Gets the window group list and reconstructs the fsw content. * @return TBool ETrue if the list has been modified */ TBool CollectTasksL(); - - /** - * Called from CollectTasksL for each entry in the task list. - * @param aWgId window group id - * @param aAppUid application uid - * @param aWgName window group name or NULL - * @param aNewList list to add to - * @param aIsWidget true if the entry corresponds to a web widget - * @return TBool ETrue if it was really a new entry in the list - */ - TBool AddEntryL( TInt aWgId, const TUid& aAppUid, - CApaWindowGroupName* aWgName, RTsFswArray& aNewList, - TBool aIsWidget ); - - /** - * Checks if there is an entry for same app in the content list. - * If yes then it takes some of the data for the entry that - * will correspond to the same app in the refreshed content list. - * @param aEntry new entry in content list - * @param aAppUid application uid - * @param aChanged ref to change-flag, set to ETrue if it is sure - * that the new content list will be different from the previous one - * @param aNewList ref to new content list - * @return ETrue if app was found - */ - TBool CheckIfExistsL( CTsFswEntry& aEntry, - const TUid& aAppUid, - TBool& aChanged, - RTsFswArray& aNewList ); - - /** - * Adds running widgets to the list. - * @param aNewList array to add to - */ - void CheckWidgetsL( RTsFswArray& aNewList ); /** * Finds out the app uid for the given window group id. @@ -195,21 +166,7 @@ * @return application uid */ TUid AppUidForWgIdL( TInt aWgId ); - - /** - * Returns the parent's wg id or KErrNotFound. - * @param aWgId a valid window group id - * @return parent wg id or KErrNotFound if there is no parent - */ - TInt FindParentWgId( TInt aWgId ); - - /** - * Returns the most top parent's wg id or KErrNotFound. - * @param aWgId a valid window group id - * @return parent wg id or KErrNotFound if there is no parent - */ - TInt FindMostTopParentWgId( TInt aWgId ); - + /** * Finds out the application name. * @param aWindowName window group name or NULL @@ -218,7 +175,8 @@ * @return application name, ownership transferred to caller */ HBufC* FindAppNameLC( CApaWindowGroupName* aWindowName, - const TUid& aAppUid, TInt aWgId ); + const TUid& aAppUid, + TInt aWgId ); /** * Makes a copy of the bitmap with the given handle. @@ -227,34 +185,7 @@ * @return CFbsBitmap* the copy, ownership transferred to caller */ CFbsBitmap* CopyBitmapL( TInt aFbsHandle, TBool aKeepAspectRatio ); - - /** - * Checks if the app to which the screenshot belongs is in the task list - * and updates the entry when found. Also triggers change notification - * to observer when data is modified. - * @param aWgIdForScreenshot wgid for the screenshot - * @param aBitmapHandle handle for screenshot bitmap - */ - void AssignScreenshotHandle( TInt aWgIdForScreenshot, TInt aBitmapHandle ); - - /** - * Checks if the app to which the screenshot belongs is in the task list - * and updates the entry when found. - * @param aWgIdForScreenshot wgid for the screenshot - * @param aBitmapHandle handle for screenshot bitmap - * @param aAsigned result of operation - */ - void AssignScreenshotHandle( TInt aWgIdForScreenshot, - TInt aBitmapHandle, TBool& aAsigned ); - - /** - * Returns the bitmap handle for the screenshot belonging to the given app - * or 0 if not (yet) found. - * @param aWgIdForApp a window group id (from the window group list) - * @return bitmap handle or 0 - */ - TInt LookupScreenshotHandle( TInt aWgIdForApp ); - + /** * Callback for the iUpdateStarter timer. * Calls CollectTasksL and notifies the observer if the task list @@ -288,62 +219,44 @@ * Close running widget * @param aOffset - widget info offset */ - void CloseWidgetL(TInt aOffset); + void CloseWidgetL( TInt aOffset ); -private: // data - MTsFswEngineObserver& iObserver; - RTsFswArray iData; // current fsw content, i.e. the task list - CEikonEnv* iEnv; // not own + /** + * Removes screenshot bitmap from contained iDataList + */ + void RemoveScreenshot( TInt aWgId ); - // always shown app list, own - CTsFsAlwaysShownAppList* iAlwaysShownAppList; - - // hidden app list, own - CTsFsHiddenAppList* iHiddenAppList; - - // web widget list, own - CTsFsWidgetList* iWidgetList; + /** + * Add or overwrite screenshot datamap into iDataList + * @return ETrue if content was changed + */ + TBool StoreScreenshot( TInt aWgId, CFbsBitmap* aBmp ); + +private: + // data + MTsFswEngineObserver& iObserver; + CEikonEnv* iEnv; // not own // window server session RWsSession iWsSession; - + // apparc session RApaLsSession iAppArcSession; - /** - * Hash table storing the screenshots. - * Key: window group id for the screenshot - * (the one received in ApplicationChange) - * Value: CFbsBitmap*, pointers owned - */ - RHashMap iScreenshots; - // preview provider instance, own CTsFastSwapPreviewProvider* iPreviewProvider; - + // timer to defer content refresh CPeriodic* iUpdateStarter; - - // app icon provider/container instance, own - CTsFswIconCache* iAppIcons; - + // true if web widgets are supported by the system TBool iWidgetsSupported; // PS property to listen for swi status changes RProperty iSwiProp; - // when true CollectTasksL will call GetAllApps etc. - // which is slow and need not be done normally, except - // during startup and perhaps when new applications are installed - TBool iAppDataRefreshNeeded; // window group ids returned by last WindowGroupList call RArray iWgIds; - - // Dirty flag, indicates that iData is not up-to-date because - // there were no subscribed clients during a previous possible - // change of the task list. - TBool iTaskListDirty; // For publishing the foreground app uid to Context Framework TAppUidHexString iFgAppUidStr; @@ -351,9 +264,13 @@ // For rotating bitmaps RPointerArray iRotaTasks; + + CTsFswDataList* iDataList;//own + + //Used to observ wigets' actions on CPS service + CTSCpsNotifier* iCpsWidgetPublisher;//owned }; - /** * Listener for rotation complete event */ @@ -362,13 +279,12 @@ public: CTsRotationTask( CTsFswEngine& aEngine ); ~CTsRotationTask(); - void StartLD( TInt aWgId, - CFbsBitmap* aBitmapHandle, - TBool aClockwise ); + void StartLD( TInt aWgId, CFbsBitmap* aBitmapHandle, TBool aClockwise ); private: void RunL(); void DoCancel(); -private: // Data +private: + // Data CTsFswEngine& iEngine; TInt iWgId; CFbsBitmap* iBitmap; // owned for the duration of transformation diff -r 9674c1a575e9 -r b8fae6b8a148 taskswitcher/contextengine/tsfswserver/engine/inc/tsfswidgetlist.h --- a/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswidgetlist.h Mon Mar 15 12:39:47 2010 +0200 +++ b/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswidgetlist.h Wed Mar 31 21:17:19 2010 +0300 @@ -21,13 +21,9 @@ #include #include - -_LIT(KWidgetAppName, "widgetlauncher.exe"); - + const TUint32 KWidgetAppUidValue = 0x10282822; -const TInt KCloseWidgetCmd(2); - /** * class handling the list of running wrt widgets */ @@ -42,21 +38,28 @@ /** * Initializes the list that stores widgets. * @return - - */ + */ void InitializeWidgetListL(); /** * Returns a ref to the list of running widgets. */ const RWidgetInfoArray& RunningWidgets() const { return iRunningWidgets; } + + /** + * Check if widget's uid is recognized as CWRT type. + */ + TBool IsCWRTWidget( TUid aUid ); private: /** Constructor */ CTsFsWidgetList(); void ResetArrayOfWidgetInfo( RWidgetInfoArray& aWidgetInfoArr ); - + static void CleanupConnect( TAny* aThis ); + TBool IsValBetween( TInt aMinor, TInt aMajor, TInt aBetween ); + private: /** Contains list of widgets that are currently running */ RWidgetInfoArray iRunningWidgets; diff -r 9674c1a575e9 -r b8fae6b8a148 taskswitcher/contextengine/tsfswserver/engine/src/tscpsnotifier.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/taskswitcher/contextengine/tsfswserver/engine/src/tscpsnotifier.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -0,0 +1,348 @@ +/* +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Internal class definition for WidgetUI application. +* +*/ + + +#include "tscpsnotifier.h" +#include "tsfswengine.h" +#include +#include +#include +#include +#include + +_LIT8( KCPService, "Service.ContentPublishing" ); +_LIT8( KCPInterface, "IDataSource" ); + +_LIT8( KType, "type" ); +_LIT( KCpData, "cp_data" ); + +_LIT8( KPublisherId, "publisher" ); +_LIT8( KContentType, "content_type" ); +_LIT8( KContentId, "content_id" ); + +_LIT8( KGetList, "GetList"); +_LIT8( KDataMap, "data_map" ); +_LIT8( KWidgetId, "widget_id"); +_LIT8( KBitmapHandle, "bitmap_handle"); + +_LIT( KWidgetUi, "widget_ui"); +_LIT( KScreenshot, "screenshot"); + +_LIT8( KFilter, "filter" ); +_LIT8( KResults, "results"); +_LIT8( KOperation, "operation" ); +_LIT8( KRequestNotification, "RequestNotification" ); +_LIT( KUpdate, "update" ); +_LIT( K16Add, "add" ); +_LIT( KAddUpdate, "add:update" ); +_LIT8( KChangeInfo, "change_info" ); + +_LIT( KAll, "all"); + +// ================= MEMBER FUNCTIONS ======================= + +// -------------------------------------------------------------------------- +// CTSCpsNotifier::NewL +// -------------------------------------------------------------------------- +// +CTSCpsNotifier* CTSCpsNotifier::NewL(CTsFswEngine& aEngine ) + { + CTSCpsNotifier* self = new (ELeave) CTSCpsNotifier(aEngine); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop(); + return self; + } + +// -------------------------------------------------------------------------- +// CTSCpsNotifier::~CTSCpsNotifier +// -------------------------------------------------------------------------- +// +CTSCpsNotifier::~CTSCpsNotifier() + { + TRAP_IGNORE(ExecuteRegistrationCommandL( KLiwOptCancel )); + + if( iCpsInterface ) + { + iCpsInterface->Close(); + iCpsInterface = NULL; + } + if( iServiceHandler ) + { + iServiceHandler->Reset(); + delete iServiceHandler; + iServiceHandler = NULL; + } + } + +// -------------------------------------------------------------------------- +// CTSCpsNotifier::CTSCpsNotifier +// -------------------------------------------------------------------------- +// +CTSCpsNotifier::CTSCpsNotifier(CTsFswEngine& aEngine): + iEngine(aEngine) + { + } + +// -------------------------------------------------------------------------- +// CTSCpsNotifier::ConstructL +// -------------------------------------------------------------------------- +// +void CTSCpsNotifier::ConstructL() + { + InitCpsInterfaceL(); + ExecuteRegistrationCommandL( 0 ); + } + +// -------------------------------------------------------------------------- +// CTSCpsNotifier::WidgetFilterLC +// -------------------------------------------------------------------------- +// +CLiwDefaultMap* CTSCpsNotifier::WidgetFilterLC() + { + //Create filter criteria for requested entries in form of LIW map: + CLiwDefaultMap* filter = CLiwDefaultMap::NewLC(); + filter->InsertL( KPublisherId, TLiwVariant( KWidgetUi )); + filter->InsertL( KContentType, TLiwVariant( KScreenshot )); + return filter; + } + +// -------------------------------------------------------------------------- +// CTSCpsNotifier::ExecuteRegistrationCommandL +// -------------------------------------------------------------------------- +// +void CTSCpsNotifier::ExecuteRegistrationCommandL( + TUint aOption ) + { + CLiwDefaultMap* filter = WidgetFilterLC(); + filter->InsertL( KContentId, TLiwVariant( KAll )); + filter->InsertL( KOperation, TLiwVariant( KAddUpdate )); + + CLiwGenericParamList& inParamList = iServiceHandler->InParamListL(); + CLiwGenericParamList& outParamList = iServiceHandler->OutParamListL(); + + // Fill in input list for RequestNotification command + inParamList.AppendL( TLiwGenericParam( KType, TLiwVariant( KCpData ))); + inParamList.AppendL( TLiwGenericParam( KFilter, TLiwVariant( filter ))); + + iCpsInterface->ExecuteCmdL( + KRequestNotification, + inParamList, + outParamList, + aOption, + this ); + + outParamList.Reset(); + inParamList.Reset(); + CleanupStack::PopAndDestroy( filter ); + } + +// -------------------------------------------------------------------------- +// CTSCpsNotifier::HandleNotifyL +// -------------------------------------------------------------------------- +// +TInt CTSCpsNotifier::HandleNotifyL( + TInt /*aCmdId*/, + TInt /*aEventId*/, + CLiwGenericParamList& aEventParamList, + const CLiwGenericParamList& /*aInParamList*/ ) + { + TInt pos(0); + aEventParamList.FindFirst( pos, KChangeInfo ); + if (pos != KErrNotFound) + { + // Get list of maps + TLiwVariant variant = ( aEventParamList )[pos].Value(); + variant.PushL(); + const CLiwList* changeMapsList = variant.AsList(); + + TPtrC operation; + // Iter through list content + for (TInt i = 0; i < changeMapsList->Count(); ++i) + { + if ( changeMapsList->AtL( i, variant )) + { + const CLiwMap* changeMap = variant.AsMap(); + // Check what triggered a notification + if ( changeMap->FindL( KOperation, variant )) + { + operation.Set( variant.AsDes()); + } + if (!operation.Compare(KUpdate) || !operation.Compare(K16Add)) + { + HandleWidgetUpdateL( *changeMap ); + } + } + } + CleanupStack::PopAndDestroy( &variant ); + } + return KErrNone; + } + +// -------------------------------------------------------------------------- +// CTSCpsNotifier::InitCpsInterfaceL +// -------------------------------------------------------------------------- +// +void CTSCpsNotifier::InitCpsInterfaceL() + { + if( !iServiceHandler ) + { + iServiceHandler = CLiwServiceHandler::NewL(); + } + + CLiwGenericParamList& inParam = iServiceHandler->InParamListL(); + CLiwGenericParamList& outParam = iServiceHandler->OutParamListL(); + + CLiwCriteriaItem* crit = CLiwCriteriaItem::NewLC( KLiwCmdAsStr, KCPInterface, + KCPService ); + crit->SetServiceClass( TUid::Uid(KLiwClassBase) ); + + RCriteriaArray a; + a.AppendL(crit); + iServiceHandler->AttachL( a ); + CleanupStack::Pop(crit); + iServiceHandler->ExecuteServiceCmdL( *crit, inParam, outParam ); + delete crit; + a.Reset(); + + // find service interface + TInt pos = 0; + MLiwInterface* msgInterface = NULL; + outParam.FindFirst( pos, KCPInterface ); + if ( pos != KErrNotFound ) + { + msgInterface = (outParam)[pos].Value().AsInterface(); + } + + outParam.Reset(); + inParam.Reset(); + iCpsInterface = msgInterface; + } + +// -------------------------------------------------------------------------- +// CTSCpsNotifier::HandleWidgetUpdateL +// -------------------------------------------------------------------------- +// +void CTSCpsNotifier::HandleWidgetUpdateL(const CLiwMap& aChangeMap) + { + //ectract content_id which is widget bundled name + TPtrC contentid; + TLiwVariant contentIdVar; + contentIdVar.PushL(); + if (aChangeMap.FindL(KContentId, contentIdVar)) + { + contentid.Set( contentIdVar.AsDes()); + } + + TInt widgetId(0); + TInt bitmapHandle(0); + GetWidgetDataL(contentid, widgetId, bitmapHandle); + iEngine.HandleWidgetUpdateL(widgetId, bitmapHandle ); + CleanupStack::PopAndDestroy( &contentIdVar ); + } + +// -------------------------------------------------------------------------- +// CTSCpsNotifier::GetWidgetData +// -------------------------------------------------------------------------- +// +void CTSCpsNotifier::GetWidgetDataL(const TDesC& aContentId, TInt& aWidgetId, + TInt& aBitmapHandle) + { + CLiwGenericParamList* inParamList = &iServiceHandler->InParamListL(); + CLiwGenericParamList* outParamList = &iServiceHandler->OutParamListL(); + + TLiwGenericParam type( KType, TLiwVariant( KCpData ) ); + inParamList->AppendL( type ); + + //append filter to input param + CLiwDefaultMap* filter = WidgetFilterLC(); + filter->InsertL(KContentId, TLiwVariant(aContentId)); + TLiwGenericParam item( KFilter, filter); + inParamList->AppendL( item ); + + // It is assumed that interface is already initiated + iCpsInterface->ExecuteCmdL( KGetList, *inParamList, *outParamList); + + type.Reset(); + item.Reset(); + inParamList->Reset(); + + //extracts data map + TInt pos = 0; + outParamList->FindFirst( pos, KResults ); + if( pos != KErrNotFound ) + // results present + { + //extract iterator on results list + TLiwVariant variant = (*outParamList)[pos].Value(); + CLiwIterable* iterable = variant.AsIterable(); + iterable->Reset(); + + //get next result + if( iterable->NextL( variant ) ) + { + //extract content map + CLiwDefaultMap *map = CLiwDefaultMap::NewLC(); + variant.Get( *map ); + if( map && map->FindL( KDataMap, variant) ) + { + CLiwDefaultMap *dataMap = CLiwDefaultMap::NewLC(); + variant.Get( *dataMap ); + if( dataMap ) + { + GetWidgetDataFromDataMapL(*dataMap, aWidgetId, aBitmapHandle); + } + CleanupStack::PopAndDestroy( dataMap ); + } + variant.Reset(); + CleanupStack::PopAndDestroy( map ); + } + iterable->Reset(); + } + outParamList->Reset(); + CleanupStack::PopAndDestroy( filter ); + } + +// -------------------------------------------------------------------------- +// CTSCpsNotifier::GetWidgetDataFromDataMap +// -------------------------------------------------------------------------- +// +void CTSCpsNotifier::GetWidgetDataFromDataMapL(const CLiwMap& aDataMap, + TInt& aWidgetId, TInt& aBitmapHandle) + { + TLiwVariant bitmapHandleVar; + bitmapHandleVar.PushL(); + if( aDataMap.FindL( KBitmapHandle, bitmapHandleVar )) + { + aBitmapHandle = bitmapHandleVar.AsTInt32(); + } + CleanupStack::PopAndDestroy(&bitmapHandleVar); + + TLiwVariant widgetIdVar; + widgetIdVar.PushL(); + if( aDataMap.FindL( KWidgetId, widgetIdVar )) + { + aWidgetId = widgetIdVar.AsTInt32(); + } + CleanupStack::PopAndDestroy(&widgetIdVar); + } + +// END OF FILE + + + + diff -r 9674c1a575e9 -r b8fae6b8a148 taskswitcher/contextengine/tsfswserver/engine/src/tsfsalwaysshownapplist.cpp --- a/taskswitcher/contextengine/tsfswserver/engine/src/tsfsalwaysshownapplist.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/taskswitcher/contextengine/tsfswserver/engine/src/tsfsalwaysshownapplist.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -25,8 +25,7 @@ Also, there will be no Close option for such apps. */ const TUint32 KTsFsUidArray[] = { - 0x102750F0 // Idle App Uid - ,0x0EFC346A //Search App Uid + 0x0EFC346A //Search App Uid /* never show menu app */ //,0x101F4CD2 // Menu App Uid }; diff -r 9674c1a575e9 -r b8fae6b8a148 taskswitcher/contextengine/tsfswserver/engine/src/tsfshiddenapplist.cpp --- a/taskswitcher/contextengine/tsfswserver/engine/src/tsfshiddenapplist.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/taskswitcher/contextengine/tsfswserver/engine/src/tsfshiddenapplist.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -37,7 +37,8 @@ */ const TUint32 KTsFsAlwaysHiddenUidArray[] = { - 0x100056CF // screensaver + 0x100056CF, // screensaver + 0x102750F0 // Idle App Uid }; // ----------------------------------------------------------------------------- diff -r 9674c1a575e9 -r b8fae6b8a148 taskswitcher/contextengine/tsfswserver/engine/src/tsfswdatalist.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/taskswitcher/contextengine/tsfswserver/engine/src/tsfswdatalist.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -0,0 +1,753 @@ +/* +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: File containing application list classes + * +*/ + + +//INCLUDES: +#include "tsfswdatalist.h" +#include "tsfswengine.h" +#include "tsfsalwaysshownapplist.h" +#include "tsfshiddenapplist.h" +#include "tsfswidgetlist.h" +#include "tsfswiconcache.h" +#include "enginelogging.h" +#include // for CleanupResetAndDestroyPushL +#include +#include + + + +// ================= MEMBER FUNCTIONS ======================= + +// -------------------------------------------------------------------------- +// CTsFswDataList::NewL +// -------------------------------------------------------------------------- +// +CTsFswDataList* CTsFswDataList::NewL(CTsFswEngine& aEngine) + { + CTsFswDataList* self = new (ELeave) CTsFswDataList(aEngine); + CleanupStack::PushL (self ); + self->ConstructL ( ); + CleanupStack::Pop ( self ); + return self; + } + +// -------------------------------------------------------------------------- +// CTsFswDataList::CTsFswDataList +// -------------------------------------------------------------------------- +// +CTsFswDataList::CTsFswDataList(CTsFswEngine& aEngine) : + iEngine(aEngine) + { + } + +// -------------------------------------------------------------------------- +// CTsFswDataList::~CTsFswDataList +// -------------------------------------------------------------------------- +// +CTsFswDataList::~CTsFswDataList( ) + { + // delete the bitmaps as the hash map cannot do that + THashMapIter iter( iScreenshots ); + while ( const TInt* key = iter.NextKey() ) + { + CFbsBitmap** value = iter.CurrentValue(); + delete *value; + } + iScreenshots.Close(); + delete iAppIcons; + + iData.ResetAndDestroy(); + + delete iHiddenAppList; + delete iAlwaysShownAppList; + delete iWidgetList; + iAppArcSession.Close(); + iWsSession.Close(); + } + +// -------------------------------------------------------------------------- +// CTsFswDataList::ConstructL +// -------------------------------------------------------------------------- +// +void CTsFswDataList::ConstructL( ) + { + User::LeaveIfError( iWsSession.Connect() ); + User::LeaveIfError( iAppArcSession.Connect() ); + iHiddenAppList = CTsFsHiddenAppList::NewL( iEngine ); + iAlwaysShownAppList = CTsFsAlwaysShownAppList::NewL(); + + iWidgetsSupported = FeatureManager::FeatureSupported( KFeatureIdWebWidgets ); + if ( iWidgetsSupported ) + { + iWidgetList = CTsFsWidgetList::NewL(); + } + + // create app icon retriever instance + iAppIcons = CTsFswIconCache::NewL(); + } + +// -------------------------------------------------------------------------- +// CTsFswDataList::FswDataL +// -------------------------------------------------------------------------- +// +const RTsFswArray& CTsFswDataList::FswDataL() + { + TSLOG_CONTEXT( FswDataL, TSLOG_LOCAL ); + TSLOG1_IN( "dirty flag = %d", iTaskListDirty ); + + // check the dirty flag and refresh if needed + if ( iTaskListDirty ) + { + CollectTasksL(); + // dirty flag is cleared in the above call + } + + // Get app icon for entries without screenshot, + // do this only here as the app icon is not needed in case a screenshot + // is already available. + for ( TInt i = 0, ie = iData.Count(); i != ie; ++i ) + { + if ( !iData[i]->ScreenshotHandle() ) + { + CFbsBitmap* bmp; + CFbsBitmap* mask; + TUid appUid = iData[i]->AppUid(); + // this will leave with -46 in case of widgets if we do not have AllFiles cap + TRAPD( err, iAppIcons->GetIconL( appUid, bmp, mask ) ); + if ( err == KErrNone && bmp ) + { + iData[i]->SetAppIconHandles( bmp->Handle(), + mask ? mask->Handle() : 0 ); + } + else + { + iAppIcons->DefaultIcon( bmp, mask ); + iData[i]->SetAppIconHandles( bmp->Handle(), + mask ? mask->Handle() : 0 ); + } + } + } + + TSLOG_OUT(); + return iData; + } + +// -------------------------------------------------------------------------- +// CTsFswDataList::CollectTasksL +// -------------------------------------------------------------------------- +// +TBool CTsFswDataList::CollectTasksL() + { + // clear dirty flag + iTaskListDirty = EFalse; + TBool changed = EFalse; + + RTsFswArray newAppsList; + RTsFswArray newWidgetsList; + + CleanupResetAndDestroyPushL(newAppsList); + CleanupResetAndDestroyPushL(newWidgetsList); + + CollectAppsL(newAppsList); + CollectWidgetsL(newWidgetsList); + + changed |= FitDataToListL(newAppsList, EFalse); + changed |= FitDataToListL(newWidgetsList, ETrue); + + CleanupStack::PopAndDestroy( &newWidgetsList ); + CleanupStack::PopAndDestroy( &newAppsList ); + + return changed; + } + + +// -------------------------------------------------------------------------- +// CTsFswDataList::AlwaysShown() +// -------------------------------------------------------------------------- +// +CTsFsAlwaysShownAppList* CTsFswDataList::AlwaysShownApps() + { + return iAlwaysShownAppList; + } + +// -------------------------------------------------------------------------- +// CTsFswDataList::HiddenApps() +// -------------------------------------------------------------------------- +// +CTsFsHiddenAppList* CTsFswDataList::HiddenApps() + { + return iHiddenAppList; + } + +// -------------------------------------------------------------------------- +// CTsFswDataList::Widgets() +// -------------------------------------------------------------------------- +// +CTsFsWidgetList* CTsFswDataList::Widgets() + { + return iWidgetList; + } + +// -------------------------------------------------------------------------- +// CTsFswDataList::SetDirty() +// -------------------------------------------------------------------------- +// +void CTsFswDataList::SetDirty() + { + iTaskListDirty = ETrue; + } + +// -------------------------------------------------------------------------- +// CTsFswDataList::SetAppDataRefreshNeeded() +// -------------------------------------------------------------------------- +// +void CTsFswDataList::SetAppDataRefreshNeeded() + { + iAppDataRefreshNeeded = ETrue; + } + +// -------------------------------------------------------------------------- +// CTsFswDataList::ForwardScreenshot +// -------------------------------------------------------------------------- +// +TBool CTsFswDataList::StoreScreenshot(TInt aId, CFbsBitmap* aBmp) + { + TBool changed = EFalse; + CFbsBitmap** oldbmp = iScreenshots.Find( aId ); + if ( oldbmp ) + { + delete *oldbmp; + } + if ( iScreenshots.Insert( aId, aBmp ) != KErrNone ) + { + delete aBmp; + iScreenshots.Remove( aId ); + } + else + { + changed = AssignScreenshotHandle( aId, aBmp->Handle() ); + } + return changed; + } + +// -------------------------------------------------------------------------- +// CTsFswDataList::RemoveScreenshotByWgId +// -------------------------------------------------------------------------- +// +TBool CTsFswDataList::RemoveScreenshot(TInt aId) + { + TBool changed = EFalse; + CFbsBitmap** bmp = iScreenshots.Find( aId ); + if ( bmp ) + { + delete *bmp; + iScreenshots.Remove( aId ); + changed = AssignScreenshotHandle( aId, 0 ); + } + return changed; + } + +// -------------------------------------------------------------------------- +// CTsFswDataList::FindScreenshotByWgId +// -------------------------------------------------------------------------- +// +CFbsBitmap** CTsFswDataList::FindScreenshot(TInt aId) + { + CFbsBitmap** result = 0; + result = iScreenshots.Find( aId ); + return result; + } + +// -------------------------------------------------------------------------- +// CTsFswDataList::MoveEntryAtStart +// -------------------------------------------------------------------------- +// +void CTsFswDataList::MoveEntryAtStart(TInt aAppId, TBool aWidget) + { + TSLOG_CONTEXT( MoveEntryAtStart, TSLOG_LOCAL ); + + for ( TInt i = 0; i < iData.Count(); ++i ) + { + if( iData[i]->AppUid().iUid == aAppId && iData[i]->Widget() == aWidget) + { + CTsFswEntry* entry = iData[i]; + iData.Remove(i); + iData.Insert(entry, 0); + break; + } + } + TSLOG_OUT(); + } + +// -------------------------------------------------------------------------- +// CTsFswDataList:: +// -------------------------------------------------------------------------- +// +void CTsFswDataList::CollectAppsL(RTsFswArray& aAppsList) + { + TSLOG_CONTEXT( CollectTasksL, TSLOG_LOCAL ); + TSLOG_IN(); + // clear dirty flag + iTaskListDirty = EFalse; + + // update app data if needed + // (usually on startup and when new apps might have been installed) + if ( iAppDataRefreshNeeded ) + { + TSLOG0( TSLOG_INFO, "refreshing app data" ); + iAppArcSession.GetAllApps(); + iAlwaysShownAppList->InitializeAlwaysShownListL(); + iAppDataRefreshNeeded = EFalse; + } + + // get all window groups + RArray allWgIds; + CleanupClosePushL( allWgIds ); + User::LeaveIfError( iWsSession.WindowGroupList( 0, &allWgIds ) ); + + TInt count = allWgIds.Count(); + for ( TInt i = 0; i < count; ++i ) + { + // ignore uninteresting entries (e.g. embedded apps) + if ( allWgIds[i].iParentId > 0 ) + { + continue; + } + + // get window group name + TInt wgId = allWgIds[i].iId; + CApaWindowGroupName* windowName = + CApaWindowGroupName::NewLC( iWsSession, wgId ); + TUid appUid = windowName->AppUid(); + + // ignore entries with null uid + if ( !appUid.iUid ) + { + CleanupStack::PopAndDestroy( windowName ); + continue; + } + + // will append the task to our own list only if it is not hidden + TBool onHiddenList = iHiddenAppList->IsHiddenL( + appUid, iWsSession, wgId ); + + // get screen number (-1=console, 0=main screen, 1=cover ui) + TInt appScreen = 0; + TInt scrNumErr = iAppArcSession.GetDefaultScreenNumber( appScreen, appUid ); + + // check if it is on always-shown list + TBool mustShow = iAlwaysShownAppList->IsAlwaysShownApp( appUid ); + +#ifdef _DEBUG + const TDesC& captionDbg( windowName->Caption() ); + TSLOG4( TSLOG_INFO, "[%d] wgid=%d appuid=%x (%S)", i, wgId, + appUid.iUid, &captionDbg ); + TSLOG4( TSLOG_INFO, "hidden=%d onhiddenlist=%d mustshow=%d scrno=%d", + windowName->Hidden(), onHiddenList, mustShow, appScreen ); +#endif + if ( iWidgetsSupported && appUid.iUid == KWidgetAppUidValue ) + { + //continue, leave widgetui, do nothing + } + // add item to task list if it is always-shown OR it is not hidden + // and it is not on cover ui + else if (mustShow || (!onHiddenList && !windowName->Hidden() && (appScreen + == 0 || appScreen == -1) && scrNumErr == KErrNone)) + { + AddEntryL(wgId, appUid, windowName, aAppsList, EFalse); + } + CleanupStack::PopAndDestroy( windowName ); + } + CleanupStack::PopAndDestroy( &allWgIds ); + TSLOG_OUT(); + } + +// -------------------------------------------------------------------------- +// CTsFswDataList::AddEntryL +// -------------------------------------------------------------------------- +// +TBool CTsFswDataList::AddEntryL( TInt aWgId, const TUid& aAppUid, + CApaWindowGroupName* aWgName, RTsFswArray& aNewList, + TBool aIsWidget ) + { + TBool changed = EFalse; + CTsFswEntry* entry = CTsFswEntry::NewLC(); + entry->SetWgId( aWgId ); + entry->SetAppUid( aAppUid ); + entry->SetWidget( aIsWidget ); + + // check if present in old list and if yes then take some of the old data + TBool found = ConsiderOldDataL( *entry, aAppUid, changed, aNewList ); + + // if not present previously then find out app name + // and check if screenshot is already available + if ( !found ) + { + // when adding a new entry to the list it is changed for sure + changed = ETrue; + HBufC* name = FindAppNameLC( aWgName, aAppUid, aWgId ); + if ( name ) + { + entry->SetAppNameL( *name ); + } + CleanupStack::PopAndDestroy( name ); + + entry->SetAlwaysShown( iAlwaysShownAppList->IsAlwaysShownApp( aAppUid ) ); + if ( aWgName ) + { + entry->SetSystemApp( aWgName->IsSystem() ); + } + } + TInt h = LookupScreenshotHandle( aWgId ); + if ( h ) + { + entry->SetScreenshotHandle( h ); + } + // add to new list, ownership is transferred + aNewList.AppendL( entry ); + CleanupStack::Pop( entry ); + return changed; + } + +// -------------------------------------------------------------------------- +// CTsFswDataList::ConsiderOldDataL +// -------------------------------------------------------------------------- +// +TBool CTsFswDataList::ConsiderOldDataL( CTsFswEntry& aEntry, + const TUid& aAppUid, + TBool& aChanged, + RTsFswArray& aNewList ) + { + for ( TInt entryIdx = 0, oldCount = iData.Count(); + entryIdx < oldCount; ++entryIdx ) + { + // Enough to check appuid, no need to bother with wgid as the + // screenshot handle is up-to-date or will be updated later anyway. + if ( iData[entryIdx]->AppUid() == aAppUid ) + { + iData[entryIdx]->SetWgId( aEntry.WgId()); + // if positions do not match then the list is different than before + if ( entryIdx != aNewList.Count() ) + { + aChanged = ETrue; + } + CTsFswEntry* oldEntry = iData[entryIdx]; + aEntry.SetAppNameL( oldEntry->AppName() ); + aEntry.SetScreenshotHandle( oldEntry->ScreenshotHandle() ); + aEntry.SetAlwaysShown( oldEntry->AlwaysShown() ); + aEntry.SetSystemApp( oldEntry->SystemApp() ); + return ETrue; + } + } + return EFalse; + } +// -------------------------------------------------------------------------- +// CTsFswDataList::CollectWidgetsL +// -------------------------------------------------------------------------- +// +void CTsFswDataList::CollectWidgetsL(RTsFswArray& aWidgetsList) + { + if( iWidgetsSupported ) + { + iWidgetList->InitializeWidgetListL(); + const RWidgetInfoArray& arr( iWidgetList->RunningWidgets() ); + for ( TInt i = 0, ie = arr.Count(); i != ie; ++i ) + { + //verify if widget is working in full screen mode + if( arr[i]->iFileSize ) + { + // wgid will be a special negative value + // windowgroupname is not needed here so pass NULL + AddEntryL( -(i+1), arr[i]->iUid, 0, aWidgetsList, ETrue ); + } + } + } + } + +// -------------------------------------------------------------------------- +// CTsFswDataList::FindParentWgId +// -------------------------------------------------------------------------- +// +TInt CTsFswDataList::FindParentWgId( TInt aWgId ) + { + TInt parent( KErrNotFound ); + RArray allWgIds; + // Ask for window group list from RWsSession + TInt error = iWsSession.WindowGroupList( 0, &allWgIds ); + if ( !error ) + { + TInt count( allWgIds.Count() ); + for ( TInt i( 0 ); i < count; i++ ) + { + RWsSession::TWindowGroupChainInfo info = allWgIds[i]; + if ( info.iId == aWgId && info.iParentId > 0) + { + parent = info.iParentId; + break; + } + } + } + allWgIds.Close(); + return parent; + } + +// -------------------------------------------------------------------------- +// CTsFswDataList::FindMostTopParentWgId +// -------------------------------------------------------------------------- +// +TInt CTsFswDataList::FindMostTopParentWgId( TInt aWgId ) + { + TInt parent( KErrNotFound ); + parent = FindParentWgId( aWgId ); + if( parent != KErrNotFound) + { + TInt topParent = FindMostTopParentWgId(parent); + if( topParent != KErrNotFound ) + { + parent = topParent; + } + } + return parent; + } + +// -------------------------------------------------------------------------- +// CTsFswDataList::FindAppNameLC +// -------------------------------------------------------------------------- +// +HBufC* CTsFswDataList::FindAppNameLC( CApaWindowGroupName* aWindowName, + const TUid& aAppUid, + TInt aWgId ) + { + //Retrieve the app name + TApaAppInfo info; + iAppArcSession.GetAppInfo( info, aAppUid ); + TPtrC caption = info.iShortCaption; + + HBufC* tempName = 0; + if ( !caption.Length() && aWindowName ) // if not set - use thread name instead + { + if ( aWindowName->Caption().Length() ) + { + tempName = aWindowName->Caption().AllocL(); + //put on cleanupstack after the if + } + else + { + TThreadId threadId; + TInt err = iWsSession.GetWindowGroupClientThreadId( + aWgId, threadId ); + if ( err == KErrNone ) + { + RThread thread; + CleanupClosePushL( thread ); + err = thread.Open ( threadId ); + if ( err==KErrNone ) + { + tempName = thread.Name().AllocL(); // codescanner::forgottoputptroncleanupstack + // tempName put on cleanupstack after the if + } + CleanupStack::PopAndDestroy( &thread ); + } + } + } + else + { + tempName = caption.AllocL(); + //put on cleanupstack after the if + } + CleanupStack::PushL( tempName ); + return tempName; + } + +// -------------------------------------------------------------------------- +// CTsFswDataList::AssignScreenshotHandle +// Called when a screenshot arrives to check if there is a corresponding +// application in the task list. Firstly try to match screenshot into parental +// application then into standalone one. +// -------------------------------------------------------------------------- +// +TBool CTsFswDataList::AssignScreenshotHandle( TInt aWgIdForScreenshot, + TInt aBitmapHandle ) + { +// aWgIdForScreenshot, aBitmapHandle); + TBool changed = EFalse; + TInt parentWgId = FindMostTopParentWgId( aWgIdForScreenshot ); + // now parentWgId is a valid wgid or KErrNotFound (-1) + if (parentWgId != KErrNotFound) + { + AssignScreenshotHandle( parentWgId, aBitmapHandle, changed ); + } + if (!changed) + { + AssignScreenshotHandle( aWgIdForScreenshot, aBitmapHandle, changed ); + } + return changed; + } + +// -------------------------------------------------------------------------- +// CTsFswDataList::AssignScreenshotHandle +// Called when a screenshot arrives to check if there is a corresponding +// application in the task list. It might be tried to be match into parental +// or standalone application. +// -------------------------------------------------------------------------- +// +void CTsFswDataList::AssignScreenshotHandle(TInt aWgIdForScreenshot, + TInt aBitmapHandle, TBool& aAsigned) + { + aAsigned = EFalse; + for (TInt i = 0, ie = iData.Count(); i != ie; ++i) + { + if (iData[i]->Widget()) + { + TInt widgetId = iData[i]->AppUid().iUid; + if (widgetId == aWgIdForScreenshot) + { + iData[i]->SetScreenshotHandle(aBitmapHandle); + aAsigned = ETrue; + break; + } + continue; + } + TInt appWgId = iData[i]->WgId(); + if (appWgId == aWgIdForScreenshot) + { + iData[i]->SetScreenshotHandle(aBitmapHandle); + aAsigned = ETrue; + break; + } + } + } + +// -------------------------------------------------------------------------- +// CTsFswDataList::LookupScreenshotHandle +// Called to check if there is a screenshot already stored for the given +// app. (or a screenshot with a wgid for which aWgIdForApp is the parent) +// -------------------------------------------------------------------------- +// +TInt CTsFswDataList::LookupScreenshotHandle( TInt aWgIdForApp ) + { + CFbsBitmap** bmp = NULL; + + if ( aWgIdForApp > 0 ) + { + // must check if there is a screenshot for which aWgIdForApp is the parent + THashMapIter iter( iScreenshots ); + while ( const TInt* wgid = iter.NextKey() ) + { + if ( FindMostTopParentWgId( *wgid ) == aWgIdForApp ) + { + THashMapIter iter2( iScreenshots ); + TBool hasChild = false; + while ( const TInt* wgid2 = iter2.NextKey() ) + { + if ( FindParentWgId( *wgid2 ) == *wgid ) + { + hasChild = true; + break; + } + } + if ( !hasChild ) + { + bmp = iter.CurrentValue(); + if ( bmp ) + { + return (*bmp)->Handle(); + } + } + } + } + if ( !bmp ) + { + bmp = iScreenshots.Find( aWgIdForApp ); + if ( bmp ) + { + // there is a screenshot stored for this wgid + return (*bmp)->Handle(); + } + } + } + else if ( aWgIdForApp < 0 ) + { + // Must be a widget, wgid is useless in this case. + // Do not do anything for now => no screenshot for widgets. + } + return 0; + } + +// -------------------------------------------------------------------------- +// CTsFswDataList::FitDataToListL +// -------------------------------------------------------------------------- +// +TBool CTsFswDataList::FitDataToListL(RTsFswArray& aListToFit, + TBool aConsiderWidgets) + { + TSLOG_CONTEXT( FitDataToListL, TSLOG_LOCAL ); + TBool changed = EFalse; + TInt listCount = aListToFit.Count(); + TInt dataCount = iData.Count(); + + //remove items that dont't exists in newly collected list + //consider widget and non-widget type + for (TInt i = dataCount -1; i >= 0; --i) + { + if ( (iData[i]->Widget() == aConsiderWidgets) && + !CheckIfExists(*iData[i], aListToFit) ) + { + delete iData[i]; + iData.Remove(i); + changed = ETrue; + } + } + + //add new item at start + for (TInt i = 0; i < aListToFit.Count(); ++i) + { + if (!CheckIfExists(*aListToFit[i], iData)) + { + iData.Insert(aListToFit[i], 0); + aListToFit[i] = 0; + changed = ETrue; + } + } + + TSLOG1_OUT( "change flag = %d", changed ); + return changed; + } + +// -------------------------------------------------------------------------- +// CTsFswDataList::CheckIfExists +// -------------------------------------------------------------------------- +// +TBool CTsFswDataList::CheckIfExists(const CTsFswEntry& aEntry, + const RTsFswArray& aList) const + { + TSLOG_CONTEXT( FitDataToListL, TSLOG_LOCAL ); + TBool exists(EFalse); + TInt dataCount = aList.Count(); + for (TInt entryIdx = 0; entryIdx < dataCount; ++entryIdx) + { + if (aList[entryIdx]->AppUid() == aEntry.AppUid()) + { + exists = ETrue; + break; + } + } + TSLOG_OUT(); + return exists; + } + +// end of file diff -r 9674c1a575e9 -r b8fae6b8a148 taskswitcher/contextengine/tsfswserver/engine/src/tsfswengine.cpp --- a/taskswitcher/contextengine/tsfswserver/engine/src/tsfswengine.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/taskswitcher/contextengine/tsfswserver/engine/src/tsfswengine.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -17,10 +17,11 @@ #include "tsfswengine.h" +#include "tscpsnotifier.h" +#include "tsfswdatalist.h" #include "tsfsalwaysshownapplist.h" #include "tsfshiddenapplist.h" #include "tsfswidgetlist.h" -#include "tsfswiconcache.h" #include "tspreviewprovider.h" #include "tsfswclient.h" #include @@ -34,7 +35,7 @@ #include "enginelogging.h" // time to wait before refreshing content -const TInt KContentRefreshDelay = 500000; // 0.5 sec +const TInt KContentRefreshDelay = 50000; // 0.05 sec // for screenshots, they are scaled down to (screensize/this_factor). const TInt KScreenSizeFactor = 2; @@ -42,6 +43,15 @@ // format to get a lowercase hex string prefixed with 0x _LIT( KHexFmt, "0x%x" ); +const TUid KTsCameraUid = { 0x101F857a }; + +//close command for widget +const TInt KCloseWidgetCmd(9); +//handle close cmd for s60 widgets +_LIT(KWidgetAppName, "widgetlauncher.exe"); +//handle close cmd for CWRT widgets +_LIT(KWidgetAppNameWgt,"wgtwidgetlauncher.exe"); + // -------------------------------------------------------------------------- // CTsFswEngine::NewL // -------------------------------------------------------------------------- @@ -86,20 +96,11 @@ User::LeaveIfError( iWsSession.Connect() ); User::LeaveIfError( iAppArcSession.Connect() ); - iHiddenAppList = CTsFsHiddenAppList::NewL( *this ); - iAlwaysShownAppList = CTsFsAlwaysShownAppList::NewL(); - + iDataList = CTsFswDataList::NewL(*this); iWidgetsSupported = FeatureManager::FeatureSupported( KFeatureIdWebWidgets ); - if ( iWidgetsSupported ) - { - iWidgetList = CTsFsWidgetList::NewL(); - } - - // create app icon retriever instance - iAppIcons = CTsFswIconCache::NewL(); // get an initial list of tasks - iAppDataRefreshNeeded = ETrue; + iDataList->SetAppDataRefreshNeeded(); CollectTasksL(); // listen for app screenshots @@ -116,6 +117,7 @@ iSwiProp.Subscribe( iStatus ); SetActive(); } + iCpsWidgetPublisher = CTSCpsNotifier::NewL(*this); } // -------------------------------------------------------------------------- @@ -130,22 +132,8 @@ delete iUpdateStarter; delete iPreviewProvider; - // delete the bitmaps as the hash map cannot do that - THashMapIter iter( iScreenshots ); - while ( const TInt* key = iter.NextKey() ) - { - CFbsBitmap** value = iter.CurrentValue(); - delete *value; - } - iScreenshots.Close(); - delete iAppIcons; - - iData.ResetAndDestroy(); iWgIds.Close(); - delete iHiddenAppList; - delete iAlwaysShownAppList; - delete iWidgetList; iAppArcSession.Close(); iWsSession.Close(); @@ -155,7 +143,8 @@ delete iRotaTasks[i]; } iRotaTasks.Close(); -// delete iContextUtility; + delete iDataList; + delete iCpsWidgetPublisher; } // -------------------------------------------------------------------------- @@ -165,43 +154,8 @@ EXPORT_C const RTsFswArray& CTsFswEngine::FswDataL() { TSLOG_CONTEXT( FswDataL, TSLOG_LOCAL ); - TSLOG1_IN( "dirty flag = %d", iTaskListDirty ); - - // check the dirty flag and refresh if needed - if ( iTaskListDirty ) - { - CollectTasksL(); - // dirty flag is cleared in the above call - } - - // Get app icon for entries without screenshot, - // do this only here as the app icon is not needed in case a screenshot - // is already available. - for ( TInt i = 0, ie = iData.Count(); i != ie; ++i ) - { - if ( !iData[i]->ScreenshotHandle() ) - { - CFbsBitmap* bmp; - CFbsBitmap* mask; - TUid appUid = iData[i]->AppUid(); - // this will leave with -46 in case of widgets if we do not have AllFiles cap - TRAPD( err, iAppIcons->GetIconL( appUid, bmp, mask ) ); - if ( err == KErrNone && bmp ) - { - iData[i]->SetAppIconHandles( bmp->Handle(), - mask ? mask->Handle() : 0 ); - } - else - { - iAppIcons->DefaultIcon( bmp, mask ); - iData[i]->SetAppIconHandles( bmp->Handle(), - mask ? mask->Handle() : 0 ); - } - } - } - TSLOG_OUT(); - return iData; + return iDataList->FswDataL(); } // -------------------------------------------------------------------------- @@ -218,7 +172,7 @@ // convert aWgId to an index in the list of running widgets and close widget CloseWidgetL( -aWgId -1 ); } - else if( !iAlwaysShownAppList->IsAlwaysShownApp( AppUidForWgIdL( aWgId ) ) ) + else if( !iDataList->AlwaysShownApps()->IsAlwaysShownApp( AppUidForWgIdL( aWgId ) ) ) { // send window group event to kill the app TWsEvent event; @@ -242,7 +196,7 @@ if ( iWidgetsSupported && aWgId < 0 ) { // for widgets clients see a wgid that is -1*(index+1) - const RWidgetInfoArray& arr( iWidgetList->RunningWidgets() ); + const RWidgetInfoArray& arr( iDataList->Widgets()->RunningWidgets() ); // convert aWgId to an index in the list of running widgets TInt idx = -aWgId - 1; // if index is valid then handle the widget specially @@ -267,17 +221,14 @@ // void CTsFswEngine::SwitchToWidgetL( TInt aWidgetIndex ) { - const RWidgetInfoArray& arr( iWidgetList->RunningWidgets() ); - RApaLsSession ls; - User::LeaveIfError( ls.Connect() ); - CleanupClosePushL( ls ); + const RWidgetInfoArray& arr( iDataList->Widgets()->RunningWidgets() ); CApaCommandLine* cmdLine = CApaCommandLine::NewLC(); cmdLine->SetCommandL( EApaCommandRun ); TApaAppInfo info; iAppArcSession.GetAppInfo( info, arr[aWidgetIndex]->iUid ); // codescanner::accessArrayElementWithoutCheck2 (aWidgetIndex checked in SwitchToAppL()) cmdLine->SetExecutableNameL( info.iFullName ); - ls.StartApp( *cmdLine ); - CleanupStack::PopAndDestroy( 2, &ls ); + iAppArcSession.StartApp( *cmdLine ); + CleanupStack::PopAndDestroy(cmdLine); } // -------------------------------------------------------------------------- @@ -290,25 +241,14 @@ TSLOG_CONTEXT( UpdateTaskList, TSLOG_LOCAL ); TSLOG_IN(); - // If no clients are subscribed for fsw content change notifications - // then there is no need to waste time with rebuilding the task list, - // just set the dirty flag. - TInt listenerCount = iObserver.FswDataListenerCount(); - TSLOG1( TSLOG_INFO, "listener count = %d", listenerCount ); - if ( listenerCount > 0 ) + // There can be many calls in a row, use a timer to prevent degrading + // device performance. + if ( !iUpdateStarter->IsActive() ) { - // There can be many calls in a row, use a timer to prevent degrading - // device performance. - if ( !iUpdateStarter->IsActive() ) - { - iUpdateStarter->Start( KContentRefreshDelay, 0, + iUpdateStarter->Start( KContentRefreshDelay, 0, TCallBack( UpdateStarterCallback, this ) ); - } } - else - { - iTaskListDirty = ETrue; - } + iDataList->SetDirty(); // screenshot taking support - call Register and Unregister when needed UpdatePreviewContent(); @@ -349,7 +289,7 @@ CApaWindowGroupName* wgn = CApaWindowGroupName::NewLC( iWsSession, allWgIds[i].iId ); TUid newUid = wgn->AppUid(); - TBool hidden = wgn->Hidden() || iHiddenAppList->IsHiddenL( + TBool hidden = wgn->Hidden() || iDataList->HiddenApps()->IsHiddenL( newUid, iWsSession, allWgIds[i].iId ); CleanupStack::PopAndDestroy( wgn ); @@ -410,222 +350,12 @@ TBool CTsFswEngine::CollectTasksL() { TSLOG_CONTEXT( CollectTasksL, TSLOG_LOCAL ); - TSLOG_IN(); - - // clear dirty flag - iTaskListDirty = EFalse; - - TBool changed = EFalse; - RTsFswArray newList; - CleanupResetAndDestroyPushL( newList ); - - // update app data if needed - // (usually on startup and when new apps might have been installed) - if ( iAppDataRefreshNeeded ) - { - TSLOG0( TSLOG_INFO, "refreshing app data" ); - iAppArcSession.GetAllApps(); - iAlwaysShownAppList->InitializeAlwaysShownListL(); - iAppDataRefreshNeeded = EFalse; - } - - // get all window groups - RArray allWgIds; - CleanupClosePushL( allWgIds ); - User::LeaveIfError( iWsSession.WindowGroupList( 0, &allWgIds ) ); - TInt count = allWgIds.Count(); - - for ( TInt i = 0; i < count; ++i ) - { - // ignore uninteresting entries (e.g. embedded apps) - if ( allWgIds[i].iParentId > 0 ) - { - continue; - } - - // get window group name - TInt wgId = allWgIds[i].iId; - CApaWindowGroupName* windowName = - CApaWindowGroupName::NewLC( iWsSession, wgId ); - TUid appUid = windowName->AppUid(); - - // ignore entries with null uid - if ( !appUid.iUid ) - { - CleanupStack::PopAndDestroy( windowName ); - continue; - } - - // will append the task to our own list only if it is not hidden - TBool onHiddenList = iHiddenAppList->IsHiddenL( - appUid, iWsSession, wgId ); - - // get screen number (-1=console, 0=main screen, 1=cover ui) - TInt appScreen = 0; - TInt scrNumErr = iAppArcSession.GetDefaultScreenNumber( appScreen, appUid ); - - // check if it is on always-shown list - TBool mustShow = iAlwaysShownAppList->IsAlwaysShownApp( appUid ); - -#ifdef _DEBUG - const TDesC& captionDbg( windowName->Caption() ); - TSLOG4( TSLOG_INFO, "[%d] wgid=%d appuid=%x (%S)", i, wgId, - appUid.iUid, &captionDbg ); - TSLOG4( TSLOG_INFO, "hidden=%d onhiddenlist=%d mustshow=%d scrno=%d", - windowName->Hidden(), onHiddenList, mustShow, appScreen ); -#endif - - // if this is the widget app then save wgid for later use - // and ignore it, but include running widgets instead - if ( iWidgetsSupported && appUid.iUid == KWidgetAppUidValue ) - { - changed = ETrue; - } - // add item to task list if it is always-shown OR it is not hidden - // and it is not on cover ui - else if ( mustShow - || ( !onHiddenList - && !windowName->Hidden() - && ( appScreen == 0 || appScreen == -1 ) - && scrNumErr == KErrNone ) ) - { - if ( AddEntryL( wgId, appUid, windowName, newList, EFalse ) ) - { - changed = ETrue; - } - } - CleanupStack::PopAndDestroy( windowName ); - } - CleanupStack::PopAndDestroy( &allWgIds ); - CheckWidgetsL(newList); - - // if counts for old and new lists do not match then there is a change for sure, - // probably an app has been closed - if ( iData.Count() != newList.Count() ) - { - changed = ETrue; - } - - // move pointers from the temporary list into the real one - iData.ResetAndDestroy(); - TInt newListCount = newList.Count(); - TSLOG1( TSLOG_INFO, "new list count = %d", newListCount ); - for ( TInt i = 0; i < newListCount; ++i ) - { - TSLOG3( TSLOG_INFO, "[%d] %S wgid=%d", - i, &newList[i]->AppName(), newList[i]->WgId() ); - iData.AppendL( newList[i] ); - newList[i] = 0; - } - CleanupStack::PopAndDestroy( &newList ); - + TBool changed = iDataList->CollectTasksL(); TSLOG1_OUT( "change flag = %d", changed ); return changed; } -// -------------------------------------------------------------------------- -// CTsFswEngine::AddEntryL -// -------------------------------------------------------------------------- -// -TBool CTsFswEngine::AddEntryL( TInt aWgId, const TUid& aAppUid, - CApaWindowGroupName* aWgName, RTsFswArray& aNewList, - TBool aIsWidget ) - { - TBool changed = EFalse; - CTsFswEntry* entry = CTsFswEntry::NewLC(); - entry->SetWgId( aWgId ); - entry->SetAppUid( aAppUid ); - entry->SetWidget( aIsWidget ); - - // check if present in old list and if yes then take some of the old data - TBool found = CheckIfExistsL( *entry, aAppUid, changed, aNewList ); - - // if not present previously then find out app name - // and check if screenshot is already available - if ( !found ) - { - // when adding a new entry to the list it is changed for sure - changed = ETrue; - HBufC* name = FindAppNameLC( aWgName, aAppUid, aWgId ); - if ( name ) - { - entry->SetAppNameL( *name ); - } - CleanupStack::PopAndDestroy( name ); - TInt h = LookupScreenshotHandle( aWgId ); - if ( h ) - { - entry->SetScreenshotHandle( h ); - } - entry->SetAlwaysShown( iAlwaysShownAppList->IsAlwaysShownApp( aAppUid ) ); - if ( aWgName ) - { - entry->SetSystemApp( aWgName->IsSystem() ); - } - } - - // add to new list, ownership is transferred - aNewList.AppendL( entry ); - CleanupStack::Pop( entry ); - return changed; - } - -// -------------------------------------------------------------------------- -// CTsFswEngine::CheckIfExistsL -// -------------------------------------------------------------------------- -// -TBool CTsFswEngine::CheckIfExistsL( CTsFswEntry& aEntry, - const TUid& aAppUid, - TBool& aChanged, - RTsFswArray& aNewList ) - { - for ( TInt entryIdx = 0, oldCount = iData.Count(); - entryIdx < oldCount; ++entryIdx ) - { - // Enough to check appuid, no need to bother with wgid as the - // screenshot handle is up-to-date or will be updated later anyway. - if ( iData[entryIdx]->AppUid() == aAppUid ) - { - // if positions do not match then the list is different than before - if ( entryIdx != aNewList.Count() ) - { - aChanged = ETrue; - } - CTsFswEntry* oldEntry = iData[entryIdx]; - aEntry.SetAppNameL( oldEntry->AppName() ); - aEntry.SetScreenshotHandle( oldEntry->ScreenshotHandle() ); - aEntry.SetAlwaysShown( oldEntry->AlwaysShown() ); - aEntry.SetSystemApp( oldEntry->SystemApp() ); - return ETrue; - } - } - return EFalse; - } -// -------------------------------------------------------------------------- -// CTsFswEngine::CheckWidgetsL -// -------------------------------------------------------------------------- -// -void CTsFswEngine::CheckWidgetsL( RTsFswArray& aNewList ) - { - if( iWidgetsSupported ) - { - iWidgetList->InitializeWidgetListL(); - const RWidgetInfoArray& arr( iWidgetList->RunningWidgets() ); - for ( TInt i = 0, ie = arr.Count(); i != ie; ++i ) - { - //verify if widget is working in full screen mode - if( arr[i]->iFileSize ) - { - // wgid will be a special negative value - // windowgroupname is not needed here so pass NULL - AddEntryL( -(i+1), arr[i]->iUid, 0, aNewList, ETrue ); - } - } - } - } - -// -------------------------------------------------------------------------- // CTsFswEngine::HiddenAppListUpdated // Callback from the hidden app list watcher // -------------------------------------------------------------------------- @@ -646,52 +376,7 @@ TUid appUid = windowName->AppUid(); CleanupStack::PopAndDestroy( windowName ); return appUid; - } -// -------------------------------------------------------------------------- -// CTsFswEngine::FindParentWgId -// -------------------------------------------------------------------------- -// -TInt CTsFswEngine::FindParentWgId( TInt aWgId ) - { - TInt parent( KErrNotFound ); - RArray allWgIds; - // Ask for window group list from RWsSession - TInt error = iWsSession.WindowGroupList( 0, &allWgIds ); - if ( !error ) - { - TInt count( allWgIds.Count() ); - for ( TInt i( 0 ); i < count; i++ ) - { - RWsSession::TWindowGroupChainInfo info = allWgIds[i]; - if ( info.iId == aWgId && info.iParentId > 0) - { - parent = info.iParentId; - break; - } - } - } - allWgIds.Close(); - return parent; - } - -// -------------------------------------------------------------------------- -// CTsFswEngine::FindMostTopParentWgId -// -------------------------------------------------------------------------- -// -TInt CTsFswEngine::FindMostTopParentWgId( TInt aWgId ) - { - TInt parent( KErrNotFound ); - parent = FindParentWgId( aWgId ); - if( parent != KErrNotFound) - { - TInt topParent = FindMostTopParentWgId(parent); - if( topParent != KErrNotFound ) - { - parent = topParent; - } - } - return parent; } // -------------------------------------------------------------------------- @@ -749,6 +434,8 @@ // CFbsBitmap* CTsFswEngine::CopyBitmapL( TInt aFbsHandle, TBool aKeepAspectRatio ) { + TSLOG_CONTEXT( CopyBitmapL, TSLOG_LOCAL ); + CFbsBitmap* ret = new (ELeave) CFbsBitmap; CleanupStack::PushL( ret ); CFbsBitmap* bmp = new (ELeave) CFbsBitmap; @@ -788,6 +475,7 @@ CleanupStack::PopAndDestroy( bmp ); CleanupStack::Pop( ret ); + TSLOG_OUT(); return ret; } @@ -856,25 +544,24 @@ TSLOG_CONTEXT( HandleFswPpApplicationChange, TSLOG_LOCAL ); TSLOG2_IN( "aWgId = %d aFbsHandle = %d", aWgId, aFbsHandle ); + TUid appUid; + TRAPD( err, appUid = AppUidForWgIdL( aWgId ) ); + if ( err || appUid == KTsCameraUid ) + { + // Dont't assign screenshot to camera app + TSLOG0( TSLOG_LOCAL, "Screenshot for camera - ignore" ); + iPreviewProvider->AckPreview(aFbsHandle); + TSLOG_OUT(); + return; + } + CFbsBitmap* bmp = 0; - TRAPD( err, bmp = CopyBitmapL( aFbsHandle, EFalse ) ); + TRAP( err, bmp = CopyBitmapL( aFbsHandle, EFalse ) ); iPreviewProvider->AckPreview(aFbsHandle); if ( err == KErrNone ) { - CFbsBitmap** oldbmp = iScreenshots.Find( aWgId ); - if ( oldbmp ) - { - delete *oldbmp; - } - if ( iScreenshots.Insert( aWgId, bmp ) != KErrNone ) - { - delete bmp; - iScreenshots.Remove( aWgId ); - } - else - { - AssignScreenshotHandle( aWgId, bmp->Handle() ); - } + StoreScreenshot(aWgId, bmp); + iDataList->MoveEntryAtStart(appUid.iUid, EFalse); } TSLOG_OUT(); @@ -890,14 +577,8 @@ TSLOG_CONTEXT( HandleFswPpApplicationUnregistered, TSLOG_LOCAL ); TSLOG1_IN( "aWgId = %d", aWgId ); - CFbsBitmap** bmp = iScreenshots.Find( aWgId ); - if ( bmp ) - { - delete *bmp; - iScreenshots.Remove( aWgId ); - AssignScreenshotHandle( aWgId, 0 ); - } - + RemoveScreenshot(aWgId); + TSLOG_OUT(); } @@ -911,15 +592,14 @@ TSLOG_CONTEXT( HandleFswPpApplicationBitmapRotation, TSLOG_LOCAL ); TSLOG1_IN( "aWgId = %d", aWgId ); - CFbsBitmap** bmp = iScreenshots.Find( aWgId ); + CFbsBitmap** bmp = iDataList->FindScreenshot(aWgId); + if ( bmp ) { // Rotate bitmap TRAP_IGNORE( RotateL( **bmp, aWgId, aClockwise ) ); // Bitmap in a array is invalid, remove it - delete *bmp; - iScreenshots.Remove( aWgId ); - AssignScreenshotHandle( aWgId, 0 ); + RemoveScreenshot(aWgId); } TSLOG_OUT(); @@ -968,16 +648,7 @@ if ( aError == KErrNone ) { - if ( iScreenshots.Insert( aWgId, aBitmap ) != KErrNone ) - { - delete aBitmap; - iScreenshots.Remove( aWgId ); - AssignScreenshotHandle( aWgId, 0 ); - } - else - { - AssignScreenshotHandle( aWgId, aBitmap->Handle() ); - } + StoreScreenshot(aWgId, aBitmap); } else { @@ -988,97 +659,6 @@ TSLOG_OUT(); } - -// -------------------------------------------------------------------------- -// CTsFswEngine::AssignScreenshotHandle -// Called when a screenshot arrives to check if there is a corresponding -// application in the task list. Firstly try to match screenshot into parental -// application then into standalone one. -// -------------------------------------------------------------------------- -// -void CTsFswEngine::AssignScreenshotHandle( TInt aWgIdForScreenshot, - TInt aBitmapHandle ) - { - TBool changed = EFalse; - TInt parentWgId = FindMostTopParentWgId( aWgIdForScreenshot ); - // now parentWgId is a valid wgid or KErrNotFound (-1) - if (parentWgId != KErrNotFound) - { - AssignScreenshotHandle( parentWgId, aBitmapHandle, changed ); - } - if (!changed) - { - AssignScreenshotHandle( aWgIdForScreenshot, aBitmapHandle, changed ); - } - if ( changed ) - { - iObserver.FswDataChanged(); - } - } - -// -------------------------------------------------------------------------- -// CTsFswEngine::AssignScreenshotHandle -// Called when a screenshot arrives to check if there is a corresponding -// application in the task list. It might be tried to be match into parental -// or standalone application. -// -------------------------------------------------------------------------- -// -void CTsFswEngine::AssignScreenshotHandle(TInt aWgIdForScreenshot, - TInt aBitmapHandle, TBool& aAsigned) - { - aAsigned = EFalse; - for (TInt i = 0, ie = iData.Count(); i != ie; ++i) - { - if (iData[i]->Widget()) - { - // Do not do anything for now => no screenshot for widgets. - continue; - } - TInt appWgId = iData[i]->WgId(); - if (appWgId == aWgIdForScreenshot) - { - iData[i]->SetScreenshotHandle(aBitmapHandle); - aAsigned = ETrue; - break; - } - } - } - -// -------------------------------------------------------------------------- -// CTsFswEngine::LookupScreenshotHandle -// Called to check if there is a screenshot already stored for the given -// app. (or a screenshot with a wgid for which aWgIdForApp is the parent) -// -------------------------------------------------------------------------- -// -TInt CTsFswEngine::LookupScreenshotHandle( TInt aWgIdForApp ) - { - CFbsBitmap** bmp = iScreenshots.Find( aWgIdForApp ); - if ( bmp ) - { - // there is a screenshot stored for this wgid - return (*bmp)->Handle(); - } - else if ( aWgIdForApp > 0 ) - { - // must check if there is a screenshot for which aWgIdForApp is the parent - THashMapIter iter( iScreenshots ); - while ( const TInt* wgid = iter.NextKey() ) - { - if ( FindParentWgId( *wgid ) == aWgIdForApp ) - { - CFbsBitmap** bmp = iter.CurrentValue(); - return (*bmp)->Handle(); - } - } - } - else if ( aWgIdForApp < 0 ) - { - // Must be a widget, wgid is useless in this case. - // Do not do anything for now => no screenshot for widgets. - } - return 0; - } - // -------------------------------------------------------------------------- // CTsFswEngine::RunL // -------------------------------------------------------------------------- @@ -1095,7 +675,7 @@ // refresh the app list during the next task list update. if ( operationStatus == Swi::ESwisStatusSuccess ) { - iAppDataRefreshNeeded = ETrue; + iDataList->SetAppDataRefreshNeeded(); } } iSwiProp.Subscribe( iStatus ); @@ -1160,15 +740,12 @@ { TSLOG_CONTEXT( CloseWidgetL, TSLOG_LOCAL ); TSLOG1_IN( "aOffset = %d", aOffset ); - if( iWidgetList->RunningWidgets().Count() <= aOffset ) + if( iDataList->Widgets()->RunningWidgets().Count() <= aOffset ) { User::Leave(KErrArgument); } - const CWidgetInfo* widgetInfo(iWidgetList->RunningWidgets()[aOffset]); + const CWidgetInfo* widgetInfo(iDataList->Widgets()->RunningWidgets()[aOffset]); const TPtrC bundleName(*widgetInfo->iBundleName); - RApaLsSession ls; - User::LeaveIfError( ls.Connect() ); - CleanupClosePushL( ls ); CApaCommandLine* const cmdLine = CApaCommandLine::NewLC(); HBufC8* const @@ -1185,14 +762,78 @@ cmdLine->SetCommandL( EApaCommandBackgroundAndWithoutViews ); cmdLine->SetOpaqueDataL( *opaque ); CleanupStack::PopAndDestroy( opaque ); - cmdLine->SetExecutableNameL( KWidgetAppName ); - ls.StartApp( *cmdLine ); + + if (iDataList->Widgets()->IsCWRTWidget(widgetInfo->iUid)) + { + cmdLine->SetExecutableNameL( KWidgetAppNameWgt); + } + else + { + cmdLine->SetExecutableNameL( KWidgetAppName ); + } + + iAppArcSession.StartApp( *cmdLine ); CleanupStack::PopAndDestroy( cmdLine ); - CleanupStack::PopAndDestroy( &ls ); TSLOG_OUT(); } +// -------------------------------------------------------------------------- +// CTsFswEngine::StoreScreenshot +// -------------------------------------------------------------------------- +// +TBool CTsFswEngine::StoreScreenshot(TInt aWgId, CFbsBitmap* aBmp) + { + TSLOG_CONTEXT( StoreScreenshot, TSLOG_LOCAL ); + //iDataList would take ownership + TBool change = EFalse; + change = iDataList->StoreScreenshot(aWgId, aBmp); + if(change) + { + iObserver.FswDataChanged(); + } + TSLOG1_OUT( "Screenshot for = %d", aWgId ); + return change; + } +// -------------------------------------------------------------------------- +// CTsFswEngine::RemoveScreenshot() +// -------------------------------------------------------------------------- +// +void CTsFswEngine::RemoveScreenshot(TInt aWgId) + { + TBool change = EFalse; + change = iDataList->RemoveScreenshot(aWgId); + if( change ) + { + iObserver.FswDataChanged(); + } + } + +// -------------------------------------------------------------------------- +// CTsFswEngine::HandleWidgetUpdateL() +// -------------------------------------------------------------------------- +// +void CTsFswEngine::HandleWidgetUpdateL(TInt aWidgetId, TInt aBitmapHandle) + { + TSLOG_CONTEXT( HandleWidgetUpdateL, TSLOG_LOCAL ); + CFbsBitmap* bmp = 0; + TBool contentChanged(EFalse); + if( aBitmapHandle ) + { + TRAPD( err, bmp = CopyBitmapL( aBitmapHandle, EFalse ) ); + if ( err == KErrNone ) + { + contentChanged = StoreScreenshot(aWidgetId, bmp); + } + } + if(!contentChanged) + { + iObserver.FswDataChanged(); + } + + iDataList->MoveEntryAtStart(aWidgetId, ETrue); + TSLOG_OUT(); + } // -------------------------------------------------------------------------- // CTsRotationListener::CTsRotationListener diff -r 9674c1a575e9 -r b8fae6b8a148 taskswitcher/contextengine/tsfswserver/engine/src/tsfswidgetlist.cpp --- a/taskswitcher/contextengine/tsfswserver/engine/src/tsfswidgetlist.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/taskswitcher/contextengine/tsfswserver/engine/src/tsfswidgetlist.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -18,6 +18,7 @@ #include "tsfswidgetlist.h" #include +#include // -------------------------------------------------------------------------- // CTsFsWidgetList::NewL @@ -91,5 +92,35 @@ } } +// -------------------------------------------------------------------------- +// CTsFsWidgetList::IsCWRTWidget +// -------------------------------------------------------------------------- +// +TBool CTsFsWidgetList::IsCWRTWidget( TUid aUid ) + { + TBool ret(EFalse); + if(IsValBetween(KWidgetUidCWRTInternalMemoryStart, + KWidgetUidCWRTInternalMemoryStop, aUid.iUid) || + IsValBetween(KWidgetUidCWRTExternalMemoryStart, + KWidgetUidCWRTExternalMemoryStop, aUid.iUid) ) + { + ret = ETrue;//it is cwrt widget + } + return ret; + } + +// -------------------------------------------------------------------------- +// CTsFsWidgetList::IsValBetween +// -------------------------------------------------------------------------- +// +TBool CTsFsWidgetList::IsValBetween( TInt aMinor, TInt aMajor, TInt aBetween ) + { + TBool ret(EFalse); + if ( aBetween >= aMinor && aBetween < aMajor ) + { + ret = ETrue; + } + return ret; + } // end of file diff -r 9674c1a575e9 -r b8fae6b8a148 taskswitcher/taskswitcherui/taskswitcherapp/data/taskswitcher.rss --- a/taskswitcher/taskswitcherui/taskswitcherapp/data/taskswitcher.rss Mon Mar 15 12:39:47 2010 +0200 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/data/taskswitcher.rss Wed Mar 31 21:17:19 2010 +0300 @@ -275,6 +275,7 @@ RESOURCE TBUF r_ts_fsw_activate { buf = qtn_task_switcher_popup_open_app; } RESOURCE TBUF r_ts_fsw_close { buf = qtn_task_switcher_popup_close_app; } RESOURCE TBUF r_ts_fsw_close_all { buf = qtn_task_switcher_popup_close_all; } +RESOURCE TBUF r_ts_fsw_no_apps { buf = qtn_task_switcher_no_apps; } RESOURCE TBUF r_ts_fsw_confirm_close { buf = qtn_memlo_confirm_close; } RESOURCE TBUF r_task_switcher_heading_applications { buf = qtn_task_switcher_heading_applications; } diff -r 9674c1a575e9 -r b8fae6b8a148 taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappui.h --- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappui.h Mon Mar 15 12:39:47 2010 +0200 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappui.h Wed Mar 31 21:17:19 2010 +0300 @@ -96,6 +96,11 @@ void RequestPopUpL(); void DisablePopUpL(); + /** + * Function for layout change check + */ + TBool LayoutChangeAllowed(); + public: /** * From MTsCenrepChangeObserver @@ -182,6 +187,10 @@ // Monitors popup mode TBool iIsPopUpShown; + // For starting in background + TBool iUiStarted; + TBool iDisableAppKeyHandling; + }; #endif // TSAPPUI_H diff -r 9674c1a575e9 -r b8fae6b8a148 taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappview.h --- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappview.h Mon Mar 15 12:39:47 2010 +0200 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappview.h Wed Mar 31 21:17:19 2010 +0300 @@ -102,6 +102,12 @@ * background redraw. */ void OrderFullWindowRedraw(); + + /** + * Orders window invalidation to perform full + * background redraw. + */ + void EnableDragEvents( TBool aEnable ); protected: // from MCoeControlObserver diff -r 9674c1a575e9 -r b8fae6b8a148 taskswitcher/taskswitcherui/taskswitcherapp/inc/tseventcontroler.h --- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tseventcontroler.h Mon Mar 15 12:39:47 2010 +0200 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tseventcontroler.h Wed Mar 31 21:17:19 2010 +0300 @@ -168,6 +168,7 @@ * EFalse - disables event handling */ void EnableEventHandling( TBool aEnable ); + void EnableDragEventHandling( TBool aEnable ); private: /** @@ -189,6 +190,7 @@ * Flag to enable/disable event handling */ TBool iHandleEvents; + TBool iHandleDragEvents; }; #endif // TSEVENTCONTROLER_H diff -r 9674c1a575e9 -r b8fae6b8a148 taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h --- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h Mon Mar 15 12:39:47 2010 +0200 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h Wed Mar 31 21:17:19 2010 +0300 @@ -290,12 +290,6 @@ * Sends the data-changed notification. */ void NotifyChange(); - - /** - * Chage application order. - * move Homescreen to first left position. - */ - void SwapApplicationOrder( RPointerArray& aArray ); /** * Retrieves and returns size for image graphics. @@ -416,7 +410,6 @@ CTsEventControler& iEvtHandler; TInt iMaxItemsOnScreen; - TInt iPreviousNoOfItems; // Tap event TPointerEvent iTapEvent; diff -r 9674c1a575e9 -r b8fae6b8a148 taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapgrid.h --- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapgrid.h Mon Mar 15 12:39:47 2010 +0200 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapgrid.h Wed Mar 31 21:17:19 2010 +0300 @@ -77,9 +77,9 @@ public: // From CCoeControl void HandlePointerEventL( const TPointerEvent &aPointerEvent ); - TTypeUid::Ptr MopSupplyObject( TTypeUid aId ); void HandleResourceChange( TInt aType ); void SizeChanged(); + void Draw( const TRect& aRect ) const; public: //From MTsDeviceStateObserver /** @@ -117,6 +117,23 @@ void ResetCloseHit(); /** + * Sets color for the screenshot stroke. + * + * @param aColor color for the thumbnail + * @param aHighlightedColor color for thumbnail when item is highlighted + */ + void SetStrokeColors( TRgb aColor, + TRgb aHighlightedColor ); + + /** + * Sets items for which stroke will be drawn + * + * @param aItemIndex array of item indexes for which stroke + * is drawn + */ + void SetStrokeItemsL( RArray& aItemIndex ); + + /** * Sets grid behaviour * * @param aBehaviour behaviour to be set @@ -158,45 +175,6 @@ * Returns visible view. Items outside of visible rectangle are not drawn. */ TRect VisibleViewRect(); - - /** - * Launch tactile ETouchFeedbackSensitive feedback. - */ - void LaunchTactileFeedback(); - - /** - * Set tactile feedback support. - * - * @param aSupport new support value - */ - void SetTactileFeedbackSupport(TBool aSupport); - - /** - * Remove item from iFullyVisibleItems and iPartialVisibleItems arrays - * - * @param aItem idem index - * @return ETrue if item was removed - * EFalse if item was not found - */ - TBool RemoveFromVisibleItems(TInt aItem) const; - - /** - * Add item to iFullyVisibleItems array - * - * @param aItem idem index - * @return ETrue if item was added - * EFalse if item was not added because it was there before - */ - TBool AddToFullyVisibleItems(TInt aItem) const; - - /** - * Remove item from iPartialVisibleItems array - * - * @param aItem idem index - * @return ETrue if item was removed - * EFalse if item was not removed because it was not found - */ - TBool MoveToPartialVisibleItems(TInt aItem) const; private: // From CAknGrid virtual void CreateItemDrawerL(); @@ -209,7 +187,7 @@ /** * Loads close icon bitmap and mask */ - void LoadCloseIcon(); + void LoadCloseIconAndStrokeParams(); /** * Redraws grid and parent controls @@ -221,9 +199,6 @@ // Grid's parent const CCoeControl* iParent; - // Background context for grid - CAknsFrameBackgroundControlContext* iBgContext; - // Close icon handling RArray iCloseItems; TInt iCloseIconHitIdx; @@ -236,13 +211,6 @@ // Visible view rectangle (horizontal scrolling support) TRect iVisibleViewRect; - - // Feedback support - TBool iTactileFeedbackSupport; - CTsFastSwapTimer* iFeedbackTimer; - - mutable RArray iFullyVisibleItems; - mutable RArray iPartialVisibleItems; }; @@ -265,7 +233,8 @@ * Sets close icon drawn for items that can be closed. * Ownership transferred. */ - void SetCloseIcon( CFbsBitmap* aBmp, CFbsBitmap* aMask ); + void SetCloseIcon( CFbsBitmap* aBmp, CFbsBitmap* aBmpMask, + CFbsBitmap* aBmpPressed, CFbsBitmap* aBmpPressedMask ); /** * Initializes close icon rectangles. @@ -296,6 +265,33 @@ * if set to EFalse, background will not be redrawn */ void SetRedrawBackground( TBool aEnable ); + + /** + * Sets color for the screenshot stroke. + * + * @param aColor color for the thumbnail + * @param aHighlightedColor color for thumbnail when item is highlighted + */ + void SetStrokeColors( TRgb aNormalColor, + TRgb aHighlightedColor ); + + /** + * Sets items for which stroke will be drawn + * + * @param aItemIndex array of item indexes for which stroke + * is drawn. + */ + void SetStrokeItemsL( RArray& aItemIndex ); + + /** + * Sets stroke offset and size: values must be relative + * to item rectangle. + * + * @param aStrokeOffset offset of the stroke rectangle relative + * to item rectangle + * @param aStrokeSize size of the stroke rectangle + */ + void SetStrokeOffset( TPoint aStrokeOffset, TSize aStrokeSize ); private: // From CFormattedCellListBoxItemDrawer void DrawActualItem( TInt aItemIndex, const TRect& aActualItemRect, @@ -333,16 +329,24 @@ // Owned CFbsBitmap* iCloseIcon; CFbsBitmap* iCloseIconMask; + CFbsBitmap* iCloseIconPressed; + CFbsBitmap* iCloseIconPressedMask; TRect iScreenRect; TInt iLeftOffset; TInt iRightOffset; - // Layout data + // Close button data TRect iCloseIconRect; TRect iCloseButtonRect; TBool iRedrawBackground; + + // Stroke data + TRgb iStrokeColor; + TRgb iHighlightStrokeColor; + RArray iStrokeItems; + TRect iStrokeRect; }; diff -r 9674c1a575e9 -r b8fae6b8a148 taskswitcher/taskswitcherui/taskswitcherapp/loc/taskswitcher.loc --- a/taskswitcher/taskswitcherui/taskswitcherapp/loc/taskswitcher.loc Mon Mar 15 12:39:47 2010 +0200 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/loc/taskswitcher.loc Wed Mar 31 21:17:19 2010 +0300 @@ -43,6 +43,12 @@ // #define qtn_task_switcher_heading_applications "Open applications" +//d:Text for no appliactions +//l:none +//r:5.0 +// +#define qtn_task_switcher_no_apps "No open application" + //d:Text for appliactions that has no name //l:none //r:5.0 diff -r 9674c1a575e9 -r b8fae6b8a148 taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp --- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -60,7 +60,7 @@ // time to wait before sending the task to background // (must give time to animation) -const TInt KWaitBeforeGoingToBackground = 100000; +const TInt KWaitBeforeGoingToBackground = 175000; // ----------------------------------------------------------------------------- // CTsAppUi::ConstructL() @@ -144,10 +144,12 @@ // And finally, go to background. MoveAppToBackground( ENoneTransition ); - iEikonEnv->RootWin().SetOrdinalPosition(-1); + iEikonEnv->RootWin().SetOrdinalPosition(-1, ECoeWinPriorityNeverAtFront); iEikonEnv->RootWin().EnableReceiptOfFocus(EFalse); iIsPopUpShown = EFalse; + iUiStarted = EFalse; + iDisableAppKeyHandling = EFalse; TSLOG_OUT(); } @@ -336,14 +338,27 @@ // Both this function and the 'manual' MoveAppTo functions must fire the events // because in some cases only one of them will run (e.g. when bringing to foreground // not with the hw key but by other means etc.) + iDisableAppKeyHandling = EFalse; + if ( !iUiStarted ) + { + // Ignore foreground events if UI is starting + return; + } if ( aForeground ) { HandleSwitchToForegroundEvent(); } // exclude cases with dialogs like power menu, memory card - else if( !IsFaded()) + else { - HandleSwitchToBackgroundEvent(); + if( !IsFaded() ) + { + HandleSwitchToBackgroundEvent(); + } + else + { + iDisableAppKeyHandling = ETrue; + } } // Call Base class method @@ -381,12 +396,12 @@ { MoveAppToBackground( EBackgroundTransition ); } - else + else if( !iDisableAppKeyHandling ) { iAppView->HandleAppKey(KAppKeyTypeLong); } } - else if( value & KTaskswitcherShortAppKeyPressed ) + else if( value & KTaskswitcherShortAppKeyPressed && !iDisableAppKeyHandling ) { iAppView->HandleAppKey(KAppKeyTypeShort); } @@ -413,18 +428,10 @@ // Must call base class implementation first, // sizes from LayoutMetricsRect etc. will only be correct after this. CAknAppUi::HandleResourceChangeL( aType ); - if( aType == KEikDynamicLayoutVariantSwitch && iAppView ) + if( aType == KEikDynamicLayoutVariantSwitch && iAppView && !LayoutChangeAllowed() ) { - // Check if layout switch is necessary - TSizeMode mode = iEikonEnv->ScreenDevice()->GetCurrentScreenModeAttributes(); - TBool isLandscape = mode.iScreenSize.iWidth > mode.iScreenSize.iHeight; - TRect appRect = ApplicationRect(); - TBool isAppLandscape = appRect.Width() > appRect.Height(); - if(isLandscape != isAppLandscape) - { - // Keep displayed orientation - return; - } + // Keep displayed orientation + return; } // forward event iDeviceState->HandleResourceChange( aType ); @@ -500,6 +507,8 @@ TSLOG_CONTEXT( MoveAppToForeground, TSLOG_LOCAL ); TSLOG_IN(); + iUiStarted = ETrue; + // Request window server to bring our application // to foreground iApplicationTask.BringToForeground(); @@ -529,6 +538,8 @@ // notify view iAppView->HandleSwitchToBackgroundEvent(); + + iWg.SetOrdinalPosition(-1, ECoeWinPriorityNormal); } TSLOG_OUT(); @@ -558,6 +569,8 @@ // notify view iAppView->HandleSwitchToForegroundEvent(); + + iWg.SetOrdinalPosition(iWg.OrdinalPosition(), ECoeWinPriorityAlwaysAtFront); } TSLOG_OUT(); @@ -661,4 +674,28 @@ TSLOG_OUT(); } + +// ----------------------------------------------------------------------------- +// CTsAppUi::LayoutCanBeChanged +// ----------------------------------------------------------------------------- +// +TBool CTsAppUi::LayoutChangeAllowed() + { + // Check if layout switch is necessary + TSizeMode mode = iEikonEnv->ScreenDevice()->GetCurrentScreenModeAttributes(); + TBool isLandscape = mode.iScreenSize.iWidth > mode.iScreenSize.iHeight; + TRect appRect = ApplicationRect(); + TBool isAppLandscape = appRect.Width() > appRect.Height(); + TBool retVal; + if(isLandscape != isAppLandscape) + { + retVal = EFalse; + } + else + { + retVal = ETrue; + } + return retVal; + } + // End of file diff -r 9674c1a575e9 -r b8fae6b8a148 taskswitcher/taskswitcherui/taskswitcherapp/src/tsappview.cpp --- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappview.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappview.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -134,7 +134,7 @@ KAknsIIDQsnFrPopup, iBgContextOuterRect, iBgContextInnerRect, - ETrue ); + EFalse ); iBgContext->SetFrameRects(iBgContextOuterRect, iBgContextInnerRect); iBgContext->SetCenter( KAknsIIDQsnFrPopupCenter ); @@ -309,6 +309,7 @@ iViewRect = Rect(); UpdatePopupRects(); iBgContext->SetFrameRects(iBgContextOuterRect, iBgContextInnerRect); + iBgContext->SetParentPos(PositionRelativeToScreen()); if ( iFastSwapArea && iAppsHeading ) { RArray rects; @@ -456,6 +457,14 @@ TSLOG_CONTEXT( CTsAppView::HandleSwitchToForegroundEvent, TSLOG_LOCAL ); TSLOG_IN(); + // Check for layout updates + CTsAppUi* appUi = static_cast(iCoeEnv->AppUi()); + if ( iViewRect != appUi->ApplicationRect() && + appUi->LayoutChangeAllowed() ) + { + HandleDeviceStateChanged( EOrientation ); + } + Window().Invalidate(Rect()); iEvtHandler->EnableEventHandling(ETrue); @@ -470,6 +479,7 @@ // Forward event to interested controls iFastSwapArea->HandleSwitchToForegroundEvent(); + iFastSwapArea->UpdateComponentVisibility(); // Start animation CTsAppUi* appui = @@ -667,6 +677,16 @@ // ----------------------------------------------------------------------------- +// CTsAppView::EnableDragEvents +// ----------------------------------------------------------------------------- +// +void CTsAppView::EnableDragEvents( TBool aEnable ) + { + iEvtHandler->EnableDragEventHandling( aEnable ); + } + + +// ----------------------------------------------------------------------------- // CTsAppView::MoveOffset // ----------------------------------------------------------------------------- // diff -r 9674c1a575e9 -r b8fae6b8a148 taskswitcher/taskswitcherui/taskswitcherapp/src/tseventcontroler.cpp --- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tseventcontroler.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tseventcontroler.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -66,7 +66,8 @@ : CBase(), iObserver(aObserver), - iHandleEvents(ETrue) + iHandleEvents(ETrue), + iHandleDragEvents(ETrue) { } @@ -134,10 +135,13 @@ void CTsEventControler::HandleDragEventL( MAknTouchGestureFwDragEvent& aEvent) { - iObserver.DragL(aEvent); - if ( iHandleEvents ) + if ( iHandleDragEvents ) { - iPhysicsHelper->HandleDragEvent(aEvent); + iObserver.DragL(aEvent); + if ( iHandleEvents && iHandleDragEvents ) + { + iPhysicsHelper->HandleDragEvent(aEvent); + } } } @@ -221,4 +225,18 @@ } } + +// ----------------------------------------------------------------------------- +// EnableDragEventHandling +// ----------------------------------------------------------------------------- +// +void CTsEventControler::EnableDragEventHandling( TBool aEnable ) + { + iHandleDragEvents = aEnable; + if ( !aEnable && IsPhysicsRunning() ) + { + iPhysicsHelper->Stop(); + } + } + // end of file diff -r 9674c1a575e9 -r b8fae6b8a148 taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp --- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -50,15 +50,8 @@ /** Number of closable applications, to show "close all" option. */ const TInt KTsMaxClosableApps = 2; -/** Uid of Active Idle application. - Used when movind Ai to specified position.*/ -const TUid KAiUid = TUid::Uid( 0x102750F0 ); - -/** Position of Ai in fsw grid.*/ -const TInt KAiPosition = 0; - /** Default grid item to highlight.*/ -const TInt KItemToHighlight = 3; +const TInt KItemToHighlight = 2; const TInt KAppKeyTypeShort = 1; const TInt KAppKeyTypeLong = 2; @@ -110,7 +103,7 @@ CTsDeviceState& aDeviceState, CTsEventControler& aEventHandler) : iParent(aParent), iDeviceState(aDeviceState), iEvtHandler(aEventHandler), - iPreviousNoOfItems(0), iIgnoreLayoutSwitch(EFalse) + iIgnoreLayoutSwitch(EFalse) { // no implementation required } @@ -224,16 +217,17 @@ // Text colors TRgb textColor; AknsUtils::GetCachedColor( AknsUtils::SkinInstance(), textColor, - KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6 ); + KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG19 ); TRgb highlightTextColor; AknsUtils::GetCachedColor( AknsUtils::SkinInstance(), highlightTextColor, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG11 ); CFormattedCellListBoxData::TColors colors; - colors.iText = textColor; + colors.iText = textColor; colors.iBack = iGrid->ItemDrawer()->BackColor(); colors.iHighlightedText = highlightTextColor; colors.iHighlightedBack = iGrid->ItemDrawer()->HighlightedBackColor(); iGrid->ItemDrawer()->FormattedCellData()->SetSubCellColorsL(1, colors); + iGrid->SetStrokeColors(textColor, highlightTextColor); // Setup grid observers if ( obs ) @@ -264,8 +258,6 @@ } iGridItemWidth = gridItem.Rect().Width(); - iGrid->ItemDrawer()->ColumnData()->SetDrawBackground(EFalse); - // Update state HandleDeviceStateChanged( EDeviceType ); if( wasHighlight ) @@ -277,6 +269,10 @@ iGrid->HideHighlight(); } + HBufC* text = StringLoader::LoadLC( R_TS_FSW_NO_APPS ); + iGrid->SetEmptyGridTextL( *text ); + CleanupStack::PopAndDestroy( text ); + // Make sure that there is an ActivateL call even when we are not // called from ConstructL. (in order to have the grid's parent ptr set properly) ActivateL(); @@ -432,12 +428,14 @@ delete iArray[aIndex]; iArray.Remove( aIndex ); NotifyChange(); - if ( !aSuppressRendering ) + + // Hide highlight + if ( iGrid->GridBehaviour() == CTsFastSwapGrid::ETouchOnly ) { - RenderContentL( ETrue ); + iGrid->HideHighlight(); } - // Update item selection on the screen if last item was deleted - TInt newItemCount = GridItemCount(); + // Update selection + TInt newItemCount = GridItemCount() - 1; if ( aIndex == newItemCount ) { newItemCount--; @@ -445,9 +443,13 @@ } else { - DrawDeferred(); iGrid->SetCurrentDataIndex(selIdx); } + // Render contect + if ( !aSuppressRendering ) + { + RenderContentL( ETrue ); + } // Orientation update iPrevScreenOrientation = GetCurrentScreenOrientation(); @@ -479,7 +481,7 @@ { RenderContentL(); RestoreSelectedIndex(); - UpdateGrid(); + UpdateGrid( ETrue, EFalse ); } } @@ -544,7 +546,6 @@ // get current content from fastswap server iFSClient->GetContentL( iArray ); - SwapApplicationOrder( iArray ); #ifdef _DEBUG for ( TInt i = 0, ie = iArray.Count(); i != ie; ++i ) @@ -581,6 +582,8 @@ CleanupStack::PushL( textArray ); RArray closeItemArray; CleanupClosePushL(closeItemArray); + RArray strokeItemArray; + CleanupClosePushL(strokeItemArray); TInt variety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0; RArray rects; @@ -591,6 +594,8 @@ CleanupStack::PopAndDestroy(&rects); if ( iArray.Count() ) { + iGrid->ItemDrawer()->ColumnData()->SetDrawBackground(EFalse); + static_cast(&iParent)->EnableDragEvents(ETrue); if ( AknLayoutUtils::LayoutMirrored() ) { iGrid->SetLayoutL( EFalse, EFalse, ETrue, iArray.Count(), 1, gridItem.Rect().Size(), iGridItemGap ); @@ -600,6 +605,11 @@ iGrid->SetLayoutL( EFalse, ETrue, ETrue, iArray.Count(), 1, gridItem.Rect().Size(), iGridItemGap ); } } + else + { + iGrid->ItemDrawer()->ColumnData()->SetDrawBackground(ETrue); + static_cast(&iParent)->EnableDragEvents(EFalse); + } for ( TInt i = 0, ie = iArray.Count(); i != ie; ++i ) { @@ -623,10 +633,16 @@ CFbsBitmap* mask = 0; if ( !h ) { + // No screenshot, take app icon h = iArray[i]->AppIconBitmapHandle(); maskh = iArray[i]->AppIconMaskHandle(); TSLOG1( TSLOG_INFO, "using appicon, handle = %d", h ); } + else + { + // Screenshot exists, mark it for stroke + strokeItemArray.AppendL(i); + } __ASSERT_DEBUG( h, User::Invariant() ); bitmap = CopyBitmapL( h, sz ); CleanupStack::PushL( bitmap ); @@ -658,8 +674,10 @@ } iGrid->ItemDrawer()->FormattedCellData()->SetIconArrayL(iconArray); iGrid->SetCloseItemsL(closeItemArray); + iGrid->SetStrokeItemsL(strokeItemArray); // Cleanup + CleanupStack::PopAndDestroy(&strokeItemArray); CleanupStack::PopAndDestroy(&closeItemArray); CleanupStack::Pop(textArray); CleanupStack::Pop(iconArray); @@ -671,15 +689,7 @@ } // refresh the items in the grid - if(iPreviousNoOfItems < iArray.Count()) - { - iGrid->HandleItemAdditionL(); - } - else if(iPreviousNoOfItems > iArray.Count()) - { - iGrid->HandleItemRemovalL(); - } - iPreviousNoOfItems = iArray.Count(); + iGrid->HandleItemAdditionL(); iEvtHandler.ReInitPhysicsL( GridWorldSize(), ViewSize(), ETrue ); UpdateGrid( ETrue, !aSuppressAnimation ); @@ -703,7 +713,6 @@ // do not always use aSize, preserving the aspect ratio is quite // important when showing app icons instead of screenshots TSize sz = CalculateSizePreserveRatio( aSize, bmp->SizeInPixels() ); - User::LeaveIfError( ret->Create( sz, bmp->DisplayMode() ) ); AknIconUtils::ScaleBitmapL( sz, ret, bmp ); @@ -757,12 +766,6 @@ // Reset grid TRAP_IGNORE( ReCreateGridL() ); - - // get the current task list - HandleFswContentChanged(); - // and then start listening for changes - iFSClient->Subscribe( *this ); - if ( iDeviceState.DeviceType() == CTsDeviceState::EFullTouch ) { iGrid->HideHighlight(); @@ -772,6 +775,11 @@ iGrid->ShowHighlight(); } + // get the current task list + HandleFswContentChanged(); + // and then start listening for changes + iFSClient->Subscribe( *this ); + RestoreSelectedIndex(); UpdateGrid(EFalse, EFalse); @@ -816,7 +824,6 @@ TEventCode aType ) { iKeyEvent = ETrue; - iGrid->SetTactileFeedbackSupport(EFalse); // handle the 'clear' key if ( aType == EEventKey && aKeyEvent.iCode == EKeyBackspace ) { @@ -913,7 +920,6 @@ void CTsFastSwapArea::HandlePointerEventL( const TPointerEvent& aPointerEvent ) { iKeyEvent = EFalse; - iGrid->SetTactileFeedbackSupport(ETrue); if(aPointerEvent.iType == TPointerEvent::EButton1Down) { iTapEvent = aPointerEvent; @@ -947,7 +953,7 @@ iSavedSelectedIndex = KErrNotFound; if ( GridItemCount() ) { - // highlight second recent item (that has index 2) if possible + // highlight second recent item (that has index 1) if possible TInt highlightItem = 0; TInt count = GridItemCount(); while( highlightItem < count @@ -1137,26 +1143,6 @@ } // ----------------------------------------------------------------------------- -// CTsFastSwapArea::SwapApplicationOrder -// ----------------------------------------------------------------------------- -// -void CTsFastSwapArea::SwapApplicationOrder( - RPointerArray& aArray ) - { - for ( TInt i = 0; i < aArray.Count(); ++i ) - { - if( aArray[i]->AppUid() == KAiUid ) - { - CTsFswEntry* homescreenEntry(0); - homescreenEntry = aArray[i]; - aArray.Remove(i); - aArray.Insert(homescreenEntry, KAiPosition); - break; - } - } - } - -// ----------------------------------------------------------------------------- // CTsFastSwapArea::PreferredImageSize // ----------------------------------------------------------------------------- // @@ -1219,20 +1205,16 @@ const TSize& aTargetAreaSize, const TSize& aSourceSize ) { - TSize sz; - if ( aSourceSize.iWidth > aSourceSize.iHeight ) - { - sz.iWidth = aTargetAreaSize.iWidth; - TReal ratio = aSourceSize.iWidth / (TReal) aSourceSize.iHeight; - sz.iHeight = sz.iWidth / ratio; - } - else - { - sz.iHeight = aTargetAreaSize.iHeight; - TReal ratio = aSourceSize.iHeight / (TReal) aSourceSize.iWidth; - sz.iWidth = sz.iHeight / ratio; - } - return sz; + const TReal + resizedAspectRatio(aTargetAreaSize.iWidth/(TReal)aTargetAreaSize.iHeight); + const TReal + orginalAspectRatio(aSourceSize.iWidth/(TReal)aSourceSize.iHeight); + //this condition avoid empty margins ( bigger output ). to realy fit area change it + const TReal scaleFactor = + ( orginalAspectRatio > resizedAspectRatio ) ? + (aTargetAreaSize.iHeight /(TReal)aSourceSize.iHeight) ://scale by height + (aTargetAreaSize.iWidth /(TReal)aSourceSize.iWidth) ;//scale by width + return TSize(aSourceSize.iWidth * scaleFactor, aSourceSize.iHeight * scaleFactor); } // -------------------------------------------------------------------------- @@ -1242,7 +1224,6 @@ void CTsFastSwapArea::SelectNextItem() { iKeyEvent = ETrue; - iGrid->SetTactileFeedbackSupport(EFalse); TBool forceRedraw(ETrue); TBool animate(ETrue); TInt selectedItem = SelectedIndex(); @@ -1282,7 +1263,7 @@ TPoint absViewPos = ViewPos(); absViewPos.iX -= Rect().Width() / 2; if( !iEvtHandler.IsPhysicsRunning() && - ( absViewPos.iX < 0 || absViewPos.iX + Rect().Width() > GridWorldSize().iWidth ) + ( absViewPos.iX < 0 ||( absViewPos.iX + Rect().Width() > GridWorldSize().iWidth && GridItemCount() ) ) ) { // View is outside of grid world - update view @@ -1320,6 +1301,7 @@ } if ( aForceRedraw ) { + iParent.DrawDeferred(); iGrid->DrawNow(); } } @@ -1331,20 +1313,27 @@ // void CTsFastSwapArea::HandleAppKey(TInt aType) { - if( aType == KAppKeyTypeShort ) + if ( iArray.Count() ) { - if(iGrid->IsHighlightVisible()) + if( aType == KAppKeyTypeShort ) { - SelectNextItem(); + if(iGrid->IsHighlightVisible()) + { + SelectNextItem(); + } + else + { + iGrid->ShowHighlight(); + } } - else + else if( aType == KAppKeyTypeLong ) { - iGrid->ShowHighlight(); + SwitchToApp( SelectedIndex() ); } } - else if( aType == KAppKeyTypeLong ) + else { - SwitchToApp( SelectedIndex() ); + TRAP_IGNORE( iEikonEnv->EikAppUi()->HandleCommandL(EAknSoftkeyExit) ); } } @@ -1374,13 +1363,13 @@ gridViewRect.iTl.iX = -currentXPos; // Take edge offset into account gridViewRect.iTl.iX += Rect().iTl.iX; - if(GridItemCount() <= iMaxItemsOnScreen) + if(GridItemCount() && GridItemCount() <= iMaxItemsOnScreen) { // Center view gridViewRect.iTl.iX += ( Rect().Width() - GridItemCount() * iGridItemWidth ) / 2; } + DrawDeferred(); iGrid->SetRect( gridViewRect ); - DrawDeferred(); iLogicalViewPosOffset = 0; } else @@ -1396,7 +1385,7 @@ // void CTsFastSwapArea::TapL(const TPoint& aPoint) { - if(Rect().Contains(aPoint)) + if(Rect().Contains(aPoint) && iArray.Count()) { //provide tap pointer event to grid iGrid->HandlePointerEventL(iTapEvent); @@ -1417,7 +1406,7 @@ void CTsFastSwapArea::LongTapL(const TPoint& aPoint) { TInt index(KErrNotFound); - if( iGrid->GridView()->XYPosToItemIndex(aPoint,index) ) + if( iGrid->GridView()->XYPosToItemIndex(aPoint,index) && iArray.Count() ) { iGrid->SetCurrentItemIndex(index); SaveSelectedIndex(); @@ -1448,8 +1437,7 @@ { CenterItem( KUpdateGridTime ); } - - iGrid->SetTactileFeedbackSupport(ETrue); + iGrid->HideHighlight(); } @@ -1482,7 +1470,7 @@ retVal.iY = iGrid->Rect().iTl.iY + Rect().Height() / 2; retVal.iX = - (iGrid->Rect().iTl.iX - Rect().iTl.iX) + Rect().Width() / 2 ; TInt gridItemCount = iGrid->Model()->ItemTextArray()->MdcaCount(); - if( gridItemCount <= iMaxItemsOnScreen) + if(gridItemCount && gridItemCount <= iMaxItemsOnScreen) { // View centered retVal.iX += ( Rect().Width() - gridItemCount * iGridItemWidth ) / 2; @@ -1498,7 +1486,12 @@ TPoint CTsFastSwapArea::ItemViewPosition( TInt aItemIdx ) { TPoint retVal = Rect().iTl; - if ( aItemIdx == 0 ) + if ( aItemIdx < 0 ) + { + // No items + retVal.iX = 0; + } + else if ( aItemIdx == 0 ) { // First item if( AknLayoutUtils::LayoutMirrored() ) diff -r 9674c1a575e9 -r b8fae6b8a148 taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapgrid.cpp --- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapgrid.cpp Mon Mar 15 12:39:47 2010 +0200 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapgrid.cpp Wed Mar 31 21:17:19 2010 +0300 @@ -31,7 +31,8 @@ */ const TInt KCloseIconRedrawTime = 300000; // 0.3 second -const TInt KFeedbackTime = 0; + +const TInt KStrokeThickness = 1; // ----------------------------------------------------------------------------- // CTsFastSwapGrid::CTsFastSwapGrid @@ -53,11 +54,7 @@ CTsFastSwapGrid::~CTsFastSwapGrid() { iCloseItems.Close(); - delete iBgContext; delete iCloseIconRedrawTimer; - delete iFeedbackTimer; - iFullyVisibleItems.Close(); - iPartialVisibleItems.Close(); } // ----------------------------------------------------------------------------- @@ -73,16 +70,8 @@ CAknGrid::ConstructL( aParent, EAknListBoxSelectionGrid ); SetPrimaryScrollingType(CAknGridView::EScrollFollowsItemsAndLoops); SetSecondaryScrollingType(CAknGridView::EScrollFollowsItemsAndLoops); - iBgContext = CAknsFrameBackgroundControlContext::NewL( - KAknsIIDQsnFrPopup, - TRect(), - TRect(), - ETrue ); - iBgContext->SetCenter( KAknsIIDQsnFrPopupCenter ); iCloseIconRedrawTimer = new (ELeave) CTsFastSwapTimer( *this ); iCloseIconRedrawTimer->ConstructL(); - iFeedbackTimer = new (ELeave) CTsFastSwapTimer( *this ); - iFeedbackTimer->ConstructL(); TSLOG_OUT(); } @@ -198,25 +187,12 @@ if ( aChangeType == ESkin ) { - LoadCloseIcon(); + LoadCloseIconAndStrokeParams(); } TSLOG_OUT(); } -// ----------------------------------------------------------------------------- -// CTsFastSwapGrid::MopSupplyObject -// ----------------------------------------------------------------------------- -// -TTypeUid::Ptr CTsFastSwapGrid::MopSupplyObject( TTypeUid aId ) - { - if ( aId.iUid == MAknsControlContext::ETypeId ) - { - return MAknsControlContext::SupplyMopObject( aId, iBgContext ); - } - return CCoeControl::MopSupplyObject( aId ); - } - // ----------------------------------------------------------------------------- // CTsFastSwapGrid::HandleResourceChange @@ -247,6 +223,20 @@ // ----------------------------------------------------------------------------- +// CTsFastSwapGrid::Draw +// ----------------------------------------------------------------------------- +// +void CTsFastSwapGrid::Draw( const TRect& aRect ) const + { + CAknGrid::Draw(aRect); + if ( !Model()->ItemTextArray()->MdcaCount() ) + { + GridView()->DrawEmptyList(); + } + } + + +// ----------------------------------------------------------------------------- // CTsFastSwapGrid::SetFastSwapGridObserver // ----------------------------------------------------------------------------- // @@ -285,7 +275,7 @@ iItemDrawer = itemDrawer; CleanupStack::Pop( itemDrawer ); CleanupStack::Pop( data ); - LoadCloseIcon(); + LoadCloseIconAndStrokeParams(); TSLOG_OUT(); } @@ -302,14 +292,6 @@ ResetCloseHit(); iFastSwapGridObserver->HandleCloseEventL( itemToClose ); } - else if ( aSource == iFeedbackTimer ) - { - MTouchFeedback* feedback = MTouchFeedback::Instance(); - if (feedback) - { - feedback->InstantFeedback(ETouchFeedbackSensitive); - } - } } // ----------------------------------------------------------------------------- @@ -357,6 +339,27 @@ // ----------------------------------------------------------------------------- +// CTsFastSwapGrid::SetStrokeColor +// ----------------------------------------------------------------------------- +// +void CTsFastSwapGrid::SetStrokeColors( TRgb aColor, + TRgb aHighlightedColor ) + { + static_cast(iItemDrawer)->SetStrokeColors(aColor, aHighlightedColor); + } + + +// ----------------------------------------------------------------------------- +// CTsFastSwapGrid::SetStrokeItemsL +// ----------------------------------------------------------------------------- +// +void CTsFastSwapGrid::SetStrokeItemsL( RArray& aItemIndex ) + { + static_cast(iItemDrawer)->SetStrokeItemsL(aItemIndex); + } + + +// ----------------------------------------------------------------------------- // CTsFastSwapGrid::SetBehaviour // ----------------------------------------------------------------------------- // @@ -459,31 +462,38 @@ // ----------------------------------------------------------------------------- -// CTsFastSwapGrid::LoadCloseIconL +// CTsFastSwapGrid::LoadCloseIconAndStrokeParams // ----------------------------------------------------------------------------- // -void CTsFastSwapGrid::LoadCloseIcon() +void CTsFastSwapGrid::LoadCloseIconAndStrokeParams() { // Load and set close icon CFbsBitmap* icon = NULL; - CFbsBitmap* mask = NULL; - - TRAP_IGNORE(AknsUtils::CreateColorIconLC( AknsUtils::SkinInstance(), - KAknsIIDQgnIndiItutListCollapse, - KAknsIIDQsnTextColors, // we use text color here, eventhough this is an icon - EAknsCIQsnTextColorsCG13, // softkey text color + CFbsBitmap* iconMask = NULL; + CFbsBitmap* iconPressed = NULL; + CFbsBitmap* iconPressedMask = NULL; + + TRAP_IGNORE(AknsUtils::CreateIconL( AknsUtils::SkinInstance(), + KAknsIIDQgnIndiTsButtonClose, icon, - mask, + iconMask, KAvkonBitmapFile, EMbmAvkonQgn_indi_button_preview_close, - EMbmAvkonQgn_indi_button_preview_close_mask, - KRgbWhite - ); - CleanupStack::Pop( 2 ); // codescanner::cleanup - ); + EMbmAvkonQgn_indi_button_preview_close_mask + )); + + TRAP_IGNORE(AknsUtils::CreateIconL( AknsUtils::SkinInstance(), + KAknsIIDQgnIndiTsButtonClosePressed, + iconPressed, + iconPressedMask, + KAvkonBitmapFile, + EMbmAvkonQgn_indi_button_preview_close, + EMbmAvkonQgn_indi_button_preview_close_mask + )); TAknLayoutRect gridAppPane; TAknLayoutRect gridItem; + TAknLayoutRect gridImage; TAknLayoutRect gridCloseButton; TAknLayoutRect gridCloseIcon; TInt variety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0; @@ -492,15 +502,21 @@ AknLayoutScalable_Apps::tport_appsw_pane( variety ) ); gridItem.LayoutRect( gridAppPane.Rect(), AknLayoutScalable_Apps::cell_tport_appsw_pane( variety, 0, 0 ) ); + gridImage.LayoutRect( gridItem.Rect(), + AknLayoutScalable_Apps::cell_tport_appsw_pane_g1( variety ) ); gridCloseButton.LayoutRect( gridItem.Rect(), AknLayoutScalable_Apps::bg_button_pane_cp16( variety, 0, 0 )); gridCloseIcon.LayoutRect( gridItem.Rect(), AknLayoutScalable_Apps::cell_tport_appsw_pane_g3( variety, 0, 0 )); + + // Set icon size AknIconUtils::SetSize( icon, gridCloseIcon.Rect().Size(), EAspectRatioPreserved ); - AknIconUtils::SetSize( mask, gridCloseIcon.Rect().Size(), EAspectRatioPreserved ); + AknIconUtils::SetSize( iconPressed, gridCloseIcon.Rect().Size(), EAspectRatioPreserved ); CTsGridItemDrawer* itemDrawer = static_cast(iItemDrawer); - itemDrawer->SetCloseIcon( icon, mask ); + + // Setup close parameters + itemDrawer->SetCloseIcon( icon, iconMask, iconPressed, iconPressedMask ); TRect relGridCloseButton = TRect( TPoint( gridCloseButton.Rect().iTl.iX - gridItem.Rect().iTl.iX, gridCloseButton.Rect().iTl.iY - gridItem.Rect().iTl.iY), gridCloseButton.Rect().Size() ); @@ -508,6 +524,15 @@ gridCloseIcon.Rect().iTl.iY - gridItem.Rect().iTl.iY), gridCloseIcon.Rect().Size() ); itemDrawer->SetCloseIconRect( relGridCloseButton, relGridCloseIconRect ); + + // Setup stroke parameters + TPoint strokeOffset; + strokeOffset.iX = gridImage.Rect().iTl.iX - gridItem.Rect().iTl.iX - KStrokeThickness; + strokeOffset.iY = gridImage.Rect().iTl.iY - gridItem.Rect().iTl.iY - KStrokeThickness; + TSize strokeSize = gridImage.Rect().Size(); + strokeSize.iHeight += KStrokeThickness * 2; + strokeSize.iWidth += KStrokeThickness * 2; + itemDrawer->SetStrokeOffset( strokeOffset, strokeSize ); } @@ -530,96 +555,8 @@ } } -// ----------------------------------------------------------------------------- -// CTsFastSwapGrid::LaunchTactileFeedback -// ----------------------------------------------------------------------------- -// -void CTsFastSwapGrid::LaunchTactileFeedback() - { - if( !iTactileFeedbackSupport ) - { - return; - } - - iFeedbackTimer->Cancel(); - iFeedbackTimer->After(KFeedbackTime); - } - -// ----------------------------------------------------------------------------- -// CTsFastSwapGrid::SetTactileFeedbackSupport -// ----------------------------------------------------------------------------- -// -void CTsFastSwapGrid::SetTactileFeedbackSupport(TBool aSupport) - { - iTactileFeedbackSupport = aSupport; - } -// ----------------------------------------------------------------------------- -// CTsFastSwapGrid::RemoveFromVisibleItems -// ----------------------------------------------------------------------------- -// -TBool CTsFastSwapGrid::RemoveFromVisibleItems(TInt aItem) const - { - TBool retVal(EFalse); - TInt idx(0); - idx = iFullyVisibleItems.Find(aItem); - if( idx >= 0) - { - iFullyVisibleItems.Remove(idx); - retVal = ETrue; - } - idx = iPartialVisibleItems.Find( aItem ); - if( idx >= 0) - { - iPartialVisibleItems.Remove(idx); - retVal = ETrue; - } - return retVal; - } - -// ----------------------------------------------------------------------------- -// CTsFastSwapGrid::AddToFullyVisibleItems -// ----------------------------------------------------------------------------- -// -TBool CTsFastSwapGrid::AddToFullyVisibleItems( TInt aItem ) const - { - TBool retVal(EFalse); - TInt idx(0); - - idx = iPartialVisibleItems.Find(aItem); - if( idx >= 0) - { - iPartialVisibleItems.Remove(idx); - } - idx = iFullyVisibleItems.Find( aItem ); - if( idx == KErrNotFound ) - { - iFullyVisibleItems.Append(aItem); - retVal = ETrue; - } - return retVal; - } - -// ----------------------------------------------------------------------------- -// CTsFastSwapGrid::MoveToPartialVisibleItems -// ----------------------------------------------------------------------------- -// -TBool CTsFastSwapGrid::MoveToPartialVisibleItems( TInt aItem ) const - { - TInt idx(0); - idx = iFullyVisibleItems.Find(aItem); - if( idx >= 0) - { - iFullyVisibleItems.Remove(idx); - } - idx = iPartialVisibleItems.Find( aItem ); - if( idx == KErrNotFound ) - { - iPartialVisibleItems.Append(aItem); - } - return EFalse; - } /* ================================================================================ * CTsGridItemDrawer @@ -638,7 +575,9 @@ NULL, aData ), iGrid( aGrid ), - iScreenRect(aScreenRect) + iScreenRect( aScreenRect ), + iStrokeColor( KRgbBlack ), + iHighlightStrokeColor( KRgbBlack ) { } @@ -651,6 +590,9 @@ { delete iCloseIcon; delete iCloseIconMask; + delete iCloseIconPressed; + delete iCloseIconPressedMask; + iStrokeItems.Close(); } @@ -658,12 +600,17 @@ // CTsGridItemDrawer::SetCloseIcon // ----------------------------------------------------------------------------- // -void CTsGridItemDrawer::SetCloseIcon( CFbsBitmap* aBmp, CFbsBitmap* aMask ) +void CTsGridItemDrawer::SetCloseIcon( CFbsBitmap* aBmp, CFbsBitmap* aBmpMask, + CFbsBitmap* aBmpPressed, CFbsBitmap* aBmpPressedMask ) { delete iCloseIcon; iCloseIcon = aBmp; delete iCloseIconMask; - iCloseIconMask = aMask; + iCloseIconMask = aBmpMask; + delete iCloseIconPressed; + iCloseIconPressed = aBmpPressed; + delete iCloseIconPressedMask; + iCloseIconPressedMask = aBmpPressedMask; } @@ -714,6 +661,42 @@ // ----------------------------------------------------------------------------- +// CTsGridItemDrawer::SetStrokeColor +// ----------------------------------------------------------------------------- +// +void CTsGridItemDrawer::SetStrokeColors( TRgb aColor, + TRgb aHighlightedColor ) + { + iStrokeColor = aColor; + iHighlightStrokeColor = aHighlightedColor; + } + + +// ----------------------------------------------------------------------------- +// CTsGridItemDrawer::SetStrokeItemsL +// ----------------------------------------------------------------------------- +// +void CTsGridItemDrawer::SetStrokeItemsL( RArray& aItemIndex ) + { + iStrokeItems.Close(); + for ( TInt i = 0; i < aItemIndex.Count(); i++ ) + { + iStrokeItems.AppendL( aItemIndex[i] ); + } + } + + +// ----------------------------------------------------------------------------- +// CTsGridItemDrawer::SetStrokeOffset +// ----------------------------------------------------------------------------- +// +void CTsGridItemDrawer::SetStrokeOffset( TPoint aStrokeOffset, TSize aStrokeSize ) + { + iStrokeRect = TRect( aStrokeOffset, aStrokeSize ); + } + + +// ----------------------------------------------------------------------------- // CTsGridItemDrawer::DrawActualItem // ----------------------------------------------------------------------------- // @@ -721,8 +704,6 @@ TBool aItemIsCurrent, TBool aViewIsEmphasized, TBool aViewIsDimmed, TBool aItemIsSelected ) const { - TBool feedbackNeed(EFalse);//feedback when item disappear or fully appear - if (IsItemRectVisible(aActualItemRect)) { // Calculate offset of the visible rectangle @@ -736,15 +717,6 @@ drawRect.iBr.iX = iScreenRect.Width() - iRightOffset; } iGc->SetClippingRect(drawRect); - - if(IsRectContained( aActualItemRect, drawRect )) - { - feedbackNeed = iGrid->AddToFullyVisibleItems( aItemIndex ); - } - else - { - feedbackNeed = iGrid->MoveToPartialVisibleItems( aItemIndex ); - } // Check for item highlight TBool itemIsCurrent = !iGrid->IsHighlightVisible() ? EFalse : aItemIsCurrent; @@ -769,7 +741,25 @@ CFormattedCellListBoxItemDrawer::DrawActualItem(aItemIndex, aActualItemRect, itemIsCurrent, aViewIsEmphasized, aViewIsDimmed, aItemIsSelected ); - if ( iGrid->CanCloseItem( aItemIndex ) && iCloseIcon && iCloseIconMask ) + // Draw stroke + if ( iStrokeItems.Find( aItemIndex ) != KErrNotFound ) + { + TRect strokeRect = iStrokeRect; + strokeRect.Move( aActualItemRect.iTl ); + if ( itemIsCurrent ) + { + iGc->SetPenColor( iHighlightStrokeColor ); + } + else + { + iGc->SetPenColor( iStrokeColor ); + } + // Thumbnail stroke + iGc->DrawRect( strokeRect ); + } + + // Draw close button + if ( iGrid->CanCloseItem( aItemIndex ) && iCloseIcon && iCloseIconPressed ) { TRect closeIconRect = GetCloseButtonRect( aActualItemRect ); // Draw frame @@ -778,27 +768,24 @@ MAknsSkinInstance* skin = AknsUtils::SkinInstance(); if ( iGrid->IsItemCloseHit( aItemIndex ) ) { - AknsDrawUtils::DrawFrame(skin, *iGc, outerRect, innerRect, - KAknsIIDQgnFrSctrlButtonPressed, KAknsIIDQgnFrSctrlButtonCenterPressed); + TRect sourceRect( TPoint(0,0), iCloseIconPressed->SizeInPixels() ); + iGc->DrawBitmapMasked( innerRect, + iCloseIconPressed, + sourceRect, + iCloseIconPressedMask, + ETrue ); } else { - AknsDrawUtils::DrawFrame(skin, *iGc, outerRect, innerRect, - KAknsIIDQgnFrSctrlButton, KAknsIIDQgnFrSctrlButtonCenter); + TRect sourceRect( TPoint(0,0), iCloseIcon->SizeInPixels() ); + iGc->DrawBitmapMasked( innerRect, + iCloseIcon, + sourceRect, + iCloseIconMask, + ETrue ); } - // Draw close icon - TRect sourceRect( TPoint(0,0), iCloseIcon->SizeInPixels() ); - iGc->DrawBitmapMasked( innerRect, iCloseIcon, sourceRect, iCloseIconMask, ETrue ); } } - else - { - feedbackNeed = iGrid->RemoveFromVisibleItems(aItemIndex); - } - if(feedbackNeed) - { - iGrid->LaunchTactileFeedback(); - } } // -----------------------------------------------------------------------------