# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1284541200 -10800 # Node ID b01126ce0bec58f9a232ec53ce2a66e3bb703609 # Parent 3321d3e205b60df74896ea89b7ad1959443d4537 Revision: 201035 Kit: 201036 diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/common/view_200286ed/conf/view200286ed.confml --- a/idlehomescreen/data/common/view_200286ed/conf/view200286ed.confml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/common/view_200286ed/conf/view200286ed.confml Wed Sep 15 12:00:00 2010 +0300 @@ -1,6 +1,12 @@ + + The Qhd touch is a supported display type of the xuikon homescreen + + + The Vga touch is a supported display type of the xuikon homescreen + Widgets on Blanko Homescreen @@ -84,13 +90,8 @@ - + true + true + \ No newline at end of file diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/common/view_200286ed/conf/view200286edmanifest.confml Binary file idlehomescreen/data/common/view_200286ed/conf/view200286edmanifest.confml has changed diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/common/view_200286ed/conf/view200286edxuikon.confml Binary file idlehomescreen/data/common/view_200286ed/conf/view200286edxuikon.confml has changed diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/group/bld.inf --- a/idlehomescreen/data/group/bld.inf Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/group/bld.inf Wed Sep 15 12:00:00 2010 +0300 @@ -17,7 +17,7 @@ #include "../common/group/bld.inf" -// #include "../vga_tch/group/bld.inf" // Buzzidle +#include "../vga_tch/group/bld.inf" // Buzzidle #include "../qhd_tch/group/bld.inf" // Flashidle PRJ_PLATFORMS diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.confml Binary file idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.confml has changed diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.gcfml --- a/idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.gcfml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.gcfml Wed Sep 15 12:00:00 2010 +0300 @@ -1,5 +1,5 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.css --- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: ltr; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins @@ -23,7 +25,7 @@ margin-bottom: 4px; margin-right: 5px; margin-left: 5px; - + _s60-longtap: true; nav-index: appearance; @@ -48,7 +50,7 @@ { _s60-longtap: true; _s60-aspect-ratio: preserve; -} +} softkey#msk_ltr { @@ -59,3 +61,4 @@ { display: none; } + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/37/templateview.css --- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/37/templateview.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/37/templateview.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: rtl; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins @@ -23,7 +25,7 @@ margin-bottom: 4px; margin-right: 5px; margin-left: 5px; - + _s60-longtap: true; nav-index: appearance; @@ -48,7 +50,7 @@ { _s60-longtap: true; _s60-aspect-ratio: preserve; -} +} softkey#msk_ltr { @@ -59,3 +61,4 @@ { display: block; } + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/50/templateview.css --- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/50/templateview.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/50/templateview.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: rtl; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins @@ -23,7 +25,7 @@ margin-bottom: 4px; margin-right: 5px; margin-left: 5px; - + _s60-longtap: true; nav-index: appearance; @@ -48,7 +50,7 @@ { _s60-longtap: true; _s60-aspect-ratio: preserve; -} +} softkey#msk_ltr { @@ -59,3 +61,4 @@ { display: block; } + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/57/templateview.css --- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/57/templateview.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/57/templateview.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: rtl; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins @@ -23,7 +25,7 @@ margin-bottom: 4px; margin-right: 5px; margin-left: 5px; - + _s60-longtap: true; nav-index: appearance; @@ -48,7 +50,7 @@ { _s60-longtap: true; _s60-aspect-ratio: preserve; -} +} softkey#msk_ltr { @@ -59,3 +61,4 @@ { display: block; } + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/94/templateview.css --- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/94/templateview.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/94/templateview.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: rtl; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins @@ -23,7 +25,7 @@ margin-bottom: 4px; margin-right: 5px; margin-left: 5px; - + _s60-longtap: true; nav-index: appearance; @@ -48,7 +50,7 @@ { _s60-longtap: true; _s60-aspect-ratio: preserve; -} +} softkey#msk_ltr { @@ -59,3 +61,4 @@ { display: block; } + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.confml --- a/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.confml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.confml Wed Sep 15 12:00:00 2010 +0300 @@ -1,6 +1,12 @@ + + The Qhd touch is a supported display type of the xuikon homescreen + + + The Vga touch is a supported display type of the xuikon homescreen + Maximum widget amount in Homescreen 1 page. Customizable @@ -26,7 +32,6 @@ Widgets in the Homescreen 1 Widget name - + true + true 6 true hs_qhd_tch_view diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.gcfml --- a/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.gcfml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.gcfml Wed Sep 15 12:00:00 2010 +0300 @@ -1,10 +1,9 @@ - + - diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bmanifest.confml Binary file idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bmanifest.confml has changed diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bmanifest.gcfml --- a/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bmanifest.gcfml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bmanifest.gcfml Wed Sep 15 12:00:00 2010 +0300 @@ -1,5 +1,5 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bxuikon.confml Binary file idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bxuikon.confml has changed diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bxuikon.gcfml --- a/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bxuikon.gcfml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bxuikon.gcfml Wed Sep 15 12:00:00 2010 +0300 @@ -1,5 +1,5 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.css --- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: ltr; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/37/View.css --- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/37/View.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/37/View.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: rtl; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/50/View.css --- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/50/View.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/50/View.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: rtl; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/57/View.css --- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/57/View.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/57/View.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: rtl; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/94/View.css --- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/94/View.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/94/View.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: rtl; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0.confml --- a/idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0.confml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0.confml Wed Sep 15 12:00:00 2010 +0300 @@ -1,6 +1,12 @@ + + The Qhd touch is a supported display type of the xuikon homescreen + + + The Vga touch is a supported display type of the xuikon homescreen + Maximum widget amount in Homescreen 4 page. Customizable @@ -247,6 +253,8 @@ + true + true 6 true hs_qhd_tch_view diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0.gcfml --- a/idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0.gcfml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0.gcfml Wed Sep 15 12:00:00 2010 +0300 @@ -1,5 +1,5 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0manifest.confml --- a/idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0manifest.confml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0manifest.confml Wed Sep 15 12:00:00 2010 +0300 @@ -1,6 +1,12 @@ - + + + The Qhd touch is a supported display type of the xuikon homescreen + + + The Vga touch is a supported display type of the xuikon homescreen + + true + true 2.0 qhd_tch view diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0manifest.gcfml --- a/idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0manifest.gcfml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0manifest.gcfml Wed Sep 15 12:00:00 2010 +0300 @@ -1,5 +1,5 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0xuikon.confml --- a/idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0xuikon.confml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0xuikon.confml Wed Sep 15 12:00:00 2010 +0300 @@ -1,9 +1,18 @@ + + + The Qhd touch is a supported display type of the xuikon homescreen + + + The Vga touch is a supported display type of the xuikon homescreen + - + + true + true foo diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0xuikon.gcfml --- a/idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0xuikon.gcfml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0xuikon.gcfml Wed Sep 15 12:00:00 2010 +0300 @@ -1,5 +1,5 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/00/View.css --- a/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/00/View.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/00/View.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: ltr; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins @@ -29,11 +31,6 @@ nav-index: appearance; } -plugin:edit -{ - background-color:"SKIN(270501603 8582)"; -} - trigger#hs_popup_open_hold:edit { display: none; diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/37/View.css --- a/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/37/View.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/37/View.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: rtl; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins @@ -23,13 +25,10 @@ margin-bottom: 4px; margin-right: 5px; margin-left: 5px; + _s60-longtap: true; - nav-index: appearance; -} -plugin:edit -{ - background-color:"SKIN(270501603 8582)"; + nav-index: appearance; } trigger#hs_popup_open_hold:edit diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/50/View.css --- a/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/50/View.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/50/View.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: rtl; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins @@ -23,13 +25,10 @@ margin-bottom: 4px; margin-right: 5px; margin-left: 5px; + _s60-longtap: true; - nav-index: appearance; -} -plugin:edit -{ - background-color:"SKIN(270501603 8582)"; + nav-index: appearance; } trigger#hs_popup_open_hold:edit diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/57/View.css --- a/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/57/View.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/57/View.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: rtl; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins @@ -23,13 +25,10 @@ margin-bottom: 4px; margin-right: 5px; margin-left: 5px; + _s60-longtap: true; - nav-index: appearance; -} -plugin:edit -{ - background-color:"SKIN(270501603 8582)"; + nav-index: appearance; } trigger#hs_popup_open_hold:edit diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/94/View.css --- a/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/94/View.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/94/View.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: rtl; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins @@ -23,13 +25,10 @@ margin-bottom: 4px; margin-right: 5px; margin-left: 5px; + _s60-longtap: true; - nav-index: appearance; -} -plugin:edit -{ - background-color:"SKIN(270501603 8582)"; + nav-index: appearance; } trigger#hs_popup_open_hold:edit diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.confml --- a/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.confml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.confml Wed Sep 15 12:00:00 2010 +0300 @@ -1,6 +1,12 @@ + + The Qhd touch is a supported display type of the xuikon homescreen + + + The Vga touch is a supported display type of the xuikon homescreen + Maximum widget amount in Homescreen 2 page. Customizable @@ -26,7 +32,6 @@ Widgets in the Homescreen 2 Widget name - + true + true 6 true hs_qhd_tch_view diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.gcfml --- a/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.gcfml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.gcfml Wed Sep 15 12:00:00 2010 +0300 @@ -1,5 +1,5 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4manifest.confml Binary file idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4manifest.confml has changed diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4manifest.gcfml --- a/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4manifest.gcfml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4manifest.gcfml Wed Sep 15 12:00:00 2010 +0300 @@ -1,5 +1,5 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4xuikon.confml Binary file idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4xuikon.confml has changed diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4xuikon.gcfml --- a/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4xuikon.gcfml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4xuikon.gcfml Wed Sep 15 12:00:00 2010 +0300 @@ -1,5 +1,5 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.css --- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: ltr; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins @@ -29,11 +31,6 @@ nav-index: appearance; } -plugin:edit -{ - background-color:"SKIN(270501603 8582)"; -} - trigger#hs_popup_open_hold:edit { display: none; diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_200286e4/xuikon/37/View.css --- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/37/View.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/37/View.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: rtl; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins @@ -23,13 +25,10 @@ margin-bottom: 4px; margin-right: 5px; margin-left: 5px; + _s60-longtap: true; - nav-index: appearance; -} -plugin:edit -{ - background-color:"SKIN(270501603 8582)"; + nav-index: appearance; } trigger#hs_popup_open_hold:edit diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_200286e4/xuikon/50/View.css --- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/50/View.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/50/View.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: rtl; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins @@ -23,13 +25,10 @@ margin-bottom: 4px; margin-right: 5px; margin-left: 5px; + _s60-longtap: true; - nav-index: appearance; -} -plugin:edit -{ - background-color:"SKIN(270501603 8582)"; + nav-index: appearance; } trigger#hs_popup_open_hold:edit diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_200286e4/xuikon/57/View.css --- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/57/View.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/57/View.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: rtl; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins @@ -23,13 +25,10 @@ margin-bottom: 4px; margin-right: 5px; margin-left: 5px; + _s60-longtap: true; - nav-index: appearance; -} -plugin:edit -{ - background-color:"SKIN(270501603 8582)"; + nav-index: appearance; } trigger#hs_popup_open_hold:edit diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_200286e4/xuikon/94/View.css --- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/94/View.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/94/View.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: rtl; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins @@ -23,13 +25,10 @@ margin-bottom: 4px; margin-right: 5px; margin-left: 5px; + _s60-longtap: true; - nav-index: appearance; -} -plugin:edit -{ - background-color:"SKIN(270501603 8582)"; + nav-index: appearance; } trigger#hs_popup_open_hold:edit diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.confml --- a/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.confml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.confml Wed Sep 15 12:00:00 2010 +0300 @@ -1,6 +1,12 @@ + + The Qhd touch is a supported display type of the xuikon homescreen + + + The Vga touch is a supported display type of the xuikon homescreen + Maximum widget amount in Homescreen 3 page. Customizable @@ -26,7 +32,6 @@ Widgets in the Homescreen 3 Widget name - + true + true 6 true hs_qhd_tch_view diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.gcfml --- a/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.gcfml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.gcfml Wed Sep 15 12:00:00 2010 +0300 @@ -1,5 +1,5 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5manifest.confml Binary file idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5manifest.confml has changed diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5manifest.gcfml --- a/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5manifest.gcfml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5manifest.gcfml Wed Sep 15 12:00:00 2010 +0300 @@ -1,5 +1,5 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5xuikon.confml Binary file idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5xuikon.confml has changed diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5xuikon.gcfml --- a/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5xuikon.gcfml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5xuikon.gcfml Wed Sep 15 12:00:00 2010 +0300 @@ -1,5 +1,5 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.css --- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: ltr; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins @@ -29,11 +31,6 @@ nav-index: appearance; } -plugin:edit -{ - background-color:"SKIN(270501603 8582)"; -} - trigger#hs_popup_open_hold:edit { display: none; diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_200286e5/xuikon/37/View.css --- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/37/View.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/37/View.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: rtl; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins @@ -23,13 +25,10 @@ margin-bottom: 4px; margin-right: 5px; margin-left: 5px; + _s60-longtap: true; - nav-index: appearance; -} -plugin:edit -{ - background-color:"SKIN(270501603 8582)"; + nav-index: appearance; } trigger#hs_popup_open_hold:edit diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_200286e5/xuikon/50/View.css --- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/50/View.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/50/View.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: rtl; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins @@ -23,13 +25,10 @@ margin-bottom: 4px; margin-right: 5px; margin-left: 5px; + _s60-longtap: true; - nav-index: appearance; -} -plugin:edit -{ - background-color:"SKIN(270501603 8582)"; + nav-index: appearance; } trigger#hs_popup_open_hold:edit diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_200286e5/xuikon/57/View.css --- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/57/View.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/57/View.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: rtl; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins @@ -23,13 +25,10 @@ margin-bottom: 4px; margin-right: 5px; margin-left: 5px; + _s60-longtap: true; - nav-index: appearance; -} -plugin:edit -{ - background-color:"SKIN(270501603 8582)"; + nav-index: appearance; } trigger#hs_popup_open_hold:edit diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/qhd_tch/view_200286e5/xuikon/94/View.css --- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/94/View.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/94/View.css Wed Sep 15 12:00:00 2010 +0300 @@ -13,6 +13,8 @@ direction: rtl; block-progression: rl; padding-top: 3px; + padding-left: 17px; + padding-right: 17px; } plugin.plugins @@ -23,13 +25,10 @@ margin-bottom: 4px; margin-right: 5px; margin-left: 5px; + _s60-longtap: true; - nav-index: appearance; -} -plugin:edit -{ - background-color:"SKIN(270501603 8582)"; + nav-index: appearance; } trigger#hs_popup_open_hold:edit diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.css --- a/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.css Wed Sep 15 12:00:00 2010 +0300 @@ -4,7 +4,6 @@ height: 115px; _s60-font-size: 48px; color: "SKIN(268458534 13056 74)"; - background-color: "SKIN(268458534 9916)"; nav-index: appearance; } @@ -16,6 +15,7 @@ width: 102px; height: 59px; text-align: right; + font-family: EAknLogicalFontPrimaryFont; } ampm @@ -27,6 +27,7 @@ left: 124px; text-align: left; _s60-font-size: 28px; + font-family: EAknLogicalFontSecondaryFont; } face24 @@ -35,6 +36,7 @@ top: 14px; width: auto; height: 59px; + font-family: EAknLogicalFontPrimaryFont; } date @@ -44,14 +46,26 @@ width: auto; height: 28px; _s60-font-size: 26px; + font-family: EAknLogicalFontSecondaryFont; +} + +day +{ + position: absolute; + top: 44px; + left: 117px; + width: 32px; + height: 28px; + _s60-font-size: 28px; + font-family: EAknLogicalFontSecondaryFont; } face { - width: auto; - height: auto; - - margin-left: 6px; - margin-right: 6px; - margin-bottom: 5px; + margin-left: 4px; + margin-right: 4px; + margin-top: 4px; + margin-bottom: 4px; + + face-adjustment-value: 20; } diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.xml --- a/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.xml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.xml Wed Sep 15 12:00:00 2010 +0300 @@ -10,6 +10,7 @@ + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/desktop_20018eee/hsps/00/manifest.dat --- a/idlehomescreen/data/vga_tch/desktop_20018eee/hsps/00/manifest.dat Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/desktop_20018eee/hsps/00/manifest.dat Wed Sep 15 12:00:00 2010 +0300 @@ -23,7 +23,7 @@ widgetconfiguration.xml - + unlimited diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/group/bld.inf --- a/idlehomescreen/data/vga_tch/group/bld.inf Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/group/bld.inf Wed Sep 15 12:00:00 2010 +0300 @@ -30,6 +30,11 @@ #include "../view3_200286eb/group/bld.inf" #include "../templateview_200286ec/group/bld.inf" #include "../wideimage_10009dff/group/bld.inf" +#include "../onerow_200315c2/group/bld.inf" +#include "../tworows_200315c3/group/bld.inf" +#include "../threerows_200315c4/group/bld.inf" +#include "../threetextrows_200315c5/group/bld.inf" +#include "../posterwideimage_200315c6/group/bld.inf" PRJ_PLATFORMS DEFAULT diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/onerow_200315c2/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/onerow_200315c2/group/bld.inf Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,67 @@ +/* +* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* The information required for building +* +*/ + +#include + +PRJ_PLATFORMS +DEFAULT + +PRJ_EXPORTS +// Support for productization and Carbide.Ui customization +//******************************************************** +../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/onerow_200315c2/hsps/manifest.dat +../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/onerow_200315c2/hsps/widgetconfiguration.xml +../xuikon/00/onerow.dat /epoc32/data/Z/resource/homescreen/onerow_200315c2/xuikon/onerow_200315c2.dat +../xuikon/00/onerow.css /epoc32/data/Z/resource/homescreen/onerow_200315c2/xuikon/onerow.css +../xuikon/00/onerow.xml /epoc32/data/Z/resource/homescreen/onerow_200315c2/xuikon/onerow.xml + +// Arabic languages +//***************** +../xuikon/37/onerow.css /epoc32/data/Z/resource/homescreen/onerow_200315c2/xuikon/37/onerow.css +../xuikon/50/onerow.css /epoc32/data/Z/resource/homescreen/onerow_200315c2/xuikon/50/onerow.css +../xuikon/57/onerow.css /epoc32/data/Z/resource/homescreen/onerow_200315c2/xuikon/57/onerow.css +../xuikon/94/onerow.css /epoc32/data/Z/resource/homescreen/onerow_200315c2/xuikon/94/onerow.css + + +// Support for S60 builds +//*********************** +// export iby files +../rom/onerow_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(onerow_200315c2_resources.iby) +../rom/onerow_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(onerow_200315c2_customer.iby) +../rom/onerow_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(onerow_200315c2_variant.iby) +../rom/onerow.iby CORE_APP_LAYER_IBY_EXPORT_PATH(onerow_200315c2.iby) + +// Dtd-localization +//***************** +PRJ_EXTENSIONS +START EXTENSION tools/dtd +OPTION SWITCH_LOC_FILE_NAME onerow_200315c2 +OPTION DTD_TYPE widget +OPTION LOC_FOLDERS yes +END + + +PRJ_MMPFILES + +PRJ_TESTMMPFILES + +// End of File + + + + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/onerow_200315c2/hsps/00/manifest.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/onerow_200315c2/hsps/00/manifest.dat Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,63 @@ + + + + + + + vga_tch + + + + template + + + + + + 0x2001f48a + + + + + + 0x101fb657 + + + + + + 0x200315c2 + + + + + + onerow + + oner + + 1.0 + + + + + + widgetconfiguration.xml + + + + + + + + + + + + onerow.o0000 + + + + + + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/onerow_200315c2/hsps/00/widgetconfiguration.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/onerow_200315c2/hsps/00/widgetconfiguration.xml Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/onerow_200315c2/rom/onerow.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/onerow_200315c2/rom/onerow.iby Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Onerow widget HSPS-plugin IBY file. +* +*/ + +#ifndef __ONEROW_200315C2_IBY__ +#define __ONEROW_200315C2_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools +data=ZPRIVATE\200159c0\install\onerow_200315c2\hsps\00\manifest.dat \private\200159c0\install\onerow_200315c2\hsps\00\manifest.dat + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __ONEROW_200315C2_IBY__ diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/onerow_200315c2/rom/onerow_customer.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/onerow_200315c2/rom/onerow_customer.iby Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Onerow widget HSPS-plugin language specific IBY file. +* +*/ + +#ifndef __ONEROW_200315C2_CUSTOMER_IBY__ +#define __ONEROW_200315C2_CUSTOMER_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools, language specific +data=ZPRIVATE\200159c0\install\onerow_200315c2\xuikon\00\onerow.o0000 \private\200159c0\install\onerow_200315c2\xuikon\00\onerow.o0000 + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __ONEROW_200315C2_CUSTOMER_IBY__ diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/onerow_200315c2/rom/onerow_resources.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/onerow_200315c2/rom/onerow_resources.iby Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,40 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Onerow widget HSPS-plugin language specific IBY file. +* +*/ + +#ifndef __ONEROW_200315C2_RESOURCES_IBY__ +#define __ONEROW_200315C2_RESOURCES_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools, language specific +#if defined (__LOCALES_37_IBY__) +data=ZPRIVATE\200159c0\install\onerow_200315c2\xuikon\37\onerow.o0037 \private\200159c0\install\onerow_200315c2\xuikon\37\onerow.o0037 +#endif +#if defined (__LOCALES_50_IBY__) +data=ZPRIVATE\200159c0\install\onerow_200315c2\xuikon\50\onerow.o0050 \private\200159c0\install\onerow_200315c2\xuikon\50\onerow.o0050 +#endif +#if defined (__LOCALES_57_IBY__) +data=ZPRIVATE\200159c0\install\onerow_200315c2\xuikon\57\onerow.o0057 \private\200159c0\install\onerow_200315c2\xuikon\57\onerow.o0057 +#endif +#if defined (__LOCALES_94_IBY__) +data=ZPRIVATE\200159c0\install\onerow_200315c2\xuikon\94\onerow.o0094 \private\200159c0\install\onerow_200315c2\xuikon\94\onerow.o0094 +#endif + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __ONEROW_200315C2_RESOURCES_IBY__ diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/onerow_200315c2/rom/onerow_variant.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/onerow_200315c2/rom/onerow_variant.iby Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Onerow widget HSPS-plugin variant specific IBY file. +* +*/ + +#ifndef __ONEROW_200315C2_VARIANT_IBY__ +#define __ONEROW_200315C2_VARIANT_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by variation tools, variant specific +data=ZPRIVATE\200159c0\install\onerow_200315c2\hsps\00\widgetconfiguration.xml \private\200159c0\install\onerow_200315c2\hsps\00\widgetconfiguration.xml + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __ONEROW_200315C2_VARIANT_IBY__ diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/onerow_200315c2/xuikon/00/onerow.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/onerow_200315c2/xuikon/00/onerow.css Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,40 @@ +widget#onerow_template +{ + block-progression:rl; + +} + +image#image_container +{ + height: 95px; + width: 95px; + margin-top:5px; + margin-bottom:5px; + margin-left:5px; + margin-right:4px; + padding-top:5px; + padding-bottom:5px; + padding-left:5px; + padding-right:5px; + nav-index:appearance; + _s60-aspect-ratio:preserve; +} + +text +{ + font-size:3.5u; + margin-left:3px; + margin-right:5px; + margin-top:5px; + margin-bottom:5px; + padding-top:5px; + padding-bottom:5px; + padding-left:5px; + padding-right:5px; + text-align:center; + text-overflow-mode: wrap; + max-line-amount: 2; + font-family: EAknLogicalFontSecondaryFont; + color: "SKIN(268458534 13056 74)"; + nav-index:appearance; +} diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/onerow_200315c2/xuikon/00/onerow.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/onerow_200315c2/xuikon/00/onerow.dat Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,12 @@ + + + 2001CB4F + 101FB657 + 110012F6 + onerow + onerow + 1.0 + onerow.xml + onerow.css + + \ No newline at end of file diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/onerow_200315c2/xuikon/00/onerow.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/onerow_200315c2/xuikon/00/onerow.xml Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/onerow_200315c2/xuikon/37/onerow.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/onerow_200315c2/xuikon/37/onerow.css Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,41 @@ +widget#onerow_template +{ + direction: rtl; + block-progression:rl; +} + +image#image_container +{ + height: 95px; + width: 95px; + margin-top:5px; + margin-bottom:5px; + margin-left:5px; + margin-right:4px; + padding-top:5px; + padding-bottom:5px; + padding-left:5px; + padding-right:5px; + nav-index:appearance; + _s60-aspect-ratio:preserve; +} + +text +{ + font-size:3.5u; + margin-left:3px; + margin-right:5px; + margin-top:5px; + margin-bottom:5px; + padding-top:5px; + padding-bottom:5px; + padding-left:5px; + padding-right:5px; + direction: ltr; + text-align:center; + text-overflow-mode: wrap; + max-line-amount: 2; + font-family: EAknLogicalFontSecondaryFont; + color: "SKIN(268458534 13056 74)"; + nav-index:appearance; +} diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/onerow_200315c2/xuikon/50/onerow.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/onerow_200315c2/xuikon/50/onerow.css Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,41 @@ +widget#onerow_template +{ + direction: rtl; + block-progression:rl; +} + +image#image_container +{ + height: 95px; + width: 95px; + margin-top:5px; + margin-bottom:5px; + margin-left:5px; + margin-right:4px; + padding-top:5px; + padding-bottom:5px; + padding-left:5px; + padding-right:5px; + nav-index:appearance; + _s60-aspect-ratio:preserve; +} + +text +{ + font-size:3.5u; + margin-left:3px; + margin-right:5px; + margin-top:5px; + margin-bottom:5px; + padding-top:5px; + padding-bottom:5px; + padding-left:5px; + padding-right:5px; + direction: ltr; + text-align:center; + text-overflow-mode: wrap; + max-line-amount: 2; + font-family: EAknLogicalFontSecondaryFont; + color: "SKIN(268458534 13056 74)"; + nav-index:appearance; +} diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/onerow_200315c2/xuikon/57/onerow.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/onerow_200315c2/xuikon/57/onerow.css Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,41 @@ +widget#onerow_template +{ + direction: rtl; + block-progression:rl; +} + +image#image_container +{ + height: 95px; + width: 95px; + margin-top:5px; + margin-bottom:5px; + margin-left:5px; + margin-right:4px; + padding-top:5px; + padding-bottom:5px; + padding-left:5px; + padding-right:5px; + nav-index:appearance; + _s60-aspect-ratio:preserve; +} + +text +{ + font-size:3.5u; + margin-left:3px; + margin-right:5px; + margin-top:5px; + margin-bottom:5px; + padding-top:5px; + padding-bottom:5px; + padding-left:5px; + padding-right:5px; + direction: ltr; + text-align:center; + text-overflow-mode: wrap; + max-line-amount: 2; + font-family: EAknLogicalFontSecondaryFont; + color: "SKIN(268458534 13056 74)"; + nav-index:appearance; +} diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/onerow_200315c2/xuikon/94/onerow.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/onerow_200315c2/xuikon/94/onerow.css Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,41 @@ +widget#onerow_template +{ + direction: rtl; + block-progression:rl; +} + +image#image_container +{ + height: 95px; + width: 95px; + margin-top:5px; + margin-bottom:5px; + margin-left:5px; + margin-right:4px; + padding-top:5px; + padding-bottom:5px; + padding-left:5px; + padding-right:5px; + nav-index:appearance; + _s60-aspect-ratio:preserve; +} + +text +{ + font-size:3.5u; + margin-left:3px; + margin-right:5px; + margin-top:5px; + margin-bottom:5px; + padding-top:5px; + padding-bottom:5px; + padding-left:5px; + padding-right:5px; + direction: ltr; + text-align:center; + text-overflow-mode: wrap; + max-line-amount: 2; + font-family: EAknLogicalFontSecondaryFont; + color: "SKIN(268458534 13056 74)"; + nav-index:appearance; +} diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/posterwideimage_200315c6/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/posterwideimage_200315c6/group/bld.inf Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,64 @@ +/* +* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* The information required for building +* +*/ + +#include + +PRJ_PLATFORMS +DEFAULT + +PRJ_EXPORTS +// Support for productization and Carbide.Ui customization +//******************************************************** +../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/posterwideimage_200315c6/hsps/manifest.dat +../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/posterwideimage_200315c6/hsps/widgetconfiguration.xml +../xuikon/00/posterwideimage.dat /epoc32/data/Z/resource/homescreen/posterwideimage_200315c6/xuikon/posterwideimage_200315c6.dat +../xuikon/00/posterwideimage.css /epoc32/data/Z/resource/homescreen/posterwideimage_200315c6/xuikon/posterwideimage.css +../xuikon/00/posterwideimage.xml /epoc32/data/Z/resource/homescreen/posterwideimage_200315c6/xuikon/posterwideimage.xml +../xuikon/00/wideimage.dtd /epoc32/data/Z/resource/homescreen/posterwideimage_200315c6/xuikon/wideimage.dtd + +// Support for S60 builds +//*********************** +../rom/posterwideimage.iby CORE_APP_LAYER_IBY_EXPORT_PATH(posterwideimage_200315c6.iby) +../rom/posterwideimage_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(posterwideimage_200315c6_resources.iby) +../rom/posterwideimage_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(posterwideimage_200315c6_customer.iby) +../rom/posterwideimage_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(posterwideimage_200315c6_variant.iby) + +// Support for S60 localization +//***************************** +// export localizable loc files (engineering versions) +../loc/wideimage.loc APP_LAYER_LOC_EXPORT_PATH(wideimage.loc) + +// Dtd-localization +//***************** +PRJ_EXTENSIONS +START EXTENSION tools/dtd +OPTION SWITCH_LOC_FILE_NAME posterwideimage_200315c6 +OPTION DTD_TYPE widget +OPTION LOC_FOLDERS yes +END + + +PRJ_MMPFILES + +PRJ_TESTMMPFILES + +// End of File + + + + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/posterwideimage_200315c6/hsps/00/manifest.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/posterwideimage_200315c6/hsps/00/manifest.dat Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,55 @@ + + + + + + + vga_tch + + + + template + + + + + + 0x2001f48a + + + + + + 0x101fb657 + + + + + + 0x200315c6 + + + + + + posterwideimage + + posterwide + + 1.0 + + + + + + widgetconfiguration.xml + + + + + + posterwideimage.o0000 + + + + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/posterwideimage_200315c6/hsps/00/widgetconfiguration.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/posterwideimage_200315c6/hsps/00/widgetconfiguration.xml Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/posterwideimage_200315c6/loc/wideimage.loc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/posterwideimage_200315c6/loc/wideimage.loc Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,22 @@ +/* +* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Localization strings for PosterWideImage widget (Xuikon) +* +*/ + +// d: Loading content +// l: ai_gene_pane_1_t1/opt4 +// w: +// r: TB9.2 +#define qtn_ai_loading_content "Loading content..." \ No newline at end of file diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/posterwideimage_200315c6/rom/posterwideimage.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/posterwideimage_200315c6/rom/posterwideimage.iby Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,30 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* PosterWideImage widget HSPS-plugin IBY file. +* +*/ + +#ifndef __POSTERWIDEIMAGE_200315C6_IBY__ +#define __POSTERWIDEIMAGE_200315C6_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools + +data=ZPRIVATE\200159c0\install\posterwideimage_200315c6\hsps\00\manifest.dat \private\200159c0\install\posterwideimage_200315c6\hsps\00\manifest.dat + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __POSTERWIDEIMAGE_200315C6_IBY__ diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/posterwideimage_200315c6/rom/posterwideimage_customer.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/posterwideimage_200315c6/rom/posterwideimage_customer.iby Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Posterwideimage widget HSPS-plugin language specific IBY file. +* +*/ + +#ifndef __POSTERWIDEIMAGE_200315C6_CUSTOMER_IBY__ +#define __POSTERWIDEIMAGE_200315C6_CUSTOMER_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools, language specific +data=ZPRIVATE\200159c0\install\posterwideimage_200315c6\xuikon\00\posterwideimage.o0000 \private\200159c0\install\posterwideimage_200315c6\xuikon\00\posterwideimage.o0000 + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __POSTERWIDEIMAGE_200315C6_CUSTOMER_IBY__ diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/posterwideimage_200315c6/rom/posterwideimage_resources.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/posterwideimage_200315c6/rom/posterwideimage_resources.iby Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Posterwideimage widget HSPS-plugin language specific IBY file. +* +*/ + +#ifndef __POSTERWIDEIMAGE_200315C6_RESOURCES_IBY__ +#define __POSTERWIDEIMAGE_200315C6_RESOURCES_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools, language specific +data=ZPRIVATE\200159c0\install\posterwideimage_200315c6\xuikon\00\posterwideimage.o0000 \private\200159c0\install\posterwideimage_200315c6\xuikon\00\posterwideimage.o0000 + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __POSTERWIDEIMAGE_200315C6_RESOURCES_IBY__ diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/posterwideimage_200315c6/rom/posterwideimage_variant.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/posterwideimage_200315c6/rom/posterwideimage_variant.iby Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* PosterWideImage widget HSPS-plugin variant specific IBY file. +* +*/ + +#ifndef __POSTERWIDEIMAGE_200315C6_VARIANT_IBY__ +#define __POSTERWIDEIMAGE_200315C6_VARIANT_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by variation tools, variant specific +data=ZPRIVATE\200159c0\install\posterwideimage_200315c6\hsps\00\widgetconfiguration.xml \private\200159c0\install\posterwideimage_200315c6\hsps\00\widgetconfiguration.xml + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __POSTERWIDEIMAGE_200315C6_VARIANT_IBY__ diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/posterwideimage_200315c6/xuikon/00/posterwideimage.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/posterwideimage_200315c6/xuikon/00/posterwideimage.css Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,25 @@ +widget#posterwideimage_template +{ + padding-top: 5px; + padding-left: 14px; + padding-right: 14px; + padding-bottom: 7px; + nav-index:appearance; + background-color: none; +} + +image#wide_image +{ + display: none; +} + +text#wide_text +{ + padding-left: 7px; + text-align: center; + font-family: EAknLogicalFontSecondaryFont; + font-size: 32px; + color: "SKIN(268458534 13056 74)"; +} + + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/posterwideimage_200315c6/xuikon/00/posterwideimage.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/posterwideimage_200315c6/xuikon/00/posterwideimage.dat Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,12 @@ + + + 2001CB4F + 101FB657 + 110012F5 + posterwideimage + posterwideimage + 1.0 + posterwideimage.xml + posterwideimage.css + wideimage.dtd + \ No newline at end of file diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/posterwideimage_200315c6/xuikon/00/posterwideimage.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/posterwideimage_200315c6/xuikon/00/posterwideimage.xml Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + &qtn_ai_loading_content; + + + + + + + + + + + + + + + + + + + + + + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/posterwideimage_200315c6/xuikon/00/wideimage.dtd --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/posterwideimage_200315c6/xuikon/00/wideimage.dtd Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,36 @@ + + + + + + + + + + + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/root_2001f48f/conf/root2001f48f.confml Binary file idlehomescreen/data/vga_tch/root_2001f48f/conf/root2001f48f.confml has changed diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/root_2001f48f/conf/root2001f48f.gcfml --- a/idlehomescreen/data/vga_tch/root_2001f48f/conf/root2001f48f.gcfml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/root_2001f48f/conf/root2001f48f.gcfml Wed Sep 15 12:00:00 2010 +0300 @@ -1,5 +1,5 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/templateview_200286ec/group/bld.inf --- a/idlehomescreen/data/vga_tch/templateview_200286ec/group/bld.inf Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/group/bld.inf Wed Sep 15 12:00:00 2010 +0300 @@ -48,10 +48,10 @@ //../loc/viewconfiguration.loc APP_LAYER_LOC_EXPORT_PATH(viewconfiguration.loc) //#endif // __VIEWCONFIGURATION_LOC__ -#ifndef __VIEW_LOC__ -#define __VIEW_LOC__ -../loc/view.loc APP_LAYER_LOC_EXPORT_PATH(view.loc) -#endif // __VIEW_LOC__ +#ifndef __TEMPLATEVIEW_LOC__ +#define __TEMPLATEVIEW_LOC__ +../loc/templateview.loc APP_LAYER_LOC_EXPORT_PATH(templateview.loc) +#endif // __TEMPLATEVIEW_LOC__ // Support for S60 builds //*********************** diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/templateview_200286ec/hsps/00/viewconfiguration.xml --- a/idlehomescreen/data/vga_tch/templateview_200286ec/hsps/00/viewconfiguration.xml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/hsps/00/viewconfiguration.xml Wed Sep 15 12:00:00 2010 +0300 @@ -13,7 +13,7 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/templateview_200286ec/loc/templateview.loc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/loc/templateview.loc Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,322 @@ +/* +* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Localization strings for project Active Idle 3 +* +*/ + +// d: Help +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_options_help "Help" + +// d: Open +// l: control_pane_t1/opt7 +// w: +// r: TB9.2 +#define qtn_msk_open "Open" + +// d: Done +// l: nhd_control_pane_t2/opt7 +// w: +// r: TB9.2 +#define text_softkey_done "Done" + +// d: Open +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_options_open "Open" + +// d: Back +// l: nhd_control_pane_t2/opt7 +// w: +// r: TB9.2 +#define text_softkey_back "Back" + +// d: Empty string +// l: control_pane_t1/opt7 +// w: +// r: TB9.2 +#define shortcut_emptycaption " " + +// d: Add page +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_add_page "Add page" + +// d: Select +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_options_select_widget "Select" + +// d: Add content +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_add_widget "Add content" + +// d: Access the widget catalog +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_widget_catalog "Widget catalog" + +// d: Search +// l: nhd_control_pane_t2/opt7 +// w: +// r: TB9.2 +#define text_softkey_search "Search" + +// d: Options +// l: nhd_control_pane_t2/opt7 +// w: +// r: TB9.2 +#define text_softkey_options "Options" + +// d: Refresh +// l: list_single_pane_t1_cp2/opt3 +// w: +// r: TB9.2 +#define qtn_hs_refresh_widget "Refresh" + +// d: Focused widget +// l: list_single_popup_submenu_pane_t1 +// w: +// r: TB9.2 +#define qtn_hs_refresh_one_widget "One" + +// d: All widgets +// l: list_single_popup_submenu_pane_t1 +// w: +// r: TB9.2 +#define qtn_hs_refresh_all_widgets "All" + +// d: Remove content +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_remove_widget "Remove content" + +// d: Hide the content +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_hide_widgets "Hide the content" + +// d: Edit contents +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_edit_content "Edit content" + +// d: Change Wallpaper +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_change_wallpaper "Change Wallpaper" + +// d: Change Shortcut Settings +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_change_shortcut_settings "Change Shortcut Settings" + +// d: Widget settings +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_widget_settings "Widget settings" + +// d: Show widgets +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_show_widgets "Show the content" + +// d: Change Home screen page +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_change_page "Change Home screen page" + +// d: Change +// l: control_pane_t1/opt7 +// w: +// r: TB9.2 +#define qtn_msk_change "Change" + +// d: Show all profiles in Profiles widget +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_show_profiles "Show all profiles" + +// d: Right selection key +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_set_right_idle_softkey "Right selection key" + +// d: Select +// l: nhd_control_pane_t2/opt7 +// w: +// r: TB9.2 +#define text_softkey_select "Select" + +// d: Cancel +// l: nhd_control_pane_t2/opt7 +// w: +// r: TB9.2 +#define text_softkey_cancel "Cancel" + +// d: Options menu item which switches home to online. Web widgets get updates from network. +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_online "Switch Home to online" + +// d: Options menu item which switches home to offline. Web widgets are not updated +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_offline "Switch Home to offline" + +// d: String which is shown in long tap menu of Home screen if tapped widget has settings +// l: list_single_touch_menu_pane_t1 +// w: +// r: TB9.2 +#define qtn_hs_longtap_settings "Settings" + +// d: String which is shown in long tap menu of Home screen if tapped some widget which is removable +// l: list_single_touch_menu_pane_t1 +// w: +// r: TB9.2 +#define qtn_hs_longtap_remove_element "Remove" + +// d: String which is shown in long tap menu of Home screen if tapped empty space in home screen +// l: list_single_touch_menu_pane_t1 +// w: +// r: TB9.2 +#define qtn_hs_longtap_add "Add content" + +// d: String which is shown in long tap menu of Home screen +// l: list_single_touch_menu_pane_t1 +// w: +// r: TB9.2 +#define qtn_hs_change_longtap_wallpaper "Change wallpaper" + +// d: User can download new HS widgets. String is visible in add content list query +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_download_new_widgets "Download" + +// d: Changes focused widget +// l: list_single_touch_menu_pane_t1 +// w: +// r: TB9.2 +#define qtn_hs_edit_replace "Replace" + +// d: deletes current home screen page +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_page_options_delete "Delete page" + +// d: creates new home screen page +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_page_options_new "New page" + +// d: view title in editing mode +// l: title_pane_t2 +// w: +// r: TB9.2 +#define qtn_hs_title_editing_view "Editing view" + +// d: Call +// l: nhd_control_pane_t2/opt7 +// w: +// r: TB9.2 +#define text_softkey_call "Call" + +// d: Added new option menu item to Edit mode for opening the widget catalog, +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_edit_widget_catalog "Widget Catalog" + +// d: Deletes the current Home screen page and focus goes to the next available Home screen page in Edit mode +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_page_edit_options_delete "Delete page" + +// d: Done +// l: nhd_control_pane_t2/opt7 +// w: +// r: TB9.2 +#define qtn_hs_text_softkey_done "Done" + +// d: Search +// l: nhd_control_pane_t2/opt7 +// w: +// r: TB9.2 +#define qtn_hs_text_softkey_search "Search" + +// d: Options +// l: nhd_control_pane_t2/opt7 +// w: +// r: TB9.2 +#define qtn_hs_text_softkey_options "Options" + +// d: Back +// l: nhd_control_pane_t2/opt7 +// w: +// r: TB9.2 +#define qtn_hs_text_softkey_back "Back" + +// d: Select +// l: nhd_control_pane_t2/opt7 +// w: +// r: TB9.2 +#define qtn_hs_text_softkey_select "Select" + +// d: Cancel +// l: nhd_control_pane_t2/opt7 +// w: +// r: TB9.2 +#define qtn_hs_text_softkey_cancel "Cancel" + +// d: Call +// l: nhd_control_pane_t2/opt7 +// w: +// r: TB9.2 +#define qtn_hs_text_softkey_call "Call" + +// d: Lock keypad +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_lock_keypad "Lock keypad" + +// d: Menu +// l: nhd_control_pane_t2/opt7 +// w: +// r: TB9.2 +#define qtn_hs_apps_menu_skey "Menu" diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/templateview_200286ec/loc/view.loc --- a/idlehomescreen/data/vga_tch/templateview_200286ec/loc/view.loc Tue Sep 14 20:58:58 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,322 +0,0 @@ -/* -* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Localization strings for project Active Idle 3 -* -*/ - -// d: Help -// l: list_single_pane_t1_cp2 -// w: -// r: TB9.2 -#define qtn_options_help "Help" - -// d: Open -// l: control_pane_t1/opt7 -// w: -// r: TB9.2 -#define qtn_msk_open "Open" - -// d: Done -// l: nhd_control_pane_t2/opt7 -// w: -// r: TB9.2 -#define text_softkey_done "Done" - -// d: Open -// l: list_single_pane_t1_cp2 -// w: -// r: TB9.2 -#define qtn_options_open "Open" - -// d: Back -// l: nhd_control_pane_t2/opt7 -// w: -// r: TB9.2 -#define text_softkey_back "Back" - -// d: Empty string -// l: control_pane_t1/opt7 -// w: -// r: TB9.2 -#define shortcut_emptycaption " " - -// d: Add page -// l: list_single_pane_t1_cp2 -// w: -// r: TB9.2 -#define qtn_hs_add_page "Add page" - -// d: Select -// l: list_single_pane_t1_cp2 -// w: -// r: TB9.2 -#define qtn_options_select_widget "Select" - -// d: Add content -// l: list_single_pane_t1_cp2 -// w: -// r: TB9.2 -#define qtn_hs_add_widget "Add content" - -// d: Access the widget catalog -// l: list_single_pane_t1_cp2 -// w: -// r: TB9.2 -#define qtn_hs_widget_catalog "Widget catalog" - -// d: Search -// l: nhd_control_pane_t2/opt7 -// w: -// r: TB9.2 -#define text_softkey_search "Search" - -// d: Options -// l: nhd_control_pane_t2/opt7 -// w: -// r: TB9.2 -#define text_softkey_options "Options" - -// d: Refresh -// l: list_single_pane_t1_cp2/opt3 -// w: -// r: TB9.2 -#define qtn_hs_refresh_widget "Refresh" - -// d: Focused widget -// l: list_single_popup_submenu_pane_t1 -// w: -// r: TB9.2 -#define qtn_hs_refresh_one_widget "One" - -// d: All widgets -// l: list_single_popup_submenu_pane_t1 -// w: -// r: TB9.2 -#define qtn_hs_refresh_all_widgets "All" - -// d: Remove content -// l: list_single_pane_t1_cp2 -// w: -// r: TB9.2 -#define qtn_hs_remove_widget "Remove content" - -// d: Hide the content -// l: list_single_pane_t1_cp2 -// w: -// r: TB9.2 -#define qtn_hs_hide_widgets "Hide the content" - -// d: Edit contents -// l: list_single_pane_t1_cp2 -// w: -// r: TB9.2 -#define qtn_hs_edit_content "Edit content" - -// d: Change Wallpaper -// l: list_single_pane_t1_cp2 -// w: -// r: TB9.2 -#define qtn_hs_change_wallpaper "Change Wallpaper" - -// d: Change Shortcut Settings -// l: list_single_pane_t1_cp2 -// w: -// r: TB9.2 -#define qtn_hs_change_shortcut_settings "Change Shortcut Settings" - -// d: Widget settings -// l: list_single_pane_t1_cp2 -// w: -// r: TB9.2 -#define qtn_hs_widget_settings "Widget settings" - -// d: Show widgets -// l: list_single_pane_t1_cp2 -// w: -// r: TB9.2 -#define qtn_hs_show_widgets "Show the content" - -// d: Change Home screen page -// l: list_single_pane_t1_cp2 -// w: -// r: TB9.2 -#define qtn_hs_change_page "Change Home screen page" - -// d: Change -// l: control_pane_t1/opt7 -// w: -// r: TB9.2 -#define qtn_msk_change "Change" - -// d: Show all profiles in Profiles widget -// l: list_single_pane_t1_cp2 -// w: -// r: TB9.2 -#define qtn_hs_show_profiles "Show all profiles" - -// d: Right selection key -// l: list_single_pane_t1_cp2 -// w: -// r: TB9.2 -#define qtn_set_right_idle_softkey "Right selection key" - -// d: Select -// l: nhd_control_pane_t2/opt7 -// w: -// r: TB9.2 -#define text_softkey_select "Select" - -// d: Cancel -// l: nhd_control_pane_t2/opt7 -// w: -// r: TB9.2 -#define text_softkey_cancel "Cancel" - -// d: Options menu item which switches home to online. Web widgets get updates from network. -// l: list_single_pane_t1_cp2 -// w: -// r: TB9.2 -#define qtn_hs_online "Switch Home to online" - -// d: Options menu item which switches home to offline. Web widgets are not updated -// l: list_single_pane_t1_cp2 -// w: -// r: TB9.2 -#define qtn_hs_offline "Switch Home to offline" - -// d: String which is shown in long tap menu of Home screen if tapped widget has settings -// l: list_single_touch_menu_pane_t1 -// w: -// r: TB9.2 -#define qtn_hs_longtap_settings "Settings" - -// d: String which is shown in long tap menu of Home screen if tapped some widget which is removable -// l: list_single_touch_menu_pane_t1 -// w: -// r: TB9.2 -#define qtn_hs_longtap_remove_element "Remove" - -// d: String which is shown in long tap menu of Home screen if tapped empty space in home screen -// l: list_single_touch_menu_pane_t1 -// w: -// r: TB9.2 -#define qtn_hs_longtap_add "Add content" - -// d: String which is shown in long tap menu of Home screen -// l: list_single_touch_menu_pane_t1 -// w: -// r: TB9.2 -#define qtn_hs_change_longtap_wallpaper "Change wallpaper" - -// d: User can download new HS widgets. String is visible in add content list query -// l: list_single_pane_t1_cp2 -// w: -// r: TB9.2 -#define qtn_hs_download_new_widgets "Download" - -// d: Changes focused widget -// l: list_single_touch_menu_pane_t1 -// w: -// r: TB9.2 -#define qtn_hs_edit_replace "Replace" - -// d: deletes current home screen page -// l: list_single_pane_t1_cp2 -// w: -// r: TB9.2 -#define qtn_hs_page_options_delete "Delete page" - -// d: creates new home screen page -// l: list_single_pane_t1_cp2 -// w: -// r: TB9.2 -#define qtn_hs_page_options_new "New page" - -// d: view title in editing mode -// l: title_pane_t2 -// w: -// r: TB9.2 -#define qtn_hs_title_editing_view "Editing view" - -// d: Call -// l: nhd_control_pane_t2/opt7 -// w: -// r: TB9.2 -#define text_softkey_call "Call" - -// d: Added new option menu item to Edit mode for opening the widget catalog, -// l: list_single_pane_t1_cp2 -// w: -// r: TB9.2 -#define qtn_hs_edit_widget_catalog "Widget Catalog" - -// d: Deletes the current Home screen page and focus goes to the next available Home screen page in Edit mode -// l: list_single_pane_t1_cp2 -// w: -// r: TB9.2 -#define qtn_hs_page_edit_options_delete "Delete page" - -// d: Done -// l: nhd_control_pane_t2/opt7 -// w: -// r: TB9.2 -#define qtn_hs_text_softkey_done "Done" - -// d: Search -// l: nhd_control_pane_t2/opt7 -// w: -// r: TB9.2 -#define qtn_hs_text_softkey_search "Search" - -// d: Options -// l: nhd_control_pane_t2/opt7 -// w: -// r: TB9.2 -#define qtn_hs_text_softkey_options "Options" - -// d: Back -// l: nhd_control_pane_t2/opt7 -// w: -// r: TB9.2 -#define qtn_hs_text_softkey_back "Back" - -// d: Select -// l: nhd_control_pane_t2/opt7 -// w: -// r: TB9.2 -#define qtn_hs_text_softkey_select "Select" - -// d: Cancel -// l: nhd_control_pane_t2/opt7 -// w: -// r: TB9.2 -#define qtn_hs_text_softkey_cancel "Cancel" - -// d: Call -// l: nhd_control_pane_t2/opt7 -// w: -// r: TB9.2 -#define qtn_hs_text_softkey_call "Call" - -// d: Lock keypad -// l: list_single_pane_t1_cp2 -// w: -// r: TB9.2 -#define qtn_hs_lock_keypad "Lock keypad" - -// d: Menu -// l: nhd_control_pane_t2/opt7 -// w: -// r: TB9.2 -#define qtn_hs_apps_menu_skey "Menu" diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/37/view.css --- a/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/37/view.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/37/view.css Wed Sep 15 12:00:00 2010 +0300 @@ -63,11 +63,12 @@ softkey#msk_ltr { - display: block; + display: none; } softkey#msk_rtl { - display: none; + display: block; } + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/50/view.css --- a/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/50/view.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/50/view.css Wed Sep 15 12:00:00 2010 +0300 @@ -63,11 +63,11 @@ softkey#msk_ltr { - display: block; + display: none; } softkey#msk_rtl { - display: none; + display: block; } diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/57/view.css --- a/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/57/view.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/57/view.css Wed Sep 15 12:00:00 2010 +0300 @@ -63,11 +63,11 @@ softkey#msk_ltr { - display: block; + display: none; } softkey#msk_rtl { - display: none; + display: block; } diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/94/view.css --- a/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/94/view.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/94/view.css Wed Sep 15 12:00:00 2010 +0300 @@ -63,11 +63,12 @@ softkey#msk_ltr { - display: block; + display: none; } softkey#msk_rtl { - display: none; + display: block; } + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threerows_200315c4/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threerows_200315c4/group/bld.inf Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,66 @@ +/* +* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* The information required for building +* +*/ + +#include + +PRJ_PLATFORMS +DEFAULT + +PRJ_EXPORTS +// Support for productization and Carbide.Ui customization +//******************************************************** +../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/threerows_200315c4/hsps/manifest.dat +../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/threerows_200315c4/hsps/widgetconfiguration.xml +../xuikon/00/threerows.dat /epoc32/data/Z/resource/homescreen/threerows_200315c4/xuikon/threerows_200315c4.dat +../xuikon/00/threerows.css /epoc32/data/Z/resource/homescreen/threerows_200315c4/xuikon/threerows.css +../xuikon/00/threerows.xml /epoc32/data/Z/resource/homescreen/threerows_200315c4/xuikon/threerows.xml + +// Arabic languages +//***************** +../xuikon/37/threerows.css /epoc32/data/Z/resource/homescreen/threerows_200315c4/xuikon/37/threerows.css +../xuikon/50/threerows.css /epoc32/data/Z/resource/homescreen/threerows_200315c4/xuikon/50/threerows.css +../xuikon/57/threerows.css /epoc32/data/Z/resource/homescreen/threerows_200315c4/xuikon/57/threerows.css +../xuikon/94/threerows.css /epoc32/data/Z/resource/homescreen/threerows_200315c4/xuikon/94/threerows.css + + +// Support for S60 builds +//*********************** +../rom/threerows_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(threerows_200315c4_resources.iby) +../rom/threerows_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(threerows_200315c4_customer.iby) +../rom/threerows_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(threerows_200315c4_variant.iby) +../rom/threerows.iby CORE_APP_LAYER_IBY_EXPORT_PATH(threerows_200315c4.iby) + +// Dtd-localization +//***************** +PRJ_EXTENSIONS +START EXTENSION tools/dtd +OPTION SWITCH_LOC_FILE_NAME threerows_200315c4 +OPTION DTD_TYPE widget +OPTION LOC_FOLDERS yes +END + + +PRJ_MMPFILES + +PRJ_TESTMMPFILES + +// End of File + + + + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threerows_200315c4/hsps/00/manifest.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threerows_200315c4/hsps/00/manifest.dat Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,63 @@ + + + + + + + vga_tch + + + + template + + + + + + 0x2001f48a + + + + + + 0x101fb657 + + + + + + 0x200315c4 + + + + + + threerows + + thrs + + 1.0 + + + + + + widgetconfiguration.xml + + + + + + + + + + + + threerows.o0000 + + + + + + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threerows_200315c4/hsps/00/widgetconfiguration.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threerows_200315c4/hsps/00/widgetconfiguration.xml Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threerows_200315c4/rom/threerows.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threerows_200315c4/rom/threerows.iby Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* threerows widget HSPS-plugin IBY file. +* +*/ + +#ifndef __THREEROWS_200315C4_IBY__ +#define __THREEROWS_200315C4_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools +data=ZPRIVATE\200159c0\install\threerows_200315c4\hsps\00\manifest.dat \private\200159c0\install\threerows_200315c4\hsps\00\manifest.dat + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __THREEROWS_200315C4_IBY__ diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threerows_200315c4/rom/threerows_customer.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threerows_200315c4/rom/threerows_customer.iby Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* threerows widget HSPS-plugin language specific IBY file. +* +*/ + +#ifndef __THREEROWS_200315C4_CUSTOMER_IBY__ +#define __THREEROWS_200315C4_CUSTOMER_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools, language specific +data=ZPRIVATE\200159c0\install\threerows_200315c4\xuikon\00\threerows.o0000 \private\200159c0\install\threerows_200315c4\xuikon\00\threerows.o0000 + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __THREEROWS_200315C4_CUSTOMER_IBY__ diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threerows_200315c4/rom/threerows_resources.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threerows_200315c4/rom/threerows_resources.iby Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,40 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* threerows widget HSPS-plugin language specific IBY file. +* +*/ + +#ifndef __THREEROWS_200315C4_RESOURCES_IBY__ +#define __THREEROWS_200315C4_RESOURCES_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools, language specific +#if defined (__LOCALES_37_IBY__) +data=ZPRIVATE\200159c0\install\threerows_200315c4\xuikon\37\threerows.o0037 \private\200159c0\install\threerows_200315c4\xuikon\37\threerows.o0037 +#endif +#if defined (__LOCALES_50_IBY__) +data=ZPRIVATE\200159c0\install\threerows_200315c4\xuikon\50\threerows.o0050 \private\200159c0\install\threerows_200315c4\xuikon\50\threerows.o0050 +#endif +#if defined (__LOCALES_57_IBY__) +data=ZPRIVATE\200159c0\install\threerows_200315c4\xuikon\57\threerows.o0057 \private\200159c0\install\threerows_200315c4\xuikon\57\threerows.o0057 +#endif +#if defined (__LOCALES_94_IBY__) +data=ZPRIVATE\200159c0\install\threerows_200315c4\xuikon\94\threerows.o0094 \private\200159c0\install\threerows_200315c4\xuikon\94\threerows.o0094 +#endif + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __THREEROWS_200315C4_RESOURCES_IBY__ diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threerows_200315c4/rom/threerows_variant.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threerows_200315c4/rom/threerows_variant.iby Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* threerows widget HSPS-plugin variant specific IBY file. +* +*/ + +#ifndef __THREEROWS_200315C4_VARIANT_IBY__ +#define __THREEROWS_200315C4_VARIANT_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by variation tools, variant specific +data=ZPRIVATE\200159c0\install\threerows_200315c4\hsps\00\widgetconfiguration.xml \private\200159c0\install\threerows_200315c4\hsps\00\widgetconfiguration.xml + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __SHORTCUT_200315C4_VARIANT_IBY__ diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threerows_200315c4/xuikon/00/threerows.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threerows_200315c4/xuikon/00/threerows.css Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,42 @@ +widget#threerows_template +{ + block-progression:rl; +} + +image#image_container +{ + height: 95px; + width: 95px; + margin-top:5px; + margin-bottom:5px; + margin-left:5px; + margin-right:4px; + padding-top:5px; + padding-bottom:5px; + padding-left:5px; + padding-right:5px; + nav-index:appearance; + _s60-aspect-ratio:preserve; +} + +box#text_container +{ + direction: ltr; + block-progression:tb; + margin-left:3px; + margin-right:5px; +} + +text.text_box +{ + padding-right:5px; + padding-left:5px; + padding-top:2px; + padding-bottom:2px; + font-family: EAknLogicalFontSecondaryFont; + font-size: 3.5u; + height:35px; + color:"SKIN(268458534 13056 74)"; + nav-index:appearance; + _s60-text-valign: top; +} diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threerows_200315c4/xuikon/00/threerows.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threerows_200315c4/xuikon/00/threerows.dat Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,12 @@ + + + 2001CB4F + 101FB657 + 110012F8 + threerows + threerows + 1.0 + threerows.xml + threerows.css + + \ No newline at end of file diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threerows_200315c4/xuikon/00/threerows.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threerows_200315c4/xuikon/00/threerows.xml Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threerows_200315c4/xuikon/37/threerows.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threerows_200315c4/xuikon/37/threerows.css Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,45 @@ +widget#threerows_template +{ + direction: rtl; + block-progression:rl; +} + +image#image_container +{ + height: 95px; + width: 95px; + margin-top:5px; + margin-bottom:5px; + margin-left:5px; + margin-right:4px; + padding-top:5px; + padding-bottom:5px; + padding-left:5px; + padding-right:5px; + nav-index:appearance; + _s60-aspect-ratio:preserve; +} + +box#text_container +{ + direction: ltr; + block-progression:tb; + margin-left:3px; + margin-right:5px; +} + +text.text_box +{ + padding-right:5px; + padding-left:5px; + padding-top:2px; + padding-bottom:2px; + direction: ltr; + text-align: right; + font-family: EAknLogicalFontSecondaryFont; + font-size: 3.5u; + height:35px; + color:"SKIN(268458534 13056 74)"; + nav-index:appearance; + _s60-text-valign: top; +} diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threerows_200315c4/xuikon/50/threerows.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threerows_200315c4/xuikon/50/threerows.css Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,45 @@ +widget#threerows_template +{ + direction: rtl; + block-progression:rl; +} + +image#image_container +{ + height: 95px; + width: 95px; + margin-top:5px; + margin-bottom:5px; + margin-left:5px; + margin-right:4px; + padding-top:5px; + padding-bottom:5px; + padding-left:5px; + padding-right:5px; + nav-index:appearance; + _s60-aspect-ratio:preserve; +} + +box#text_container +{ + direction: ltr; + block-progression:tb; + margin-left:3px; + margin-right:5px; +} + +text.text_box +{ + padding-right:5px; + padding-left:5px; + padding-top:2px; + padding-bottom:2px; + direction: ltr; + text-align: right; + font-family: EAknLogicalFontSecondaryFont; + font-size: 3.5u; + height:35px; + color:"SKIN(268458534 13056 74)"; + nav-index:appearance; + _s60-text-valign: top; +} diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threerows_200315c4/xuikon/57/threerows.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threerows_200315c4/xuikon/57/threerows.css Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,45 @@ +widget#threerows_template +{ + direction: rtl; + block-progression:rl; +} + +image#image_container +{ + height: 95px; + width: 95px; + margin-top:5px; + margin-bottom:5px; + margin-left:5px; + margin-right:4px; + padding-top:5px; + padding-bottom:5px; + padding-left:5px; + padding-right:5px; + nav-index:appearance; + _s60-aspect-ratio:preserve; +} + +box#text_container +{ + direction: ltr; + block-progression:tb; + margin-left:3px; + margin-right:5px; +} + +text.text_box +{ + padding-right:5px; + padding-left:5px; + padding-top:2px; + padding-bottom:2px; + direction: ltr; + text-align: right; + font-family: EAknLogicalFontSecondaryFont; + font-size: 3.5u; + height:35px; + color:"SKIN(268458534 13056 74)"; + nav-index:appearance; + _s60-text-valign: top; +} diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threerows_200315c4/xuikon/94/threerows.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threerows_200315c4/xuikon/94/threerows.css Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,45 @@ +widget#threerows_template +{ + direction: rtl; + block-progression:rl; +} + +image#image_container +{ + height: 95px; + width: 95px; + margin-top:5px; + margin-bottom:5px; + margin-left:5px; + margin-right:4px; + padding-top:5px; + padding-bottom:5px; + padding-left:5px; + padding-right:5px; + nav-index:appearance; + _s60-aspect-ratio:preserve; +} + +box#text_container +{ + direction: ltr; + block-progression:tb; + margin-left:3px; + margin-right:5px; +} + +text.text_box +{ + padding-right:5px; + padding-left:5px; + padding-top:2px; + padding-bottom:2px; + direction: ltr; + text-align: right; + font-family: EAknLogicalFontSecondaryFont; + font-size: 3.5u; + height:35px; + color:"SKIN(268458534 13056 74)"; + nav-index:appearance; + _s60-text-valign: top; +} diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threetextrows_200315c5/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/group/bld.inf Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,68 @@ +/* +* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* The information required for building +* +*/ + +#include + +PRJ_PLATFORMS +DEFAULT + +PRJ_EXPORTS +// Support for productization and Carbide.Ui customization +//******************************************************** +../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/threetextrows_200315c5/hsps/manifest.dat +../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/threetextrows_200315c5/hsps/widgetconfiguration.xml +../xuikon/00/threetextrows.dat /epoc32/data/Z/resource/homescreen/threetextrows_200315c5/xuikon/threetextrows_200315c5.dat +../xuikon/00/threetextrows.css /epoc32/data/Z/resource/homescreen/threetextrows_200315c5/xuikon/threetextrows.css +../xuikon/00/threetextrows.xml /epoc32/data/Z/resource/homescreen/threetextrows_200315c5/xuikon/threetextrows.xml + +// Arabic languages +//***************** +../xuikon/37/threetextrows.css /epoc32/data/Z/resource/homescreen/threetextrows_200315c5/xuikon/37/threetextrows.css +../xuikon/50/threetextrows.css /epoc32/data/Z/resource/homescreen/threetextrows_200315c5/xuikon/50/threetextrows.css +../xuikon/57/threetextrows.css /epoc32/data/Z/resource/homescreen/threetextrows_200315c5/xuikon/57/threetextrows.css +../xuikon/94/threetextrows.css /epoc32/data/Z/resource/homescreen/threetextrows_200315c5/xuikon/94/threetextrows.css + + +// Support for S60 builds +//*********************** +../rom/threetextrows_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(threetextrows_200315c5_resources.iby) +../rom/threetextrows_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(threetextrows_200315c5_customer.iby) +../rom/threetextrows_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(threetextrows_200315c5_variant.iby) +../rom/threetextrows.iby CORE_APP_LAYER_IBY_EXPORT_PATH(threetextrows_200315c5.iby) + +// Dtd-localization +//***************** +PRJ_EXTENSIONS +START EXTENSION tools/dtd +OPTION SWITCH_LOC_FILE_NAME threetextrows_200315c5 +OPTION DTD_TYPE widget +OPTION LOC_FOLDERS yes +END + + +PRJ_MMPFILES + +PRJ_TESTMMPFILES + +//#endif + +// End of File + + + + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threetextrows_200315c5/hsps/00/manifest.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/hsps/00/manifest.dat Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,65 @@ + + + + + + + vga_tch + + + + template + + + + + + 0x2001f48a + + + + + + 0x101fb657 + + + + + + 0x200315c5 + + + + + + threetextrows + + thtxtrs + + 1.0 + + + + + + widgetconfiguration.xml + + + + + + + + + + + + + + threetextrows.o0000 + + + + + + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threetextrows_200315c5/hsps/00/widgetconfiguration.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/hsps/00/widgetconfiguration.xml Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threetextrows_200315c5/rom/threetextrows.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/rom/threetextrows.iby Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* threetextrows widget HSPS-plugin IBY file. +* +*/ + +#ifndef __THREETEXTROWS_200315C5_IBY__ +#define __THREETEXTROWS_200315C5_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools +data=ZPRIVATE\200159c0\install\threetextrows_200315c5\hsps\00\manifest.dat \private\200159c0\install\threetextrows_200315c5\hsps\00\manifest.dat + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __THREETEXTROWS_200315C5_IBY__ diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threetextrows_200315c5/rom/threetextrows_customer.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/rom/threetextrows_customer.iby Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* threetextrows widget HSPS-plugin language specific IBY file. +* +*/ + +#ifndef __THREETEXTROWS_200315C5_CUSTOMER_IBY__ +#define __THREETEXTROWS_200315C5_CUSTOMER_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools, language specific +data=ZPRIVATE\200159c0\install\threetextrows_200315c5\xuikon\00\threetextrows.o0000 \private\200159c0\install\threetextrows_200315c5\xuikon\00\threetextrows.o0000 + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __THREETEXTROWS_200315C5_CUSTOMER_IBY__ diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threetextrows_200315c5/rom/threetextrows_resources.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/rom/threetextrows_resources.iby Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,40 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* threetextrows widget HSPS-plugin language specific IBY file. +* +*/ + +#ifndef __THREETEXTROWS_200315C5_RESOURCES_IBY__ +#define __THREETEXTROWS_200315C5_RESOURCES_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools, language specific +#if defined (__LOCALES_37_IBY__) +data=ZPRIVATE\200159c0\install\threetextrows_200315c5\xuikon\37\threetextrows.o0037 \private\200159c0\install\threetextrows_200315c5\xuikon\37\threetextrows.o0037 +#endif +#if defined (__LOCALES_50_IBY__) +data=ZPRIVATE\200159c0\install\threetextrows_200315c5\xuikon\50\threetextrows.o0050 \private\200159c0\install\threetextrows_200315c5\xuikon\50\threetextrows.o0050 +#endif +#if defined (__LOCALES_57_IBY__) +data=ZPRIVATE\200159c0\install\threetextrows_200315c5\xuikon\57\threetextrows.o0057 \private\200159c0\install\threetextrows_200315c5\xuikon\57\threetextrows.o0057 +#endif +#if defined (__LOCALES_94_IBY__) +data=ZPRIVATE\200159c0\install\threetextrows_200315c5\xuikon\94\threetextrows.o0094 \private\200159c0\install\threetextrows_200315c5\xuikon\94\threetextrows.o0094 +#endif + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __THREETEXTROWS_200315C5_RESOURCES_IBY__ diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threetextrows_200315c5/rom/threetextrows_variant.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/rom/threetextrows_variant.iby Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* threetextrows widget HSPS-plugin variant specific IBY file. +* +*/ + +#ifndef __THREETEXTROWS_200315C5_VARIANT_IBY__ +#define __THREETEXTROWS_200315C5_VARIANT_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by variation tools, variant specific +data=ZPRIVATE\200159c0\install\threetextrows_200315c5\hsps\00\widgetconfiguration.xml \private\200159c0\install\threetextrows_200315c5\hsps\00\widgetconfiguration.xml + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __THREETEXTROWS_200315C5_VARIANT_IBY__ diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threetextrows_200315c5/xuikon/00/threetextrows.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/xuikon/00/threetextrows.css Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,11 @@ +text.text_box +{ + padding-left:11px; + padding-right:11px; + text-align:left; + font-family: EAknLogicalFontSecondaryFont; + font-size: 30px; + color: "SKIN(268458534 13056 74)"; + nav-index:appearance; + _s60-text-valign: top; +} diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threetextrows_200315c5/xuikon/00/threetextrows.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/xuikon/00/threetextrows.dat Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,12 @@ + + + 2001CB4F + 101FB657 + 110012F9 + threetextrows + threetextrows + 1.0 + threetextrows.xml + threetextrows.css + + \ No newline at end of file diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threetextrows_200315c5/xuikon/00/threetextrows.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/xuikon/00/threetextrows.xml Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threetextrows_200315c5/xuikon/37/threetextrows.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/xuikon/37/threetextrows.css Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,12 @@ +text.text_box +{ + padding-left:11px; + padding-right:11px; + direction: ltr; + text-align: right; + font-family: EAknLogicalFontSecondaryFont; + font-size: 30px; + color: "SKIN(268458534 13056 74)"; + nav-index:appearance; + _s60-text-valign: top; +} diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threetextrows_200315c5/xuikon/50/threetextrows.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/xuikon/50/threetextrows.css Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,12 @@ +text.text_box +{ + padding-left:11px; + padding-right:11px; + direction: ltr; + text-align: right; + font-family: EAknLogicalFontSecondaryFont; + font-size: 30px; + color: "SKIN(268458534 13056 74)"; + nav-index:appearance; + _s60-text-valign: top; +} diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threetextrows_200315c5/xuikon/57/threetextrows.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/xuikon/57/threetextrows.css Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,12 @@ +text.text_box +{ + padding-left:11px; + padding-right:11px; + direction: ltr; + text-align: right; + font-family: EAknLogicalFontSecondaryFont; + font-size: 30px; + color: "SKIN(268458534 13056 74)"; + nav-index:appearance; + _s60-text-valign: top; +} diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/threetextrows_200315c5/xuikon/94/threetextrows.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/xuikon/94/threetextrows.css Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,12 @@ +text.text_box +{ + padding-left:11px; + padding-right:11px; + direction: ltr; + text-align: right; + font-family: EAknLogicalFontSecondaryFont; + font-size: 30px; + color: "SKIN(268458534 13056 74)"; + nav-index:appearance; + _s60-text-valign: top; +} diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/tworows_200315c3/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/tworows_200315c3/group/bld.inf Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,66 @@ +/* +* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* The information required for building +* +*/ + +#include + +PRJ_PLATFORMS +DEFAULT + +PRJ_EXPORTS +// Support for productization and Carbide.Ui customization +//******************************************************** +../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/tworows_200315c3/hsps/manifest.dat +../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/tworows_200315c3/hsps/widgetconfiguration.xml +../xuikon/00/tworows.dat /epoc32/data/Z/resource/homescreen/tworows_200315c3/xuikon/tworows_200315c3.dat +../xuikon/00/tworows.css /epoc32/data/Z/resource/homescreen/tworows_200315c3/xuikon/tworows.css +../xuikon/00/tworows.xml /epoc32/data/Z/resource/homescreen/tworows_200315c3/xuikon/tworows.xml + +// Arabic languages +//***************** +../xuikon/37/tworows.css /epoc32/data/Z/resource/homescreen/tworows_200315c3/xuikon/37/tworows.css +../xuikon/50/tworows.css /epoc32/data/Z/resource/homescreen/tworows_200315c3/xuikon/50/tworows.css +../xuikon/57/tworows.css /epoc32/data/Z/resource/homescreen/tworows_200315c3/xuikon/57/tworows.css +../xuikon/94/tworows.css /epoc32/data/Z/resource/homescreen/tworows_200315c3/xuikon/94/tworows.css + + +// Support for S60 builds +//*********************** +../rom/tworows_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(tworows_200315c3_resources.iby) +../rom/tworows_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(tworows_200315c3_customer.iby) +../rom/tworows_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(tworows_200315c3_variant.iby) +../rom/tworows.iby CORE_APP_LAYER_IBY_EXPORT_PATH(tworows_200315c3.iby) + +// Dtd-localization +//***************** +PRJ_EXTENSIONS +START EXTENSION tools/dtd +OPTION SWITCH_LOC_FILE_NAME tworows_200315c3 +OPTION DTD_TYPE widget +OPTION LOC_FOLDERS yes +END + + +PRJ_MMPFILES + +PRJ_TESTMMPFILES + +// End of File + + + + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/tworows_200315c3/hsps/00/manifest.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/tworows_200315c3/hsps/00/manifest.dat Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,63 @@ + + + + + + + vga_tch + + + + template + + + + + + 0x2001f48a + + + + + + 0x101fb657 + + + + + + 0x200315c3 + + + + + + tworows + + twrs + + 1.0 + + + + + + widgetconfiguration.xml + + + + + + + + + + + + tworows.o0000 + + + + + + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/tworows_200315c3/hsps/00/widgetconfiguration.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/tworows_200315c3/hsps/00/widgetconfiguration.xml Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/tworows_200315c3/rom/tworows.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/tworows_200315c3/rom/tworows.iby Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* tworows widget HSPS-plugin IBY file. +* +*/ + +#ifndef __TWOROWS_200315C3_IBY__ +#define __TWOROWS_200315C3_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools +data=ZPRIVATE\200159c0\install\tworows_200315c3\hsps\00\manifest.dat \private\200159c0\install\tworows_200315c3\hsps\00\manifest.dat + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __TWOROWS_200315C3_IBY__ diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/tworows_200315c3/rom/tworows_customer.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/tworows_200315c3/rom/tworows_customer.iby Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* tworows widget HSPS-plugin language specific IBY file. +* +*/ + +#ifndef __TWOROWS_200315C3_CUSTOMER_IBY__ +#define __TWOROWS_200315C3_CUSTOMER_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools, language specific +data=ZPRIVATE\200159c0\install\tworows_200315c3\xuikon\00\tworows.o0000 \private\200159c0\install\tworows_200315c3\xuikon\00\tworows.o0000 + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __TWOROWS_200315C3_CUSTOMER_IBY__ diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/tworows_200315c3/rom/tworows_resources.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/tworows_200315c3/rom/tworows_resources.iby Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,40 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* tworows widget HSPS-plugin language specific IBY file. +* +*/ + +#ifndef __TWOROWS_200315C3_RESOURCES_IBY__ +#define __TWOROWS_200315C3_RESOURCES_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools, language specific +#if defined (__LOCALES_37_IBY__) +data=ZPRIVATE\200159c0\install\tworows_200315c3\xuikon\37\tworows.o0037 \private\200159c0\install\tworows_200315c3\xuikon\37\tworows.o0037 +#endif +#if defined (__LOCALES_50_IBY__) +data=ZPRIVATE\200159c0\install\tworows_200315c3\xuikon\50\tworows.o0050 \private\200159c0\install\tworows_200315c3\xuikon\50\tworows.o0050 +#endif +#if defined (__LOCALES_57_IBY__) +data=ZPRIVATE\200159c0\install\tworows_200315c3\xuikon\57\tworows.o0057 \private\200159c0\install\tworows_200315c3\xuikon\57\tworows.o0057 +#endif +#if defined (__LOCALES_94_IBY__) +data=ZPRIVATE\200159c0\install\tworows_200315c3\xuikon\94\tworows.o0094 \private\200159c0\install\tworows_200315c3\xuikon\94\tworows.o0094 +#endif + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __TWOROWS_200315C3_RESOURCES_IBY__ diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/tworows_200315c3/rom/tworows_variant.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/tworows_200315c3/rom/tworows_variant.iby Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* tworows widget HSPS-plugin variant specific IBY file. +* +*/ + +#ifndef __TWOROWS_200315C3_VARIANT_IBY__ +#define __TWOROWS_200315C3_VARIANT_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by variation tools, variant specific +data=ZPRIVATE\200159c0\install\tworows_200315c3\hsps\00\widgetconfiguration.xml \private\200159c0\install\tworows_200315c3\hsps\00\widgetconfiguration.xml + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __TWOROWS_200315C3_VARIANT_IBY__ diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/tworows_200315c3/xuikon/00/tworows.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/tworows_200315c3/xuikon/00/tworows.css Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,43 @@ +widget#tworows_template +{ + block-progression:rl; +} + +image#image_container +{ + height: 95px; + width: 95px; + margin-top:5px; + margin-bottom:5px; + margin-left:5px; + margin-right:4px; + padding-top:5px; + padding-bottom:5px; + padding-left:5px; + padding-right:5px; + nav-index:appearance; + _s60-aspect-ratio:preserve; +} + +box#text_container +{ + direction: ltr; + block-progression:tb; + margin-left:3px; + margin-right:5px; + margin-top:14px; +} + +text.text_box +{ + padding-right:5px; + padding-left:5px; + padding-top:5px; + padding-bottom:5px; + font-family: EAknLogicalFontSecondaryFont; + font-size: 3.5u; + height:30px; + color:"SKIN(268458534 13056 74)"; + nav-index:appearance; + _s60-text-valign: top; +} diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/tworows_200315c3/xuikon/00/tworows.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/tworows_200315c3/xuikon/00/tworows.dat Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,12 @@ + + + 2001CB4F + 101FB657 + 110012F7 + tworows + tworows + 1.0 + tworows.xml + tworows.css + + \ No newline at end of file diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/tworows_200315c3/xuikon/00/tworows.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/tworows_200315c3/xuikon/00/tworows.xml Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/tworows_200315c3/xuikon/37/tworows.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/tworows_200315c3/xuikon/37/tworows.css Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,45 @@ +widget#tworows_template +{ + direction: rtl; + block-progression:rl; +} + +image#image_container +{ + height: 70px; + width: 70px; + margin-top:3px; + margin-bottom:3px; + margin-left:3px; + margin-right:2px; + padding-top:3px; + padding-bottom:3px; + padding-left:3px; + padding-right:3px; + nav-index:appearance; + _s60-aspect-ratio:preserve; +} + +box#text_container +{ + block-progression:tb; + margin-left:2px; + margin-right:3px; + margin-top:10px; +} + +text.text_box +{ + padding-right:3px; + padding-left:3px; + padding-top:3px; + padding-bottom:3px; + direction: ltr; + text-align: right; + font-family: EAknLogicalFontSecondaryFont; + font-size: 3.5u; + height:25px; + color:"SKIN(268458534 13056 74)"; + nav-index:appearance; + _s60-text-valign: top; +} diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/tworows_200315c3/xuikon/50/tworows.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/tworows_200315c3/xuikon/50/tworows.css Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,45 @@ +widget#tworows_template +{ + direction: rtl; + block-progression:rl; +} + +image#image_container +{ + height: 70px; + width: 70px; + margin-top:3px; + margin-bottom:3px; + margin-left:3px; + margin-right:2px; + padding-top:3px; + padding-bottom:3px; + padding-left:3px; + padding-right:3px; + nav-index:appearance; + _s60-aspect-ratio:preserve; +} + +box#text_container +{ + block-progression:tb; + margin-left:2px; + margin-right:3px; + margin-top:10px; +} + +text.text_box +{ + padding-right:3px; + padding-left:3px; + padding-top:3px; + padding-bottom:3px; + direction: ltr; + text-align: right; + font-family: EAknLogicalFontSecondaryFont; + font-size: 3.5u; + height:25px; + color:"SKIN(268458534 13056 74)"; + nav-index:appearance; + _s60-text-valign: top; +} diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/tworows_200315c3/xuikon/57/tworows.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/tworows_200315c3/xuikon/57/tworows.css Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,45 @@ +widget#tworows_template +{ + direction: rtl; + block-progression:rl; +} + +image#image_container +{ + height: 70px; + width: 70px; + margin-top:3px; + margin-bottom:3px; + margin-left:3px; + margin-right:2px; + padding-top:3px; + padding-bottom:3px; + padding-left:3px; + padding-right:3px; + nav-index:appearance; + _s60-aspect-ratio:preserve; +} + +box#text_container +{ + block-progression:tb; + margin-left:2px; + margin-right:3px; + margin-top:10px; +} + +text.text_box +{ + padding-right:3px; + padding-left:3px; + padding-top:3px; + padding-bottom:3px; + direction: ltr; + text-align: right; + font-family: EAknLogicalFontSecondaryFont; + font-size: 3.5u; + height:25px; + color:"SKIN(268458534 13056 74)"; + nav-index:appearance; + _s60-text-valign: top; +} diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/tworows_200315c3/xuikon/94/tworows.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/tworows_200315c3/xuikon/94/tworows.css Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,45 @@ +widget#tworows_template +{ + direction: rtl; + block-progression:rl; +} + +image#image_container +{ + height: 70px; + width: 70px; + margin-top:3px; + margin-bottom:3px; + margin-left:3px; + margin-right:2px; + padding-top:3px; + padding-bottom:3px; + padding-left:3px; + padding-right:3px; + nav-index:appearance; + _s60-aspect-ratio:preserve; +} + +box#text_container +{ + block-progression:tb; + margin-left:2px; + margin-right:3px; + margin-top:10px; +} + +text.text_box +{ + padding-right:3px; + padding-left:3px; + padding-top:3px; + padding-bottom:3px; + direction: ltr; + text-align: right; + font-family: EAknLogicalFontSecondaryFont; + font-size: 3.5u; + height:25px; + color:"SKIN(268458534 13056 74)"; + nav-index:appearance; + _s60-text-valign: top; +} diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9.confml --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9.confml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9.confml Wed Sep 15 12:00:00 2010 +0300 @@ -1,6 +1,12 @@ + + The Qhd touch is a supported display type of the xuikon homescreen + + + The Vga touch is a supported display type of the xuikon homescreen + Maximum widget amount in Homescreen 1 page. Customizable @@ -29,7 +35,7 @@ + true + true 6 true hs_vga_tch_view @@ -323,7 +331,7 @@ param - 0x2001f47f + 0x200255b6 0 0 permanent diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9.gcfml --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9.gcfml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9.gcfml Wed Sep 15 12:00:00 2010 +0300 @@ -1,5 +1,5 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9manifest.confml Binary file idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9manifest.confml has changed diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9manifest.gcfml --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9manifest.gcfml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9manifest.gcfml Wed Sep 15 12:00:00 2010 +0300 @@ -1,5 +1,5 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9xuikon.confml Binary file idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9xuikon.confml has changed diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9xuikon.gcfml --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9xuikon.gcfml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9xuikon.gcfml Wed Sep 15 12:00:00 2010 +0300 @@ -1,5 +1,5 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view1_2001fdb9/group/bld.inf --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/group/bld.inf Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/group/bld.inf Wed Sep 15 12:00:00 2010 +0300 @@ -66,7 +66,7 @@ //*********************** ../rom/view_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9_resources.iby) ../rom/view_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9_customer.iby) -../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9_variant.iby) +//../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9_variant.iby) //../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9.iby) diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view1_2001fdb9/hsps/00/viewconfiguration.xml --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/hsps/00/viewconfiguration.xml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/hsps/00/viewconfiguration.xml Wed Sep 15 12:00:00 2010 +0300 @@ -13,7 +13,7 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/37/view.css --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/37/view.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/37/view.css Wed Sep 15 12:00:00 2010 +0300 @@ -63,11 +63,12 @@ softkey#msk_ltr { - display: block; + display: none; } softkey#msk_rtl { - display: none; + display: block; } + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/50/view.css --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/50/view.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/50/view.css Wed Sep 15 12:00:00 2010 +0300 @@ -63,11 +63,11 @@ softkey#msk_ltr { - display: block; + display: none; } softkey#msk_rtl { - display: none; + display: block; } diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/57/view.css --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/57/view.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/57/view.css Wed Sep 15 12:00:00 2010 +0300 @@ -63,11 +63,11 @@ softkey#msk_ltr { - display: block; + display: none; } softkey#msk_rtl { - display: none; + display: block; } diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/94/view.css --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/94/view.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/94/view.css Wed Sep 15 12:00:00 2010 +0300 @@ -63,11 +63,12 @@ softkey#msk_ltr { - display: block; + display: none; } softkey#msk_rtl { - display: none; + display: block; } + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286ea.confml --- a/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286ea.confml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286ea.confml Wed Sep 15 12:00:00 2010 +0300 @@ -1,6 +1,12 @@ + + The Qhd touch is a supported display type of the xuikon homescreen + + + The Vga touch is a supported display type of the xuikon homescreen + Maximum widget amount in Homescreen 2 page. Customizable @@ -237,6 +243,8 @@ + true + true 6 true hs_vga_tch_view @@ -323,85 +331,7 @@ param - 0x2001f47f - 0 - 0 - permanent - 0 - 0 - - - - - - - - - - - - - - - - - - - - first - Shortcut1 - second - Shortcut2 - third - Shortcut3 - fourth - Shortcut4 - type - uid - view - param - - - 0x2001f47f - 0 - 0 - permanent - 0 - 0 - - - - - - - - - - - - - - - - - - - - first - Shortcut1 - second - Shortcut2 - third - Shortcut3 - fourth - Shortcut4 - type - uid - view - param - - - 0x2001f47f + 0x200255b6 0 0 permanent @@ -478,6 +408,84 @@ view param + + 0x2001f47f + 0 + 0 + none + 0 + 0 + + + + + + + + + + + + + + + + + + + + first + Shortcut1 + second + Shortcut2 + third + Shortcut3 + fourth + Shortcut4 + type + uid + view + param + + + 0x2001f47f + 0 + 0 + none + 0 + 0 + + + + + + + + + + + + + + + + + + + + first + Shortcut1 + second + Shortcut2 + third + Shortcut3 + fourth + Shortcut4 + type + uid + view + param + \ No newline at end of file diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286ea.gcfml --- a/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286ea.gcfml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286ea.gcfml Wed Sep 15 12:00:00 2010 +0300 @@ -1,5 +1,5 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eamanifest.confml Binary file idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eamanifest.confml has changed diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eamanifest.gcfml --- a/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eamanifest.gcfml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eamanifest.gcfml Wed Sep 15 12:00:00 2010 +0300 @@ -1,5 +1,5 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eaxuikon.confml Binary file idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eaxuikon.confml has changed diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eaxuikon.gcfml --- a/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eaxuikon.gcfml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eaxuikon.gcfml Wed Sep 15 12:00:00 2010 +0300 @@ -1,5 +1,5 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view2_200286ea/group/bld.inf --- a/idlehomescreen/data/vga_tch/view2_200286ea/group/bld.inf Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/group/bld.inf Wed Sep 15 12:00:00 2010 +0300 @@ -66,7 +66,7 @@ //*********************** ../rom/view_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(view2_200286ea_resources.iby) ../rom/view_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view2_200286ea_customer.iby) -../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view2_200286ea_variant.iby) +//../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view2_200286ea_variant.iby) //../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view2_200286ea.iby) diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view2_200286ea/hsps/00/viewconfiguration.xml --- a/idlehomescreen/data/vga_tch/view2_200286ea/hsps/00/viewconfiguration.xml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/hsps/00/viewconfiguration.xml Wed Sep 15 12:00:00 2010 +0300 @@ -13,7 +13,7 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view2_200286ea/xuikon/37/view.css --- a/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/37/view.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/37/view.css Wed Sep 15 12:00:00 2010 +0300 @@ -63,11 +63,12 @@ softkey#msk_ltr { - display: block; + display: none; } softkey#msk_rtl { - display: none; + display: block; } + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view2_200286ea/xuikon/50/view.css --- a/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/50/view.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/50/view.css Wed Sep 15 12:00:00 2010 +0300 @@ -63,11 +63,11 @@ softkey#msk_ltr { - display: block; + display: none; } softkey#msk_rtl { - display: none; + display: block; } diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view2_200286ea/xuikon/57/view.css --- a/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/57/view.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/57/view.css Wed Sep 15 12:00:00 2010 +0300 @@ -63,11 +63,11 @@ softkey#msk_ltr { - display: block; + display: none; } softkey#msk_rtl { - display: none; + display: block; } diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view2_200286ea/xuikon/94/view.css --- a/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/94/view.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/94/view.css Wed Sep 15 12:00:00 2010 +0300 @@ -63,11 +63,11 @@ softkey#msk_ltr { - display: block; + display: none; } softkey#msk_rtl { - display: none; + display: block; } diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286eb.confml --- a/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286eb.confml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286eb.confml Wed Sep 15 12:00:00 2010 +0300 @@ -1,6 +1,12 @@ + + The Qhd touch is a supported display type of the xuikon homescreen + + + The Vga touch is a supported display type of the xuikon homescreen + Maximum widget amount in Homescreen 3 page. Customizable @@ -25,11 +31,11 @@ Widgets in the Homescreen 3 - Widget name - + true + true 6 true hs_vga_tch_view @@ -245,7 +253,46 @@ path - 0x2001f47f + 0x200286e6 + 0 + 0 + permanent + 0 + + + + + + + + + + + + + + + + + + + + + first + Shortcut1 + second + Shortcut2 + third + Shortcut3 + fourth + Shortcut4 + type + uid + view + param + + + 0x200286e7 0 0 permanent @@ -284,7 +331,7 @@ param - 0x2001f47f + 0x200255b6 0 0 permanent @@ -326,46 +373,7 @@ 0x2001f47f 0 0 - permanent - 0 - 0 - - - - - - - - - - - - - - - - - - - - first - Shortcut1 - second - Shortcut2 - third - Shortcut3 - fourth - Shortcut4 - type - uid - view - param - - - 0x2001f47f - 0 - 0 - permanent + none 0 0 @@ -404,7 +412,7 @@ 0x2001f47f 0 0 - permanent + none 0 0 @@ -443,7 +451,7 @@ 0x2001f47f 0 0 - permanent + none 0 0 diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286eb.gcfml --- a/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286eb.gcfml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286eb.gcfml Wed Sep 15 12:00:00 2010 +0300 @@ -1,5 +1,5 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebmanifest.confml Binary file idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebmanifest.confml has changed diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebmanifest.gcfml --- a/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebmanifest.gcfml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebmanifest.gcfml Wed Sep 15 12:00:00 2010 +0300 @@ -1,5 +1,5 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebxuikon.confml Binary file idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebxuikon.confml has changed diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebxuikon.gcfml --- a/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebxuikon.gcfml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebxuikon.gcfml Wed Sep 15 12:00:00 2010 +0300 @@ -1,5 +1,5 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view3_200286eb/group/bld.inf --- a/idlehomescreen/data/vga_tch/view3_200286eb/group/bld.inf Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/group/bld.inf Wed Sep 15 12:00:00 2010 +0300 @@ -65,7 +65,7 @@ //*********************** ../rom/view_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(view3_200286eb_resources.iby) ../rom/view_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view3_200286eb_customer.iby) -../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view3_200286eb_variant.iby) +//../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view3_200286eb_variant.iby) //../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view3_200286eb.iby) diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view3_200286eb/hsps/00/viewconfiguration.xml --- a/idlehomescreen/data/vga_tch/view3_200286eb/hsps/00/viewconfiguration.xml Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/hsps/00/viewconfiguration.xml Wed Sep 15 12:00:00 2010 +0300 @@ -13,7 +13,7 @@ - + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view3_200286eb/xuikon/37/view.css --- a/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/37/view.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/37/view.css Wed Sep 15 12:00:00 2010 +0300 @@ -63,11 +63,11 @@ softkey#msk_ltr { - display: block; + display: none; } softkey#msk_rtl { - display: none; + display: block; } diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view3_200286eb/xuikon/50/view.css --- a/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/50/view.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/50/view.css Wed Sep 15 12:00:00 2010 +0300 @@ -63,11 +63,11 @@ softkey#msk_ltr { - display: block; + display: none; } softkey#msk_rtl { - display: none; + display: block; } diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view3_200286eb/xuikon/57/view.css --- a/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/57/view.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/57/view.css Wed Sep 15 12:00:00 2010 +0300 @@ -63,11 +63,11 @@ softkey#msk_ltr { - display: block; + display: none; } softkey#msk_rtl { - display: none; + display: block; } diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/data/vga_tch/view3_200286eb/xuikon/94/view.css --- a/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/94/view.css Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/94/view.css Wed Sep 15 12:00:00 2010 +0300 @@ -63,11 +63,11 @@ softkey#msk_ltr { - display: block; + display: none; } softkey#msk_rtl { - display: none; + display: block; } diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/inc/xnproperty.h --- a/idlehomescreen/inc/xnproperty.h Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/inc/xnproperty.h Wed Sep 15 12:00:00 2010 +0300 @@ -182,6 +182,7 @@ _LIT8( KDate, "date" ); _LIT8( KDay, "day" ); _LIT8( KAmpm, "ampm" ); + _LIT8( KFaceAdjustmentValue, "face-adjustment-value" ); } namespace volumecontrol { diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/inc/xnuiengine.h --- a/idlehomescreen/inc/xnuiengine.h Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/inc/xnuiengine.h Wed Sep 15 12:00:00 2010 +0300 @@ -82,18 +82,6 @@ void RenderUIL( CXnNode* aNode = NULL ); /** - * Calculates the layout of the UI and renders it. - * This generates full re-layout starting from the given node, - * regardless of the current dirty set or the active view. - * I.e. this can be used to layout an inactive view. - * - * @since Series 60 5.2 - * @param aNode Starting point for the layout - * @exception KXnErrLoadLayoutFileFailed Loading the layout file failed. - */ - void RenderFromNodeL( CXnNode& aNode ); - - /** * Calculates the layout of the UI. * * @since Series 60 3.1 @@ -102,17 +90,6 @@ void LayoutUIL( CXnNode* aNode = NULL ); /** - * Calculates the layout of the UI. - * This generates full re-layout starting from the given node, - * regardless of the current dirty set or the active view. - * I.e. this can be used to layout an inactive view. - * - * @since Series 60 5.2 - * @param aNode Starting point for the layout - */ - void LayoutFromNodeL( CXnNode& aNode ); - - /** * Gets the root node of the UI. Ownership is not transferred. * * @since Series 60 3.1 diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/inc/xnviewswitcher.h --- a/idlehomescreen/inc/xnviewswitcher.h Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/inc/xnviewswitcher.h Wed Sep 15 12:00:00 2010 +0300 @@ -98,7 +98,11 @@ */ void SizeChanged( TRect aRect ); - + /** + * Stop view switch + */ + void StopViewSwitchL(); + private: // constructors /** diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/conf/widgetmanager.confml Binary file idlehomescreen/widgetmanager/conf/widgetmanager.confml has changed diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/conf/widgetmanager_20026F53.crml Binary file idlehomescreen/widgetmanager/conf/widgetmanager_20026F53.crml has changed diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/data/widgetmanagerview.rss --- a/idlehomescreen/widgetmanager/data/widgetmanagerview.rss Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/widgetmanager/data/widgetmanagerview.rss Wed Sep 15 12:00:00 2010 +0300 @@ -41,7 +41,7 @@ RESOURCE AVKON_VIEW r_wm_main_container_view { - cba = R_AVKON_SOFTKEYS_OPTIONS_BACK; + cba = r_wm_softkeys_options_back__store; menubar = r_wm_main_container_options_menu; toolbar = 0; } @@ -51,6 +51,28 @@ txt = qtn_wm_title_text; } +RESOURCE CBA r_wm_softkeys_options_back__store + { + flags = EEikButtonGroupAddToStack | EEikCbaFlagAppMskIcon; + buttons = + { + CBA_BUTTON {id=EAknSoftkeyOptions; txt = text_softkey_option;}, + CBA_BUTTON {id=EAknSoftkeyBack; txt = text_softkey_back; }, + AVKON_CBA_BUTTON{id=EWmStoreCommand; longpressid=0; txt= ""; } + }; + } + +RESOURCE CBA r_wm_softkeys_options_cancel__store + { + flags = EEikButtonGroupAddToStack | EEikCbaFlagAppMskIcon; + buttons = + { + CBA_BUTTON {id=EAknSoftkeyOptions; txt = text_softkey_option;}, + CBA_BUTTON {id=EAknSoftkeyCancel; txt = text_softkey_cancel; }, + AVKON_CBA_BUTTON{id=EWmStoreCommand; longpressid=0; txt= ""; } + }; + } + // ---------------------------------------------------- // MENU // ---------------------------------------------------- @@ -72,12 +94,6 @@ { MENU_ITEM { - command = EWmMainContainerViewOpenPortalMenuItemCommand; - txt = qtn_options_wm_open; - flags = EEikMenuItemAction; - }, - MENU_ITEM - { command = EWmMainContainerViewAddMenuItemCommand; txt = qtn_options_wm_add; flags = EEikMenuItemAction; @@ -124,25 +140,21 @@ } // ---------------------------------------------------- -// OVI STORE BUTTON +// Ovi store related // ---------------------------------------------------- - -RESOURCE AVKON_BUTTON r_wm_portal_button +RESOURCE TBUF r_qtn_wm_ovi_store_title { - flags = 0; - states = - { - AVKON_BUTTON_STATE - { - flags = 0; - txt = qtn_wm_ovi_store_title; - } - }; + buf = qtn_wm_ovi_store_title; } -RESOURCE TBUF r_qtn_wm_go_to_ovi_store +RESOURCE TBUF r_qtn_wm_ovi_store_desc { - buf = qtn_wm_ovi_store_title; + buf = qtn_wm_ovi_store_desc; + } + +RESOURCE TBUF r_qtn_wm_storelist_title + { + buf = qtn_wm_storelist_title; } // ---------------------------------------------------- diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/gfx/qgn_menu_shopping.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/widgetmanager/gfx/qgn_menu_shopping.svg Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/group/widgetmanager.mmp --- a/idlehomescreen/widgetmanager/group/widgetmanager.mmp Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/widgetmanager/group/widgetmanager.mmp Wed Sep 15 12:00:00 2010 +0300 @@ -48,7 +48,7 @@ SOURCE wmpersistentwidgetorder.cpp SOURCE wmeffectmanager.cpp SOURCE wmdetailsdlg.cpp -SOURCE wmportalbutton.cpp +SOURCE wmstore.cpp SOURCE wmwidgetloaderao.cpp SOURCE wmconfiguration.cpp SOURCE wminstaller.cpp diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/group/wmicons.txt --- a/idlehomescreen/widgetmanager/group/wmicons.txt Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/widgetmanager/group/wmicons.txt Wed Sep 15 12:00:00 2010 +0300 @@ -1,2 +1,3 @@ -c32,8 qgn_menu_hswidget -c32,8 qgn_menu_ovistore.svg +-c32,8 qgn_menu_shopping.svg \ No newline at end of file diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/inc/widgetmanager.hrh --- a/idlehomescreen/widgetmanager/inc/widgetmanager.hrh Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/widgetmanager/inc/widgetmanager.hrh Wed Sep 15 12:00:00 2010 +0300 @@ -32,9 +32,9 @@ EWmMainContainerViewSortAlphaMenuItemCommand, EWmMainContainerViewUninstallMenuItemCommand, EWmMainContainerViewHelpMenuItemCommand, - EWmMainContainerViewOpenPortalMenuItemCommand, EWmMainContainerViewBackMenuItemCommand, - EWmMainContainerViewWiddetDetailsMenuItemCommand + EWmMainContainerViewWiddetDetailsMenuItemCommand, + EWmStoreCommand }; enum TWmMenuCmdIDs diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/inc/wmcommon.h --- a/idlehomescreen/widgetmanager/inc/wmcommon.h Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/widgetmanager/inc/wmcommon.h Wed Sep 15 12:00:00 2010 +0300 @@ -35,12 +35,9 @@ // UI component ID's enum TWmUiControlIds { - EPortalOne = 0x1, - EPortalTwo, - ELastPortal, - EWidgetsList, + EWidgetsList = 0x1, EFindBox, - EMaximumWidgets = 0xC8 + ELastCtrl }; #endif //WMCOMMON_H diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/inc/wmconfiguration.h --- a/idlehomescreen/widgetmanager/inc/wmconfiguration.h Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/widgetmanager/inc/wmconfiguration.h Wed Sep 15 12:00:00 2010 +0300 @@ -21,6 +21,7 @@ // INCLUDE FILES #include +#include "wmstore.h" // FORWARD DECLARATIONS class CRepository; @@ -36,10 +37,11 @@ public: // constructors and destructor - /** Operator Application type */ - enum TOpAppType + /** Store's Application type */ + enum TStoreAppType { EUnknown, + EOviCwrt, ES60, ECwrt, EWrt, @@ -64,70 +66,22 @@ void ConstructL(); public: // API - - /** - * Number of portal buttons (1 or more) - */ - TInt PortalButtonCount(); - - /** - * Label text to be displayed on a portal button - * @param aIndex index of the button, starting at 0 - */ - const TDesC& PortalButtonText( TInt aIndex ); - + /** - * Icon to be displayed on a portal button - * Logo syntax follows the widget icon syntax in CWmImageConverter - * @param aIndex index of the button, starting at 0 + * Number of Stores */ - const TDesC& PortalButtonIcon( TInt aIndex ); - - /** - * Returns url to for browser by button index - * @param aIndex index of the button, starting at 0 - */ - const TDesC& PortalButtonBrowserUrl( TInt aIndex ); - - /** - * Returns client uid by button index - * @param aIndex index of the button, starting at 0 - */ - TUid PortalButtonClientUid( TInt aIndex ); + TInt StoreCount(); /** - * Returns client parameter by button index - * @param aIndex index of the button, starting at 0 + * Returns Store configuration array ref */ - const TDesC& PortalButtonClientParam( TInt aIndex ); - - /** - * Returns bool if buttons are mirrored. - * @return true when operator button on left on portraid and - * on top on landscape. - */ - TBool PortalButtonsMirrored(); + const RPointerArray& StoreConfArray(); /** - * Returns application type by button index - * @param aIndex button index - * @return application type - */ - TOpAppType PortalButtonApplicationType( TInt aIndex ); - - /** - * Returns application id as string - * @param aIndex button index - * @param aOperatorAppId string to get app id - */ - void PortalButtonApplicationId( TInt aIndex, TDes& aOperatorAppId ); - - /** - * Returns application id as uid - * @param aIndex button index - * @param aOperatorAppId uid to get app id - */ - void PortalButtonApplicationId( TInt aIndex, TUid& aOperatorAppId ); + * To compare orders + */ + static TInt CompareStoreOrder( + const CWmConfItem& aItemOne, const CWmConfItem& aItemTwo ); private: // New functions @@ -137,15 +91,15 @@ void ReadInt32Parameter( TInt aKey, TInt32& aValue ); void ReadIntParameter( TInt aKey, TInt& aValue ); HBufC* ReadLocalisedParameterL( TInt aOffset ); - void ReadOperatorApplicationInfoL(); + void ReadApplicationInfoL( TInt aKey, CWmConfItem& aConfItem ); TUid StringToUid( const TDesC& aStr ); /** Returns uid of the widget with a particular bundle identifier. */ TUid FetchWidgetUidFromRegistryL( const TDesC& aBundleId ); - /** sets operator icon to button if not already defined */ - void SetOperatorIconL( TUid aUid ); - + /** sets Store icon to if not already defined */ + void SetStoreIconL( CWmConfItem& aConfItem ); + private: /** @@ -163,73 +117,123 @@ * system language */ TInt iLanguageIndex; - - /** - * OVI store button text - */ - HBufC* iOviButtonTitle; - - /** - * OVI store button icon - */ - HBufC* iOviButtonIcon; /** - * OVI store button widget client param + * Array of configuration items. Array is in order as they should appear in UI + */ + RPointerArray iConfItems; + }; + + +/** + * Configuration item class for Widget Manager + * + * @class CWmConfiguration + */ +NONSHARABLE_CLASS( CWmConfItem ) : public CBase + { + public: // constructors and destructor + + /** Two-phased constructors. */ + static CWmConfItem* NewL(); + + static CWmConfItem* NewLC(); + + /** Destructor */ + ~CWmConfItem(); + + private: + /** constructor */ + CWmConfItem(); + + /** 2nd phase constructor */ + void ConstructL(); + +public: // API + /** + * Returns Store id */ - HBufC* iOviStoreClientParam; + CWmStore::TStoreId Id(); /** - * OVI store laucher uid + * Returns Label text to be displayed on a Store */ - TUid iOviStoreUid; + const TDesC& Title(); /** - * OPERATOR button text + * Returns Icon to be displayed on a Store + * Logo syntax follows the widget icon syntax in CWmImageConverter */ - HBufC* iOperatorButtonTitle; - + const TDesC& Icon(); + /** - * OPERATOR store icon + * Returns Order of Store */ - HBufC* iOperatorButtonIcon; + TInt Order(); /** - * OPERATOR store button browser Url + * Returns url to for browser + */ + const TDesC& BrowserUrl(); + + /** + * Returns application type */ - HBufC* iOperatorButtonUrl; + CWmConfiguration::TStoreAppType AppType(); + + /** + * Returns application uid + */ + TUid AppUid(); /** - * OPERATOR store button application parameter + * Returns application parameter by index */ - HBufC* iOperatorParam; + const TDesC& AppParam(); + +private: + /** + * Store Id + */ + CWmStore::TStoreId iId; /** - * OPERATOR store application id as string. Used for java + * Store text */ - HBufC* iOperatorAppIdStr; + HBufC* iTitle; /** - * OPERATOR store application id as uid. + * Store icon */ - TUid iOperatorAppIdUid; - + HBufC* iIcon; + /** - * OPERATOR store application type + * Store order */ - TOpAppType iOperatorAppType; - + TInt iOrder; + + /** + * Store browser Url + */ + HBufC* iUrl; + /** - * Tells if operator button is enabled. + * Application type */ - TBool iOperatorButtonEnabled; - + CWmConfiguration::TStoreAppType iAppType; + /** - * Tells if buttons need to be mirrored for operator. + * Application uid */ - TBool iButtonsMirrored; - }; - + TUid iAppUid; + + /** + * Application parameter + */ + HBufC* iAppParam; + + friend class CWmConfiguration; + }; #endif // WMCONFIGURATION_H // End of File diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/inc/wmcrkeys.h --- a/idlehomescreen/widgetmanager/inc/wmcrkeys.h Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/widgetmanager/inc/wmcrkeys.h Wed Sep 15 12:00:00 2010 +0300 @@ -20,60 +20,62 @@ #define __WMCRKEYS_H__ // WidgetManager CR key -const TUint32 KCrWidgetManagerm = 0x20026F53; +const TUint32 KCrWidgetManager = 0x20026F53; + +// ************************************************************ +// NON-LOCALISED parameters +// ************************************************************ + +/** */ +const TUint32 KOviStoreEnabled = 0x1; + +/** */ +const TUint32 KOviOrder = 0x2; +/** */ +const TUint32 KOviUid = 0x3; +/** */ +const TUint32 KOviAppParam = 0x4; + +/** */ +const TUint32 KStoreEnabled = 0x5; + +/** */ +const TUint32 KOrder = 0x6; // ************************************************************ // LOCALISED parameters start here -// Key Id's from 0x1 to 0x1E are reserved for languages. -// LangId_0 0x1 -// OperatorUrl_0 0x2 -// OperatorButtonText_0 0x3 +// KLangId_0 0x7 +// KUrl_0 0x8 +// KTitle_0 0x9 // ... -// LangId_1 0x4 +// KLangId_1 0xA // ... -// LangId_9 0x1C -// OperatorUrl_9 0x1D -// OperatorButtonText_9 0x1E +// KLangId_9 0x22 +// KUrl_9 0x23 +// KTitle_9 0x24 // ************************************************************ /** localised set #0, language ID */ -const TUint32 KLangId0 = 0x1; -/** localised set #0, Operator button URL */ -const TUint32 KOperatorButtonUrl0 = 0x2; -/** localised set #0, Operator button text */ -const TUint32 KOperatorButtonText0 = 0x3; +const TUint32 KLangId_0 = 0x7; +/** localised set #0, store URL */ +const TUint32 KUrl_0 = 0x8; +/** localised set #0, store text */ +const TUint32 KTitle_0 = 0x9; /** localised set #1, language ID */ -const TUint32 KLangId1 = 0x4; +const TUint32 KLangId_1 = 0xA; /** localised set #9, language ID */ -const TUint32 KLangId9 = 0x1C; - +const TUint32 KLangId_9 = 0x22; // ************************************************************ -// NON-LOCALISED OVI parameters +// NON-LOCALISED parameters // ************************************************************ -/** Key to Ovi Store Client param */ -const TUint32 KOviStoreClientParam = 0x1F; - -/** Key to Ovi Store client Uid */ -const TUint32 KOviStoreUid = 0x20; - -// ************************************************************ -// NON-LOCALISED Operator parameters -// ************************************************************ - -/** Key to Operator button icon */ -const TUint32 KOperatorButtonEnabled = 0x21; - -/** Key to Operator button icon */ -const TUint32 KOperatorButtonIcon = 0x22; - /** - * Key to Operator application type and id. + * Key to Store application type and id. * Give ':' as separator between type and id. * Type can be s60, cwrt, wrt, java, qt * Examples: @@ -83,16 +85,13 @@ * java:c:/sys/bin/javastore.jar full path for java app * qt:0x2001A9CA Application Uid as id */ -const TUint32 KOperatorAppTypeAndId = 0x23; - -/** Key to Operator application param */ -const TUint32 KOperatorParam = 0x24; +const TUint32 KAppTypeAndId = 0x25; -/** - * Key to define if operator button needs to be placed to left in landscape and - * top on portraid. By default it's right and bottom. - */ -const TUint32 KOperatorButtonHigherPriority = 0x25; +/** */ +const TUint32 KAppParam = 0x26; + +/** Key to Store icon */ +const TUint32 KIcon = 0x27; #endif // __WMCRKEYS_H__ diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/inc/wmimageconverter.h --- a/idlehomescreen/widgetmanager/inc/wmimageconverter.h Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/widgetmanager/inc/wmimageconverter.h Wed Sep 15 12:00:00 2010 +0300 @@ -57,6 +57,7 @@ * @param aIconStr str containing logo icon * @param aBitmap bitmap to create. Empty if fails * @param aMask mask to create. Empty if fails + * @param aForceScale force scaling for non-scalable icons. * Supported values: * - skin( ):mif( ) * - mif( ) @@ -69,7 +70,8 @@ const TSize& aIconSize, const TDesC& aIconStr, CFbsBitmap*& aBitmap, - CFbsBitmap*& aMask ); + CFbsBitmap*& aMask, + TBool aForceScale = EFalse ); /** * Parses icon string and resizes given bitmaps if needed. @@ -85,6 +87,25 @@ const TDesC& aIconStr, CFbsBitmap& aBitmap, CFbsBitmap& aMask ); + + /** + * Parses icon string. + * + * @param aIconStr icon string to be parsed + * @param aItemId fetched skin id + * @param aBitmapId fetched bitmap id + * @param aMaskId fetched mask id + * @param aFileName fetched file name + * + * @return ETrue if success with parsing. + */ + + TBool ParseIconString( + const TDesC& aIconStr, + TAknsItemID& aItemId, + TInt& aBitmapId, + TInt& aMaskId, + TDes& aFileName ); private: CWmImageConverter(); @@ -92,20 +113,23 @@ private: void CheckSvgErrorL( MSvgError* aError ); - void HandleIconStringL( const TSize& aIconSize, const TDesC& aIconStr ); + void HandleIconStringL( + const TSize& aIconSize, + const TDesC& aIconStr, + TBool aForceScale ); - void CreateIconFromUidL( const TUid& aUid ); + void CreateIconFromUidL( const TUid& aUid, TBool aForceScale ); void CreateIconFromSvgL( const TDesC& aFileName ); - void CreateIconFromOtherL( const TDesC& aFileName ); + void CreateIconFromOtherL( const TDesC& aFileName, TBool aForceScale ); void CreateSkinOrMifIconL( const TAknsItemID& aItemId, TInt aBitmapId, TInt aMaskId, const TDesC& aFileName ); // resolvers - TBool ResolveUid( const TDesC& aPath, TUid& aUid ); - TBool ResolveSkinId( const TDesC& aPath, TAknsItemID& aItemId ); - TBool ResolveMifId( const TDesC& aPath, TInt& aBitmapId, + TBool ResolveUid( const TDesC& aStr, TUid& aUid ); + TBool ResolveSkinId( const TDesC& aStr, TAknsItemID& aItemId ); + TBool ResolveMifId( const TDesC& aStr, TInt& aBitmapId, TInt& aMaskId, TDes& aFileName ); - TBool ResolveSkinIdAndMifId( const TDesC& aPath, TAknsItemID& aItemId, + TBool ResolveSkinIdAndMifId( const TDesC& aStr, TAknsItemID& aItemId, TInt& aBitmapId, TInt& aMaskId, TDes& aFileName ); TBool EndsWith( const TDesC& aString, const TDesC& aPattern ); diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/inc/wmmaincontainer.h --- a/idlehomescreen/widgetmanager/inc/wmmaincontainer.h Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/widgetmanager/inc/wmmaincontainer.h Wed Sep 15 12:00:00 2010 +0300 @@ -38,7 +38,7 @@ class CAknSearchField; class CCoeControl; class CAknSearchField; -class CWmPortalButton; +class CWmStore; class CWmMainContainerView; class CWmConfiguration; @@ -94,11 +94,6 @@ TBool IsLoadingWidgets(); /** - * @return true, if portal button is currently selected - */ - TBool PortalSelected(); - - /** * @return true, if a widget in list is currently selected */ TBool WidgetSelected(); @@ -174,14 +169,9 @@ void UninstallWidgetL(); /** - * opens currently selected portal + * Store menu command. */ - void OpenPortalL(); - - /** - * Selection key (middle soft key) - */ - void SelectL(); + void HandleStoreCommandL(); /** * Show widget manager help @@ -226,12 +216,6 @@ * @see CCoeControl::HandlePointerEventL */ void HandlePointerEventL( const TPointerEvent& aPointerEvent ); - - /** - * Moves focus to the OVI button - * @param aIndex 0=first button, 1=second (if it exists) - */ - void SetFocusToPortalButton( TInt aIndex ); /** * Moves focus to the widgets list, alternatively also setting the currently @@ -252,17 +236,6 @@ * To set iClosingDown. See above. */ void SetClosingDown( TBool aClosingDown ); - - /** - * access to WM configuration - */ - CWmConfiguration& Configuration(); - - /** - * Process foregound events. - * @param aForeground ETrue indicates foreground - */ - void ProcessForegroundEvent( TBool aForeground ); /** * access to WM list @@ -314,28 +287,22 @@ private: // New functions + void DisplayAndLaunchStoresL(); + static void CleanupIconArray( TAny* aIconArray ); + void AddControlL( CCoeControl* aControl, TInt aControlId ); void InitializeControlsL( const TRect& aRect ); void LayoutControls(); void StartLoadingWidgetsL(); void RemoveCtrlsFromStack(); - void UpdateFocusMode(); - void ResetFocus( TDrawNow aDrawNow = ENoDrawNow ); CCoeControl* FindChildControlByPoint( const TPoint& aPoint ); void HandleFindSizeChanged(); - TKeyResponse MoveFocusByKeys( - const TKeyEvent& aKeyEvent, - TEventCode aType ); - TKeyResponse HandleButtonKeyEventL( - const TKeyEvent& aKeyEvent, - TEventCode aType ); TKeyResponse HandleListKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType ); TKeyResponse HandleSearchKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType ); - TInt OperatorButtonHigherPriority( TInt aIndex ); public: // from MWmWidgetloaderObserver void LoadDoneL( TBool aWidgetListChanged ); @@ -366,55 +333,23 @@ * background */ CAknsBasicBackgroundControlContext* iBgContext; - - /** - * portal button - * (if there is only one button, this is it) - */ - CWmPortalButton* iPortalButtonOne; /** - * portal button - * (if there is only one button, this is NULL) - */ - CWmPortalButton* iPortalButtonTwo; - - /** whether we are orientated in landscape */ - TBool iLandscape; - - /** whether we have mirrored layout */ - TBool iMirrored; - - /** focus modes */ - enum TWmFocusMode - { - ENowhere, - EPortal, - EList, - EFind - }; - - /** - * current widget manager focus mode - */ - TWmFocusMode iFocusMode; - - /** * AO for loading widgets into the list UI */ CWmWidgetLoaderAo* iWidgetLoader; - + + /** + * Currectly selected store. + */ + CWmStore* iSelectedStore; + /** * If this is set to ETrue it means wmview is closing and all user inputs * should be ignored. */ TBool iClosingDown; - /** - * The configuration - */ - CWmConfiguration* iConfiguration; - #ifdef _WM_UNIT_TEST friend class CWmUnitTest; #endif diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/inc/wmmaincontainerview.h --- a/idlehomescreen/widgetmanager/inc/wmmaincontainerview.h Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/widgetmanager/inc/wmmaincontainerview.h Wed Sep 15 12:00:00 2010 +0300 @@ -79,15 +79,7 @@ * @see CAknView::DoActivateL */ void DoDeactivate(); - -public: // from MeikMenuObserver - - /** - * Foreground event handling function. - * @param aForeground Indicates the required focus state of the control. - */ - void HandleForegroundEventL( TBool aForeground ); - + private: CWmMainContainerView( CWmPlugin& aWmPlugin ); void ConstructL(); @@ -114,7 +106,6 @@ private: /** menu commands */ - TBool HandleOpenMenuItemSelectedL(); TBool HandleAddMenuItemSelectedL(); TBool HandleLaunchMenuItemSelectedL(); TBool HandleSearchMenuItemSelectedL(); @@ -125,6 +116,8 @@ TBool HandleDeactivateFindPaneL(); /** setup title in status pane */ void SetTitleL(); + /** setup msk icon */ + void UpdateMSKIconL(); private: /** @@ -141,7 +134,6 @@ * the plugin root (not owned) */ CWmPlugin& iWmPlugin; - }; #endif // WMMAINCONTAINERVIEW_H diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/inc/wmplugin.h --- a/idlehomescreen/widgetmanager/inc/wmplugin.h Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/widgetmanager/inc/wmplugin.h Wed Sep 15 12:00:00 2010 +0300 @@ -33,6 +33,7 @@ class CWmEffectManager; class CWmWidgetData; class CWmInstaller; +class CWmConfiguration; /** * CWmPlugin @@ -167,6 +168,11 @@ CWmInstaller& WmInstaller(); /** + * reference to iWmConfiguration + */ + CWmConfiguration& Configuration(); + + /** * Get widget by Uid. Used for getting widget details * when error has occured during uninstallation. * @param aUid Uid of widget @@ -251,6 +257,11 @@ */ TInt iExecutionCount; + /** + * The configuration + */ + CWmConfiguration* iConfiguration; + #ifdef _WM_UNIT_TEST friend class CWmUnitTest; #endif diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/inc/wmportalbutton.h --- a/idlehomescreen/widgetmanager/inc/wmportalbutton.h Tue Sep 14 20:58:58 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,173 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).. -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* Declares portal button for WidgetManager -* -*/ - -#ifndef ___WMPORTALBUTTON_H__ -#define ___WMPORTALBUTTON_H__ - -#include // CAknButton -#include //MAknServerAppExitObserver - -#include "wmcommon.h" - -// FORWARD DECLARATIONS -class CWmMainContainer; -class CFbsBitmap; -class CWmConfiguration; -class CWmProcessMonitor; -class CBrowserLauncher; -class CWmImageConverter; - -/** - * Portal button ( ovi, operator ) class for Wm - * - * @class CWmPortalButton wmportalbutton.h - */ -NONSHARABLE_CLASS( CWmPortalButton ) : public CAknButton, - public MCoeControlObserver, - public MAknServerAppExitObserver - { -public: - /* - * Two-phased constructor. - * - * @param aParent button title text - * @param aPortalButtonIndex index of this button (0 or 1) - */ - static CWmPortalButton* NewL( - const CCoeControl* aParent, - TInt aPortalButtonIndex = 0 ); - - /** Destructor */ - virtual ~CWmPortalButton(); - -public: // Functions from base class - - /* - * Draws the control. - * - * @see CCoeControl::Draw - */ - void Draw( const TRect& /*aRect*/ ) const; - - /** - * Sets the control's extent, specifying a rectangle. - * - * @see CCoeControl::SizeChanged - */ - void SizeChanged(); - - /** - * Executes action for button pressed - */ - void ExecuteL(); - -protected: // from MCoeControlObserver - - /** Observes the button's own activity */ - void HandleControlEventL( CCoeControl* aControl, TCoeEvent aEventType ); - -protected: // from MAknServerAppExitObserver - - /** Observes when browser is exited */ - void HandleServerAppExit( TInt aReason ); - -protected: // from CCoeControl - - /** Handles pointer events. */ - void HandlePointerEventL( const TPointerEvent& aPointerEvent ); - -protected: // Constructors - - /** Constructor for performing 1st stage construction */ - CWmPortalButton( const TInt aFlags, - TInt aPortalButtonIndex ); - - /** 2nd phase constructor */ - void ConstructL( - CWmMainContainer* aParent, - const TDesC& aText = KNullDesC, - const TDesC& aIcon = KNullDesC ); - -private: - - /** size of button icon, defined in the layout */ - TSize LayoutIconSize() const; - - /** Draws text over button */ - void DrawText( CWindowGc& aGc, - const TDesC& aText, - TAknTextComponentLayout& aLayout, - TInt aMargin ) const; - - /** Runs ovi store launcher */ - void RunOviL( CWmConfiguration& aConf ); - - /** Starts browser */ - void StartBrowserL( const TDesC& aUrl ); - - /** Starts operator application */ - void RunOperatorApplicationL( CWmConfiguration& aConf ); - - /** Starts rprocess by given values */ - void StartProcessL( TUid aUid, const TDesC& aParam ); - - /** - * Opens cwrt/wrt widget to fullscreen. - * @param aAppUid Uid of the widget - * @param aParams Optional parameters - * */ - void StartWidgetL( TUid aAppUid, const TDesC& aParams ); - -private: //data members - - /** - * the image converter utility - */ - CWmImageConverter* iImageConverter; - - /** - * Parent control - */ - CWmMainContainer* iWmMainContainer; - - /** - * Button index - */ - TInt iPortalButtonIndex; - - /** icon */ - CFbsBitmap* iButtonIcon; - - /** icon mask */ - CFbsBitmap* iButtonIconMask; - - /** - * Monitors process - */ - CWmProcessMonitor* iProcessMonitor; - - /** - * Broswer launcher. - */ - CBrowserLauncher* iBrowserLauncher; - - }; - -#endif //___WMPORTALBUTTON_H__ - -// End of File diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/inc/wmstore.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/widgetmanager/inc/wmstore.h Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,169 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).. +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Declares Store for WidgetManager +* +*/ + +#ifndef ___WMSTORE_H__ +#define ___WMSTORE_H__ + +#include //MAknServerAppExitObserver + +#include "wmcommon.h" + +// FORWARD DECLARATIONS +class CWmMainContainer; +class CFbsBitmap; +class CWmConfiguration; +class CWmConfItem; +class CWmProcessMonitor; +class CBrowserLauncher; +class CWmImageConverter; +class CWmResourceLoader; + +/** + * Store ( ovi, operator ) class for Wm + * + * @class CWmStore wmStore.h + */ +NONSHARABLE_CLASS( CWmStore ) : public CBase, + public MAknServerAppExitObserver + { +public: + /** Store Id */ + enum TStoreId + { + EUnknown = 0, + EOvi, + EStore1, + EStore2, // for future use. Can be extented + ELastItem // do not use as store id + }; + + /* + * Two-phased constructor. + * + * @param aStoreIndex index of this Store (0 or 1) + * @param aWmConfiguration Store config + * @param aResourceLoader wm resource loader + */ + static CWmStore* NewL( CWmConfItem& aWmConfItem, + CWmResourceLoader& aResourceLoader ); + + /** Destructor */ + virtual ~CWmStore(); + +public: // New Functions + + /** + * Executes action for store + */ + void ExecuteL(); + + /** + * Icon of store + * + * @return icon of Store ( ownership not transfered ) + */ + CFbsBitmap* StoreIcon(); + + /** + * Mask for icon of store. + * + * @return mask of Store icon ( ownership not transfered ) + */ + CFbsBitmap* StoreMask(); + + /** + * Heading of store + * + * @return heading of store. + */ + const TDesC& Heading(); + + /** + * Order of store + * + * @return order of store. + */ + TInt Order() const; + +protected: // from MAknServerAppExitObserver + + /** Observes when browser is exited */ + void HandleServerAppExit( TInt aReason ); + +protected: // Constructors + + /** Constructor for performing 1st stage construction */ + CWmStore( CWmConfItem& aWmConfItem ); + + /** 2nd phase constructor */ + void ConstructL( CWmResourceLoader& aResourceLoader ); + +private: + + /** Runs ovi store launcher */ + void RunOviL(); + + /** Starts browser */ + void StartBrowserL( const TDesC& aUrl ); + + /** Starts application */ + void RunApplicationL(); + + /** Starts rprocess by given values */ + void StartProcessL( TUid aUid, const TDesC& aParam ); + + /** + * Opens cwrt/wrt widget to fullscreen. + * @param aAppUid Uid of the widget + * @param aParams Optional parameters + * */ + void StartWidgetL( TUid aAppUid, const TDesC& aParams ); + +private: //data members + + /** + * the image converter utility + */ + CWmImageConverter* iImageConverter; + + /** + * Configuration item for store data + */ + CWmConfItem& iWmConfItem; + + /** icon */ + CFbsBitmap* iIcon; + + /** icon mask */ + CFbsBitmap* iMask; + + /** + * Monitors process + */ + CWmProcessMonitor* iProcessMonitor; + + /** + * Broswer launcher. + */ + CBrowserLauncher* iBrowserLauncher; + + }; + +#endif //___WMSTORE_H__ + +// End of File diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/loc/widgetmanagerview.loc --- a/idlehomescreen/widgetmanager/loc/widgetmanagerview.loc Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/widgetmanager/loc/widgetmanagerview.loc Wed Sep 15 12:00:00 2010 +0300 @@ -96,16 +96,34 @@ // MISC - -// d: Text displayed on OVI Store button +// d: Name of Ovi Store in storelist // d: // d: -// l: wgtman_btn_pane_t1 +// l: list_double_large_graphic_pane_t1 // w: // r: TB9.2 // #define qtn_wm_ovi_store_title "Get more" +// d: Description of Ovi Store in storelist +// d: +// d: +// l: list_double_large_graphic_pane_t2 +// w: +// r: TB9.2 +// +#define qtn_wm_ovi_store_desc "Nokia" + +// d: Title of the popup storelist +// d: +// d: +// l: heading_pane_t1 +// w: +// r: TB9.2 +// +#define qtn_wm_storelist_title "Select" + + // d: Info popup to indicate that an item can not be added to home screen // d: because current view is full // d: diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/src/wmconfiguration.cpp --- a/idlehomescreen/widgetmanager/src/wmconfiguration.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/widgetmanager/src/wmconfiguration.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -27,14 +27,15 @@ #include "wmconfiguration.h" #include "wmresourceloader.h" #include "wmcrkeys.h" +#include "wmstore.h" // some constants regarging the central repository localised section. // these will ensure CR localisation section compatibility even if // new strings are added -const TInt KLangOffsetOperatorUrl = KOperatorButtonUrl0 - KLangId0; -const TInt KLangOffsetOperatorText = KOperatorButtonText0 - KLangId0; -const TInt KLangGroupSize = KLangId1 - KLangId0; -const TUint32 KLastLangId = KLangId9; +const TInt KLangOffsetStoreUrl = KUrl_0 - KLangId_0; +const TInt KLangOffsetStoreText = KTitle_0 - KLangId_0; +const TInt KLangGroupSize = KLangId_1 - KLangId_0; +const TUint32 KLastLangId = KLangId_9; _LIT( KOpAppTypeS60, "s60" ); _LIT( KOpAppTypeCwrt, "cwrt" ); @@ -42,7 +43,7 @@ _LIT( KOpAppTypeJava, "java" ); _LIT( KOpAppTypeQt, "qt" ); _LIT( KSeparator, ":" ); -_LIT( KOperatorIcon, "uid(%d)"); +_LIT( KStoreIconFormat, "uid(%d)"); _LIT( KHexPrefix, "0x" ); // --------------------------------------------------------- @@ -67,15 +68,7 @@ CWmResourceLoader& aResourceLoader ) : iResourceLoader( aResourceLoader ) { - - // ovi - iOviStoreUid = KNullUid; - - // operator - iOperatorAppIdUid = KNullUid; - iOperatorAppType = EUnknown; - iOperatorButtonEnabled = EFalse; - iButtonsMirrored = EFalse; + } // --------------------------------------------------------- @@ -84,17 +77,8 @@ // CWmConfiguration::~CWmConfiguration() { - delete iRepository; - // ovi - delete iOviStoreClientParam; - delete iOviButtonTitle; - delete iOviButtonIcon; - // operator - delete iOperatorButtonTitle; - delete iOperatorButtonIcon; - delete iOperatorButtonUrl; - delete iOperatorParam; - delete iOperatorAppIdStr; + delete iRepository; + iConfItems.ResetAndDestroy(); } // --------------------------------------------------------- @@ -103,24 +87,8 @@ // void CWmConfiguration::ConstructL() { - // localised ovistore button text - iOviButtonTitle = StringLoader::LoadL( R_QTN_WM_GO_TO_OVI_STORE ); - - // ovistore icon descriptor. It will look something like this: - // skin( 0x101f86e3 0x23f6 ):mif( z:\resource\apps\widgetmanager.mif 16388 16389 ) - _LIT( KSkinMifIconFormat, "skin( 0x%x 0x%x ):mif( %S %d %d )"); - const TInt KMaxIconDescriptorLength = 256; - TBuf buf; - buf.Format( KSkinMifIconFormat(), - EAknsMajorGeneric, EAknsMinorGenericQgnMenuOviStore, - &iResourceLoader.IconFilePath(), - EMbmWidgetmanagerQgn_menu_ovistore, - EMbmWidgetmanagerQgn_menu_ovistore_mask ); - iOviButtonIcon = buf.AllocL(); - // read data from repository TRAP_IGNORE( LoadConfigurationL(); ); - } // --------------------------------------------------------- @@ -130,25 +98,75 @@ void CWmConfiguration::LoadConfigurationL() { iRepository = CRepository::NewL( - TUid::Uid( KCrWidgetManagerm ) ); + TUid::Uid( KCrWidgetManager ) ); + + TLinearOrder order + = CWmConfiguration::CompareStoreOrder; // read Ovi parameters - ReadInt32Parameter( KOviStoreUid, iOviStoreUid.iUid ); - iOviStoreClientParam = ReadDescParameterL( KOviStoreClientParam ); - - // read operator parameters if operator button enabled - ReadIntParameter( KOperatorButtonEnabled, iOperatorButtonEnabled ); - if ( iOperatorButtonEnabled ) + TInt oviEnabled; + ReadIntParameter( KOviStoreEnabled, oviEnabled ); + if ( oviEnabled ) { - // determine language and read localised parameters + CWmConfItem* ovi = CWmConfItem::NewLC(); + ovi->iId = CWmStore::EOvi; + + // localised ovistore text + _LIT( KFormatStr, "%S\t%S"); + HBufC* title = StringLoader::LoadLC( R_QTN_WM_OVI_STORE_TITLE ); + HBufC* desc = StringLoader::LoadLC( R_QTN_WM_OVI_STORE_DESC ); + + ovi->iTitle = HBufC::NewL( title->Des().Length() + + desc->Des().Length() + + KFormatStr().Length() ); + + ovi->iTitle->Des().Format( KFormatStr(), title, desc ); + + CleanupStack::PopAndDestroy( desc ); + CleanupStack::PopAndDestroy( title ); + + // ovistore icon descriptor. It will look something like this: + // skin( 0x101f86e3 0x23f6 ):mif( z:\resource\apps\widgetmanager.mif 16388 16389 ) + _LIT( KSkinMifIconFormat, "skin( 0x%x 0x%x ):mif( %S %d %d )"); + const TInt KMaxIconDescriptorLength = 256; + TBuf buf; + buf.Format( KSkinMifIconFormat(), + EAknsMajorGeneric, EAknsMinorGenericQgnMenuOviStore, + &iResourceLoader.IconFilePath(), + EMbmWidgetmanagerQgn_menu_ovistore, + EMbmWidgetmanagerQgn_menu_ovistore_mask ); + ovi->iIcon = buf.AllocL(); + + ReadIntParameter( KOviOrder, ovi->iOrder ); + ReadInt32Parameter( KOviUid, ovi->iAppUid.iUid ); + ovi->iAppParam = ReadDescParameterL( KOviAppParam ); + + // Item to Array + iConfItems.InsertInOrderL( ovi, order ); + CleanupStack::Pop( ovi ); + } + + // read Store parameters if Store enabled + TInt storeEnabled = 0; + ReadIntParameter( KStoreEnabled, storeEnabled ); + if ( storeEnabled ) + { iLanguageIndex = FindCorrectLanguageId(); - iOperatorButtonTitle = ReadLocalisedParameterL( KLangOffsetOperatorText ); - iOperatorButtonUrl = ReadLocalisedParameterL( KLangOffsetOperatorUrl ); + + CWmConfItem* op = CWmConfItem::NewLC(); + op->iId = CWmStore::EStore1; + + op->iTitle = ReadLocalisedParameterL( KLangOffsetStoreText ); + op->iUrl = ReadLocalisedParameterL( KLangOffsetStoreUrl ); // read non-localised parameters - iOperatorButtonIcon = ReadDescParameterL( KOperatorButtonIcon ); - ReadOperatorApplicationInfoL(); - iOperatorParam = ReadDescParameterL( KOperatorParam ); - ReadIntParameter( KOperatorButtonHigherPriority, iButtonsMirrored ); + op->iIcon = ReadDescParameterL( KIcon ); + ReadApplicationInfoL( KAppTypeAndId, *op ); + op->iAppParam = ReadDescParameterL( KAppParam ); + ReadIntParameter( KOrder, op->iOrder ); + + // Item to Array + iConfItems.InsertInOrderL( op, order ); + CleanupStack::Pop( op ); } delete iRepository; @@ -167,7 +185,7 @@ TLanguage sysLang = User::Language(); //read language id's from cenrep, find a match - for( TUint32 i=KLangId0; i<=KLastLangId && languageIndex<0; i+=KLangGroupSize ) + for( TUint32 i=KLangId_0; i<=KLastLangId && languageIndex<0; i+=KLangGroupSize ) { TInt crLang = 0; if ( iRepository->Get( i, crLang ) == KErrNone ) @@ -246,7 +264,7 @@ if ( err != KErrNone || buf.Length() == 0 ) { // This language is empty. Try default language (index 0) - err = iRepository->Get( KLangId0 + aOffset, buf ); + err = iRepository->Get( KLangId_0 + aOffset, buf ); } // construct string in heap @@ -259,12 +277,13 @@ } // --------------------------------------------------------- -// CWmConfiguration::ReadOperatorApplicationInfoL +// CWmConfiguration::ReadApplicationInfoL // --------------------------------------------------------- // -void CWmConfiguration::ReadOperatorApplicationInfoL() +void CWmConfiguration::ReadApplicationInfoL( + TInt aKey, CWmConfItem& aConfItem ) { - HBufC* applicationInfo = ReadDescParameterL( KOperatorAppTypeAndId ); + HBufC* applicationInfo = ReadDescParameterL( aKey ); if ( applicationInfo && applicationInfo->Des().Length() > 0 ) { CleanupStack::PushL( applicationInfo ); @@ -280,34 +299,32 @@ if ( !type.Compare( KOpAppTypeS60 ) ) { - iOperatorAppType = ES60; - iOperatorAppIdUid = StringToUid( appId ); - SetOperatorIconL( iOperatorAppIdUid ); + aConfItem.iAppType = ES60; + aConfItem.iAppUid = StringToUid( appId ); + SetStoreIconL( aConfItem ); } else if ( !type.Compare( KOpAppTypeCwrt ) ) { - iOperatorAppType = ECwrt; - iOperatorAppIdUid = FetchWidgetUidFromRegistryL( appId ); - SetOperatorIconL( iOperatorAppIdUid ); + aConfItem.iAppType = ECwrt; + aConfItem.iAppUid = FetchWidgetUidFromRegistryL( appId ); + SetStoreIconL( aConfItem ); } else if ( !type.Compare( KOpAppTypeWrt ) ) { - iOperatorAppType = EWrt; - iOperatorAppIdUid = FetchWidgetUidFromRegistryL( appId ); - SetOperatorIconL( iOperatorAppIdUid ); + aConfItem.iAppType = EWrt; + aConfItem.iAppUid = FetchWidgetUidFromRegistryL( appId ); + SetStoreIconL( aConfItem ); } else if ( !type.Compare( KOpAppTypeJava ) ) { - //TODO: java support is not fully implemented + // java support is not fully implemented User::Leave( KErrGeneral ); - iOperatorAppType = EJava; - iOperatorAppIdStr = appId.AllocL(); } else if ( !type.Compare( KOpAppTypeQt ) ) { - iOperatorAppType = EQt; - iOperatorAppIdUid = StringToUid( appId ); - SetOperatorIconL( iOperatorAppIdUid ); + aConfItem.iAppType = EQt; + aConfItem.iAppUid = StringToUid( appId ); + SetStoreIconL( aConfItem ); } } CleanupStack::PopAndDestroy( applicationInfo ); @@ -315,20 +332,21 @@ } // --------------------------------------------------------- -// CWmConfiguration::SetOperatorIcon +// CWmConfiguration::SetStoreIcon // --------------------------------------------------------- // -void CWmConfiguration::SetOperatorIconL( TUid aUid ) +void CWmConfiguration::SetStoreIconL( CWmConfItem& aConfItem ) { - if ( iOperatorButtonIcon && - !iOperatorButtonIcon->Des().Length() ) + if ( aConfItem.iIcon && + !aConfItem.iIcon->Des().Length() ) { - delete iOperatorButtonIcon; - iOperatorButtonIcon = NULL; - iOperatorButtonIcon = HBufC::NewL( - KMaxUidName + KOperatorIcon().Length() ); - iOperatorButtonIcon->Des().Format( - KOperatorIcon(), aUid ); + delete aConfItem.iIcon; + aConfItem.iIcon = NULL; + + aConfItem.iIcon = HBufC::NewL( + KMaxUidName + KStoreIconFormat().Length() ); + aConfItem.iIcon->Des().Format( + KStoreIconFormat(), aConfItem.iAppUid ); } } @@ -347,137 +365,6 @@ CleanupStack::PopAndDestroy( &clientSession ); return TUid::Uid( ret ); } - -// --------------------------------------------------------- -// CWmConfiguration::PortalButtonCount -// --------------------------------------------------------- -// -TInt CWmConfiguration::PortalButtonCount() - { - return ( iOperatorButtonEnabled ? 2 : 1 ); - } - -// --------------------------------------------------------- -// CWmConfiguration::PortalButtonText -// --------------------------------------------------------- -// -const TDesC& CWmConfiguration::PortalButtonText( TInt aIndex ) - { - if ( aIndex == 0 && iOviButtonTitle ) - return *iOviButtonTitle; - if ( aIndex == 1 && iOperatorButtonTitle && iOperatorButtonEnabled ) - return *iOperatorButtonTitle; - return KNullDesC; - } - -// --------------------------------------------------------- -// CWmConfiguration::PortalButtonIcon -// --------------------------------------------------------- -// -const TDesC& CWmConfiguration::PortalButtonIcon( TInt aIndex ) - { - if ( aIndex == 0 && iOviButtonIcon ) - return *iOviButtonIcon; - if ( aIndex == 1 && iOperatorButtonIcon && iOperatorButtonEnabled ) - return *iOperatorButtonIcon; - return KNullDesC; - } - -// --------------------------------------------------------- -// CWmConfiguration::PortalButtonBrowserUrl -// --------------------------------------------------------- -// -const TDesC& CWmConfiguration::PortalButtonBrowserUrl( TInt aIndex ) - { - // No support for ovi here - if ( aIndex == 1 && iOperatorButtonUrl && iOperatorButtonEnabled ) - return *iOperatorButtonUrl; - return KNullDesC; - } - -// --------------------------------------------------------- -// CWmConfiguration::PortalButtonClientUid -// --------------------------------------------------------- -// -TUid CWmConfiguration::PortalButtonClientUid( TInt aIndex ) - { - if ( aIndex == 0 ) - { - return iOviStoreUid; - } - // operator not supported. Get operator data using - // PortalButtonApplicationInfoL - return KNullUid; - } - -// --------------------------------------------------------- -// CWmConfiguration::PortalButtonClientParam -// --------------------------------------------------------- -// -const TDesC& CWmConfiguration::PortalButtonClientParam( TInt aIndex ) - { - if ( aIndex == 0 && iOviStoreClientParam ) - { - return *iOviStoreClientParam; - } - if ( aIndex == 1 && iOperatorParam && iOperatorButtonEnabled ) - { - return *iOperatorParam; - } - return KNullDesC; - } - -// --------------------------------------------------------- -// CWmConfiguration::PortalButtonsMirrored -// --------------------------------------------------------- -// -TBool CWmConfiguration::PortalButtonsMirrored() - { - return iButtonsMirrored; - } - -// --------------------------------------------------------- -// CWmConfiguration::PortalButtonApplicationType -// --------------------------------------------------------- -// -CWmConfiguration::TOpAppType CWmConfiguration::PortalButtonApplicationType( - TInt aIndex ) - { - if ( aIndex == 1 ) - { - return iOperatorAppType; - } - // no support for ovi - return EUnknown; - } - -// --------------------------------------------------------- -// CWmConfiguration::PortalButtonApplicationId -// --------------------------------------------------------- -// -void CWmConfiguration::PortalButtonApplicationId( - TInt aIndex, TDes& aOperatorAppId ) - { - if ( aIndex == 1 ) - { - aOperatorAppId.Copy( *iOperatorAppIdStr ); - } - // no support for ovi - } - -// --------------------------------------------------------- -// CWmConfiguration::PortalButtonApplicationId -// --------------------------------------------------------- -// -void CWmConfiguration::PortalButtonApplicationId( - TInt aIndex, TUid& aOperatorAppId ) - { - if ( aIndex == 1 ) - { - aOperatorAppId = iOperatorAppIdUid; - } - // no support for ovi - } // --------------------------------------------------------- // CWmConfiguration::StringToUid @@ -507,6 +394,168 @@ return KNullUid; } +// --------------------------------------------------------- +// CWmConfiguration::CompareStoreOrder +// --------------------------------------------------------- +// +TInt CWmConfiguration::CompareStoreOrder( + const CWmConfItem& aItemOne, const CWmConfItem& aItemTwo ) + { + // 1. zero, if the two objects are equal. + // 2. a negative value, if the first object is less than the second. + // 3. a positive value, if the first object is greater than the second. + TInt ret = 0; + if ( aItemOne.iOrder < aItemTwo.iOrder ) + { + ret = -1; + } + if ( aItemOne.iOrder > aItemTwo.iOrder ) + { + ret = 1; + } + return ret; + } + +// --------------------------------------------------------- +// CWmConfiguration::StoreConfArray +// --------------------------------------------------------- +// +const RPointerArray& CWmConfiguration::StoreConfArray() + { + return iConfItems; + } + +// --------------------------------------------------------- +// CWmConfiguration::StoreCount +// --------------------------------------------------------- +// +TInt CWmConfiguration::StoreCount() + { + return iConfItems.Count(); + } + +// --------------------------------------------------------- +// CWmConfItem::NewL +// --------------------------------------------------------- +// +CWmConfItem* CWmConfItem::NewL() + { + CWmConfItem* self = CWmConfItem::NewLC(); + CleanupStack::Pop(); // self; + return self; + } + +// --------------------------------------------------------- +// CWmConfItem::NewLC +// --------------------------------------------------------- +// +CWmConfItem* CWmConfItem::NewLC() + { + CWmConfItem* self = new ( ELeave ) CWmConfItem(); + CleanupStack::PushL(self); + self->ConstructL(); + return self; + } + +// --------------------------------------------------------- +// CWmConfItem::~CWmConfItem +// --------------------------------------------------------- +// +CWmConfItem::~CWmConfItem() + { + delete iTitle; + delete iIcon; + delete iUrl; + delete iAppParam; + } + +// --------------------------------------------------------- +// CWmConfItem::CWmConfItem +// --------------------------------------------------------- +// +CWmConfItem::CWmConfItem() + { + } + +// --------------------------------------------------------- +// CWmConfItem::ConstructL +// --------------------------------------------------------- +// +void CWmConfItem::ConstructL() + { + } + +// --------------------------------------------------------- +// CWmConfItem::Id +// --------------------------------------------------------- +// +CWmStore::TStoreId CWmConfItem::Id() + { + return iId; + } + +// --------------------------------------------------------- +// CWmConfItem::Title +// --------------------------------------------------------- +// +const TDesC& CWmConfItem::Title() + { + return ( iTitle ? *iTitle : KNullDesC() ); + } + +// --------------------------------------------------------- +// CWmConfItem::Icon +// --------------------------------------------------------- +// +const TDesC& CWmConfItem::Icon() + { + return ( iIcon ? *iIcon : KNullDesC() ); + } + +// --------------------------------------------------------- +// CWmConfItem::Order +// --------------------------------------------------------- +// +TInt CWmConfItem::Order() + { + return iOrder; + } + +// --------------------------------------------------------- +// CWmConfItem::BrowserUrl +// --------------------------------------------------------- +// +const TDesC& CWmConfItem::BrowserUrl() + { + return ( iUrl ? *iUrl : KNullDesC() ); + } + +// --------------------------------------------------------- +// CWmConfItem::AppType +// --------------------------------------------------------- +// +CWmConfiguration::TStoreAppType CWmConfItem::AppType() + { + return iAppType; + } + +// --------------------------------------------------------- +// CWmConfItem::AppUid +// --------------------------------------------------------- +// +TUid CWmConfItem::AppUid() + { + return iAppUid; + } + +// --------------------------------------------------------- +// CWmConfItem::AppParam +// --------------------------------------------------------- +// +const TDesC& CWmConfItem::AppParam() + { + return ( iAppParam ? *iAppParam : KNullDesC() ); + } // End of File diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/src/wmimageconverter.cpp --- a/idlehomescreen/widgetmanager/src/wmimageconverter.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/widgetmanager/src/wmimageconverter.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -101,13 +101,14 @@ const TSize& aIconSize, const TDesC& aIconStr, CFbsBitmap*& aBitmap, - CFbsBitmap*& aMask ) + CFbsBitmap*& aMask, + TBool aForceScale ) { delete aBitmap; aBitmap = NULL; delete aMask; aMask = NULL; TInt err( KErrNone ); - TRAP( err, HandleIconStringL( aIconSize, aIconStr ); ); + TRAP( err, HandleIconStringL( aIconSize, aIconStr, aForceScale ); ); if ( err == KErrNone && iBitmap && iMask ) { // ownership transferred @@ -139,7 +140,8 @@ // void CWmImageConverter::HandleIconStringL( const TSize& aIconSize, - const TDesC& aIconStr ) + const TDesC& aIconStr, + TBool aForceScale ) { if ( aIconStr.Length() ) { @@ -160,7 +162,7 @@ } else if ( ResolveUid( aIconStr, appUid ) ) { - CreateIconFromUidL( appUid ); + CreateIconFromUidL( appUid, aForceScale ); } else if ( EndsWith( aIconStr, KSvgExt ) ) { @@ -170,7 +172,7 @@ else if ( BaflUtils::FileExists( iFs, aIconStr ) ) { // filename_with_full_path.png/jpg - CreateIconFromOtherL( aIconStr ); + CreateIconFromOtherL( aIconStr, aForceScale ); } else { @@ -187,7 +189,8 @@ // CWmImageConverter::CreateIconFromUidL // --------------------------------------------------------- // -void CWmImageConverter::CreateIconFromUidL( const TUid& aUid ) +void CWmImageConverter::CreateIconFromUidL( + const TUid& aUid, TBool aForceScale ) { CFbsBitmap* bitmap = NULL; CFbsBitmap* mask = NULL; @@ -220,21 +223,54 @@ CApaMaskedBitmap* maskedBmp = CApaMaskedBitmap::NewLC(); User::LeaveIfError( lsSession.GetAppIcon( aUid, size, *maskedBmp ) ); - + // handle bitmap - iBitmap = new ( ELeave ) CFbsBitmap; - CopyBitmapL( *iBitmap, *maskedBmp ); + iBitmap = new ( ELeave ) CFbsBitmap; + if ( aForceScale ) + { + // copy and scale + TRect scaledRect = TRect( iSize ); + iBitmap->Create( scaledRect.Size(), maskedBmp->DisplayMode() ); + CFbsBitmapDevice* bitmapDevice = CFbsBitmapDevice::NewL( iBitmap ); + CleanupStack::PushL( bitmapDevice ); + CFbsBitGc* bitmapGc = CFbsBitGc::NewL(); + CleanupStack::PushL( bitmapGc ); + bitmapGc->Activate( bitmapDevice ); + bitmapGc->DrawBitmap( scaledRect, maskedBmp ); + CleanupStack::PopAndDestroy( bitmapGc ); + CleanupStack::PopAndDestroy( bitmapDevice ); + } + else + { + CopyBitmapL( *iBitmap, *maskedBmp ); + } // handle mask if ( maskedBmp->Mask() ) { iMask = new ( ELeave ) CFbsBitmap; - CopyBitmapL( *iMask, *maskedBmp->Mask() ); + if ( aForceScale ) + { + TRect scaledRect = TRect( iSize ); + iMask->Create( scaledRect.Size(), maskedBmp->Mask()->DisplayMode() ); + CFbsBitmapDevice* bitmapDevice = CFbsBitmapDevice::NewL( iMask ); + CleanupStack::PushL( bitmapDevice ); + CFbsBitGc* bitmapGc = CFbsBitGc::NewL(); + CleanupStack::PushL( bitmapGc ); + bitmapGc->Activate( bitmapDevice ); + bitmapGc->DrawBitmap( scaledRect, maskedBmp->Mask() ); + CleanupStack::PopAndDestroy( bitmapGc ); + CleanupStack::PopAndDestroy( bitmapDevice ); + } + else + { + CopyBitmapL( *iMask, *maskedBmp->Mask() ); + } } // cleanup CleanupStack::PopAndDestroy( maskedBmp ); - CleanupStack::PopAndDestroy( sizeArray ); + CleanupStack::PopAndDestroy( sizeArray ); CleanupStack::PopAndDestroy( &lsSession ); } else if ( aUid.iUid != KNullUid.iUid ) @@ -339,7 +375,8 @@ // CWmImageConverter::CreateIconFromOtherL // --------------------------------------------------------- // -void CWmImageConverter::CreateIconFromOtherL( const TDesC& aFileName ) +void CWmImageConverter::CreateIconFromOtherL( + const TDesC& aFileName, TBool aForceScale ) { if (iBitmap) {delete iBitmap; iBitmap = NULL;} if (iMask) {delete iMask; iMask = NULL;} @@ -372,6 +409,47 @@ } User::LeaveIfError( status.Int() ); CleanupStack::PopAndDestroy( imageDecoder ); + + // do scaling + if ( aForceScale ) + { + // scale bitmap + TRect scaledRect = TRect( iSize ); + CFbsBitmap* scaledBitmap = new (ELeave) CFbsBitmap(); + CleanupStack::PushL( scaledBitmap ); + User::LeaveIfError( + scaledBitmap->Create( scaledRect.Size(), iBitmap->DisplayMode() ) ); + CFbsBitmapDevice* bitmapDevice = CFbsBitmapDevice::NewL( scaledBitmap ); + CleanupStack::PushL( bitmapDevice ); + CFbsBitGc* bitmapGc = CFbsBitGc::NewL(); + CleanupStack::PushL( bitmapGc ); + bitmapGc->Activate( bitmapDevice ); + bitmapGc->DrawBitmap( scaledRect, iBitmap ); + CleanupStack::PopAndDestroy( bitmapGc ); + CleanupStack::PopAndDestroy( bitmapDevice ); + CleanupStack::Pop( scaledBitmap ); + // take ownership of scaled bitmap + delete iBitmap; iBitmap = NULL; + iBitmap = scaledBitmap; scaledBitmap = NULL; + + // scale mask + CFbsBitmap* scaledMask = new (ELeave) CFbsBitmap(); + CleanupStack::PushL( scaledMask ); + User::LeaveIfError( + scaledMask->Create( scaledRect.Size(), iMask->DisplayMode() ) ); + bitmapDevice = CFbsBitmapDevice::NewL( scaledMask ); + CleanupStack::PushL( bitmapDevice ); + bitmapGc = CFbsBitGc::NewL(); + CleanupStack::PushL( bitmapGc ); + bitmapGc->Activate( bitmapDevice ); + bitmapGc->DrawBitmap( scaledRect, iMask ); + CleanupStack::PopAndDestroy( bitmapGc ); + CleanupStack::PopAndDestroy( bitmapDevice ); + CleanupStack::Pop( scaledMask ); + // take ownership of scaled bitmap + delete iMask; iMask = NULL; + iMask = scaledMask; scaledMask = NULL; + } } // --------------------------------------------------------------------------- @@ -508,18 +586,18 @@ // --------------------------------------------------------------------------- // TBool CWmImageConverter::ResolveUid( - const TDesC& aPath, TUid& aUid ) + const TDesC& aStr, TUid& aUid ) { // Syntax: uid(0x12345678) TInt error = KErrNotFound; - TInt pos = aPath.FindF( KUid ); + TInt pos = aStr.FindF( KUid ); if( pos == 0 ) { // Skip uid token pos += KUid().Length(); // Initialize lexer - TLex lex( aPath.Mid( pos ) ); + TLex lex( aStr.Mid( pos ) ); lex.SkipSpaceAndMark(); // Check left parenthesis @@ -537,18 +615,19 @@ // --------------------------------------------------------------------------- // TBool CWmImageConverter::ResolveSkinId( - const TDesC& aPath, TAknsItemID& aItemId ) + const TDesC& aStr, TAknsItemID& aItemId ) { // Syntax: skin(major minor) + aItemId = KAknsIIDNone; TInt error = KErrNotFound; - TInt pos = aPath.FindF( KSkin ); + TInt pos = aStr.FindF( KSkin ); if( pos == 0 ) { // Skip skin token pos += KSkin().Length(); // Initialize lexer - TLex lex( aPath.Mid( pos ) ); + TLex lex( aStr.Mid( pos ) ); lex.SkipSpaceAndMark(); // Check left parenthesis @@ -570,18 +649,22 @@ // --------------------------------------------------------------------------- // TBool CWmImageConverter::ResolveMifId( - const TDesC& aPath, TInt& aBitmapId, + const TDesC& aStr, TInt& aBitmapId, TInt& aMaskId, TDes& aFileName ) { // Syntax: mif(filename bimapId maskId) + aBitmapId = KErrNotFound; + aMaskId = KErrNotFound; + aFileName.Copy( KNullDesC ); + TInt error = KErrNotFound; - TInt pos = aPath.FindF( KMif ); + TInt pos = aStr.FindF( KMif ); if( pos == 0 ) { // Skip mif token pos += KMif().Length(); // Initialize lexer - TLex lex( aPath.Mid( pos ) ); + TLex lex( aStr.Mid( pos ) ); lex.SkipSpaceAndMark(); // Check left parenthesis @@ -609,23 +692,23 @@ // --------------------------------------------------------------------------- // TBool CWmImageConverter::ResolveSkinIdAndMifId( - const TDesC& aPath, TAknsItemID& aItemId, + const TDesC& aStr, TAknsItemID& aItemId, TInt& aBitmapId, TInt& aMaskId, TDes& aFileName ) { // Syntax: skin(major minor):mif(filename bimapId maskId) - TBool result = ResolveSkinId( aPath, aItemId ); + TBool result = ResolveSkinId( aStr, aItemId ); if ( result ) { - TInt pos = aPath.FindF( KColon ); + TInt pos = aStr.FindF( KColon ); if ( pos != KErrNotFound ) { - TPtrC ptr = aPath.Mid( pos+1 ); + TPtrC ptr = aStr.Mid( pos+1 ); result = ResolveMifId( ptr, aBitmapId, aMaskId, aFileName ); } } else { - result = ResolveMifId( aPath, aBitmapId, aMaskId, aFileName ); + result = ResolveMifId( aStr, aBitmapId, aMaskId, aFileName ); } return result; } @@ -748,5 +831,20 @@ } } +// --------------------------------------------------------------------------- +// CWmImageConverter::ParseIconString +// --------------------------------------------------------------------------- +// +TBool CWmImageConverter::ParseIconString( + const TDesC& aIconStr, + TAknsItemID& aItemId, + TInt& aBitmapId, + TInt& aMaskId, + TDes& aFileName ) + { + return ResolveSkinIdAndMifId( + aIconStr, aItemId, aBitmapId, aMaskId, aFileName ); + } + // End of file diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/src/wmlistbox.cpp --- a/idlehomescreen/widgetmanager/src/wmlistbox.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/widgetmanager/src/wmlistbox.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -184,14 +184,13 @@ CWindowGc& gc = *Gc(); MAknsSkinInstance* skin = AknsUtils::SkinInstance(); TBool highlightEnabled = !( iListBox->ItemDrawer()->Flags() & - CListItemDrawer::ESingleClickDisabledHighlight ); - TBool listFocused = ((iListBox->IsFocused() && !aViewIsDimmed) ? ETrue : EFalse); + CListItemDrawer::ESingleClickDisabledHighlight ); TRect itemRect = TRect( aItemRectPos, cellSize ); CFormattedCellListBoxItemDrawer::DrawEmptyItem( aItemIndex, aItemRectPos, aViewIsDimmed ); - if ( aItemIsCurrent && listFocused && highlightEnabled ) + if ( aItemIsCurrent && !aViewIsDimmed && highlightEnabled ) { TRect innerRect( itemRect ); const TInt highlightOffset = 5; @@ -241,7 +240,7 @@ // DRAW NAME TRgb textColor; TAknsQsnTextColorsIndex index = - ( aItemIsCurrent && listFocused && highlightEnabled )? + ( aItemIsCurrent && aViewIsDimmed && highlightEnabled )? EAknsCIQsnTextColorsCG10 : EAknsCIQsnTextColorsCG6; AknsUtils::GetCachedColor( diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/src/wmmaincontainer.cpp --- a/idlehomescreen/widgetmanager/src/wmmaincontainer.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/widgetmanager/src/wmmaincontainer.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -40,6 +40,8 @@ #include #include #include +#include +#include #include #include #include @@ -63,7 +65,7 @@ #include "wmlistbox.h" #include "wmpersistentwidgetorder.h" #include "wmdetailsdlg.h" -#include "wmportalbutton.h" +#include "wmstore.h" #include "wmwidgetloaderao.h" #include "wmconfiguration.h" #include "wminstaller.h" @@ -75,6 +77,31 @@ const TInt KTextLimit = 40; // Text-limit for find-field const TInt KMinWidgets = 1; // minimum number of widgets to show findpane +// ======== LOCAL FUNCTIONS ======== + +// ---------------------------------------------------------------------------- +// CleanupResetAndDestroy() +// ---------------------------------------------------------------------------- +// +template +static void CleanupResetAndDestroy( TAny* aObj ) + { + if( aObj ) + { + static_cast( aObj )->ResetAndDestroy(); + } + } + +// ---------------------------------------------------------------------------- +// CleanupResetAndDestroyPushL +// ---------------------------------------------------------------------------- +// +template +static void CleanupResetAndDestroyPushL(T& aArray) + { + CleanupStack::PushL( TCleanupItem( &CleanupResetAndDestroy, &aArray ) ); + } + // --------------------------------------------------------- // CWmMainContainer::CWmMainContainer() // --------------------------------------------------------- @@ -86,7 +113,6 @@ iFindbox = NULL; iFindPaneIsVisible = EFalse; iBgContext = NULL; - iFocusMode = ENowhere; iClosingDown = ETrue; } @@ -96,6 +122,11 @@ // CWmMainContainer::~CWmMainContainer() { + if ( iSelectedStore ) + { + delete iSelectedStore; + iSelectedStore = NULL; + } TRAP_IGNORE(DeactivateFindPaneL(EFalse)); if ( iWidgetLoader ) @@ -108,11 +139,8 @@ Components().ResetAndDestroy(); iWidgetsList = NULL; - iPortalButtonOne = NULL; - iPortalButtonTwo = NULL; iFindbox = NULL; delete iBgContext; - delete iConfiguration; } // --------------------------------------------------------- @@ -179,9 +207,6 @@ // background context iBgContext = CAknsBasicBackgroundControlContext::NewL( KAknsIIDQsnBgScreen, ScreenRect() , ETrue); - - // load configuration - iConfiguration = CWmConfiguration::NewL( iWmPlugin.ResourceLoader() ); // set up controls InitializeControlsL( aRect ); @@ -211,52 +236,21 @@ { TRect rect( Rect() ); - // determine layout type - iLandscape = Layout_Meta_Data::IsLandscapeOrientation(); - iMirrored = Layout_Meta_Data::IsMirrored(); - - // layout iPortalButtons - if ( iConfiguration->PortalButtonCount() == 1 ) - { - // one button - TAknWindowLineLayout btnPane = AknLayoutScalable_Apps - ::wgtman_btn_pane( iLandscape ? 1 : 0 ).LayoutLine(); - AknLayoutUtils::LayoutControl( iPortalButtonOne, rect, btnPane ); - } - else - { - // two buttons - TInt variety = (iLandscape ? 3 : 2); - TAknWindowLineLayout oviBtnLayout = AknLayoutScalable_Apps - ::wgtman_btn_pane( variety ).LayoutLine(); - TAknWindowLineLayout operatorBtnLayout = AknLayoutScalable_Apps - ::wgtman_btn_pane_cp_01( variety ).LayoutLine(); - - // button placement - if ( iConfiguration->PortalButtonsMirrored() ) - { - AknLayoutUtils::LayoutControl( iPortalButtonOne, rect, operatorBtnLayout ); - AknLayoutUtils::LayoutControl( iPortalButtonTwo, rect, oviBtnLayout ); - } - else - { - AknLayoutUtils::LayoutControl( iPortalButtonOne, rect, oviBtnLayout ); - AknLayoutUtils::LayoutControl( iPortalButtonTwo, rect, operatorBtnLayout ); - } - } - // layout iWidgetsList - TAknWindowLineLayout listPane = AknLayoutScalable_Apps - ::listscroll_wgtman_pane( iLandscape ? 1 : 0 ).LayoutLine(); if( iFindbox && iFindPaneIsVisible ) { - TAknLayoutRect layoutRect; - layoutRect.LayoutRect( rect, listPane ); - iWidgetsList->SetRect( layoutRect.Rect() ); + iWidgetsList->SetRect( rect ); HandleFindSizeChanged(); } else { + TAknWindowLineLayout listPane; + listPane.il = rect.iTl.iX; + listPane.it = rect.iTl.iY; + listPane.ib = 0; + listPane.iH = rect.Height(); + listPane.iW = rect.Width(); + listPane.ir = ELayoutEmpty; AknLayoutUtils::LayoutControl( iWidgetsList, rect, listPane ); } @@ -287,28 +281,16 @@ { return EKeyWasConsumed; } - + // Handle search keyevent keyResponse = HandleSearchKeyEventL( aKeyEvent, aType ); - - // Move focus between controls - if ( keyResponse == EKeyWasNotConsumed ) - { - keyResponse = MoveFocusByKeys( aKeyEvent, aType ); - } - + // Handle list keyevent if ( keyResponse == EKeyWasNotConsumed ) { keyResponse = HandleListKeyEventL( aKeyEvent, aType ); } - // Handle buttons keyevent - if ( keyResponse == EKeyWasNotConsumed ) - { - keyResponse = HandleButtonKeyEventL( aKeyEvent, aType ); - } - // Update ui if needed if ( keyResponse == EKeyWasConsumed ) { @@ -386,429 +368,33 @@ TKeyResponse keyResponse( EKeyWasNotConsumed ); // pass key event except backpace or delete key event to widgets list if focused - if ( iWidgetsList->IsFocused() ) + if ( ( aType == EEventKey ) && ( aKeyEvent.iCode == EKeyBackspace + || aKeyEvent.iCode == EKeyDelete ) ) { - if ( ( aType == EEventKey ) && ( aKeyEvent.iCode == EKeyBackspace - || aKeyEvent.iCode == EKeyDelete ) ) + if( CanDoUninstall() ) { - if( CanDoUninstall() ) - { - UninstallWidgetL(); - } - else - { - CWmWidgetData* data = iWidgetsList->WidgetData(); - if( data != NULL ) - iWmPlugin.ResourceLoader().InfoPopupL( - R_QTN_WM_UNINST_NOT_ALLOWED, data->Name() ); - } - keyResponse = EKeyWasConsumed; + UninstallWidgetL(); } - else + else { - //passing to listbox handler - keyResponse = iWidgetsList->OfferKeyEventL( - aKeyEvent, aType ); + CWmWidgetData* data = iWidgetsList->WidgetData(); + if( data != NULL ) + iWmPlugin.ResourceLoader().InfoPopupL( + R_QTN_WM_UNINST_NOT_ALLOWED, data->Name() ); } + keyResponse = EKeyWasConsumed; } - - return keyResponse; - } - -// --------------------------------------------------------- -// CWmMainContainer::HandleButtonKeyEventL -// --------------------------------------------------------- -// -TKeyResponse CWmMainContainer::HandleButtonKeyEventL( - const TKeyEvent& aKeyEvent, - TEventCode aType ) - { - TKeyResponse keyResponse( EKeyWasNotConsumed ); - - // pass key event to portal button if focused - if ( iPortalButtonOne->IsFocused() ) + else { - keyResponse = iPortalButtonOne->OfferKeyEventL( - aKeyEvent, aType ); - } - - // pass key event to the other portal button if exists and focused - if ( iPortalButtonTwo && iPortalButtonTwo->IsFocused() ) - { - keyResponse = iPortalButtonTwo->OfferKeyEventL( - aKeyEvent, aType ); + //passing to listbox handler + keyResponse = iWidgetsList->OfferKeyEventL( + aKeyEvent, aType ); } return keyResponse; } // --------------------------------------------------------- -// CWmMainContainer::MoveFocusByKeys -// --------------------------------------------------------- -// -TKeyResponse CWmMainContainer::MoveFocusByKeys( - const TKeyEvent& aKeyEvent, - TEventCode aType ) - { - TKeyResponse keyResponse( EKeyWasNotConsumed ); - - if ( iWidgetsList->IsFocused() ) - { - // ------------------------------------ - // focus is in the WIDGETS LIST - // ------------------------------------ - if ( !iLandscape && - aKeyEvent.iScanCode == EStdKeyUpArrow && - iWidgetsList->CurrentItemIndex() == 0 ) - { - // widget list top -> up -> ovi button (portrait) - if ( aType == EEventKey ) - SetFocusToPortalButton( OperatorButtonHigherPriority ( 0 ) ); - keyResponse = EKeyWasConsumed; - } - else if ( !iLandscape && - aKeyEvent.iScanCode == EStdKeyDownArrow && - iWidgetsList->CurrentItemIndex() == - iWidgetsList->Model()->NumberOfItems() - 1 ) - { - // widget list bottom -> down -> ovi button (portrait) - if ( aType == EEventKey ) - SetFocusToPortalButton( OperatorButtonHigherPriority ( 0 ) ); - keyResponse = EKeyWasConsumed; - } - else if ( iLandscape && !iMirrored && - aKeyEvent.iScanCode == EStdKeyRightArrow ) - { - // widget list -> right -> ovi button (landscape normal) - if ( aType == EEventKey ) - SetFocusToPortalButton( OperatorButtonHigherPriority ( 0 ) ); - keyResponse = EKeyWasConsumed; - } - else if ( iLandscape && iMirrored && - aKeyEvent.iScanCode == EStdKeyLeftArrow ) - { - // widget list -> left -> ovi button (landscape mirrored) - if ( aType == EEventKey ) - SetFocusToPortalButton( OperatorButtonHigherPriority ( 0 ) ); - keyResponse = EKeyWasConsumed; - } - } - else if ( iPortalButtonOne->IsFocused() ) - { - // ------------------------------------ - // focus is in the FIRST PORTAL BUTTON - // ------------------------------------ - if ( !iLandscape && - aKeyEvent.iScanCode == EStdKeyDownArrow ) - { - // left portal -> down -> widget list top (portrait) - if ( aType == EEventKey ) - SetFocusToWidgetList( 0 ); - keyResponse = EKeyWasConsumed; - } - else if ( !iLandscape && - aKeyEvent.iScanCode == EStdKeyUpArrow ) - { - // left portal -> up -> widget list bottom (portrait) - if ( aType == EEventKey ) - SetFocusToWidgetList( iWidgetsList->Model()->NumberOfItems()-1 ); - keyResponse = EKeyWasConsumed; - } - else if ( !iLandscape && !iMirrored && - aKeyEvent.iScanCode == EStdKeyLeftArrow && - iConfiguration->PortalButtonCount() > 1 && - iConfiguration->PortalButtonsMirrored() ) - { - // right portal -> left -> left portal - // (portrait, operator button higher priority ) - if ( aType == EEventKey ) - SetFocusToPortalButton( 1 ); - keyResponse = EKeyWasConsumed; - } - else if ( !iLandscape && !iMirrored && - aKeyEvent.iScanCode == EStdKeyRightArrow && - iConfiguration->PortalButtonCount() > 1 && - !iConfiguration->PortalButtonsMirrored() ) - { - // left portal -> right -> right portal (portrait normal) - if ( aType == EEventKey ) - SetFocusToPortalButton( 1 ); - keyResponse = EKeyWasConsumed; - } - else if ( !iLandscape && iMirrored && - aKeyEvent.iScanCode == EStdKeyRightArrow && - iConfiguration->PortalButtonCount() > 1 && - iConfiguration->PortalButtonsMirrored() ) - { - // right portal -> left -> left portal (portrait mirrored) - if ( aType == EEventKey ) - SetFocusToPortalButton( 1 ); - keyResponse = EKeyWasConsumed; - } - else if ( !iLandscape && iMirrored && - aKeyEvent.iScanCode == EStdKeyLeftArrow && - iConfiguration->PortalButtonCount() > 1 && - !iConfiguration->PortalButtonsMirrored() ) - { - // right portal -> left -> left portal (portrait mirrored) - if ( aType == EEventKey ) - SetFocusToPortalButton( 1 ); - keyResponse = EKeyWasConsumed; - } - else if ( iLandscape && !iMirrored && - aKeyEvent.iScanCode == EStdKeyLeftArrow ) - { - // upper portal -> left -> widget list (landscape normal) - if ( aType == EEventKey ) - SetFocusToWidgetList(); - keyResponse = EKeyWasConsumed; - } - else if ( iLandscape && iMirrored && - aKeyEvent.iScanCode == EStdKeyRightArrow ) - { - // upper portal -> right -> widget list (landscape mirrored) - if ( aType == EEventKey ) - SetFocusToWidgetList(); - keyResponse = EKeyWasConsumed; - } - else if ( iLandscape && - aKeyEvent.iScanCode == EStdKeyUpArrow && - iConfiguration->PortalButtonCount() > 1 && - iConfiguration->PortalButtonsMirrored() ) - { - // lower portal -> up -> upper portal - // (landscape, operator button higher priority ) - if ( aType == EEventKey ) - SetFocusToPortalButton( 1 ); - keyResponse = EKeyWasConsumed; - } - else if ( iLandscape && - aKeyEvent.iScanCode == EStdKeyDownArrow && - iConfiguration->PortalButtonCount() > 1 && - !iConfiguration->PortalButtonsMirrored() ) - { - // upper portal -> down -> lower portal (landscape) - if ( aType == EEventKey ) - SetFocusToPortalButton( 1 ); - keyResponse = EKeyWasConsumed; - } - } - else if ( iPortalButtonTwo && iPortalButtonTwo->IsFocused() ) - { - // ------------------------------------ - // focus is in the SECOND PORTAL BUTTON - // ------------------------------------ - if ( !iLandscape && - aKeyEvent.iScanCode == EStdKeyDownArrow ) - { - // right portal -> down -> widget list top (portrait) - if ( aType == EEventKey ) - SetFocusToWidgetList( 0 ); - keyResponse = EKeyWasConsumed; - } - else if ( !iLandscape && - aKeyEvent.iScanCode == EStdKeyUpArrow ) - { - // right portal -> up -> widget list bottom (portrait) - if ( aType == EEventKey ) - SetFocusToWidgetList( iWidgetsList->Model()->NumberOfItems()-1 ); - keyResponse = EKeyWasConsumed; - } - else if ( !iLandscape && !iMirrored && - aKeyEvent.iScanCode == EStdKeyRightArrow && - iConfiguration->PortalButtonCount() > 1 && - iConfiguration->PortalButtonsMirrored() ) - { - // left portal -> right -> right portal - // (portrait, operator button higher priority ) - if ( aType == EEventKey ) - SetFocusToPortalButton( 0 ); - keyResponse = EKeyWasConsumed; - } - else if ( !iLandscape && !iMirrored && - aKeyEvent.iScanCode == EStdKeyLeftArrow && - iConfiguration->PortalButtonCount() > 1 && - !iConfiguration->PortalButtonsMirrored() ) - { - // right portal -> left -> left portal (portrait normal) - if ( aType == EEventKey ) - SetFocusToPortalButton( 0 ); - keyResponse = EKeyWasConsumed; - } - else if ( !iLandscape && iMirrored && - aKeyEvent.iScanCode == EStdKeyLeftArrow && - iConfiguration->PortalButtonCount() > 1 && - iConfiguration->PortalButtonsMirrored() ) - { - // left portal -> right -> right portal (portrait mirrored) - if ( aType == EEventKey ) - SetFocusToPortalButton( 0 ); - keyResponse = EKeyWasConsumed; - } - else if ( !iLandscape && iMirrored && - aKeyEvent.iScanCode == EStdKeyRightArrow && - iConfiguration->PortalButtonCount() > 1 && - !iConfiguration->PortalButtonsMirrored() ) - { - // left portal -> right -> right portal (portrait mirrored) - if ( aType == EEventKey ) - SetFocusToPortalButton( 0 ); - keyResponse = EKeyWasConsumed; - } - else if ( iLandscape && !iMirrored && - aKeyEvent.iScanCode == EStdKeyLeftArrow ) - { - // lower portal -> left -> widget list (landscape normal) - if ( aType == EEventKey ) - SetFocusToWidgetList(); - keyResponse = EKeyWasConsumed; - } - else if ( iLandscape && iMirrored && - aKeyEvent.iScanCode == EStdKeyRightArrow ) - { - // lower portal -> right -> widget list (landscape mirrored) - if ( aType == EEventKey ) - SetFocusToWidgetList(); - keyResponse = EKeyWasConsumed; - } - else if ( iLandscape && - aKeyEvent.iScanCode == EStdKeyDownArrow && - iConfiguration->PortalButtonsMirrored() ) - { - // upper portal -> down -> lower portal - // ( landscape operator button higher priority ) - if ( aType == EEventKey ) - SetFocusToPortalButton( 0 ); - keyResponse = EKeyWasConsumed; - } - else if ( iLandscape && - aKeyEvent.iScanCode == EStdKeyUpArrow && - !iConfiguration->PortalButtonsMirrored() ) - { - // lower portal -> up -> upper portal (landscape) - if ( aType == EEventKey ) - SetFocusToPortalButton( 0 ); - keyResponse = EKeyWasConsumed; - } - } - else - { - // ------------------------------------ - // focus is NOWHERE - // ------------------------------------ - if ( aKeyEvent.iScanCode == EStdKeyUpArrow || - aKeyEvent.iScanCode == EStdKeyDownArrow ) - { - // no focus -> key hit -> focus list - if ( aType == EEventKey ) - { - SetFocusToWidgetList(); - keyResponse = EKeyWasNotConsumed; - } - } - } - - return keyResponse; - } - - -// --------------------------------------------------------- -// CWmMainContainer::OperatorButtonHigherPriority -// --------------------------------------------------------- -// -TInt CWmMainContainer::OperatorButtonHigherPriority( TInt aIndex ) - { - TInt ret = aIndex; - if ( iConfiguration->PortalButtonsMirrored() ) - { - if ( aIndex == 0 ) - { - ret = 1; - } - else if ( aIndex == 1 ) - { - ret = 0; - } - } - return ret; - } - -// --------------------------------------------------------- -// CWmMainContainer::SetFocusToPortalButton -// --------------------------------------------------------- -// -void CWmMainContainer::SetFocusToPortalButton( TInt aIndex ) - { - if ( aIndex != 0 && iPortalButtonTwo ) - { - iWidgetsList->SetFocus(EFalse); - iPortalButtonOne->SetFocus(EFalse); - iPortalButtonTwo->SetFocus(ETrue); - } - else - { - iWidgetsList->SetFocus(EFalse); - if ( iPortalButtonTwo ) - iPortalButtonTwo->SetFocus(EFalse); - iPortalButtonOne->SetFocus(ETrue); - } - DrawDeferred(); - UpdateFocusMode(); - } - -// --------------------------------------------------------- -// CWmMainContainer::SetFocusToWidgetList -// --------------------------------------------------------- -// -void CWmMainContainer::SetFocusToWidgetList( TInt aIndex ) - { - iPortalButtonOne->SetFocus(EFalse); - if ( iPortalButtonTwo ) - iPortalButtonTwo->SetFocus(EFalse); - if ( aIndex >= 0 && aIndex < iWidgetsList->Model()->NumberOfItems() ) - { - iWidgetsList->SetCurrentItemIndex( aIndex ); - } - iWidgetsList->SetFocus(ETrue); - DrawDeferred(); - UpdateFocusMode(); - } - -// --------------------------------------------------------- -// CWmMainContainer::UpdateFocusMode -// --------------------------------------------------------- -// -void CWmMainContainer::UpdateFocusMode() - { - if ( iPortalButtonOne->IsFocused() ) - { - // PORTAL BUTTON is focused - iFocusMode = EPortal; - } - else if ( iPortalButtonTwo && iPortalButtonTwo->IsFocused() ) - { - // SECOND PORTAL BUTTON is focused - iFocusMode = EPortal; - } - else if( ( iFindPaneIsVisible ) && - ( iFindbox->IsFocused() || iWidgetsList->IsFocused() ) ) - { - // FIND MODE - iFocusMode = EFind; - } - else if ( iWidgetsList->IsFocused() ) - { - // WIDGETS LIST is focused - iFocusMode = EList; - } - else - { - // NO focus - iFocusMode = ENowhere; - } - } - -// --------------------------------------------------------- // CWmMainContainer::FindChildControlByPoint // --------------------------------------------------------- // @@ -858,8 +444,6 @@ // Set focus to the control that was clicked control->SetFocus( ETrue ); - // update focus mode accordingly - UpdateFocusMode(); // repaint DrawDeferred(); } @@ -903,17 +487,6 @@ // void CWmMainContainer::InitializeControlsL( const TRect& /*aRect*/ ) { - // Create portal buttons - iPortalButtonOne = CWmPortalButton::NewL( this, 0 ); - iPortalButtonOne->SetMopParent( this ); - AddControlL( iPortalButtonOne, EPortalOne ); - if ( iConfiguration->PortalButtonCount() > 1 ) - { - iPortalButtonTwo = CWmPortalButton::NewL( this, 1 ); - iPortalButtonTwo->SetMopParent( this ); - AddControlL( iPortalButtonTwo, EPortalTwo ); - } - // Create widget list box iWidgetsList = CWmListBox::NewL( iWmPlugin, @@ -935,8 +508,8 @@ CAknSearchField::EAdaptiveSearch, 0, KTextLimit ); AddControlL( iFindbox, EFindBox ); - - UpdateFocusMode(); + iFindbox->AddAdaptiveSearchTextObserverL(this); + StartLoadingWidgetsL(); } @@ -1045,21 +618,13 @@ } // --------------------------------------------------------- -// CWmMainContainer::PortalSelected -// --------------------------------------------------------- -// -TBool CWmMainContainer::PortalSelected() - { - return ( iFocusMode == EPortal ); - } - -// --------------------------------------------------------- // CWmMainContainer::WidgetSelected // --------------------------------------------------------- // TBool CWmMainContainer::WidgetSelected() { - return ( iFocusMode == EList ) || ( iFocusMode == EFind ); + return (( iWidgetsList->IsFocused() || iWidgetsList->IsHighlightEnabled())? + ETrue : EFalse ); } // --------------------------------------------------------- @@ -1217,18 +782,6 @@ if ( iFindbox && !iFindPaneIsVisible && iWidgetsList->Model()->NumberOfItems() > KMinWidgets ) { - // set focus - if ( iWidgetsList->ItemDrawer()->Flags() - & CListItemDrawer::ESingleClickDisabledHighlight ) - { - ResetFocus(); - } - else - { - iWidgetsList->SetFocus( ETrue, EDrawNow ); - } - - // set column filter flag TBitFlags32 bitFlag; bitFlag.ClearAll(); // clear all columns @@ -1263,14 +816,18 @@ } iFindbox->SetFocus( ETrue ); iWidgetsList->SetFindPaneIsVisible( ETrue ); - - // set soft key set - CEikButtonGroupContainer* cbaGroup = - CEikButtonGroupContainer::Current(); - cbaGroup->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_CANCEL__SELECT ); - cbaGroup->DrawNow(); - - UpdateFocusMode(); + + if ( AknLayoutUtils::MSKEnabled() ) + { + // set soft key set + CEikButtonGroupContainer* cbaGroup = + CEikButtonGroupContainer::Current(); + TInt cbaResourceId = ( ( iWmPlugin.Configuration().StoreCount() > 0 )? + R_WM_SOFTKEYS_OPTIONS_CANCEL__STORE : + R_AVKON_SOFTKEYS_OPTIONS_CANCEL__SELECT ); + cbaGroup->SetCommandSetL( cbaResourceId ); + cbaGroup->DrawNow(); + } } } @@ -1298,17 +855,6 @@ m->RemoveFilter(); } - //set focus - if ( iWidgetsList->ItemDrawer()->Flags() - & CListItemDrawer::ESingleClickDisabledHighlight ) - { - ResetFocus(); - } - else - { - iWidgetsList->SetFocus( ETrue, EDrawNow ); - } - iFindbox->MakeVisible( EFalse ); iFindPaneIsVisible = EFalse; iWidgetsList->SetFindPaneIsVisible( EFalse ); @@ -1317,8 +863,9 @@ // set soft key set CEikButtonGroupContainer* cbaGroup = CEikButtonGroupContainer::Current(); - TInt cbaResourceId = ( AknLayoutUtils::MSKEnabled() ? - R_AVKON_SOFTKEYS_OPTIONS_BACK__SELECT : + TInt cbaResourceId = ( ( AknLayoutUtils::MSKEnabled() && + iWmPlugin.Configuration().StoreCount() > 0 )? + R_WM_SOFTKEYS_OPTIONS_BACK__STORE : R_AVKON_SOFTKEYS_OPTIONS_BACK ); cbaGroup->SetCommandSetL( cbaResourceId ); @@ -1327,7 +874,6 @@ LayoutControls(); cbaGroup->DrawNow(); - UpdateFocusMode(); DrawNow(); } } @@ -1381,35 +927,32 @@ } // --------------------------------------------------------------------------- -// CWmMainContainer::OpenPortalL +// CWmMainContainer::HandleStoreCommandL // --------------------------------------------------------------------------- // -void CWmMainContainer::OpenPortalL() +void CWmMainContainer::HandleStoreCommandL() { - if ( !iClosingDown ) - { - // execute whichever of the portal buttons happens to be active - if ( iPortalButtonOne->IsFocused() ) - iPortalButtonOne->ExecuteL(); - else if ( iPortalButtonTwo && iPortalButtonTwo->IsFocused() ) - iPortalButtonTwo->ExecuteL(); - else if ( !iPortalButtonTwo ) - iPortalButtonOne->ExecuteL(); + delete iSelectedStore; + iSelectedStore = NULL; + + const RPointerArray& storeConfArray = + iWmPlugin.Configuration().StoreConfArray(); + + if ( storeConfArray.Count() == 1 ) + { + iSelectedStore = CWmStore::NewL( *storeConfArray[0], + iWmPlugin.ResourceLoader() ); + + iSelectedStore->ExecuteL(); } - } - -// --------------------------------------------------------------------------- -// CWmMainContainer::SelectL -// --------------------------------------------------------------------------- -// -void CWmMainContainer::SelectL() - { - if ( WidgetSelected() ) - AddWidgetToHomeScreenL(); - else if ( PortalSelected() ) - OpenPortalL(); + else if ( storeConfArray.Count() > 1 ) + { + DisplayAndLaunchStoresL(); + } else - SetFocusToWidgetList(); + { + // do nothing + } } // --------------------------------------------------------------------------- @@ -1499,19 +1042,6 @@ { AddWidgetToHomeScreenL(); } - else - { - if ( iWidgetsList->ItemDrawer()->Flags() - & CListItemDrawer::ESingleClickDisabledHighlight ) - { - ResetFocus(); - } - else - { - iWidgetsList->SetFocus( ETrue, EDrawNow ); - UpdateFocusMode(); - } - } } } @@ -1534,15 +1064,6 @@ } // ---------------------------------------------------- -// CWmMainContainer::Configuration -// ---------------------------------------------------- -// -CWmConfiguration& CWmMainContainer::Configuration() - { - return *iConfiguration; - } - -// ---------------------------------------------------- // CWmMainContainer::HandleFindSizeChanged // ---------------------------------------------------- // @@ -1572,44 +1093,6 @@ } // ---------------------------------------------------- -// CWmMainContainer::ProcessForegroundEvent -// ---------------------------------------------------- -// -void CWmMainContainer::ProcessForegroundEvent( TBool aForeground ) - { - if ( iFindbox && iFindPaneIsVisible && - iFindbox->IsFocused() ) - { - // keep focus & do nothing - } - else if ( aForeground ) - { - // set init state when wm comes to foreground. - // remove focus from all controls when activating view. - ResetFocus( EDrawNow ); - } - } - -// ---------------------------------------------------- -// CWmMainContainer::ResetFocus -// ---------------------------------------------------- -// -void CWmMainContainer::ResetFocus( TDrawNow aDrawNow ) - { - CCoeControl* control = NULL; - CCoeControlArray::TCursor cursor = Components().Begin(); - while( ( control = cursor.Control() ) != NULL ) - { - if( control->IsVisible() && control->IsFocused() ) - { - control->SetFocus( EFalse, aDrawNow ); - } - cursor.Next(); - } - UpdateFocusMode(); - } - -// ---------------------------------------------------- // CWmMainContainer::WmListBox // ---------------------------------------------------- // @@ -1629,10 +1112,8 @@ if ( iFindbox && iFindPaneIsVisible && !iFindbox->IsFocused() && IsFocused() ) { - // reset focus to find pane if its lost ( ou1cimx1#308019 ) - ResetFocus(); + // set focus to find pane if its lost ( ou1cimx1#308019 ) iFindbox->SetFocus( ETrue ); - UpdateFocusMode(); } } @@ -1665,5 +1146,113 @@ } } +// ---------------------------------------------------------- +// CWmMainContainer::CleanupIconArray +// ---------------------------------------------------------- +// +void CWmMainContainer::CleanupIconArray( TAny* aIconArray ) + { + CArrayPtrFlat* icons = (CArrayPtrFlat*)aIconArray; + icons->ResetAndDestroy(); + delete icons; + } + +// ---------------------------------------------------- +// CWmMainContainer::DisplayAndLaunchStoresL +// ---------------------------------------------------- +// +void CWmMainContainer::DisplayAndLaunchStoresL() + { + // prepare stores + RPointerArray storesArray; + CleanupResetAndDestroyPushL( storesArray ); + + const RPointerArray& storeConfArray = + iWmPlugin.Configuration().StoreConfArray(); + + for( TInt i = 0; i < storeConfArray.Count(); i++ ) + { + CWmStore* store = CWmStore::NewL( *storeConfArray[i], + iWmPlugin.ResourceLoader() ); + CleanupStack::PushL( store ); + storesArray.AppendL( store ); + CleanupStack::Pop( store ); + } + + CEikFormattedCellListBox* listBox = + new (ELeave) CAknDoubleLargeGraphicPopupMenuStyleListBox(); + CleanupStack::PushL( listBox ); + + CAknPopupList* popupList = CAknPopupList::NewL( + listBox, R_AVKON_SOFTKEYS_SELECT_CANCEL__SELECT, + AknPopupLayouts::EMenuDoubleLargeGraphicWindow ); + + CleanupStack::PushL( popupList ); + + listBox->ConstructL( popupList, EAknListBoxMenuList ); + listBox->CreateScrollBarFrameL(ETrue); + listBox->ScrollBarFrame()->SetScrollBarVisibilityL( + CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto); + + // set title + HBufC* title = StringLoader::LoadLC( R_QTN_WM_STORELIST_TITLE ); + popupList->SetTitleL( *title ); + CleanupStack::PopAndDestroy(); // title + + // format str + _LIT( KFormatStr , "%d\t%S" ); + + // items array + CDesCArray* itemArray = + static_cast( listBox->Model()->ItemTextArray( ) ); + + // create icons array + CArrayPtr* iconarray = new (ELeave) CArrayPtrFlat( 2 ); + CleanupStack::PushL( TCleanupItem( CleanupIconArray, iconarray) ); + + for ( TInt i=0; i < storesArray.Count(); i++ ) + { + // prepare icon + CGulIcon* icon = CGulIcon::NewL( storesArray[i]->StoreIcon(), + storesArray[i]->StoreMask() ); + CleanupStack::PushL( icon ); + icon->SetBitmapsOwnedExternally( ETrue ); + iconarray->AppendL( icon ); + CleanupStack::Pop( icon ); + + // add store to items array + HBufC* buf = HBufC::NewLC( + storesArray[i]->Heading().Length() + + KFormatStr().Length() ); + + TPtr ptr = buf->Des(); + ptr.Format( KFormatStr(), i, &storesArray[i]->Heading() ); + itemArray->AppendL( ptr ); + CleanupStack::PopAndDestroy( buf ); + } + + CleanupStack::Pop(); // iconarray + listBox->ItemDrawer()->ColumnData()->SetIconArrayL( iconarray ); + + TBool result = popupList->ExecuteLD(); + CleanupStack::Pop(); // popupList ( deleted in ExecuteLD) + + TInt selection = listBox->CurrentItemIndex(); + CleanupStack::PopAndDestroy(); // listBox + + if ( result && selection >= 0 && + selection < storesArray.Count() ) + { + iSelectedStore = storesArray[selection]; + if ( iSelectedStore ) + { + storesArray.Remove( selection ); + iSelectedStore->ExecuteL(); + } + } + + CleanupStack::PopAndDestroy(); //storesArray + } + // End of File diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/src/wmmaincontainerview.cpp --- a/idlehomescreen/widgetmanager/src/wmmaincontainerview.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/widgetmanager/src/wmmaincontainerview.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -30,14 +30,17 @@ #include #include #include - +#include #include "wmplugin.h" #include "widgetmanager.hrh" #include "wmmaincontainerview.h" #include "wmresourceloader.h" #include "wmmaincontainer.h" #include "wmspbgcleaner.h" - +#include "wmconfiguration.h" +#include "wmimageconverter.h" +#include "wmstore.h" + // --------------------------------------------------------- // CWmMainContainerView::CWmMainContainerView() // --------------------------------------------------------- @@ -55,7 +58,7 @@ // --------------------------------------------------------- // CWmMainContainerView::~CWmMainContainerView() - { + { if ( iWmMainContainer != NULL ) { AppUi()->RemoveFromStack( iWmMainContainer ); @@ -127,9 +130,7 @@ { switch ( aCommand ) { - case EWmMainContainerViewOpenPortalMenuItemCommand: - HandleOpenMenuItemSelectedL(); - break; + case EAknSoftkeySelect: case EWmMainContainerViewAddMenuItemCommand: HandleAddMenuItemSelectedL(); break; @@ -162,9 +163,11 @@ case EWmMainContainerViewWiddetDetailsMenuItemCommand: HandleDetailsMenuItemSelectedL(); break; - case EAknSoftkeySelect: + case EWmStoreCommand: + { if ( iWmMainContainer ) - iWmMainContainer->SelectL(); + iWmMainContainer->HandleStoreCommandL(); + } break; case EAknSoftkeyCancel: // flow through case EEikCmdCanceled: @@ -188,7 +191,16 @@ const TDesC8& /*aCustomMessage*/ ) { // setup status pane layout - StatusPane()->SwitchLayoutL( R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT ); + TInt layoutResourceId = ( (iWmPlugin.Configuration().StoreCount() ) ? + R_AVKON_STATUS_PANE_LAYOUT_IDLE_FLAT : + R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT ); + StatusPane()->SwitchLayoutL( layoutResourceId ); + + // ToDo: Support for msk in all layout is ongoing, when available in + // sdk use next line and get rid of above. + + //StatusPane()->SwitchLayoutL( R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT ); + // apply changes StatusPane()->ApplyCurrentSettingsL(); // disable transparancy @@ -208,14 +220,19 @@ StatusPane()->DrawNow(); // update cba - if ( Layout_Meta_Data::IsMSKEnabled() ) + if ( !AknLayoutUtils::MSKEnabled() || + iWmPlugin.Configuration().StoreCount() == 0 ) { CEikButtonGroupContainer* bgc( Cba() ); CEikCba* cba = static_cast< CEikCba* >( bgc->ButtonGroup() ); - cba->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_BACK__SELECT ); + cba->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_BACK ); bgc->SetBoundingRect( TRect() ); cba->DrawNow(); } + else if ( AknLayoutUtils::MSKEnabled() ) + { + UpdateMSKIconL(); + } // create container if ( iWmMainContainer == NULL ) @@ -309,27 +326,12 @@ !iWmMainContainer->CanDoHelp() ); aMenuPane->SetItemDimmed( EWmMainContainerViewUninstallMenuItemCommand, !iWmMainContainer->CanDoUninstall() ); - if ( !iWmMainContainer->PortalSelected() ) - aMenuPane->DeleteMenuItem( EWmMainContainerViewOpenPortalMenuItemCommand ); if ( !iWmMainContainer->WidgetSelected() ) aMenuPane->DeleteMenuItem( EWmMainContainerViewAddMenuItemCommand ); } } // --------------------------------------------------------- -// CWmMainContainerView::HandleOpenMenuItemSelectedL -// --------------------------------------------------------- -// -TBool CWmMainContainerView::HandleOpenMenuItemSelectedL() - { - if ( iWmMainContainer && iWmMainContainer->PortalSelected() ) - { - iWmMainContainer->OpenPortalL(); - } - return ETrue; - } - -// --------------------------------------------------------- // CWmMainContainerView::HandleDetailsMenuItemSelectedL // --------------------------------------------------------- // @@ -431,16 +433,64 @@ } // --------------------------------------------------------- -// CWmMainContainerView::HandleForegroundEventL +// CWmMainContainerView::UpdateMSKIconL // --------------------------------------------------------- // -void CWmMainContainerView::HandleForegroundEventL( TBool aForeground ) +void CWmMainContainerView::UpdateMSKIconL() { - CAknView::HandleForegroundEventL( aForeground ); - if ( iWmMainContainer ) + CEikButtonGroupContainer* bgc( Cba() ); + CEikCba* cba = static_cast< CEikCba* >( bgc->ButtonGroup() ); + TFileName fileName( iWmPlugin.ResourceLoader().IconFilePath() ); + TAknsItemID skinId = KAknsIIDQgnMenuOviStore; + TInt bitmapId( EMbmWidgetmanagerQgn_menu_ovistore ); + TInt maskId( EMbmWidgetmanagerQgn_menu_ovistore_mask ); + + if ( iWmPlugin.Configuration().StoreCount() > 1 ) + { + skinId = KAknsIIDQgnPropLmShopping; + bitmapId = EMbmWidgetmanagerQgn_menu_shopping; + maskId = EMbmWidgetmanagerQgn_menu_shopping_mask; + } + else { - iWmMainContainer->ProcessForegroundEvent( aForeground ); + const RPointerArray& storeConfArray = + iWmPlugin.Configuration().StoreConfArray(); + CWmConfItem* confItem( storeConfArray[0] ); + + if ( confItem && + confItem->Id() != CWmStore::EOvi && + confItem->Icon().Length() ) + { + CWmImageConverter* imageConverter = CWmImageConverter::NewL(); + CleanupStack::PushL( imageConverter ); + + // parse icon str + // TODO: now only mif&skin are supported. Later when API is there + // we can add support for rest icon types + TBool res = imageConverter->ParseIconString( + confItem->Icon(), skinId, bitmapId, maskId, fileName ); + + CleanupStack::PopAndDestroy( imageConverter ); + + if ( !res ) + { + // use default shopping icon + skinId = KAknsIIDQgnPropLmShopping; + bitmapId = EMbmWidgetmanagerQgn_menu_shopping; + maskId = EMbmWidgetmanagerQgn_menu_shopping_mask; + fileName.Copy( iWmPlugin.ResourceLoader().IconFilePath() ); + } + } } + + cba->UpdateMSKIconL( + skinId, + fileName, + bitmapId, + maskId, + ETrue ); + bgc->SetBoundingRect( TRect() ); + cba->DrawNow(); } // End of file diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/src/wmplugin.cpp --- a/idlehomescreen/widgetmanager/src/wmplugin.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/widgetmanager/src/wmplugin.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -37,6 +37,7 @@ #include "wmwidgetdata.h" #include "wminstaller.h" #include "wmlistbox.h" +#include "wmconfiguration.h" const TInt KExecuteCommandDelay( 50000 ); // 50ms const TInt KMaxCmdExecutionCount( 6 ); @@ -77,6 +78,7 @@ delete iEffectManager; delete iPostponedContent; delete iWmInstaller; + delete iConfiguration; } // --------------------------------------------------------- @@ -140,10 +142,15 @@ { menuBar->StopDisplayingMenuBar(); } - + + // load configuration again, there might be change + delete iConfiguration; + iConfiguration = NULL; + TRAP_IGNORE( + iConfiguration = CWmConfiguration::NewL( ResourceLoader() ); iEffectManager->BeginFullscreenEffectL( - KAppStartEffectStyle ); + KAppStartEffectStyle ); iViewAppUi->ActivateLocalViewL( TUid::Uid( EWmMainContainerViewId ) ); ); @@ -284,6 +291,10 @@ TCallBack( ExecuteCommand, this ) ); } } + + // delete config + delete iConfiguration; + iConfiguration = NULL; } // --------------------------------------------------------- @@ -447,6 +458,15 @@ return *iWmInstaller; } +// ---------------------------------------------------- +// CWmPlugin::Configuration +// ---------------------------------------------------- +// +CWmConfiguration& CWmPlugin::Configuration() + { + return *iConfiguration; + } + // --------------------------------------------------------- // CWmPlugin::GetUnistalledWidget // --------------------------------------------------------- diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/src/wmportalbutton.cpp --- a/idlehomescreen/widgetmanager/src/wmportalbutton.cpp Tue Sep 14 20:58:58 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,619 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).. -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* Implementation of the portal button for WidgetManager -* -*/ - -// INCLUDE FILES -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include // widgetreqistry -#include -#include -#include -#include - -#include "wmimageconverter.h" -#include "wmportalbutton.h" -#include "wmcommon.h" -#include "wmplugin.h" -#include "wmresourceloader.h" -#include "wmmaincontainer.h" -#include "wmconfiguration.h" -#include "wmprocessmonitor.h" - -// CONSTANTS - -// MEMBER FUNCTIONS - -// --------------------------------------------------------- -// CWmPortalButton::NewL -// --------------------------------------------------------- -// -CWmPortalButton* CWmPortalButton::NewL( - const CCoeControl* aParent, - TInt aPortalButtonIndex ) - { - CWmPortalButton* self = new (ELeave) CWmPortalButton( - KAknButtonTextInsideFrame, aPortalButtonIndex ); - - CleanupStack::PushL( self ); - - CWmMainContainer* mainContainer = - static_cast ( - const_cast ( aParent ) ); - - self->ConstructL( mainContainer, - mainContainer->Configuration().PortalButtonText( aPortalButtonIndex ), - mainContainer->Configuration().PortalButtonIcon( aPortalButtonIndex ) ); - - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------- -// CWmPortalButton::~CWmPortalButton -// --------------------------------------------------------- -// -CWmPortalButton::~CWmPortalButton() - { - delete iButtonIcon; - delete iButtonIconMask; - - // if MAknIconFileProvider was used to create image from icon string - // then it'll try accessing imageconverter after bitmap deletion - // for de-reference open file count, so it should be deleted last. - delete iImageConverter; - delete iProcessMonitor; - delete iBrowserLauncher; - } - -// --------------------------------------------------------- -// CWmPortalButton::CWmPortalButton -// --------------------------------------------------------- -// -CWmPortalButton::CWmPortalButton( - const TInt aFlags, - TInt aPortalButtonIndex ) - :CAknButton( aFlags ), - iPortalButtonIndex( aPortalButtonIndex ) - { - iButtonIcon = NULL; - iButtonIconMask = NULL; - iProcessMonitor = NULL; - iBrowserLauncher = NULL; - } - -// --------------------------------------------------------- -// CWmPortalButton::ConstructL -// --------------------------------------------------------- -// -void CWmPortalButton::ConstructL( - CWmMainContainer* aParent, - const TDesC& aText, - const TDesC& aIcon ) - { - if ( !aParent ) - { - User::Leave( KErrArgument ); - } - SetContainerWindowL( *aParent ); - - // Obtain pointer to main container. - iWmMainContainer = aParent; - - // construct the button - CAknButton::ConstructL( NULL, NULL, NULL, NULL, aText, KNullDesC, 0 ); - - SetFrameAndCenterIds( - KAknsIIDQsnFrButtonNormal, - KAknsIIDQsnFrButtonCenterNormal, - KAknsIIDQsnFrButtonPressed, - KAknsIIDQsnFrButtonCenterPressed, - KAknsIIDQsnFrButtonInactive, - KAknsIIDQsnFrButtonCenterInactive, - KAknsIIDQsnFrButtonPressed, - KAknsIIDQsnFrButtonCenterPressed, - KAknsIIDQsnFrButtonInactive, - KAknsIIDQsnFrButtonCenterInactive ); - - // start image converter for the icon - iImageConverter = CWmImageConverter::NewL(); - TSize iconsize( LayoutIconSize() ); - iImageConverter->HandleIconString( - iconsize, - aIcon, - iButtonIcon, - iButtonIconMask ); - // observe our own press events - SetObserver( this ); - - SetFocusing( ETrue ); - SetRequestExit( ETrue ); // notification request for button up event - - // ready to be drawn - ActivateL(); - } - -// --------------------------------------------------------- -// CWmPortalButton::ExecuteL -// --------------------------------------------------------- -// -void CWmPortalButton::ExecuteL() - { - if ( iPortalButtonIndex == 0 ) - { - // OVI button - if ( !iProcessMonitor ) - { - iProcessMonitor = CWmProcessMonitor::NewL(); - } - // if process monitor is active laucher was allready started. - // this is for ignoring multiple button presses - if ( !iProcessMonitor->IsActive() ) - { - RunOviL( iWmMainContainer->Configuration() ); - } - } - else if ( iPortalButtonIndex == 1 ) - { - // OPERATOR button - // if this leaves it means we need to start browser - // becouse application info was not given - TRAPD( err, RunOperatorApplicationL( - iWmMainContainer->Configuration() ) ) - if ( err != KErrNone ) - { - StartBrowserL( - iWmMainContainer->Configuration().PortalButtonBrowserUrl( - iPortalButtonIndex ) ); - } - } - else - { - // Not supported - User::Leave( KErrGeneral ); - } - } - -// --------------------------------------------------------- -// CWmPortalButton::RunOviL -// --------------------------------------------------------- -// -void CWmPortalButton::RunOviL( CWmConfiguration& aConf ) - { - RApaLsSession session; - User::LeaveIfError( session.Connect() ); - CleanupClosePushL( session ); - - //get app info - TApaAppInfo appInfo; - TUid launchUid; - launchUid = aConf.PortalButtonClientUid( iPortalButtonIndex ); - - if ( session.GetAppInfo( appInfo, launchUid ) == KErrNone ) - { - // Form parameter - HBufC* param = HBufC::NewLC( aConf.PortalButtonClientParam( iPortalButtonIndex ).Length() ); - param->Des().Copy( aConf.PortalButtonClientParam( iPortalButtonIndex ) ); - - // do the launch - RProcess process; - User::LeaveIfError( process.Create( appInfo.iFullName, *param ) ); - - iProcessMonitor->Monitor( process ); - process.Resume(); - - CleanupStack::PopAndDestroy( param ); - } - - CleanupStack::PopAndDestroy( &session ); - } - -// --------------------------------------------------------- -// CWmPortalButton::StartBrowserL -// --------------------------------------------------------- -// -void CWmPortalButton::StartBrowserL( const TDesC& aUrl ) - { - // already running/or request launch or url is empty - if ( iBrowserLauncher || !aUrl.Length() ) { return; } - - _LIT( KUrlPrefix, "4 "); - HBufC* param = HBufC::NewLC( aUrl.Length() + KUrlPrefix().Length() ); - param->Des().Append( KUrlPrefix ); - param->Des().Append( aUrl ); - - // Create browser launcher - CBrowserLauncher* launcher = CBrowserLauncher::NewLC(); - - // Asynchronous operation to launch the browser with given URL - launcher->LaunchBrowserEmbeddedL( - *param, NULL, this, NULL ); - - CleanupStack::Pop( launcher ); - iBrowserLauncher = launcher; - launcher = NULL; - - CleanupStack::PopAndDestroy( param ); - } - -// --------------------------------------------------------- -// CWmPortalButton::HandleServerAppExit -// --------------------------------------------------------- -// -void CWmPortalButton::HandleServerAppExit( TInt aReason ) - { - MAknServerAppExitObserver::HandleServerAppExit( aReason ); - delete iBrowserLauncher; - iBrowserLauncher = NULL; - } - -// --------------------------------------------------------- -// CWmPortalButton::HandleControlEventL -// --------------------------------------------------------- -// -void CWmPortalButton::HandleControlEventL( CCoeControl* aControl, - TCoeEvent aEventType ) - { - if ( aControl == this ) - { - if ( aEventType == EEventStateChanged || - aEventType == ELongPressEndedEvent || - aEventType == EEventRequestCancel ) - { - DrawDeferred(); - } - // execute portal action when button pressed (short or long press) - if ( aEventType == EEventRequestExit ) - { - SetFocus( EFalse ); - DrawNow(); - ExecuteL(); - } - } - } - -// --------------------------------------------------------- -// CWmPortalButton::HandlePointerEventL -// --------------------------------------------------------- -// -void CWmPortalButton::HandlePointerEventL( - const TPointerEvent& aPointerEvent ) - { - CAknButton::HandlePointerEventL( aPointerEvent ); - - // remove focus from button if button is released outside rect - if ( aPointerEvent.iType == TPointerEvent::EDrag ) - { - TBool wasFoucused( IsFocused() ); - SetFocus( Rect().Contains( aPointerEvent.iPosition ) ); - if ( wasFoucused != IsFocused() ){ DrawNow(); } - } - else if ( aPointerEvent.iType == TPointerEvent::EButton1Up ) - { - SetFocus( EFalse ); // remove focus when button released. - } - } - - -// --------------------------------------------------------- -// CWmPortalButton::LayoutIconSize -// --------------------------------------------------------- -// -TSize CWmPortalButton::LayoutIconSize() const - { - TBool landscape = Layout_Meta_Data::IsLandscapeOrientation(); - TAknLayoutRect imageLayout; - if ( iWmMainContainer->Configuration().PortalButtonCount() == 1 ) - { - imageLayout.LayoutRect( Rect(), AknLayoutScalable_Apps:: - wgtman_btn_pane_g1( landscape ? 1 : 0).LayoutLine() ); - } - else - { - TInt variety = (landscape ? 5 : 4); - imageLayout.LayoutRect( Rect(), AknLayoutScalable_Apps - ::wgtman_btn_pane_g1( variety ).LayoutLine() ); - } - - return imageLayout.Rect().Size(); - } - -// --------------------------------------------------------- -// CWmPortalButton::SizeChanged -// --------------------------------------------------------- -// -void CWmPortalButton::SizeChanged() - { - CAknButton::SizeChanged(); - - SetTextVerticalAlignment( CAknButton::ECenter ); - - // resize icon - if ( iButtonIcon && iButtonIconMask ) - { - iImageConverter->UpdateImageSize( - LayoutIconSize(), - iWmMainContainer->Configuration().PortalButtonIcon( - iPortalButtonIndex ), - *iButtonIcon, - *iButtonIconMask ); - } - - TBool landscape = Layout_Meta_Data::IsLandscapeOrientation(); - SetTextAndIconAlignment( - landscape ? CAknButton::EIconOverText : CAknButton::EIconBeforeText ); - } - -// --------------------------------------------------------- -// CWmPortalButton::Draw -// --------------------------------------------------------- -// -void CWmPortalButton::Draw( const TRect& /*aRect*/ ) const - { - TRect rect = Rect(); - - TAknLayoutRect centerLayout; - centerLayout.LayoutRect( rect, - AknLayoutScalable_Avkon::toolbar_button_pane_g1().LayoutLine() ); - TRect innerRect = centerLayout.Rect(); - - CWindowGc& gc = SystemGc(); - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - - TAknsItemID frameId = ( KAknsIIDQsnFrButtonNormal ); - TAknsItemID frameCenterId = ( KAknsIIDQsnFrButtonCenterNormal ); - - if ( iButtonPressed ) - { - frameId = ( KAknsIIDQsnFrButtonPressed ); - frameCenterId = ( KAknsIIDQsnFrButtonCenterPressed ); - } - else if ( IsDimmed() ) - { - frameId = KAknsIIDQsnFrButtonInactive; - frameCenterId = KAknsIIDQsnFrButtonCenterInactive; - } - else if ( IsFocused() ) - { - frameId = KAknsIIDQsnFrButtonHighlight; - frameCenterId = KAknsIIDQsnFrButtonHighlightCenter; - } - - iBgContext->SetFrame( frameId ); - iBgContext->SetCenter( frameCenterId ); - iBgContext->SetFrameRects( rect, innerRect ); - - if ( !AknsDrawUtils::Background( skin, iBgContext, NULL, - gc, rect, KAknsDrawParamNoClearUnderImage ) ) - { - gc.SetBrushColor( KRgbRed ); - gc.SetBrushStyle( CGraphicsContext::ESolidBrush ); - gc.DrawRect( rect ); - } - gc.SetBrushStyle( CGraphicsContext::ENullBrush ); - - CAknButtonState* state = State(); - if ( state ) - { - TBool landscape = Layout_Meta_Data::IsLandscapeOrientation(); - - // draw image if one exists - if ( iButtonIcon && iButtonIconMask ) - { - TAknLayoutRect imageLayout; - if ( iWmMainContainer->Configuration().PortalButtonCount() == 1 ) - { - imageLayout.LayoutRect( rect, AknLayoutScalable_Apps:: - wgtman_btn_pane_g1( landscape ? 3 : 0).LayoutLine() ); - } - else - { - TInt variety = (landscape ? 7 : 4); - imageLayout.LayoutRect( rect, AknLayoutScalable_Apps - ::wgtman_btn_pane_g1( variety ).LayoutLine() ); - } - - gc.DrawBitmapMasked( - imageLayout.Rect(), - iButtonIcon, - TRect(TPoint( 0, 0 ), iButtonIcon->SizeInPixels() ), - iButtonIconMask, - EFalse ); - } - - // draw text if portrait - if ( !landscape ) - { - TAknTextComponentLayout leftLayout; - TInt variety = - ((iWmMainContainer->Configuration().PortalButtonCount()== 2)? 4:0 ); - leftLayout = AknLayoutScalable_Apps::wgtman_btn_pane_t1( variety ); - DrawText( gc, state->Text(), leftLayout, 1 ); - } - } - } - -// --------------------------------------------------------- -// CWmPortalButton::DrawText -// --------------------------------------------------------- -// -void CWmPortalButton::DrawText( - CWindowGc& aGc, - const TDesC& aText, - TAknTextComponentLayout& aLayout, - TInt aMargin ) const - { - TAknLayoutText layoutText; - layoutText.LayoutText(Rect(), aLayout.LayoutLine() ); - - const CFont* font = layoutText.Font(); - TRect textRect = layoutText.TextRect(); - - aGc.UseFont( font ); - - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - - TRgb textColor; - TInt err = AknsUtils::GetCachedColor( - skin, - textColor, - KAknsIIDQsnTextColors, - EAknsCIQsnTextColorsCG63 ); - if ( err != KErrNone ) - { - textColor = layoutText.Color(); - } - aGc.SetPenColor( textColor); - - // Layout data not correct, add some space for text - textRect.iBr.iX += aMargin; - textRect.iTl.iX -= aMargin; - - // buffer for visually ordered text - TBuf<255 + KAknBidiExtraSpacePerLine> visualText; - TInt clipWidth = textRect.Width(); - - // bidi processing - using AknBidiTextUtils. - AknBidiTextUtils::ConvertToVisualAndClip( - aText, - visualText, - *font, - clipWidth, - clipWidth ); - - TInt baselineOffset = 0; - switch ( iVerticalAlignment ) - { - case ETop: - baselineOffset = font->AscentInPixels(); - break; - - case EBottom: - baselineOffset = textRect.Height(); - break; - - default: // centered - baselineOffset = font->AscentInPixels() + - ( textRect.Height() - font->AscentInPixels() ) / 2; - } - - aGc.DrawText( visualText, textRect, - baselineOffset, layoutText.Align() ); - } - -// --------------------------------------------------------- -// CWmPortalButton::RunOperatorApplicationL -// --------------------------------------------------------- -// -void CWmPortalButton::RunOperatorApplicationL( CWmConfiguration& aConf ) - { - CWmConfiguration::TOpAppType type = aConf.PortalButtonApplicationType( 1 ); - if ( type == CWmConfiguration::EUnknown || - type >= CWmConfiguration::EReserved ) - { - // Leave if not found - User::Leave( KErrArgument ); - } - - switch( type ) - { - case CWmConfiguration::ES60: - case CWmConfiguration::EQt: - { - TUid uid = KNullUid; - aConf.PortalButtonApplicationId( 1, uid ); - StartProcessL( uid, aConf.PortalButtonClientParam( 1 ) ); - } - break; - case CWmConfiguration::ECwrt: - { - TUid uid = KNullUid; - aConf.PortalButtonApplicationId( 1, uid ); - StartWidgetL( uid, aConf.PortalButtonClientParam( 1 ) ); - } - break; - case CWmConfiguration::EWrt: - { - TUid uid = KNullUid; - aConf.PortalButtonApplicationId( 1, uid ); - StartWidgetL( uid, KNullDesC ); - } - break; - case CWmConfiguration::EJava: - { - TBuf appId; - aConf.PortalButtonApplicationId( 1, appId ); - //TODO: - } - break; - } - } - -// --------------------------------------------------------- -// CWmPortalButton::StartProcessL -// --------------------------------------------------------- -// -void CWmPortalButton::StartProcessL( TUid aUid, const TDesC& aParam ) - { - RApaLsSession session; - User::LeaveIfError( session.Connect() ); - CleanupClosePushL( session ); - - //get app info - TApaAppInfo appInfo; - User::LeaveIfError( session.GetAppInfo( appInfo, aUid ) ); - // do the launch - RProcess process; - User::LeaveIfError( process.Create( appInfo.iFullName, aParam ) ); - process.Resume(); - - CleanupStack::PopAndDestroy( &session ); - } - -// --------------------------------------------------------- -// CWmPortalButton::StartWidgetL -// --------------------------------------------------------- -// -void CWmPortalButton::StartWidgetL( TUid aAppUid, const TDesC& aParams ) - { - if ( aAppUid == KNullUid ) - User::Leave( KErrArgument ); - - HBufC* params = aParams.AllocLC(); - - RApaLsSession appArc; - User::LeaveIfError( appArc.Connect() ); - CleanupClosePushL( appArc ); - - TThreadId threadId; - User::LeaveIfError( appArc.StartDocument( *params, aAppUid, threadId ) ); - - CleanupStack::PopAndDestroy( &appArc ); - CleanupStack::PopAndDestroy( params ); - } - -// End of file diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/src/wmstore.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/widgetmanager/src/wmstore.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -0,0 +1,367 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).. +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Implementation of the store for WidgetManager +* +*/ + +// INCLUDE FILES +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include // widgetreqistry +#include +#include +#include +#include +#include + +#include "wmimageconverter.h" +#include "wmstore.h" +#include "wmcommon.h" +#include "wmplugin.h" +#include "wmresourceloader.h" +#include "wmmaincontainer.h" +#include "wmconfiguration.h" +#include "wmprocessmonitor.h" + +// CONSTANTS + +// MEMBER FUNCTIONS + +// --------------------------------------------------------- +// CWmStore::NewL +// --------------------------------------------------------- +// +CWmStore* CWmStore::NewL( CWmConfItem& aWmConfItem, + CWmResourceLoader& aResourceLoader ) + { + CWmStore* self = new (ELeave) CWmStore( aWmConfItem ); + CleanupStack::PushL( self ); + self->ConstructL( aResourceLoader ); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------- +// CWmStore::~CWmStore +// --------------------------------------------------------- +// +CWmStore::~CWmStore() + { + delete iIcon; + delete iMask; + + // if MAknIconFileProvider was used to create image from icon string + // then it'll try accessing imageconverter after bitmap deletion + // for de-reference open file count, so it should be deleted last. + delete iImageConverter; + delete iProcessMonitor; + delete iBrowserLauncher; + } + +// --------------------------------------------------------- +// CWmStore::CWmStore +// --------------------------------------------------------- +// +CWmStore::CWmStore( CWmConfItem& aWmConfItem ) + : iWmConfItem( aWmConfItem ) + { + iIcon = NULL; + iMask = NULL; + iProcessMonitor = NULL; + iBrowserLauncher = NULL; + } + +// --------------------------------------------------------- +// CWmStore::ConstructL +// --------------------------------------------------------- +// +void CWmStore::ConstructL( CWmResourceLoader& aResourceLoader ) + { + // start image converter for the icon + iImageConverter = CWmImageConverter::NewL(); + + // get size of icon for double large style list + TRect rect; + TAknLayoutRect layout; + + layout.LayoutRect( rect, + AknLayoutScalable_Avkon::list_double_large_graphic_pane_g1( 0 ).LayoutLine() ); + + TSize iconSize( layout.Rect().Width(), + layout.Rect().Height() ); + + // create icon + TInt err = iImageConverter->HandleIconString( + iconSize, + iWmConfItem.Icon(), + iIcon, + iMask, + ETrue ); // force scaling for non scaleble icons + + if ( err != KErrNone ) + { + // lets use basket icon + // skin( 0x101f86e3 0x23f6 ):mif( z:\resource\apps\widgetmanager.mif 16388 16389 ) + _LIT( KSkinMifIconFormat, "skin( 0x%x 0x%x ):mif( %S %d %d )"); + const TInt KMaxIconDescriptorLength = 256; + TBuf buf; + buf.Format( KSkinMifIconFormat(), + EAknsMajorGeneric, EAknsMinorGenericQgnPropLmShopping, + &aResourceLoader.IconFilePath(), + EMbmWidgetmanagerQgn_menu_shopping, + EMbmWidgetmanagerQgn_menu_shopping_mask ); + + iImageConverter->HandleIconString( + iconSize, + buf, + iIcon, + iMask, + EFalse ); // force scaling for non scaleble icons + } + } + +// --------------------------------------------------------- +// CWmStore::StoreIcon +// --------------------------------------------------------- +// +CFbsBitmap* CWmStore::StoreIcon() + { + return iIcon; + } + +// --------------------------------------------------------- +// CWmStore::StoreMask +// --------------------------------------------------------- +// +CFbsBitmap* CWmStore::StoreMask() + { + return iMask; + } + +// --------------------------------------------------------- +// CWmStore::Heading +// --------------------------------------------------------- +// +const TDesC& CWmStore::Heading() + { + return iWmConfItem.Title(); + } + +// --------------------------------------------------------- +// CWmStore::Order +// --------------------------------------------------------- +// +TInt CWmStore::Order() const + { + return iWmConfItem.Order(); + } + +// --------------------------------------------------------- +// CWmStore::ExecuteL +// --------------------------------------------------------- +// +void CWmStore::ExecuteL() + { + if ( iWmConfItem.Id() == EOvi ) + { + if ( !iProcessMonitor ) + { + iProcessMonitor = CWmProcessMonitor::NewL(); + } + // if process monitor is active laucher was allready started. + // this is for ignoring multiple presses + if ( !iProcessMonitor->IsActive() ) + { + RunOviL(); + } + } + else if ( iWmConfItem.Id() >= EStore1 && iWmConfItem.Id() < ELastItem ) + { + // if this leaves it means we need to start browser + // becouse application info was not given + TRAPD( err, RunApplicationL() ) + if ( err != KErrNone ) + { + StartBrowserL( iWmConfItem.BrowserUrl() ); + } + } + else + { + // Not supported + User::Leave( KErrGeneral ); + } + } + +// --------------------------------------------------------- +// CWmStore::RunOviL +// --------------------------------------------------------- +// +void CWmStore::RunOviL() + { + RApaLsSession session; + User::LeaveIfError( session.Connect() ); + CleanupClosePushL( session ); + + //get app info + TApaAppInfo appInfo; + if ( session.GetAppInfo( appInfo, iWmConfItem.AppUid() ) == KErrNone ) + { + // Form parameter + HBufC* param = HBufC::NewLC( iWmConfItem.AppParam().Length() ); + param->Des().Copy( iWmConfItem.AppParam() ); + + // do the launch + RProcess process; + User::LeaveIfError( process.Create( appInfo.iFullName, *param ) ); + + iProcessMonitor->Monitor( process ); + process.Resume(); + + CleanupStack::PopAndDestroy( param ); + } + + CleanupStack::PopAndDestroy( &session ); + } + +// --------------------------------------------------------- +// CWmStore::StartBrowserL +// --------------------------------------------------------- +// +void CWmStore::StartBrowserL( const TDesC& aUrl ) + { + // already running/or request launch or url is empty + if ( iBrowserLauncher || !aUrl.Length() ) { return; } + + _LIT( KUrlPrefix, "4 "); + HBufC* param = HBufC::NewLC( aUrl.Length() + KUrlPrefix().Length() ); + param->Des().Append( KUrlPrefix ); + param->Des().Append( aUrl ); + + // Create browser launcher + CBrowserLauncher* launcher = CBrowserLauncher::NewLC(); + + // Asynchronous operation to launch the browser with given URL + launcher->LaunchBrowserEmbeddedL( + *param, NULL, this, NULL ); + + CleanupStack::Pop( launcher ); + iBrowserLauncher = launcher; + launcher = NULL; + + CleanupStack::PopAndDestroy( param ); + } + +// --------------------------------------------------------- +// CWmStore::HandleServerAppExit +// --------------------------------------------------------- +// +void CWmStore::HandleServerAppExit( TInt aReason ) + { + MAknServerAppExitObserver::HandleServerAppExit( aReason ); + delete iBrowserLauncher; + iBrowserLauncher = NULL; + } + +// --------------------------------------------------------- +// CWmStore::RunApplicationL +// --------------------------------------------------------- +// +void CWmStore::RunApplicationL() + { + CWmConfiguration::TStoreAppType type = iWmConfItem.AppType(); + if ( type == CWmConfiguration::EUnknown || + type >= CWmConfiguration::EReserved ) + { + // Leave if not found + User::Leave( KErrArgument ); + } + + switch( type ) + { + case CWmConfiguration::ES60: + case CWmConfiguration::EQt: + { + StartProcessL( iWmConfItem.AppUid(), + iWmConfItem.AppParam() ); + } + break; + case CWmConfiguration::ECwrt: + { + StartWidgetL( iWmConfItem.AppUid(), + iWmConfItem.AppParam() ); + } + break; + case CWmConfiguration::EWrt: + { + StartWidgetL( iWmConfItem.AppUid(), KNullDesC ); + } + break; + } + } + +// --------------------------------------------------------- +// CWmStore::StartProcessL +// --------------------------------------------------------- +// +void CWmStore::StartProcessL( TUid aUid, const TDesC& aParam ) + { + RApaLsSession session; + User::LeaveIfError( session.Connect() ); + CleanupClosePushL( session ); + + //get app info + TApaAppInfo appInfo; + User::LeaveIfError( session.GetAppInfo( appInfo, aUid ) ); + // do the launch + RProcess process; + User::LeaveIfError( process.Create( appInfo.iFullName, aParam ) ); + process.Resume(); + + CleanupStack::PopAndDestroy( &session ); + } + +// --------------------------------------------------------- +// CWmStore::StartWidgetL +// --------------------------------------------------------- +// +void CWmStore::StartWidgetL( TUid aAppUid, const TDesC& aParams ) + { + if ( aAppUid == KNullUid ) + User::Leave( KErrArgument ); + + HBufC* params = aParams.AllocLC(); + + RApaLsSession appArc; + User::LeaveIfError( appArc.Connect() ); + CleanupClosePushL( appArc ); + + TThreadId threadId; + User::LeaveIfError( appArc.StartDocument( *params, aAppUid, threadId ) ); + + CleanupStack::PopAndDestroy( &appArc ); + CleanupStack::PopAndDestroy( params ); + } + +// End of file diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/src/wmwidgetorderdata.cpp --- a/idlehomescreen/widgetmanager/src/wmwidgetorderdata.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/widgetmanager/src/wmwidgetorderdata.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -86,7 +86,6 @@ { delete iPublisherId; delete iName; - //delete iPersistentWidgetOrder // TODO: is needed??? } // --------------------------------------------------------- diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/widgetmanager/tsrc/wmunittest/group/wmunittest.mmp --- a/idlehomescreen/widgetmanager/tsrc/wmunittest/group/wmunittest.mmp Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/group/wmunittest.mmp Wed Sep 15 12:00:00 2010 +0300 @@ -50,7 +50,7 @@ SOURCE wmpersistentwidgetorder.cpp SOURCE wmeffectmanager.cpp SOURCE wmdetailsdlg.cpp -SOURCE wmportalbutton.cpp +SOURCE wmstore.cpp SOURCE wmwidgetloaderao.cpp SOURCE wmconfiguration.cpp SOURCE wminstaller.cpp diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockadapter.h --- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockadapter.h Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockadapter.h Wed Sep 15 12:00:00 2010 +0300 @@ -70,11 +70,9 @@ * Create font * * @param aNode Node which contains info of font - * @param aFontName Font name * @param aFont On return points to a created font */ void CreateFontL( CXnNodePluginIf& aNode, - const TDesC& aFontName, CFont*& aFont ); /* diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockface.h --- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockface.h Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockface.h Wed Sep 15 12:00:00 2010 +0300 @@ -216,6 +216,12 @@ */ void DrawHandsL( CWindowGc& aGc, const TRect& aRect, const TDateTime& aDateTime ); + + /** + * Stores clock face adjustment value + * @param aNode is current face. + */ + TInt FaceAdjustmentValueL( CXnNodePluginIf& aNode ); private: @@ -229,7 +235,10 @@ */ void ConstructL(); - private: // Data + private: // Data + + // Stores face adjustment value + TInt iFaceAdjustmentValue; }; #endif // _XNCLOCKFACE_H diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockadapter.cpp --- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockadapter.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockadapter.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -38,6 +38,7 @@ _LIT8( KDisplay, "display" ); _LIT8( KNone, "none" ); _LIT8( KBlock, "block" ); +_LIT( KLogicalSecondaryFont, "EAknLogicalFontSecondaryFont" ); // ============================ LOCAL FUNCTIONS =============================== @@ -518,7 +519,6 @@ // ----------------------------------------------------------------------------- // void CXnClockAdapter::CreateFontL( CXnNodePluginIf& aNode, - const TDesC& aFontName, CFont*& aFont ) { TFontSpec spec; @@ -546,13 +546,41 @@ prop, iNode.Rect().Height() ); } } - - // No need to relase avkon font - CXnUtils::CreateFontL( aFontName, - height, - spec.iFontStyle, - aFont, - dummy ); + + TBool fontNotSet( ETrue ); + prop = aNode.GetPropertyL( + XnPropertyNames::appearance::common::KFontFamily ); + + if ( prop ) + { + CXnDomPropertyValue* value = static_cast< CXnDomPropertyValue* >( + prop->Property()->PropertyValueList().Item( 0 ) ); + + if ( CXnDomPropertyValue::EIdent == value->PrimitiveValueType() + ||CXnDomPropertyValue::EString == value->PrimitiveValueType() ) + { + const TDesC& fontName( prop->StringValueL()->Des() ); + + // No need to relase avkon font + CXnUtils::CreateFontL( fontName, + height, + spec.iFontStyle, + aFont, + dummy ); + + fontNotSet = EFalse; + } + } + + if( fontNotSet ) + { + // No need to relase avkon font + CXnUtils::CreateFontL( KLogicalSecondaryFont, + height, + spec.iFontStyle, + aFont, + dummy ); + } } // ----------------------------------------------------------------------------- diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockface.cpp --- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockface.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockface.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -30,6 +30,9 @@ #include "xnnodepluginif.h" #include "xnclockadapter.h" #include "xntext.h" +#include "xnproperty.h" +#include "xndomproperty.h" +#include "xndomlist.h" #include "xnclockface.h" @@ -38,8 +41,7 @@ _LIT( KAmPmFormat, "%B" ); _LIT( KTimeFormat, "%J%:1%T" ); -_LIT( KClockFont, "EAknLogicalFontSecondaryFont" ); -_LIT( KAmpmFont, "EAknLogicalFontSecondaryFont" ); +const TInt KDefaultFaceAdjustmentValue = 0; // ============================ MEMBER FUNCTIONS =============================== @@ -167,7 +169,7 @@ { if ( !iClockFont ) { - aAdapter.CreateFontL( aNode, KClockFont, iClockFont ); + aAdapter.CreateFontL( aNode, iClockFont ); } return CAknLayoutFont::AsCAknLayoutFontOrNull( iClockFont ); } @@ -175,7 +177,7 @@ { if ( !iAmpmFont ) { - aAdapter.CreateFontL( aNode, KAmpmFont, iAmpmFont ); + aAdapter.CreateFontL( aNode, iAmpmFont ); } return CAknLayoutFont::AsCAknLayoutFontOrNull( iAmpmFont ); } @@ -228,6 +230,7 @@ // ----------------------------------------------------------------------------- // CXnClockFaceAnalog::CXnClockFaceAnalog() + : iFaceAdjustmentValue( KErrNotFound ) { } @@ -272,7 +275,7 @@ void CXnClockFaceAnalog::DrawL( CXnClockAdapter& /*aAdapter*/, CWindowGc& aGc, CXnNodePluginIf& aNode, const TTime& aTime, CXnNodePluginIf* /*aAmpm*/ ) { - TSize faceSize( aNode.Rect().Size() ); + TRect faceRect( aNode.Rect() ); TDateTime dateTime( aTime.DateTime() ); @@ -292,14 +295,19 @@ { return; } + + TInt value( FaceAdjustmentValueL( aNode ) ); + + TSize growthSize( value, 0 ); + faceRect.Grow( growthSize ); - User::LeaveIfError( AknIconUtils::SetSize( skinBmp, faceSize ) ); + User::LeaveIfError( AknIconUtils::SetSize( skinBmp, faceRect.Size() ) ); if( skinMask ) { - User::LeaveIfError( AknIconUtils::SetSize( skinMask, faceSize ) ); + User::LeaveIfError( AknIconUtils::SetSize( skinMask, faceRect.Size() ) ); - aGc.BitBltMasked( aNode.Rect().iTl, + aGc.BitBltMasked( faceRect.iTl, skinBmp, TRect( TPoint( 0, 0 ), skinBmp->SizeInPixels() ), skinMask, @@ -307,7 +315,7 @@ } else { - aGc.BitBlt( aNode.Rect().iTl, skinBmp ); + aGc.BitBlt( faceRect.iTl, skinBmp ); } aGc.SetBrushStyle( CGraphicsContext::ENullBrush ); @@ -369,6 +377,34 @@ } // ----------------------------------------------------------------------------- +// CXnClockFaceAnalog::FaceAdjustmentValueL +// ----------------------------------------------------------------------------- +// +TInt CXnClockFaceAnalog::FaceAdjustmentValueL( CXnNodePluginIf& aNode ) + { + if( iFaceAdjustmentValue == KErrNotFound ) + { + CXnProperty* prop( aNode.GetPropertyL( XnPropertyNames::clock::KFaceAdjustmentValue ) ); + + if( prop ) + { + TInt value = static_cast( prop->FloatValueL() ); + + if( value > KErrNotFound ) + { + iFaceAdjustmentValue = value; + } + } + + if( iFaceAdjustmentValue <= KErrNotFound ) + { + iFaceAdjustmentValue = KDefaultFaceAdjustmentValue; + } + } + + return iFaceAdjustmentValue; + } + // CXnClockFaceAnalog::ResetFont // ----------------------------------------------------------------------------- // diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xndatecontrol.cpp --- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xndatecontrol.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xndatecontrol.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -38,7 +38,6 @@ const TInt KMaxDateStringLength = 100; const TInt KMaxDayNumberStringLength = 10; -_LIT( KDateFont, "EAknLogicalFontSecondaryFont" ); _LIT( KTimeFormat, "%0U %1U" ); @@ -210,7 +209,7 @@ { if ( !iDateFont ) { - iAdapter.CreateFontL( aNode, KDateFont, iDateFont ); + iAdapter.CreateFontL( aNode, iDateFont ); } return CAknLayoutFont::AsCAknLayoutFontOrNull( iDateFont ); } diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/uiengine/eabi/xn3layoutengineu.def --- a/idlehomescreen/xmluirendering/uiengine/eabi/xn3layoutengineu.def Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/xmluirendering/uiengine/eabi/xn3layoutengineu.def Wed Sep 15 12:00:00 2010 +0300 @@ -277,4 +277,5 @@ _ZTVN21CXnControlAdapterImpl13TIconProviderE @ 276 NONAME _ZThn52_N17CXnControlAdapter19HandleControlEventLEP11CCoeControlN19MCoeControlObserver9TCoeEventE @ 277 NONAME _ZThn60_N17CXnControlAdapter19HandleLongTapEventLERK6TPointS2_ @ 278 NONAME + _ZN8CXnUtils18ResolveSkinItemIDLERK7TDesC16R11TAknsItemID @ 279 NONAME diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.h --- a/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.h Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.h Wed Sep 15 12:00:00 2010 +0300 @@ -34,9 +34,41 @@ class CXnODT; class CXnViewManager; class CXnPublisherData; +class CCoeControl; // Constants +NONSHARABLE_STRUCT( TXnDirtyRegion ) + { + /** Area that needs to be redrawn */ + RRegion iRegion; + + /** Window owning control + * Not own. + */ + CCoeControl* iControl; + + /** Window owning node + * Not own. + */ + CXnNode* iRootNode; + + /** List of currently dirty nodes */ + RPointerArray< CXnNode > iDirtyList; + + /** Controls layouting */ + TInt iLayoutControl; + + TXnDirtyRegion() : iControl( NULL ), iRootNode( NULL ), + iLayoutControl( 0 ) {} + + ~TXnDirtyRegion() + { + iRegion.Close(); + iDirtyList.Reset(); + } + }; + // Class declaration /** @@ -454,6 +486,20 @@ */ void SetLockingStatus( const TDesC8& aStatus ); + /** + * Creates dirty region. + * + * @return Created dirty region. + */ + TXnDirtyRegion* CreateDirtyRegionL( CXnNode& aRootNode, CCoeControl& aControl); + + /** + * Get dirty region. + * + * @return dirty region. + */ + inline TXnDirtyRegion* DirtyRegion() const; + protected: // data @@ -493,6 +539,8 @@ HBufC* iPublisherName; /** Flags to define this plugin's state */ TBitFlags32 iFlags; + /** Region pending redraw, Owned */ + TXnDirtyRegion* iDirtyRegion; }; // Inline functions diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.inl --- a/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.inl Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.inl Wed Sep 15 12:00:00 2010 +0300 @@ -188,4 +188,13 @@ return iPluginsData; }; +// --------------------------------------------------------------------------- +// Returns dirty region +// --------------------------------------------------------------------------- +// +inline TXnDirtyRegion* CXnPluginData::DirtyRegion() const + { + return iDirtyRegion; + }; + #endif // _XNPLUGINDATA_INL_ diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/uiengine/inc/xnrootdata.h --- a/idlehomescreen/xmluirendering/uiengine/inc/xnrootdata.h Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/xmluirendering/uiengine/inc/xnrootdata.h Wed Sep 15 12:00:00 2010 +0300 @@ -122,6 +122,13 @@ CXnViewData& NextViewData() const; /** + * Gets a view data, where the given node belongs to. + * + * @return Acquired view data. NULL if not found. + */ + CXnViewData* ViewData( CXnNode& aNode ) const; + + /** * Sets view data to destroyal list * * @param aViewData View data to destroy diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/uiengine/inc/xnuiengineimpl.h --- a/idlehomescreen/xmluirendering/uiengine/inc/xnuiengineimpl.h Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/xmluirendering/uiengine/inc/xnuiengineimpl.h Wed Sep 15 12:00:00 2010 +0300 @@ -41,6 +41,7 @@ class CXnViewManager; class CXnViewData; class CXnPluginData; +class TXnDirtyRegion; // Constants namespace XnLayoutPhase @@ -59,18 +60,6 @@ const TInt EViewDirty = 0x10; const TInt EEffectStarted = 0x20; } - -NONSHARABLE_STRUCT( TXnDirtyRegion ) - { - RRegion iRegion; - CCoeControl* iControl; // Not own. - - ~TXnDirtyRegion() - { - iRegion.Close(); - } - }; - NONSHARABLE_STRUCT( TXnSplitScreenState ) { @@ -147,18 +136,6 @@ void LayoutUIL( CXnNode* aNode = NULL ); /** - * Lays out the UI - * - * This generates full re-layout starting from the given node, - * regardless of the current dirty set or the active view. - * I.e. this can be used to layout an inactive view. - * - * @since Series 60 5.2 - * @param aNode Starting point of the layout - */ - void LayoutFromNodeL( CXnNode& aNode ); - - /** * Creates UI implementations for the UI, adjusts control coordinates * according to the layout * @@ -166,19 +143,6 @@ * @param aNode Starting point */ void RenderUIL( CXnNode* aNode = NULL ); - - /** - * Creates UI implementations for the UI, adjusts control coordinates - * according to the layout - * - * This generates full re-layout starting from the given node, - * regardless of the current dirty set or the active view. - * I.e. this can be used to layout an inactive view. - * - * @since Series 60 5.2 - * @param aNode Starting point - */ - void RenderFromNodeL( CXnNode& aNode ); /** * Gets the root node of the UI @@ -325,6 +289,7 @@ * @since Series 60 3.1 */ void RefreshMenuL(); + void RefreshMenuL( TXnDirtyRegion* aDirtyRegion ); /** * Returns view manager @@ -555,7 +520,7 @@ private: IMPORT_C static void EnableRenderUi( TAny* aAny ); - + private: // constructors @@ -566,51 +531,55 @@ private: // new functions - + + /** + * Lays out the UI + */ + void LayoutL( TXnDirtyRegion& aRegion ); + void RenderL( TXnDirtyRegion& aRegion ); + /** * Prepares to the layout algorithm run * * @since Series 60 3.2 */ - void PrepareRunLayoutL(); - void PrepareRunLayoutL( CXnNode& aNode ); + void PrepareRunLayoutL( TXnDirtyRegion& aDirtyRegion ); /** * Runs the layout algorithm * * @since Series 60 3.2 */ - TInt RunLayoutL( CXnNode* aNode ); - TInt RunLayoutFromNodeL( CXnNode& aNode ); + TInt RunLayoutL( TXnDirtyRegion& aDirtyRegion, CXnNode& aNode ); /** * Checks if layout is currently disabled * * @since Series 60 3.2 */ - TBool IsLayoutDisabled(); + TBool IsLayoutDisabled( TXnDirtyRegion& aDirtyRegion ); - void AddToRedrawListL( CXnNode* aNode, TRect aRect = - TRect::EUninitialized ); + void AddToRedrawListL( TXnDirtyRegion& aRegion, CXnNode& aNode, + TRect aRect = TRect::EUninitialized ); - void AddToDirtyListL( CXnNode* aNode ); + void AddToDirtyListL( TXnDirtyRegion& aRegion, CXnNode& aNode ); /** * Finds a node where to start layout * * @since Series 60 5.0 */ - CXnNode* StartLayoutFromL(); + CXnNode* StartLayoutFromL( TXnDirtyRegion& aDirtyRegion ); void ForceRenderUIL( TBool aLayoutOnly = EFalse ); - CCoeControl* WindowOwningControl( CXnNode& aNode ); + CXnNode* WindowOwningNode( CXnNode& aNode ); TXnDirtyRegion* FindDirtyRegionL( CXnNode& aNode ); - void AddRedrawRectL( TRect aRect, CXnNode& aNode ); + void ReportScreenDeviceChangeL(); - void ReportScreenDeviceChangeL(); + void EnableRenderUiL(); /** * Handle partial touch input @@ -752,18 +721,12 @@ CXnKeyEventDispatcher* iKeyEventDispatcher; /** ControlAdapters, not owned */ const RPointerArray< CXnControlAdapter >* iControlAdapterList; - /** Region pending redraw */ - RPointerArray iRedrawRegions; - /** List of currently dirty nodes */ - RPointerArray< CXnNode > iDirtyList; /** Array of nodes which can be focused */ RPointerArray< CXnNode > iFocusCandidateList; /** current view */ CXnNode* iCurrentView; /** current view control adapter, not owned */ CXnControlAdapter* iCurrentViewControlAdapter; - /** Controls layouting */ - TInt iLayoutControl; /** Layout algo phase */ TInt iLayoutPhase; /** Unit in pixels (width). */ diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/uiengine/inc/xnviewadapter.h --- a/idlehomescreen/xmluirendering/uiengine/inc/xnviewadapter.h Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/xmluirendering/uiengine/inc/xnviewadapter.h Wed Sep 15 12:00:00 2010 +0300 @@ -192,6 +192,14 @@ */ void EnterEditStateL( CXnViewData& aView, TBool aEnter ); + /** + * Tell if this adapter is on foreground. Returns EFalse immediately after + * adapter is deactivated (Avkon IsForeground has some delay). + * @since S60 5.0 + * @return ETrue if container is on foreground, EFalse otherwise + */ + TBool IsForegroundAdapter() const; + private: // new functions diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/uiengine/inc/xnviewdata.h --- a/idlehomescreen/xmluirendering/uiengine/inc/xnviewdata.h Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/xmluirendering/uiengine/inc/xnviewdata.h Wed Sep 15 12:00:00 2010 +0300 @@ -26,8 +26,6 @@ class CXnViewManager; class CFbsBitmap; -// Constants - // Class declaration /** @@ -212,14 +210,28 @@ * Loads publishers to this view */ void LoadPublishers( TInt aReason ); - + /** * Destroys all publishers in this view * * @param aReason Destroy reason */ void DestroyPublishers( TInt aReason ); - + + /** + * Gets dirty region of a given node. + * + * @return Dirty region if found, otherwise NULL. + */ + TXnDirtyRegion* DirtyRegionL( CXnNode& aNode ); + + /** + * Gets an array of dirty regions. + * + * @param aList An array for dirty regions. + */ + void GetDirtyRegions( RPointerArray& aList ); + private: // data diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -354,6 +354,20 @@ TRAP_IGNORE( RemovableDiskRemovedL() ); } } + else if( aEvent.iType == MDiskNotifyHandlerCallback::EDiskAdded ) + { + if( aEvent.iInfo.iType == EMediaHardDisk ) + { + TRAP_IGNORE( RemovableDiskInsertedL() ); + } + } + else if( aEvent.iType == MDiskNotifyHandlerCallback::EDiskRemoved ) + { + if( aEvent.iInfo.iType == EMediaNotPresent ) + { + TRAP_IGNORE( RemovableDiskRemovedL() ); + } + } } // ----------------------------------------------------------------------------- @@ -1135,9 +1149,9 @@ RFs& fs( CEikonEnv::Static()->FsSession() ); if ( path != KNullDesC && BaflUtils::FileExists( fs, path ) ) { + iIntUpdate++; - TInt err( AknsWallpaperUtils::SetIdleWallpaper( path, NULL ) ); - + TInt err( AknsWallpaperUtils::SetIdleWallpaper( path, NULL ) ); if( err ) { iIntUpdate--; @@ -1160,8 +1174,16 @@ if( err ) { iIntUpdate--; - } - } + } + + // If the drive was formatted or temporarily detached or the image was removed + if( path.Length() ) + { + iViewManager.ActiveViewData().SetWallpaperImage( NULL ); + iSkinSrv.RemoveWallpaper( path ); + DrawNow(); + } + } } } diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -57,7 +57,6 @@ #include "xnviewdata.h" #include "xnwallpaperview.h" #include "xnbackgroundmanager.h" -#include "xnpopupcontroladapter.h" #include "xneditor.h" #include "xnpanic.h" @@ -629,18 +628,6 @@ } if( ui ) { - CXnNode* popup( iViewManager.UiEngine().StylusPopupNode() ); - if ( popup ) - { - CXnPopupControlAdapter* control = - static_cast< CXnPopupControlAdapter* >( - popup->Control() ); - - if ( control ) - { - control->HideMenuL(); - } - } ui->SetContentController( this ); ui->Activate(); diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/uiengine/src/xnplugindata.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnplugindata.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnplugindata.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -499,6 +499,9 @@ { // Don't touch to iOwner, because this plugin might be reused later + delete iDirtyRegion; + iDirtyRegion = NULL; + // clear all flags, except editable and removable TBool removable = iFlags.IsSet( EIsRemovable ); TBool editable = iFlags.IsSet( EIsEditable ); @@ -652,4 +655,21 @@ } } +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +TXnDirtyRegion* CXnPluginData::CreateDirtyRegionL( CXnNode& aRootNode, + CCoeControl& aControl ) + { + delete iDirtyRegion; + iDirtyRegion = NULL; + iDirtyRegion = new (ELeave) TXnDirtyRegion; + iDirtyRegion->iRegion.Clear(); + iDirtyRegion->iControl = &aControl; + iDirtyRegion->iRootNode = &aRootNode; + iDirtyRegion->iDirtyList.Reset(); + iDirtyRegion->iLayoutControl = 0; + return iDirtyRegion; + } + // End of file diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/uiengine/src/xnpopupcontroladapter.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnpopupcontroladapter.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnpopupcontroladapter.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -204,13 +204,19 @@ CXnViewManager* manager( iUiEngine->ViewManager() ); CXnPluginData* plugin( manager->ActiveViewData().Plugin( &aPlugin ) ); - + if ( !plugin ) { return; } CXnViewAdapter& adapter( iUiEngine->AppUiAdapter().ViewAdapter() ); + + // this is to avoid stylus popup on widget manager + if ( !adapter.IsForegroundAdapter() ) + { + return; + } const TPointerEvent& event( adapter.EventDispatcher()->PointerEvent() ); diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/uiengine/src/xnrootdata.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnrootdata.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnrootdata.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -426,6 +426,46 @@ } // ----------------------------------------------------------------------------- +// CXnRootData::ViewData() +// ----------------------------------------------------------------------------- +// +CXnViewData* CXnRootData::ViewData( CXnNode& aNode ) const + { + CXnNode* tmp( &aNode ); + CXnNode* viewNode( NULL ); + while( tmp ) + { + if ( tmp->ViewNodeImpl() ) + { + viewNode = tmp; + break; + } + else + { + tmp = tmp->Parent(); + } + } + if( !viewNode ) + { + return NULL; + } + + CXnViewData* viewData( NULL ); + for ( TInt i = 0; i < iPluginsData.Count(); i++ ) + { + CXnViewData* tmpViewdata( static_cast< CXnViewData* >( iPluginsData[i] ) ); + if( tmpViewdata->ViewNode() == viewNode ) + { + viewData = tmpViewdata; + break; + } + } + + return viewData; + } + + +// ----------------------------------------------------------------------------- // CXnRootData::DestroyViewData() // Sets view data to be destroyed // ----------------------------------------------------------------------------- diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/uiengine/src/xnuiengine.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnuiengine.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnuiengine.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -160,16 +160,6 @@ } // ----------------------------------------------------------------------------- -// CXnUiEngine::RenderFromNodeL -// Forwards the call to the ui engine implementation -// ----------------------------------------------------------------------------- -void CXnUiEngine::RenderFromNodeL( CXnNode& aNode ) - { - iUiEngineImpl->LayoutFromNodeL( aNode ); - iUiEngineImpl->RenderFromNodeL( aNode ); - } - -// ----------------------------------------------------------------------------- // CXnUiEngine::LayoutUIL // Forwards the call to the ui engine implementation // ----------------------------------------------------------------------------- @@ -180,16 +170,6 @@ } // ----------------------------------------------------------------------------- -// CXnUiEngine::LayoutFromNodeL -// Forwards the call to the ui engine implementation -// ----------------------------------------------------------------------------- -// -void CXnUiEngine::LayoutFromNodeL( CXnNode& aNode ) - { - iUiEngineImpl->LayoutFromNodeL( aNode ); - } - -// ----------------------------------------------------------------------------- // CXnUiEngine::Resources // Forwards the call to the ui engine implementation // ----------------------------------------------------------------------------- diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -7972,7 +7972,7 @@ // ----------------------------------------------------------------------------- // static void ReportScreenDeviceChangedL( const CXnPluginData& aPluginData ) - { + { CXnNode* node( NULL ); if ( aPluginData.Node() ) @@ -8211,13 +8211,6 @@ delete iEditMode; iFocusCandidateList.Reset(); - - if ( iRedrawRegions.Count() ) - { - iRedrawRegions.ResetAndDestroy(); - } - - iDirtyList.Reset(); } // ----------------------------------------------------------------------------- @@ -8233,98 +8226,124 @@ // CXnUiEngineImpl::LayoutUIL() // ----------------------------------------------------------------------------- // -void CXnUiEngineImpl::LayoutUIL( CXnNode* /*aNode*/ ) - { - if ( IsLayoutDisabled() ) +void CXnUiEngineImpl::LayoutUIL( CXnNode* aNode ) + { + if( aNode ) + { + TXnDirtyRegion* dirtyRegion = FindDirtyRegionL( *aNode ); + if( dirtyRegion ) + { + LayoutL( *dirtyRegion ); + } + } + else + { + CXnViewData* viewData = iViewManager.ActiveAppData().ViewData( *iCurrentView ); + if( viewData ) + { + RPointerArray arr; + CleanupClosePushL( arr ); + viewData->GetDirtyRegions( arr ); + for( TInt i = 0; i < arr.Count(); i++ ) + { + LayoutL( *arr[i] ); + } + CleanupStack::PopAndDestroy( &arr ); + } + } + } + +// ----------------------------------------------------------------------------- +// CXnUiEngineImpl::LayoutUIL() +// ----------------------------------------------------------------------------- +// +void CXnUiEngineImpl::LayoutL( TXnDirtyRegion& aRegion ) + { + if ( IsLayoutDisabled( aRegion ) ) { - iLayoutControl |= XnLayoutControl::ELayoutUI; + aRegion.iLayoutControl |= XnLayoutControl::ELayoutUI; return; } - iLayoutControl &= ~XnLayoutControl::ELayoutUI; - - if ( iDirtyList.Count() == 0 ) + aRegion.iLayoutControl &= ~XnLayoutControl::ELayoutUI; + + if ( aRegion.iDirtyList.Count() == 0 ) { // Nothing to do, layout is up-to-date return; } DisableRenderUiLC(); - CXnNode* candidate( StartLayoutFromL() ); - PrepareRunLayoutL(); - iDirtyList.Reset(); + + CXnNode* candidate( StartLayoutFromL( aRegion ) ); + if( !candidate ) + { + return; + } + + PrepareRunLayoutL( aRegion ); + aRegion.iDirtyList.Reset(); // Run layout until it is fully calculated do { - iLayoutPhase = RunLayoutL( candidate ); + iLayoutPhase = RunLayoutL( aRegion, *candidate ); } while ( iLayoutPhase != XnLayoutPhase::ENone ); - CXnNode* focused( FocusedNode() ); - - if ( focused && focused->IsDropped() ) - { - // The currently focused node is dropped, run losevisualization - CXnNode* loseVisualisation = - BuildTriggerNodeLC( *iUiEngine, - XnPropertyNames::action::trigger::name::KLoseVisualisation ); - - focused->ReportXuikonEventL( *loseVisualisation ); - CleanupStack::PopAndDestroy( loseVisualisation ); - - if ( FocusedNode() == focused ) - { - // Remove focus as losevisualization trigger didn't - // change focus from dropped node to another one - SetFocusedNodeL( NULL ); - } - } - - if ( !FocusedNode() && iAppUiAdapter.FocusShown() ) - { - // No focus, try if some of the focus candidates can be focused - RootNode()->RunFocusChangeL( iFocusCandidateList ); - } - - iFocusCandidateList.Reset(); - - iAppUiAdapter.EffectManager()->UiLayouted(); + // Run these only if the current view is being layouted + if( iCurrentView == aRegion.iRootNode ) + { + CXnNode* focused( FocusedNode() ); + + if ( focused && focused->IsDropped() ) + { + // The currently focused node is dropped, run losevisualization + CXnNode* loseVisualisation = + BuildTriggerNodeLC( *iUiEngine, + XnPropertyNames::action::trigger::name::KLoseVisualisation ); + + focused->ReportXuikonEventL( *loseVisualisation ); + CleanupStack::PopAndDestroy( loseVisualisation ); + + if ( FocusedNode() == focused ) + { + // Remove focus as losevisualization trigger didn't + // change focus from dropped node to another one + SetFocusedNodeL( NULL ); + } + } + + if ( !FocusedNode() && iAppUiAdapter.FocusShown() ) + { + // No focus, try if some of the focus candidates can be focused + RootNode()->RunFocusChangeL( iFocusCandidateList ); + } + + iFocusCandidateList.Reset(); + + iAppUiAdapter.EffectManager()->UiLayouted(); + } // Layout is now recalculated CleanupStack::PopAndDestroy(); // anonymous } -// ----------------------------------------------------------------------------- -// CXnUiEngineImpl::LayoutFromNodeL() -// ----------------------------------------------------------------------------- -// -void CXnUiEngineImpl::LayoutFromNodeL( CXnNode& aNode ) - { - PrepareRunLayoutL( aNode ); - - // Run layout until it is fully calculated - do - { - iLayoutPhase = RunLayoutFromNodeL( aNode ); - } - while ( iLayoutPhase != XnLayoutPhase::ENone ); - } // ----------------------------------------------------------------------------- // PrepareRunLayoutL() // Set dropped flags of all nodes in the tree to ENone. // ----------------------------------------------------------------------------- // -void CXnUiEngineImpl::PrepareRunLayoutL() +void CXnUiEngineImpl::PrepareRunLayoutL( TXnDirtyRegion& aDirtyRegion ) { if ( iLayoutPhase == XnLayoutPhase::ENone ) { iLayoutPhase = XnLayoutPhase::ELayout; - for ( TInt i = 0; i < iDirtyList.Count(); i++ ) - { - CXnNode* dirty( iDirtyList[i] ); + for ( TInt i = 0; i < aDirtyRegion.iDirtyList.Count(); i++ ) + { + CXnNode* dirty( aDirtyRegion.iDirtyList[i] ); // Clear dropped flags recursively SetNodeDroppedL( *dirty, XnNodeLayout::ENone ); @@ -8339,135 +8358,10 @@ } // ----------------------------------------------------------------------------- -// PrepareRunLayoutL() -// Set dropped flags of all nodes in the tree to ENone. -// ----------------------------------------------------------------------------- -// -void CXnUiEngineImpl::PrepareRunLayoutL( CXnNode& aNode ) - { - if ( iLayoutPhase == XnLayoutPhase::ENone ) - { - iLayoutPhase = XnLayoutPhase::ELayout; - - CXnNode* dirty( &aNode ); - dirty->ClearRenderedAndLaidOut(); - - // Clear dropped flags recursively - SetNodeDroppedL( *dirty, XnNodeLayout::ENone ); - - if ( SetAdaptivesL( *dirty ) ) - { - // Adaptive node causes measure phase - iLayoutPhase = XnLayoutPhase::EMeasure; - } - } - } - -// ----------------------------------------------------------------------------- // CXnUiEngineImpl::RunLayoutL() // ----------------------------------------------------------------------------- // -TInt CXnUiEngineImpl::RunLayoutL( CXnNode* aNode ) - { - TRect clientRect( ClientRect() ); - // Move it to 0, 0 - clientRect.Move( -clientRect.iTl.iX, -clientRect.iTl.iY ); - - RPointerArray< CXnNode > laidOutList; - CleanupClosePushL( laidOutList ); - - if ( IsNodeDisplayedL( *aNode ) ) - { - if ( aNode->ViewNodeImpl() && !aNode ->IsLaidOut() ) - { - aNode->SetMarginRect( clientRect ); - aNode->SetBorderRect( clientRect ); - aNode->SetNormalFlowBorderRect( clientRect ); - aNode->SetPaddingRect( clientRect ); - aNode->SetRect( clientRect ); - } - - // Put areas to place - PlaceAreasL( *aNode, laidOutList, iLayoutPhase, - *iCurrentGraphicsDevice, iHorizontalUnitInPixels, - iVerticalUnitInPixels ); - } - - TInt nextPhase; - - switch ( iLayoutPhase ) - { - case XnLayoutPhase::EMeasure: - nextPhase = XnLayoutPhase::ELayout; - break; - case XnLayoutPhase::ELayout: - // Layout is now calculated - iCurrentView->SetLaidOutL(); - iLayoutControl &= ~XnLayoutControl::EViewDirty; - // Check nodes which dimensions are changed - for ( TInt i = 0; i < laidOutList.Count(); i++ ) - { - CXnNode* node( laidOutList[i] ); - if( IsSrollableBox( *node ) && node->ScrollableControl() ) - { - node->ScrollableControl()->LayoutChangedL(); - } - if ( /*IsNodeTooltip( *node ) ||*/ !node->IsLaidOut() ) - { - continue; - } - CXnControlAdapter* adapter( node->Control() ); - if ( adapter ) - { - TRect rect; - - if ( node->ViewNodeImpl() ) - { - rect = ClientRect(); - - // Move it to 0, 0 - //rect.Move( -rect.iTl.iX, -rect.iTl.iY ); - } - else - { - rect = node->BorderRect(); - } - - if ( adapter->Rect() != rect ) - { - AddToRedrawListL( node, rect ); - - adapter->SetRect( rect ); - - CXnProperty* prop = node->GetPropertyL( - XnPropertyNames::common::KSizeAware ); - if ( prop && prop->StringValue() == - XnPropertyNames::KTrue ) - { - CXnNode* sizeChanged = - BuildTriggerNodeLC( *iUiEngine, - XnPropertyNames::action::trigger::name:: - KSizeChanged ); - node->ReportXuikonEventL( *sizeChanged ); - CleanupStack::PopAndDestroy( sizeChanged ); - } - } - } - } - /* flow through */ - default: - nextPhase = XnLayoutPhase::ENone; - break; - } - CleanupStack::PopAndDestroy( &laidOutList ); - return nextPhase; - } - -// ----------------------------------------------------------------------------- -// CXnUiEngineImpl::RunLayoutL() -// ----------------------------------------------------------------------------- -// -TInt CXnUiEngineImpl::RunLayoutFromNodeL( CXnNode& aNode ) +TInt CXnUiEngineImpl::RunLayoutL( TXnDirtyRegion& aDirtyRegion, CXnNode& aNode ) { TRect clientRect( ClientRect() ); // Move it to 0, 0 @@ -8502,8 +8396,8 @@ break; case XnLayoutPhase::ELayout: // Layout is now calculated - aNode.SetLaidOutL(); - + aDirtyRegion.iRootNode->SetLaidOutL(); + aDirtyRegion.iLayoutControl &= ~XnLayoutControl::EViewDirty; // Check nodes which dimensions are changed for ( TInt i = 0; i < laidOutList.Count(); i++ ) { @@ -8512,7 +8406,7 @@ { node->ScrollableControl()->LayoutChangedL(); } - if ( !node->IsLaidOut() ) + if ( /*IsNodeTooltip( *node ) ||*/ !node->IsLaidOut() ) { continue; } @@ -8524,14 +8418,33 @@ if ( node->ViewNodeImpl() ) { rect = ClientRect(); + + // Move it to 0, 0 + //rect.Move( -rect.iTl.iX, -rect.iTl.iY ); } else { rect = node->BorderRect(); } + if ( adapter->Rect() != rect ) { - adapter->SetRect( rect ); + AddToRedrawListL( aDirtyRegion, *node, rect ); + + adapter->SetRect( rect ); + + CXnProperty* prop = node->GetPropertyL( + XnPropertyNames::common::KSizeAware ); + if ( prop && prop->StringValue() == + XnPropertyNames::KTrue ) + { + CXnNode* sizeChanged = + BuildTriggerNodeLC( *iUiEngine, + XnPropertyNames::action::trigger::name:: + KSizeChanged ); + node->ReportXuikonEventL( *sizeChanged ); + CleanupStack::PopAndDestroy( sizeChanged ); + } } } } @@ -8548,49 +8461,91 @@ // CXnUiEngineImpl::RenderUIL() // ----------------------------------------------------------------------------- // -void CXnUiEngineImpl::RenderUIL( CXnNode* /*aNode*/ ) - { - if ( IsLayoutDisabled() ) +void CXnUiEngineImpl::RenderUIL( CXnNode* aNode ) + { + if( aNode ) + { + TXnDirtyRegion* dirtyRegion = FindDirtyRegionL( *aNode ); + if( dirtyRegion ) + { + RenderL( *dirtyRegion ); + } + } + else + { + CXnViewData* viewData = iViewManager.ActiveAppData().ViewData( *iCurrentView ); + if( viewData ) + { + RPointerArray arr; + CleanupClosePushL( arr ); + + viewData->GetDirtyRegions( arr ); + for( TInt i = 0; i < arr.Count(); i++ ) + { + RenderL( *arr[i] ); + } + CleanupStack::PopAndDestroy( &arr ); + } + } + } + +// ----------------------------------------------------------------------------- +// CXnUiEngineImpl::RenderUIL() +// ----------------------------------------------------------------------------- +// +void CXnUiEngineImpl::RenderL( TXnDirtyRegion& aRegion ) + { + if ( IsLayoutDisabled( aRegion ) ) { // Layout is not up-to-date - iLayoutControl |= XnLayoutControl::ERenderUI; + aRegion.iLayoutControl |= XnLayoutControl::ERenderUI; return; } - + + TBool belongsToCurrentView( EFalse ); + if( iCurrentView == aRegion.iRootNode ) + { + belongsToCurrentView = ETrue; + } + #ifdef _XN3_DEBUG_ - TraceTreeL(iCurrentView ); + TraceTreeL( aRegion.RootNode ); #endif __PRINTS("*** CXnUiEngineImpl::RenderUIL ***"); - for( TInt i=0; iiControl; - RRegion& redrawRegion = iRedrawRegions[i]->iRegion; + + CCoeControl* control = aRegion.iControl; + RRegion& redrawRegion = aRegion.iRegion; + + if( redrawRegion.CheckError() ) + { + // Mark tree rendered + aRegion.iRootNode->SetRenderedL(); + // Error occured during dirty set, redraw whole window + control->DrawNow(); - if( redrawRegion.CheckError() ) - { + __PRINTS("* CXnUiEngineImpl::RenderUIL - redraw region error -> full redraw ***"); + } + else + { + if( !redrawRegion.IsEmpty() ) + { // Mark tree rendered - iCurrentView->SetRenderedL(); - // Error occured during dirty set, redraw whole window - control->DrawNow(); + aRegion.iRootNode->SetRenderedL(); + + TBool effectOngoing( EFalse ); + if ( iAppUiAdapter.EffectManager()->ControlEffectActive( control ) && + belongsToCurrentView ) + { + // control effect is ongoing, no need to draw control yet, + // if current view in question + redrawRegion.Clear(); + effectOngoing = ETrue; + } - __PRINTS("* CXnUiEngineImpl::RenderUIL - redraw region error -> full redraw ***"); - } - else - { - if( !redrawRegion.IsEmpty() ) - { - // Mark tree rendered - iCurrentView->SetRenderedL(); - - if ( iAppUiAdapter.EffectManager()->ControlEffectActive( control ) ) - { - // control effect is ongoing, no need to draw control yet - redrawRegion.Clear(); - continue; - } - + if( !effectOngoing ) + { TInt count( redrawRegion.Count() ); if( count > 2 ) @@ -8609,7 +8564,7 @@ { // Draw every dirty area separately TRect redrawRect( redrawRegion[i] ); - + __PRINT( __DBG_FORMAT( "* CXnUiEngineImpl::RenderUIL - redrawing rect iTl.iX: %d, iTl.iY: %d, iBr.iX: %d, iBr.iY: %d" ), redrawRect.iTl.iX, redrawRect.iTl.iY, redrawRect.iBr.iX, redrawRect.iBr.iY ); @@ -8617,38 +8572,28 @@ } } } - else - { - __PRINTS("* CXnUiEngineImpl::RenderUIL - nothing to redraw ***"); - } - } - - redrawRegion.Clear(); - } - - RefreshMenuL(); - - iLayoutControl &= ~XnLayoutControl::ERenderUI; + } + else + { + __PRINTS("* CXnUiEngineImpl::RenderUIL - nothing to redraw ***"); + } + } - iAppUiAdapter.EffectManager()->UiRendered(); + redrawRegion.Clear(); + + RefreshMenuL( &aRegion ); + + aRegion.iLayoutControl &= ~XnLayoutControl::ERenderUI; + + if( belongsToCurrentView ) + { + iAppUiAdapter.EffectManager()->UiRendered(); + } __PRINTS("*** CXnUiEngineImpl::RenderUIL - done ***"); } // ----------------------------------------------------------------------------- -// CXnUiEngineImpl::RenderFromNodeL() -// ----------------------------------------------------------------------------- -// -void CXnUiEngineImpl::RenderFromNodeL( CXnNode& aNode ) - { -#ifdef _XN3_DEBUG_ - TraceTreeL( &aNode ); -#endif - CCoeControl* control = WindowOwningControl( aNode ); - control->DrawNow(); - } - -// ----------------------------------------------------------------------------- // CXnUiEngineImpl::RootNode() // ----------------------------------------------------------------------------- // @@ -8913,10 +8858,6 @@ iControlAdapterList = &iViewManager.Controls(); iCurrentViewControlAdapter = iCurrentView->Control(); - - iDirtyList.Reset(); - - iRedrawRegions.ResetAndDestroy(); // Remove previous menubar and stylus popup node iMenuNode = NULL; @@ -8962,7 +8903,12 @@ ForceRenderUIL(); - iLayoutControl &= ~XnLayoutControl::ERefreshMenu; + TXnDirtyRegion* dirtyRegion = FindDirtyRegionL( *iCurrentView ); + if( dirtyRegion ) + { + dirtyRegion->iDirtyList.Reset(); + dirtyRegion->iLayoutControl &= ~XnLayoutControl::ERefreshMenu; + } } // ----------------------------------------------------------------------------- @@ -9179,16 +9125,33 @@ // void CXnUiEngineImpl::RefreshMenuL() { - if ( IsLayoutDisabled() ) - { - return; + RefreshMenuL( NULL ); + } + +// ----------------------------------------------------------------------------- +// CXnUiEngineImpl::RefreshMenuL +// Refresh current menu +// ----------------------------------------------------------------------------- +// +void CXnUiEngineImpl::RefreshMenuL( TXnDirtyRegion* aDirtyRegion ) + { + TXnDirtyRegion* dirtyRegion = aDirtyRegion; + if( !dirtyRegion ) + { + dirtyRegion = FindDirtyRegionL( *iCurrentView ); } - if ( iLayoutControl & XnLayoutControl::ERefreshMenu ) + if ( IsLayoutDisabled( *dirtyRegion ) ) + { + return; + } + + if ( dirtyRegion && + dirtyRegion->iLayoutControl & XnLayoutControl::ERefreshMenu ) { if ( iKeyEventDispatcher ) { - iLayoutControl &= ~XnLayoutControl::ERefreshMenu; + dirtyRegion->iLayoutControl &= ~XnLayoutControl::ERefreshMenu; iKeyEventDispatcher->RefreshMenuL(); } } @@ -9201,45 +9164,79 @@ // void CXnUiEngineImpl::AddDirtyNodeL( CXnNode* aNode, TInt aLevel ) { - CXnViewData& data( iViewManager.ActiveViewData() ); - - if ( !aNode || ( aNode != RootNode() && !data.Plugin( aNode->Namespace() ) ) ) - { - // No node, or node doesn't belong to active view namespace - return; - } - - if ( aNode->Type()->Type() == KMenuBar ) - { - iLayoutControl |= XnLayoutControl::ERefreshMenu; + if ( !aNode ) + { return; - } - - if ( iLayoutControl & XnLayoutControl::EViewDirty ) - { - // nothing to do - return; - } - - if ( aLevel == XnDirtyLevel::ERender ) - { - if( aNode == RootNode() ) - { - TXnDirtyRegion* dirtyRegion = FindDirtyRegionL( *iCurrentView ); - if( dirtyRegion ) - { - dirtyRegion->iRegion.Clear(); - } - aNode = iCurrentView; - } - - // Add to redraw list - AddToRedrawListL( aNode ); + } + + if ( aNode == RootNode() ) + { + // Force relayout and redraw from current view + iViewManager.ActiveAppData().PluginData(); + if ( !iCurrentView ) + { + iCurrentView = iViewManager.ViewNode(); + } + + TXnDirtyRegion* dirtyRegion = FindDirtyRegionL( *iCurrentView ); + if( dirtyRegion ) + { + dirtyRegion->iRegion.Clear(); + } + else + { + return; + } + + dirtyRegion->iDirtyList.Reset(); + dirtyRegion->iDirtyList.AppendL( iCurrentView ); + + dirtyRegion->iLayoutControl |= XnLayoutControl::EViewDirty; + iCurrentView->ClearRenderedAndLaidOut(); + + // Add to draw list for redraw + AddToRedrawListL( *dirtyRegion, *iCurrentView ); } else { - // Add to dirty list for relayout and redraw - AddToDirtyListL( aNode ); + TXnDirtyRegion* dirtyRegion( FindDirtyRegionL( *aNode ) ); + if( !dirtyRegion ) + { + return; + } + + if ( aNode->Type()->Type() == KMenuBar ) + { + dirtyRegion->iLayoutControl |= XnLayoutControl::ERefreshMenu; + return; + } + + if ( dirtyRegion->iLayoutControl & XnLayoutControl::EViewDirty ) + { + // nothing to do + return; + } + + if ( aLevel == XnDirtyLevel::ERender ) + { + if( aNode == RootNode() ) + { + TXnDirtyRegion* dirtyRegion = FindDirtyRegionL( *iCurrentView ); + if( dirtyRegion ) + { + dirtyRegion->iRegion.Clear(); + } + aNode = iCurrentView; + } + + // Add to redraw list + AddToRedrawListL( *dirtyRegion, *aNode ); + } + else + { + // Add to dirty list for relayout and redraw + AddToDirtyListL( *dirtyRegion, *aNode ); + } } } @@ -9597,16 +9594,16 @@ // CXnUiEngineImpl::IsLayoutDisabled // ----------------------------------------------------------------------------- // -TBool CXnUiEngineImpl::IsLayoutDisabled() +TBool CXnUiEngineImpl::IsLayoutDisabled( TXnDirtyRegion& aDirtyRegion ) { if ( !iCurrentView ) { return ETrue; } - + TBool retval( EFalse ); - if ( !( iLayoutControl & XnLayoutControl::EIgnoreState ) ) + if ( !( aDirtyRegion.iLayoutControl & XnLayoutControl::EIgnoreState ) ) { if ( iDisableCount > 0 ) { @@ -9622,9 +9619,10 @@ // Mark Control's appearance to be redrawn // ----------------------------------------------------------------------------- // -void CXnUiEngineImpl::AddToRedrawListL( CXnNode* aNode, TRect aRect ) +void CXnUiEngineImpl::AddToRedrawListL( TXnDirtyRegion& aRegion, + CXnNode& aNode, TRect aRect ) { - CXnControlAdapter* aAdapter( aNode->Control() ); + CXnControlAdapter* aAdapter( aNode.Control() ); if( !aAdapter ) { @@ -9634,7 +9632,8 @@ if( aRect != TRect::EUninitialized ) { // This is the new rect which will be set by layout algo - AddRedrawRectL( aRect, *aNode ); + aRegion.iRegion.AddRect( aRect ); + aRegion.iRegion.Tidy(); } TRect rect( aAdapter->Rect() ); @@ -9644,39 +9643,11 @@ // Don't add uninitialized rect return; } - - /* - if( aNode->IsStateSet( XnPropertyNames::style::common::KFocus ) ) - { - const TDesC8& name( aNode->DomNode()->Name() ); - - if( name == KPlugin ) - { - rect.Grow( KFocusGrowValue, KFocusGrowValue ); - } - else - { - TRect marginRect( aNode->MarginRect() ); - - CXnNode* parent( aNode->Parent() ); - - for( ; parent; parent = parent->Parent() ) - { - if( parent->DomNode()->Name() == KPlugin ) - { - if( parent->Rect() == marginRect ) - { - rect.Grow( KFocusGrowValue, KFocusGrowValue ); - } - - break; - } - } - } - } - */ - GrowIfNeeded(aNode, rect); - AddRedrawRectL( rect, *aNode ); + + GrowIfNeeded( &aNode, rect ); + + aRegion.iRegion.AddRect( rect ); + aRegion.iRegion.Tidy(); } // ----------------------------------------------------------------------------- @@ -9684,122 +9655,94 @@ // Mark node to dirty list for relayout // ----------------------------------------------------------------------------- // -void CXnUiEngineImpl::AddToDirtyListL( CXnNode* aNode ) - { - - if ( aNode ) - { - CXnNode* nodeToRedrawList( aNode ); - CXnNode* nodeToDirtyList( aNode ); - - if ( aNode == RootNode() ) - { - // Force relayout and redraw from current view - iDirtyList.Reset(); - if ( !iCurrentView ) - { - iCurrentView = iViewManager.ViewNode(); - } - iDirtyList.AppendL( iCurrentView ); - TXnDirtyRegion* dirtyRegion = FindDirtyRegionL( *iCurrentView ); - if( dirtyRegion ) - { - dirtyRegion->iRegion.Clear(); - } - iLayoutControl |= XnLayoutControl::EViewDirty; - nodeToDirtyList = nodeToRedrawList = iCurrentView; - nodeToDirtyList->ClearRenderedAndLaidOut(); - - // Add to draw list for redraw - AddToRedrawListL( nodeToRedrawList ); - } - else - { - if ( !IsAbsoluteL( *aNode ) && !IsNodeTooltip( *aNode ) ) - { - // Check adaptives in normal flow - CXnNode* oldest( NULL ); - CXnNode* adaptive( aNode ); - - if ( !aNode->IsAdaptive( ETrue ) ) - { - adaptive = aNode->Parent(); - } - - for ( ; adaptive && adaptive->IsAdaptive( ETrue ); - adaptive = adaptive->Parent() ) - { - oldest = adaptive; - } - - // Now we have found the oldest adaptive node if present - if ( oldest ) - { - nodeToRedrawList = nodeToDirtyList = adaptive; - } - } - - RPointerArray< CXnNode > dirtyList; - CleanupClosePushL( dirtyList ); - TInt count( iDirtyList.Count() ); - TBool found; - - // first, check that aNode's children are not in the dirty array - for ( TInt i = 0; i < count; ++i ) - { - found = EFalse; - CXnNode* candidate( iDirtyList[i] ); - - for ( CXnNode* node = candidate->Parent(); node && !found; - node = node->Parent() ) - { - if ( nodeToDirtyList == node ) - { - found = ETrue; - } - } - - if ( !found ) - { - // Put candidate back to list as child is not found - dirtyList.AppendL( candidate ); - } - } - - found = EFalse; - - // second, check that aNode's parent is not in dirty array - for ( TInt i = 0; i < count && !found; ++i ) - { - CXnNode* candidate( iDirtyList[i] ); - - for ( CXnNode* node = nodeToDirtyList; node && !found; - node = node->Parent() ) - { - if ( node == candidate ) - { - found = ETrue; - } - } - } - - if ( !found && iDirtyList.Find( nodeToDirtyList ) == KErrNotFound ) - { - // Add node to dirty list as parent is neither found - dirtyList.AppendL( nodeToDirtyList ); - nodeToDirtyList->ClearRenderedAndLaidOut(); - - // Add to draw list for redraw - AddToRedrawListL( nodeToRedrawList ); - } - - // finally update the dirty list - iDirtyList.Reset(); - iDirtyList = dirtyList; - - CleanupStack::Pop( &dirtyList ); - } - } +void CXnUiEngineImpl::AddToDirtyListL( TXnDirtyRegion& aRegion, CXnNode& aNode ) + { + CXnNode* nodeToRedrawList( &aNode ); + CXnNode* nodeToDirtyList( &aNode ); + + if ( !IsAbsoluteL( aNode ) && !IsNodeTooltip( aNode ) ) + { + // Check adaptives in normal flow + CXnNode* oldest( NULL ); + CXnNode* adaptive( &aNode ); + + if ( !aNode.IsAdaptive( ETrue ) ) + { + adaptive = aNode.Parent(); + } + + for ( ; adaptive && adaptive->IsAdaptive( ETrue ); + adaptive = adaptive->Parent() ) + { + oldest = adaptive; + } + + // Now we have found the oldest adaptive node if present + if ( oldest ) + { + nodeToRedrawList = nodeToDirtyList = adaptive; + } + } + + RPointerArray< CXnNode > dirtyList; + CleanupClosePushL( dirtyList ); + TInt count( aRegion.iDirtyList.Count() ); + TBool found; + + // first, check that aNode's children are not in the dirty array + for ( TInt i = 0; i < count; ++i ) + { + found = EFalse; + CXnNode* candidate( aRegion.iDirtyList[i] ); + + for ( CXnNode* node = candidate->Parent(); node && !found; + node = node->Parent() ) + { + if ( nodeToDirtyList == node ) + { + found = ETrue; + } + } + + if ( !found ) + { + // Put candidate back to list as child is not found + dirtyList.AppendL( candidate ); + } + } + + found = EFalse; + + // second, check that aNode's parent is not in dirty array + for ( TInt i = 0; i < count && !found; ++i ) + { + CXnNode* candidate( aRegion.iDirtyList[i] ); + + for ( CXnNode* node = nodeToDirtyList; node && !found; + node = node->Parent() ) + { + if ( node == candidate ) + { + found = ETrue; + } + } + } + + if ( !found && aRegion.iDirtyList.Find( nodeToDirtyList ) == KErrNotFound ) + { + // Add node to dirty list as parent is neither found + dirtyList.AppendL( nodeToDirtyList ); + nodeToDirtyList->ClearRenderedAndLaidOut(); + + // Add to draw list for redraw + AddToRedrawListL( aRegion, *nodeToRedrawList ); + } + + // finally update the dirty list + aRegion.iDirtyList.Reset(); + aRegion.iDirtyList = dirtyList; + + CleanupStack::Pop( &dirtyList ); } // ----------------------------------------------------------------------------- @@ -9862,23 +9805,29 @@ // CXnUiEngineImpl::StartLayoutFromL // ----------------------------------------------------------------------------- // -CXnNode* CXnUiEngineImpl::StartLayoutFromL() - { - if ( iLayoutControl & XnLayoutControl::EViewDirty ) - { - return iCurrentView; +CXnNode* CXnUiEngineImpl::StartLayoutFromL( TXnDirtyRegion& aDirtyRegion ) + { + CXnNode* viewNode( aDirtyRegion.iRootNode ); + if( !viewNode ) + { + return NULL; + } + + if ( aDirtyRegion.iLayoutControl & XnLayoutControl::EViewDirty ) + { + return viewNode; } RPointerArray< CXnNode >parentArray; CleanupClosePushL( parentArray ); - TInt dirtyCount = iDirtyList.Count(); + TInt dirtyCount = aDirtyRegion.iDirtyList.Count(); CXnNode* startNode( NULL ); for ( TInt dirtyIndex = 0; dirtyIndex < dirtyCount; dirtyIndex++ ) { - startNode = iDirtyList[dirtyIndex]; - - for ( ;startNode && startNode != iCurrentView; ) + startNode = aDirtyRegion.iDirtyList[dirtyIndex]; + + for ( ;startNode && startNode != viewNode; ) { parentArray.Append( startNode->Parent() ); startNode = startNode->Parent(); @@ -9909,7 +9858,7 @@ CleanupStack::PopAndDestroy( &parentArray ); - return iCurrentView; + return viewNode; } // ----------------------------------------------------------------------------- @@ -9927,7 +9876,14 @@ // void CXnUiEngineImpl::ForceRenderUIL( TBool aLayoutOnly ) { - iLayoutControl |= XnLayoutControl::EIgnoreState; + TXnDirtyRegion* dirtyRegion = FindDirtyRegionL( *iCurrentView ); + if( !dirtyRegion ) + { + return; + } + + dirtyRegion->iLayoutControl |= XnLayoutControl::EIgnoreState; + if ( aLayoutOnly ) { LayoutUIL(); @@ -9937,7 +9893,8 @@ LayoutUIL(); RenderUIL(); } - iLayoutControl &= ~XnLayoutControl::EIgnoreState; + + dirtyRegion->iLayoutControl &= ~XnLayoutControl::EIgnoreState; } // ----------------------------------------------------------------------------- @@ -10085,31 +10042,52 @@ if ( self->iDisableCount == 0 ) { - TRAP_IGNORE( + TRAP_IGNORE( self->EnableRenderUiL() ); + } + } + } + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +void CXnUiEngineImpl::EnableRenderUiL() + { + CXnViewData* viewData = iViewManager.ActiveAppData().ViewData( *iCurrentView ); + if( viewData ) + { + RPointerArray arr; + CleanupClosePushL( arr ); + + viewData->GetDirtyRegions( arr ); + + for( TInt i = 0; i < arr.Count(); i++ ) + { + TXnDirtyRegion* dirtyRegion = arr[i]; + // Is menu refresh pending? - if ( ( self->iLayoutControl & XnLayoutControl::ERefreshMenu ) && - !self->IsMenuDisplaying() ) + if ( ( dirtyRegion->iLayoutControl & XnLayoutControl::ERefreshMenu ) && + IsMenuDisplaying() ) { // RefreshMenuL will reset the state flag - self->RefreshMenuL(); - } - + RefreshMenuL( dirtyRegion ); + } + // Is layout pending? - if ( self->iLayoutControl & XnLayoutControl::ELayoutUI ) - { - self->LayoutUIL(); - } - + if ( dirtyRegion->iLayoutControl & XnLayoutControl::ELayoutUI ) + { + LayoutL( *dirtyRegion ); + } + // Is render pending? - if ( self->iLayoutControl & XnLayoutControl::ERenderUI ) - { - self->RenderUIL(); - } - ); - } - } - } - + if ( dirtyRegion->iLayoutControl & XnLayoutControl::ERenderUI ) + { + RenderL( *dirtyRegion ); + } + } + CleanupStack::PopAndDestroy( &arr); + } + } + // ----------------------------------------------------------------------------- // ----------------------------------------------------------------------------- // @@ -10122,6 +10100,15 @@ for( TInt i = 0; i < plugins.Count(); i++ ) { ReportScreenDeviceChangedL( *plugins[i] ); + CXnDomNode* domNode( plugins[i]->Node() ); + if( domNode ) + { + CXnNode* node( domNode->LayoutNode() ); + if( node ) + { + node->SetDirtyL(); + } + } } } @@ -10235,7 +10222,7 @@ // ----------------------------------------------------------------------------- // ----------------------------------------------------------------------------- -CCoeControl* CXnUiEngineImpl::WindowOwningControl( CXnNode& aNode ) +CXnNode* CXnUiEngineImpl::WindowOwningNode( CXnNode& aNode ) { CXnNode* parent = &aNode; while( parent ) @@ -10246,13 +10233,13 @@ if( parent->ViewNodeImpl() && adapter == iCurrentViewControlAdapter ) { - return adapter; + return parent; } else if( adapter->OwnsWindow() ) { if( !IsNodeTooltip( *parent ) ) { - return adapter; + return parent; } else { @@ -10269,39 +10256,29 @@ // ----------------------------------------------------------------------------- TXnDirtyRegion* CXnUiEngineImpl::FindDirtyRegionL( CXnNode& aNode ) { - CCoeControl* control = WindowOwningControl( aNode ); + CXnNode* node( WindowOwningNode( aNode ) ); + if( !node ) + { + return NULL; + } + + CCoeControl* control( node->Control() ); if( !control ) { return NULL; } - for( TInt i=0; iiControl == control ) - { - return iRedrawRegions[i]; - } - } - TXnDirtyRegion* region = new (ELeave) TXnDirtyRegion; - CleanupStack::PushL( region ); - region->iControl = control; - iRedrawRegions.AppendL( region ); - CleanupStack::Pop(); + + TXnDirtyRegion* region( NULL ); + CXnViewData* viewData = iViewManager.ActiveAppData().ViewData( *node ); + if( viewData ) + { + region = viewData->DirtyRegionL( *node ); + } + return region; } // ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -void CXnUiEngineImpl::AddRedrawRectL( TRect aRect, CXnNode& aNode ) - { - TXnDirtyRegion* dirtyReg = FindDirtyRegionL( aNode ); - if( dirtyReg ) - { - dirtyReg->iRegion.AddRect( aRect ); - dirtyReg->iRegion.Tidy(); - } - } - -// ----------------------------------------------------------------------------- // SetEventDispatcher // ----------------------------------------------------------------------------- void CXnUiEngineImpl::SetEventDispatcher( CXnKeyEventDispatcher* aDispatcher ) diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/uiengine/src/xnutils.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnutils.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnutils.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -1667,7 +1667,7 @@ // Resolves skin id (major+minor) from SKIN() declaration. // ----------------------------------------------------------------------------- // -TBool CXnUtils::ResolveSkinItemIDL( const TDesC& aSkinId, TAknsItemID& aItemID ) +EXPORT_C TBool CXnUtils::ResolveSkinItemIDL( const TDesC& aSkinId, TAknsItemID& aItemID ) { HBufC* str = aSkinId.AllocL(); TPtr ptrSkin = str->Des(); diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -48,6 +48,8 @@ #include "xneditmode.h" #include "xnrootdata.h" +#include "xnpopupcontroladapter.h" + #include "debug.h" // Constants @@ -584,7 +586,7 @@ started = mgr->BeginActivateViewEffect( active, aContainer, aEffect ); } - DeactivateContainerL( EFalse ); + DeactivateContainerL(); // Update iContainer = &aContainer; @@ -751,18 +753,7 @@ ChangeControlsStateL( EFalse ); CXnNode* node( iContainer->Node()->LayoutNode() ); - - CXnDomStringPool* sp( node->DomNode()->StringPool() ); - - CXnProperty* prop = CXnProperty::NewL( - XnPropertyNames::style::common::KDisplay, - XnPropertyNames::style::common::display::KNone, - CXnDomPropertyValue::EString, *sp ); - CleanupStack::PushL( prop ); - - node->SetPropertyWithoutNotificationL( prop ); - CleanupStack::Pop( prop ); - + if ( !iDeactivate ) { iDeactivate = BuildDeactivateTriggerL( iAppUiAdapter.UiEngine() ); @@ -1018,7 +1009,7 @@ CleanupClosePushL( popups ); iContainer->PopupNodesL( popups ); - + for ( TInt i = 0; i < popups.Count(); i++ ) { CXnProperty* display = CXnProperty::NewL( @@ -1035,7 +1026,24 @@ CleanupStack::PopAndDestroy( &popups ); iEventDispatcher->SetTextEditorActive( NULL, EFalse ); + + CXnNode* popup( iAppUiAdapter.UiEngine().StylusPopupNode() ); + if ( popup ) + { + CXnPopupControlAdapter* control = + static_cast< CXnPopupControlAdapter* >( + popup->Control() ); + + if ( control ) + { + control->HideMenuL(); + } + } } +TBool CXnViewAdapter::IsForegroundAdapter() const + { + return ( iContainer != NULL ); + } // End of file diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/uiengine/src/xnviewcontroladapter.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnviewcontroladapter.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewcontroladapter.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -194,6 +194,11 @@ iAppUi.ViewSwitcher() == NULL || // no swipe if VS not available !iAppUi.ViewSwitcher()->ProcessPointerEventL( aPointerEvent ) ) ) // no swipe if event not handled by VS { + if ( IsWidgetGestureDest() && iAppUi.ViewSwitcher() != NULL ) + { + iAppUi.ViewSwitcher()->StopViewSwitchL(); + } + iAppUi.UiEngine().DisableRenderUiLC(); CXnControlAdapter::HandlePointerEventL( aPointerEvent ); diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/uiengine/src/xnviewdata.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnviewdata.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewdata.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -624,4 +624,60 @@ __PRINTS( "*** CXnViewData::DestroyPublishers - done" ); } +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +TXnDirtyRegion* CXnViewData::DirtyRegionL( CXnNode& aNode ) + { + // First make sure that the given node is "window owning" + CCoeControl* control( aNode.Control() ); + if( !control || !control->OwnsWindow() ) + { + return NULL; + } + + if( iDirtyRegion && iDirtyRegion->iControl == control ) + { + return iDirtyRegion; + } + + // in case of widget extension / popup, a widget may own window + for( TInt i = 0; i < iPluginsData.Count(); i++ ) + { + TXnDirtyRegion* region( iPluginsData[i]->DirtyRegion() ); + if( region && region->iControl == control ) + { + return region; + } + } + + // Region not found, create a new one + CXnPluginData* pluginData( Plugin( &aNode ) ); + if( pluginData ) + { + return pluginData->CreateDirtyRegionL( aNode, *control ); + } + + return NULL; + } + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +void CXnViewData::GetDirtyRegions( RPointerArray& aList ) + { + if( iDirtyRegion ) + { + aList.Append( iDirtyRegion ); + } + for( TInt i = 0; i < iPluginsData.Count(); i++ ) + { + TXnDirtyRegion* region( iPluginsData[i]->DirtyRegion() ); + if( region ) + { + aList.Append( region ); + } + } + } + // End of file diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/uiengine/src/xnviewswitcher.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnviewswitcher.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewswitcher.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -544,7 +544,7 @@ iAppUi.ViewAdapter().EnterEditStateL( *aView.iViewData, EFalse ); - viewNode->UiEngine()->RenderFromNodeL( *viewNode ); + viewNode->UiEngine()->RenderUIL( viewNode ); aView.iReadyToDraw = ETrue; } @@ -982,5 +982,13 @@ GfxTransEffect::SetDemarcation( &bg, bg.Position() ); GfxTransEffect::End( &bg ); } - + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +void CXnViewSwitcher::StopViewSwitchL() + { + ViewSwitchEndedL(); + } + // End of file diff -r 3321d3e205b6 -r b01126ce0bec menufw/hierarchynavigator/hnengine/inc/hnengine.h --- a/menufw/hierarchynavigator/hnengine/inc/hnengine.h Tue Sep 14 20:58:58 2010 +0300 +++ b/menufw/hierarchynavigator/hnengine/inc/hnengine.h Wed Sep 15 12:00:00 2010 +0300 @@ -11,7 +11,7 @@ * * Contributors: * -* Description: +* Description: * */ @@ -36,10 +36,10 @@ /** * @ingroup group_hnengine * Hierarchy Navigator engine - used by Multimedia Menu - * to fetch data models. The most commonly used exported method is TriggerHnEventL, + * to fetch data models. The most commonly used exported method is TriggerHnEventL, * which offers event execution for the framework. This functionality is implemented - * through the MHnEventGenerator interface. The class owns the meta data model ( CHnMdModel ) - * and suite container ( CHnSuiteModelContainer ) to manage them. The engine manages + * through the MHnEventGenerator interface. The class owns the meta data model ( CHnMdModel ) + * and suite container ( CHnSuiteModelContainer ) to manage them. The engine manages * the model by processing model events ( HandleModelEventL ) or reseting the models * ( ResetModelsL ). * @@ -66,18 +66,18 @@ * @since S60 v5.0 * @param aController Controller handler. * @return Fully constructed object. - */ + */ IMPORT_C static CHnEngine* NewLC( MHnControllerInterface& aController ); /** * Standard C++ destructor. - * + * * @since S60 v5.0 - */ + */ ~CHnEngine(); // from CHnInterface - + /** * Fetches and constructs data structres, needed by Multimedia * Menu to display suites. @@ -86,7 +86,7 @@ * @return Filled suite model object from the stack. */ CHnSuiteModel* GetLastSuiteModelL(); - + /** * Fetches and constructs data structres, needed by Multimedia * Menu to display suites. @@ -95,23 +95,23 @@ * @return Filled suite model object from the stack. */ CHnSuiteModel* GetParentSuiteModelL(); - + /** * Get count of suite models on the stack. - * + * * @since S60 v5.0 * @return Count of suite models on the stack. */ virtual TInt GetSuiteModelsCountL(); - + /** * Checks if suite model is loaded. - * + * * @since S60 v5.0 * @return ETrue if suite model is loaded, otherwise EFalse. */ TBool SuiteModelLoadedL( TInt aId ); - + /** * Loads suite hierarchy specified in URI. * @@ -122,7 +122,7 @@ public: // from MHnMdModelEventObserver - + /** * Handle model event. * @@ -131,9 +131,9 @@ * @param aParams Event specific parameters used to perform action. */ TInt HandleModelEventL( const TDesC& aEventName, CLiwGenericParamList& aParams ); - + // from CHnInterface - + /** * Handle back event. * @@ -147,24 +147,24 @@ /** * Loads default root suite - * + * * @since S60 v5.0 * @param aSuiteParams Suite parameters. * @return Status error code. */ IMPORT_C TInt InitializeL( CLiwGenericParamList& aSuiteParams ); - + // from MHnEventGenerator - + /** * Triggers an event inside hierarchy navigator. - * + * * Used by UI to notify hierarchy navigator of its events, * as well as for hierarchy navigator components to notify * the module of certain events (such as OnSuiteLoaded etc). * * @since S60 v5.0 - * @param aHnEventId Internal id of an event (Event names are + * @param aHnEventId Internal id of an event (Event names are * mapped to ids). * @param aRecipientId The id of the recipient item. * @param aEventParameters Event specific parameter. @@ -172,41 +172,41 @@ */ IMPORT_C TInt TriggerHnEventL( const TInt aHnEventId, const TInt aRecipientId, CLiwGenericParamList* aEventParameters = NULL ); - + /** * Splits the source descriptor by a separatos - * + * * @since S60 v5.0 * @param aSource Source descriptor intended to split. * @param aSeparator Separator used to split. - * @return Array of descriptors. + * @return Array of descriptors. */ RPointerArray< HBufC8 > SplitL( const TDesC8& aSource, const TDesC8& aSeparator ); - + /** * Generate param list according to query param. - * + * * @param aUriQuery Descriptor consist of param(s) to split * @param aUriFragment Descriptor containing an uri fragment. - * @param aSuiteName The suite's name. + * @param aSuiteName The suite's name. * @return Filled generic param list. */ CLiwGenericParamList* UriQueryToLiwListLC( const TDesC8& aUriQuery, const TDesC8& aUriFragment, const TDesC8& aSuiteName ); - + /** * Resets MD Model and Suite Container. * * @since S60 v5.0 */ IMPORT_C void ResetModelsL(); - - // from MHnEditModeInterface - + + // from MHnEditModeInterface + /** * Sets edit mode. - * + * * @since S60 v5.0 * @param aEditMode Set edit mode member to false/true. */ @@ -214,12 +214,12 @@ /** * Enables to issue a request to Hn engine. - * + * * @since S60 v5.0 * @param aParam Input Parameters. - * @param aOutput Target list for output. + * @param aOutput Target list for output. */ - IMPORT_C void HandleRequestL( const CLiwGenericParamList& aParam, + IMPORT_C void HandleRequestL( const CLiwGenericParamList& aParam, CLiwGenericParamList* aOutput = NULL); // from MHWRMLightObserver @@ -238,19 +238,19 @@ private: /** * Default constructor. - * + * * @since S60 v5.0 * @param aController Controller handler. */ CHnEngine( MHnControllerInterface& aController ); - + /** * Standard 2nd phase constructor. - * + * * @since S60 v5.0 */ void ConstructL(); - + /** * Handle new suite loaded event. * @@ -286,7 +286,7 @@ * @return Status code. */ TInt HandleSetFocusEventL( const CLiwGenericParamList& aParams ); - + /** * Handles MoveFocusBeforeDelete event. * @@ -296,7 +296,7 @@ */ TInt HandleMoveFocusBeforeDeleteEventL( const CLiwGenericParamList& aParams ); - + /** * Handles RefreshIcons event. * @@ -308,7 +308,7 @@ /** * Handles DisableActionsForItem event. - * + * * @since S60 v5.0 * @param aParams Event specific parameters - contains custom item id * @return Status code. @@ -319,14 +319,14 @@ * Store widget type to repository. * * @since S60 v5.0 - * @param aSuiteName Suite name to that set widget type. + * @param aSuiteName Suite name to that set widget type. * @param aType Widget type to store in repository. * @return Status code. - */ + */ TInt HandleWidgetChangeL( const TDesC& aSuiteName, THnSuiteWidgetType aType ); - - + + /** * Parse URI path component containing Suites to be loaded. * @@ -334,10 +334,10 @@ * @param aUriPath Descriptor URI path which consist of suites' names. * @param aOutput Array on output containes parsed suite names. */ - void ParseSuiteUriPathL( const TDesC8& aUriPath, + void ParseSuiteUriPathL( const TDesC8& aUriPath, CDesC8ArrayFlat& aOutput ); - - + + /** * Checks if only root configuration is loaded. * Used to decide if reloading models is needed. @@ -347,29 +347,29 @@ * otherwise EFalse. */ TBool IsOnlyRootConfLoaded(); - + /** * Resets loaded resources. * * @since S60 5.0 */ void ResetLocalization(); - + /** * Loads suite with given suite name with parameters - * from uri query. + * from uri query. * * @since S60 5.0 - * @param aSuiteName Name of the suite to load. + * @param aSuiteName Name of the suite to load. * @param aUriQuery Descriptor containig parsed part of the uri. * @param aUriFragment Descriptor containig parsed part (fragment) of the uri. * @return Error code when loading suite. */ - TInt LoadSuiteFromUriL( const TDesC8& aSuiteName, + TInt LoadSuiteFromUriL( const TDesC8& aSuiteName, const TDesC8& aUriQuery, const TDesC8& aUriFragment ); - + /** - * Reads highlight position from uri fragment + * Reads highlight position from uri fragment * and sets it on the suite model. * * @since S60 5.0 @@ -387,15 +387,15 @@ /** * Handles loading suite from uri if suites names' are the same. - * + * * @param aNextExists ETrue if the next suite's name exists in uri. - * @param aUri The URI's parameters passed to the suite. + * @param aUri The URI's parameters passed to the suite. */ void HandleTheSameSuitesL( TBool aNextExists, const TDesC8& aParams ); - + /** * Checks if suites have the same names. - * + * * @param aLastSuiteName The last suite's name on the stack. * @param aFirstSuiteName The first suite's name in uri. * @return ETrue if names are equal @@ -404,37 +404,44 @@ /** * Decides whether to hide menu depending on current state and uri parameters - * + * * @param aUri The Uri to parse for exit procedure. * @return ETrue If exit was consumed. */ TBool HandleActionL( const TDesC8& aUri ); - + /** * Loads suites from uri. - * + * * @param aUri The uri to parse */ void LoadSuitesL( const TDesC8& aUri ); - + + /** + * Loads item through CR. + * + * @since S60 v5.0 + */ + void LoadItemFromCrL( const TDesC8& aUri ); + private: // data - + /** * Own - Meta data model. */ CHnMdModel* iMetaDataModel; - + /** * Own - Suite container. */ CHnSuiteModelContainer* iSuiteContainer; - + /** * Not own. - * EikonEnv for displaying popup messages. + * EikonEnv for displaying popup messages. */ CEikonEnv* iEEnv; - + /** * Not own - Suite observer. */ @@ -444,7 +451,7 @@ * Edit mode */ TBool iEditMode; - + /** * Light status observer */ diff -r 3321d3e205b6 -r b01126ce0bec menufw/hierarchynavigator/hnengine/src/hnengine.cpp --- a/menufw/hierarchynavigator/hnengine/src/hnengine.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/menufw/hierarchynavigator/hnengine/src/hnengine.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -268,26 +268,31 @@ // EXPORT_C void CHnEngine::LoadSuitesFromUriL( const TDesC8& aUri ) { - DEBUG(("_MM_:CHnEngine::LoadSuitesFromUriL IN")); - DEBUG8(("_MM_:\tURI: %S",&aUri)); + DEBUG(("_MM_:CHnEngine::LoadSuitesFromUriL IN")); + DEBUG8(("_MM_:\tURI: %S",&aUri)); - TBool consumed(EFalse); + TBool consumed( EFalse ); - if ( aUri.Find( KSetFocusWithPref ) != KErrNotFound ) - { - LoadFromCrL( aUri ); - consumed = ETrue; - } + if( aUri.Find( KSetFocusWithPref ) != KErrNotFound ) + { + LoadFromCrL( aUri ); + consumed = ETrue; + } + else if( aUri.Find( KOpenItemWithPref ) != KErrNotFound ) + { + LoadItemFromCrL( aUri ); + consumed = ETrue; + } - if ( !consumed ) - { - consumed = HandleActionL( aUri ); - } + if( !consumed ) + { + consumed = HandleActionL( aUri ); + } - if ( !consumed ) - { - LoadSuitesL( aUri ); - } + if( !consumed ) + { + LoadSuitesL( aUri ); + } DEBUG(("_MM_:CHnEngine::LoadSuitesFromUriL OUT")); } @@ -602,8 +607,8 @@ TInt posSuite( 0 ); TInt posItem( 0 ); - TInt64 suiteCustomId( KErrNotFound ); - TInt64 itemCustomId( KErrNotFound ); + TInt64 suiteCustomId( KErrNotFound ); + TInt64 itemCustomId( KErrNotFound ); // Get suite's and item's custom ids. const TLiwGenericParam* paramSuiteId = aParams.FindFirst( posSuite, KSuiteCustomId8 ); @@ -888,7 +893,6 @@ if ( aSource.Length() > 0 && aSeparator.Length() > 0 ) { TPtrC8 tmpSource = aSource; - TPtrC8 token( KNullDesC8 ); while( ETrue ) @@ -899,7 +903,6 @@ && length != KErrNotFound ) { TInt ampPos( KErrNotFound ); - TInt eqPos( KErrNotFound ); do { ampPos = tmpSource.Mid( @@ -912,7 +915,7 @@ } else if( (length + HnLogicalRelations::KParamUid8().Length()) == tmpSource.Length()) - { + { length = KErrNotFound; } }while( !ampPos ); @@ -1033,7 +1036,7 @@ const TDesC8& query = parser.Extract( EUriQuery ); RPointerArray< HBufC8 > params = SplitL( query, HnLogicalRelations::KParamUid8); - TBuf8 item; + TBuf8< KApaMaxAppGroupName + KTimeStampBufferLength + KUidStringLength + 2> item; for( TInt i = 0; i < params.Count(); i++ ) { @@ -1042,12 +1045,12 @@ ASSERT( paramValue.Count() == 2 ); if ( !paramValue[0]->Compare(KMcsAppGroupName8) ) - { - TBuf8 appgrname; - if( paramValue[1]->Length()<=KApaMaxAppGroupName ) - { - appgrname.Append( *paramValue[1] ); - } + { + TBuf8< KApaMaxAppGroupName > appgrname; + if( paramValue[1]->Length()<= KApaMaxAppGroupName ) + { + appgrname.Append( *paramValue[1] ); + } //get current time TTime currentTime; @@ -1067,7 +1070,7 @@ CleanupStack::PopAndDestroy( ¶mValue ); } - TBuf item1; + TBuf< KApaMaxAppGroupName + KTimeStampBufferLength + KUidStringLength + 2> item1; item1.Copy(item); CRepository *cenRep = CRepository::NewLC( KCRUidMenu ); cenRep->Set(KMenuShowFolder, item1); @@ -1075,7 +1078,6 @@ params.ResetAndDestroy(); CleanupStack::PopAndDestroy( uriBuf ); - } // --------------------------------------------------------------------------- // @@ -1110,96 +1112,96 @@ // --------------------------------------------------------------------------- // TBool CHnEngine::HandleActionL( const TDesC8& aUri ) - { - TBool exitActionConsumed(EFalse); + { + TBool exitActionConsumed( EFalse ); - HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() ); - uriBuf->Des().Copy( aUri ); + HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() ); + uriBuf->Des().Copy( aUri ); - TUriParser8 parser; + TUriParser8 parser; parser.Parse( *uriBuf ); User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound ); const TDesC8& host8 = parser.Extract( EUriHost ); const TDesC8& query = parser.Extract( EUriQuery ); - RBuf action; + RBuf action; CleanupClosePushL( action ); CLiwGenericParamList* paramsUri = UriQueryToLiwListLC( query, KNullDesC8, KNullDesC8 ); HnLiwUtils::GetStringL( *paramsUri, KActionParams, action ); - if ( !action.Compare( KActionExit ) ) - { - RBuf host; - host.CreateL( host8.Length() ); - CleanupClosePushL( host ); - host.Copy(host8); - CHnSuiteModel* suiteModel = iSuiteContainer->GetSuiteModel( host ); - TBool exitHideHostNotFound( ETrue ); - if( suiteModel && suiteModel->ExitMode() == EExitModeHide ) - { - exitHideHostNotFound = EFalse; - } + if( !action.Compare( KActionExit ) ) + { + RBuf host; + host.CreateL( host8.Length() ); + CleanupClosePushL( host ); + host.Copy( host8 ); + CHnSuiteModel* suiteModel = iSuiteContainer->GetSuiteModel( host ); + TBool exitHideHostNotFound( ETrue ); + if( suiteModel && suiteModel->ExitMode() == EExitModeHide ) + { + exitHideHostNotFound = EFalse; + } - if ( exitHideHostNotFound ) - { - //send to foreground - CLiwGenericParamList* pl = CLiwGenericParamList::NewL(); - CleanupStack::PushL( pl ); - HandleModelEventL( KAppGainForeground, *pl ); - CleanupStack::PopAndDestroy( pl ); - } - else - { - //send to background - CLiwGenericParamList* pl = CLiwGenericParamList::NewL(); - CleanupStack::PushL( pl ); - HandleModelEventL( KAppGainBackground, *pl ); - CleanupStack::PopAndDestroy( pl ); - } + if( exitHideHostNotFound ) + { + //send to foreground + CLiwGenericParamList* pl = CLiwGenericParamList::NewL(); + CleanupStack::PushL( pl ); + HandleModelEventL( KAppGainForeground, *pl ); + CleanupStack::PopAndDestroy( pl ); + } + else + { + //send to background + CLiwGenericParamList* pl = CLiwGenericParamList::NewL(); + CleanupStack::PushL( pl ); + HandleModelEventL( KAppGainBackground, *pl ); + CleanupStack::PopAndDestroy( pl ); + } - if ( exitHideHostNotFound && iSuiteContainer->GetLastSuiteModel() == suiteModel ) - { - HandleBackEventL( host, 1 ); - } - else - { - //reset to root + if( exitHideHostNotFound && iSuiteContainer->GetLastSuiteModel() == suiteModel ) + { + HandleBackEventL( host, 1 ); + } + else + { + //reset to root CLiwGenericParamList* params = CLiwGenericParamList::NewLC(); params->AppendL( iMetaDataModel->GetSuiteParameters( 0 ) ); - ResetModelsL(); + ResetModelsL(); InitializeL( *params ); CleanupStack::PopAndDestroy( params ); - } + } - CleanupStack::PopAndDestroy( &host ); - exitActionConsumed = ETrue; - } + CleanupStack::PopAndDestroy( &host ); + exitActionConsumed = ETrue; + } CleanupStack::PopAndDestroy( paramsUri ); CleanupStack::PopAndDestroy( &action ); CleanupStack::PopAndDestroy( uriBuf ); return exitActionConsumed; - } + } // --------------------------------------------------------------------------- // // --------------------------------------------------------------------------- // void CHnEngine::LoadSuitesL( const TDesC8& aUri ) - { - TBool sendToForeground(EFalse); - HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() ); - uriBuf->Des().Copy( aUri ); + { + TBool sendToForeground(EFalse); + HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() ); + uriBuf->Des().Copy( aUri ); - TUriParser8 parser; - parser.Parse( *uriBuf ); - User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound ); + TUriParser8 parser; + parser.Parse( *uriBuf ); + User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound ); - CDesC8ArrayFlat* suiteNameArray = new( ELeave ) CDesC8ArrayFlat( KDefaultGranularity ) ; - CleanupStack::PushL( suiteNameArray ); + CDesC8ArrayFlat* suiteNameArray = new( ELeave ) CDesC8ArrayFlat( KDefaultGranularity ) ; + CleanupStack::PushL( suiteNameArray ); - const TDesC8& host = parser.Extract( EUriHost ); + const TDesC8& host = parser.Extract( EUriHost ); RBuf8 host8; CleanupClosePushL( host8 ); if (host.Compare( KNullDesC8 )) @@ -1210,19 +1212,19 @@ DEBUG8(( "_MM_:\tURI host part: %S", &host8 )); } - const TDesC8& path = parser.Extract( EUriPath ); - if (path.Compare( KNullDesC8 )) - { - HBufC8* path8 = HBufC8::NewLC( path.Length() ); - path8->Des().Copy( path ); - path8->Des().LowerCase(); - ParseSuiteUriPathL( *path8, *suiteNameArray ); - CleanupStack::PopAndDestroy( path8 ); - } + const TDesC8& path = parser.Extract( EUriPath ); + if (path.Compare( KNullDesC8 )) + { + HBufC8* path8 = HBufC8::NewLC( path.Length() ); + path8->Des().Copy( path ); + path8->Des().LowerCase(); + ParseSuiteUriPathL( *path8, *suiteNameArray ); + CleanupStack::PopAndDestroy( path8 ); + } - TBool suiteExists( EFalse ); - iMetaDataModel->IgnoreEvaluations( ETrue ); - iMetaDataModel->QueueForeground( CHnMdModel::EWhenAnySuiteIsEvaluated ); + TBool suiteExists( EFalse ); + iMetaDataModel->IgnoreEvaluations( ETrue ); + iMetaDataModel->QueueForeground( CHnMdModel::EWhenAnySuiteIsEvaluated ); if( host8.Length() == 0 || ( host8.Length() > 0 && !iMetaDataModel->SuiteModelExistsL( host8 ) ) ) @@ -1231,101 +1233,141 @@ suiteNameArray->AppendL( KRoot8 ); } - for( TInt i = 0; i < suiteNameArray->Count(); ++i ) - { - suiteExists = iMetaDataModel->SuiteModelExistsL( - ( *suiteNameArray )[i] ); - TBool nextExists = i < suiteNameArray->Count() - 1 && - iMetaDataModel->SuiteModelExistsL( ( *suiteNameArray )[i + 1] ); - TBool isLast = ( i == ( suiteNameArray->Count() - 1 ) ); + for( TInt i = 0; i < suiteNameArray->Count(); ++i ) + { + suiteExists = iMetaDataModel->SuiteModelExistsL( + ( *suiteNameArray )[i] ); + TBool nextExists = i < suiteNameArray->Count() - 1 && + iMetaDataModel->SuiteModelExistsL( ( *suiteNameArray )[i + 1] ); + TBool isLast = ( i == ( suiteNameArray->Count() - 1 ) ); + + TBool turnOnEvaluation = ( suiteExists && ( !nextExists || isLast ) ); + if( turnOnEvaluation || !suiteExists ) + { + iMetaDataModel->IgnoreEvaluations( EFalse ); + } - TBool turnOnEvaluation = ( suiteExists && ( !nextExists || isLast ) ); - if( turnOnEvaluation || !suiteExists ) - { - iMetaDataModel->IgnoreEvaluations( EFalse ); - } + TInt err( KErrNone ); + + // Ignore loading new suite if the last suite in model is the same + // as first one in the uri. + if ( i == 0 ) + { + if ( SuitesAreTheSameL( iMetaDataModel->GetLastSuite()->SuiteName(), (*suiteNameArray)[i] ) ) + { + HandleTheSameSuitesL( nextExists, parser.Extract( EUriQuery ) ); + sendToForeground = ETrue; + continue; + } + } - TInt err( KErrNone ); + if( suiteExists ) + { + if (!nextExists) + { + // Tricky: queue foreground so that if the suite is evaluated synchronously + // the foreground will be gained. + iMetaDataModel->QueueForeground( CHnMdModel::EWhenAnySuiteIsEvaluated ); + } + err = LoadSuiteFromUriL( + ( *suiteNameArray )[i], parser.Extract( EUriQuery ), parser.Extract( EUriFragment ) ); + if ( KErrNone == err && !nextExists && iMetaDataModel->IsForegroundQueued() ) + { + // Tricky: if foreground is still queued it means that the suite is evaluated + // asynchronously. Override the previos foreground queue setting with one + // that will be effective only if the last loaded suite is evaluated. + iMetaDataModel->QueueForeground( CHnMdModel::EWhenCurrentTopSuiteIsEvaluated ); + } + if ( err != KErrNone ) + { + sendToForeground = ETrue; + } + } - // Ignore loading new suite if the last suite in model is the same - // as first one in the uri. - if ( i == 0 ) - { - if ( SuitesAreTheSameL( iMetaDataModel->GetLastSuite()->SuiteName(), (*suiteNameArray)[i] ) ) - { - HandleTheSameSuitesL( nextExists, parser.Extract( EUriQuery ) ); - sendToForeground = ETrue; - continue; + if( !suiteExists || err != KErrNone || !nextExists ) + { + CHnFilter* filter = CHnFilter::NewLC(); + + filter->SetSuiteId( + iSuiteContainer->GetLastSuiteModel()->CustomId() ); + + filter->SetEvaluateSuiteL( ETrue ); + iMetaDataModel->IgnoreEvaluations( EFalse ); + + TRAPD( err, iMetaDataModel->EvaluateL( *filter ) ); + + CleanupStack::PopAndDestroy( filter ); + if( err ) + { + iMetaDataModel->DeleteLastSuite(); + iSuiteContainer->PopSuiteModelL( + HnConvUtils::Str8ToStr( ( *suiteNameArray )[i] )->Des() ); + sendToForeground = ETrue; + } + break; + } } - } + // set highlight only when path is valid! if( suiteExists ) - { - if (!nextExists) - { - // Tricky: queue foreground so that if the suite is evaluated synchronously - // the foreground will be gained. - iMetaDataModel->QueueForeground( CHnMdModel::EWhenAnySuiteIsEvaluated ); - } - err = LoadSuiteFromUriL( - ( *suiteNameArray )[i], parser.Extract( EUriQuery ), parser.Extract( EUriFragment ) ); - if ( KErrNone == err && !nextExists && iMetaDataModel->IsForegroundQueued() ) - { - // Tricky: if foreground is still queued it means that the suite is evaluated - // asynchronously. Override the previos foreground queue setting with one - // that will be effective only if the last loaded suite is evaluated. - iMetaDataModel->QueueForeground( CHnMdModel::EWhenCurrentTopSuiteIsEvaluated ); - } - if ( err != KErrNone ) + { + HighlightPlacementFromUriL( parser.Extract( EUriFragment ) ); + } + + CleanupStack::PopAndDestroy( &host8 ); + CleanupStack::PopAndDestroy( suiteNameArray ); + CleanupStack::PopAndDestroy( uriBuf ); + + // send to foreground + if ( sendToForeground ) { - sendToForeground = ETrue; + CLiwGenericParamList* pl = CLiwGenericParamList::NewL(); + CleanupStack::PushL( pl ); + HandleModelEventL( KAppGainForeground, *pl ); + CleanupStack::PopAndDestroy( pl ); + iMetaDataModel->QueueForeground( CHnMdModel::ENever ); } - } + + } +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void CHnEngine::LoadItemFromCrL( const TDesC8& aUri ) + { + HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() ); + uriBuf->Des().Copy( aUri ); - if( !suiteExists || err != KErrNone || !nextExists ) - { - CHnFilter* filter = CHnFilter::NewLC(); + TUriParser8 parser; + parser.Parse( *uriBuf ); + User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound ); + + const TDesC8& query = parser.Extract( EUriQuery ); - filter->SetSuiteId( - iSuiteContainer->GetLastSuiteModel()->CustomId() ); - - filter->SetEvaluateSuiteL( ETrue ); - iMetaDataModel->IgnoreEvaluations( EFalse ); + if( query.Compare( KNullDesC8 ) ) + { + TBuf8 item; + RPointerArray paramValue = SplitL( query, + HnLogicalRelations::KLogicalEqual8 ); + CleanupResetAndDestroyPushL( paramValue ); + ASSERT( paramValue.Count() == 2 ); - TRAPD( err, iMetaDataModel->EvaluateL( *filter ) ); + if( !paramValue[0]->Compare( KId8 ) ) + { + if( paramValue[1]->Length() <= KUidStringLength ) + { + item.Append( *paramValue[1] ); + } + } + CleanupStack::PopAndDestroy( ¶mValue ); - CleanupStack::PopAndDestroy( filter ); - if( err ) - { - iMetaDataModel->DeleteLastSuite(); - iSuiteContainer->PopSuiteModelL( - HnConvUtils::Str8ToStr( ( *suiteNameArray )[i] )->Des() ); - sendToForeground = ETrue; + TBuf item1; + item1.Copy( item ); + CRepository *cenRep = CRepository::NewLC( KCRUidMenu ); + cenRep->Set( KMenuOpenItem, item1 ); + CleanupStack::PopAndDestroy( cenRep ); } - break; - } + CleanupStack::PopAndDestroy( uriBuf ); } - // set highlight only when path is valid! - if( suiteExists ) - { - HighlightPlacementFromUriL( parser.Extract( EUriFragment ) ); - } - - CleanupStack::PopAndDestroy( &host8 ); - CleanupStack::PopAndDestroy( suiteNameArray ); - CleanupStack::PopAndDestroy( uriBuf ); - -// send to foreground - if ( sendToForeground ) - { - CLiwGenericParamList* pl = CLiwGenericParamList::NewL(); - CleanupStack::PushL( pl ); - HandleModelEventL( KAppGainForeground, *pl ); - CleanupStack::PopAndDestroy( pl ); - iMetaDataModel->QueueForeground( CHnMdModel::ENever ); - } - - } - // End of file diff -r 3321d3e205b6 -r b01126ce0bec menufw/hierarchynavigator/hnmetadatamodel/inc/hnglobals.h --- a/menufw/hierarchynavigator/hnmetadatamodel/inc/hnglobals.h Tue Sep 14 20:58:58 2010 +0300 +++ b/menufw/hierarchynavigator/hnmetadatamodel/inc/hnglobals.h Wed Sep 15 12:00:00 2010 +0300 @@ -292,7 +292,8 @@ _LIT( KPrefMm, "mm://" ); _LIT8( KRootWithPref, "mm://root" ); -_LIT8( KSetFocusWithPref, "mm://!setfocus" ); +_LIT8( KSetFocusWithPref, "mm://!setfocus" ); +_LIT8( KOpenItemWithPref, "mm://!openitem" ); _LIT8( KCRepTimeFormat, "%S,%04d%02d%02d:%02d%02d%02d.%06d" ); // images @@ -513,6 +514,8 @@ const TUint32 KMenuShowFolder = 0x0000000c; +const TUint32 KMenuOpenItem = 0x0000000e; + const TInt KTimeStampBufferLength = 25; const TInt KUidStringLength = 10; diff -r 3321d3e205b6 -r b01126ce0bec menufw/hierarchynavigator/hnmetadatamodel/inc/hnmdmodel.h --- a/menufw/hierarchynavigator/hnmetadatamodel/inc/hnmdmodel.h Tue Sep 14 20:58:58 2010 +0300 +++ b/menufw/hierarchynavigator/hnmetadatamodel/inc/hnmdmodel.h Wed Sep 15 12:00:00 2010 +0300 @@ -544,6 +544,11 @@ */ CHnSuiteModel* iForegroundTriggeringSuite; + /** + * Repository open item change observer. + */ + CHnRepositoryObserver* iRepositoryOpenItemObserver; + }; #endif // C_HNMDMODEL_H diff -r 3321d3e205b6 -r b01126ce0bec menufw/hierarchynavigator/hnmetadatamodel/inc/hnrepositoryobserver.h --- a/menufw/hierarchynavigator/hnmetadatamodel/inc/hnrepositoryobserver.h Tue Sep 14 20:58:58 2010 +0300 +++ b/menufw/hierarchynavigator/hnmetadatamodel/inc/hnrepositoryobserver.h Wed Sep 15 12:00:00 2010 +0300 @@ -306,7 +306,7 @@ /** * Folder application group name. */ - TBuf8 iCRKeyFolderName; + TBuf8< KApaMaxAppGroupName > iCRKeyFolderName; /** * Mcs id for an application item in a folder with a given app group name. @@ -325,6 +325,123 @@ TInt iNotifyType; }; +/** + * Open item Repository Observer. + * + * It is used to inform hierarchy navigator of changes in the suites repository. + * + * @lib hnmetadatamodel + * @since S60 5.0 + * @ingroup group_hnmetadatamodel + */ +NONSHARABLE_CLASS( CHnRepositoryOpenItemObserver ): + public CHnRepositoryObserver, + public MLiwNotifyCallback + { +public: + + /** + * Default C++ Destructor. + * + * @since S60 v5.0 + */ + virtual ~CHnRepositoryOpenItemObserver(); + + /** + * Factory function. + * + * @param aCmnPtrs Common pointers. + * @return Repository Observer. + * @since S60 v5.0 + */ + static CHnRepositoryOpenItemObserver* NewL( + THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid, + const TUint32 aId ); + + /** + * Factory function. + * + * @param aCmnPtrs Common pointers. + * @return Repository Observer. + * @since S60 v5.0 + */ + static CHnRepositoryOpenItemObserver* NewLC( + THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid, + const TUint32 aId ); + + /** + * Change handler method. + * It is invoked whenever notifier detects a change in the CR. + * + * @param aId Id of the entry in CR. + * @since S60 v5.0 + */ + void HandleNotifyString( TUint32 aId, const TDesC16& aNewValue ); + + /** + * Change handler method. + * It is invoked whenever notifier detects a change in the CR. + * + * @param aId Id of the entry in CR. + * @since S60 v5.0 + */ + void HandleNotifyStringL( TUint32 aId, const TDesC16& aNewValue ); + + /** + * Handles notifications caused by an asynchronous Execute*CmdL call + * or an event. + * + * @param aCmdId The service command associated to the event. + * @param aEventId Occured event, see LiwCommon.hrh. + * @param aEventParamList Event parameters, if any, as defined per + * each event. + * @param aInParamList Input parameters, if any, given in the + * related HandleCommmandL. + * @return Error code for the callback. + */ + virtual TInt HandleNotifyL( + TInt aCmdId, + TInt aEventId, + CLiwGenericParamList& aEventParamList, + const CLiwGenericParamList& aInParamList); + +private: + + /** + * Defautlt C++ Constructor. + * + * @param aCmnPtrs Common pointers. + * @since S60 v5.0 + */ + CHnRepositoryOpenItemObserver( THnMdCommonPointers* aCmnPtrs, TUint32 iId ); + + /** + * Second stage constructor. + * + * @since S60 v5.0 + */ + void ConstructL( const TUid aRepositoryUid ); + +private: + + /** + * Request get list for an folder. + * + * @param aFolderId A parent folder id + * @since S60 v5.0 + */ + void ShowFolderL( const TDesC16& aFolderId ); + +private: + + /** + * Own. + * Intance of the service handler. + */ + CHnServiceHandler* iServiceHandler; + + }; + #endif /*HNREPOSITORYOBSERVER_H_*/ //End of file diff -r 3321d3e205b6 -r b01126ce0bec menufw/hierarchynavigator/hnmetadatamodel/src/hnmdmodel.cpp --- a/menufw/hierarchynavigator/hnmetadatamodel/src/hnmdmodel.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/menufw/hierarchynavigator/hnmetadatamodel/src/hnmdmodel.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -64,6 +64,7 @@ iMode = EMdModeNormal; iRepositoryWidgetTypeObserver = CHnRepositoryWidgetTypeObserver::NewL( &iCmnPtrs, KMatrixRepositoryUid ); iRepositoryShowFolderObserver = CHnRepositoryShowFolderObserver::NewL( &iCmnPtrs, KCRUidMenu, KMenuShowFolder ); + iRepositoryOpenItemObserver = CHnRepositoryOpenItemObserver::NewL( &iCmnPtrs, KCRUidMenu, KMenuOpenItem ); MMPERF(("CHnMetaDataModel::ConstructL - rep. observer ready")); } @@ -111,6 +112,7 @@ { delete iRepositoryWidgetTypeObserver; delete iRepositoryShowFolderObserver; + delete iRepositoryOpenItemObserver; iLoadedSuites.ResetAndDestroy(); delete iXmlModelProvider; delete iLocalization; diff -r 3321d3e205b6 -r b01126ce0bec menufw/hierarchynavigator/hnmetadatamodel/src/hnrepositoryobserver.cpp --- a/menufw/hierarchynavigator/hnmetadatamodel/src/hnrepositoryobserver.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/menufw/hierarchynavigator/hnmetadatamodel/src/hnrepositoryobserver.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -227,9 +227,8 @@ { CHnRepositoryObserver::ConstructL( aRepositoryUid ); TInt ret = iRepository->Create( iId, KBlank ); - iNotifyHandler = CCenRepNotifyHandler::NewL( - *this, *iRepository, - CCenRepNotifyHandler::EStringKey, iId ); + iNotifyHandler = CCenRepNotifyHandler::NewL( *this, *iRepository, + CCenRepNotifyHandler::EStringKey, iId ); iNotifyHandler->StartListeningL(); } @@ -273,129 +272,128 @@ //++Show Folder if( aId == iId && aNewValue.Length()) - { + { iNotifyType = 0; - ExtractCRKeyShowFolderName( aNewValue ); + ExtractCRKeyShowFolderName( aNewValue ); + + // iCRKeyFolderItemUid can contain mcs id or uid + // in case of uid it will be replaced whith id in HandleNotifyL callback + if( iCRKeyFolderItemUid.Length()>0 ) + { + if( iCRKeyFolderItemUid.FindF( KHexPrefix8 )==0 ) + { + iNotifyType |= EAPP_UID; + } + else + { + iNotifyType |= EAPP_ID; + } + } + + CHnMdBaseKey* inDataKey = HnMdKeyFactory::CreateL( + KInData8, KKeyTypeMap, KDefaultParentId8 ); + CleanupStack::PushL( inDataKey ); + + CHnMdBaseKey* filter( NULL ); + HBufC8* id( NULL ); + if ( iCRKeyFolderName.Length()>0 && !( iNotifyType & EAPP_UID ) ) + { + // app group name is known + // id is optional + id = HnConvUtils::NumToStr8LC( KRootId ); + inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuFolder8 ) ); + inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KIdParam, KKeyTypeInteger, *id ) ); + inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KRecursiveSearch8, KKeyTypeBoolean, KStringTrue8 ) ); + inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KFlatResult8, KKeyTypeBoolean, KStringTrue8 ) ); + + filter = HnMdKeyFactory::CreateL( + KFilter8, KKeyTypeMap, KStringTrue8 ); + CleanupStack::PushL( filter ); + filter->AddSubKeyL( HnMdKeyFactory::CreateL( KMcsAppGroupName8, KKeyTypeString, iCRKeyFolderName ) ); + filter->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuFolder8 ) ); + filter->AddSubKeyL( HnMdKeyFactory::CreateL( KHidden8, KKeyTypeBoolean, KStringFalse8 ) ); + } + else if( iNotifyType & EAPP_ID ) + { + // no app group name, id is known + inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuApplication8 ) ); + inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KIdParam, KKeyTypeInteger, iCRKeyFolderItemUid ) ); + inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KParentOnly8, KKeyTypeBoolean, KStringTrue8 ) ); + } + else if( iNotifyType & EAPP_UID ) + { + // uid is known + // app group name is optional + id = HnConvUtils::NumToStr8LC( KRootId ); + inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuFolder8 ) ); + inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KIdParam, KKeyTypeInteger, *id ) ); + inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KRecursiveSearch8, KKeyTypeBoolean, KStringTrue8 ) ); + inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KFlatResult8, KKeyTypeBoolean, KStringTrue8 ) ); - // iCRKeyFolderItemUid can contain mcs id or uid - // in case of uid it will be replaced whith id in HandleNotifyL callback - if( iCRKeyFolderItemUid.Length()>0 ) - { - if( iCRKeyFolderItemUid.FindF( KHexPrefix8 )==0 ) - { - iNotifyType |= EAPP_UID; - } - else - { - iNotifyType |= EAPP_ID; - } + filter = HnMdKeyFactory::CreateL( + KFilter8, KKeyTypeMap, KStringTrue8 ); + CleanupStack::PushL( filter ); + filter->AddSubKeyL( HnMdKeyFactory::CreateL( KUid8, KKeyTypeInteger, iCRKeyFolderItemUid ) ); + filter->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuApplication8 ) ); + filter->AddSubKeyL( HnMdKeyFactory::CreateL( KHidden8, KKeyTypeBoolean, KStringFalse8 ) ); + } + else + { + // No app group name, no uid. Search for root. + id = HnConvUtils::NumToStr8LC( KRootId ); + inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuFolder8 ) ); + inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KIdParam, KKeyTypeInteger, *id ) ); + inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KParentOnly8, KKeyTypeBoolean, KStringTrue8 ) ); + } + + RPointerArray< CHnMdBaseKey > data; + CleanupClosePushL( data ); + data.AppendL( inDataKey ); + if ( filter ) + { + data.AppendL( filter ); + } + + CHnMdBaseKey* serviceData = HnMdKeyFactory::CreateL( + KServiceContentName, KKeyTypeString, KMatrixMenuData ); + CleanupStack::PushL( serviceData ); + + RPointerArray< CHnMdBaseKey> constructor; + CleanupClosePushL( constructor ); + constructor.AppendL( serviceData ); + CLiwGenericParamList* constructorLiw = CLiwGenericParamList::NewLC(); + CLiwGenericParamList* commandLiw = CLiwGenericParamList::NewLC(); + HnLiwUtils::SetGenericParamListL( constructor, *constructorLiw ); + HnLiwUtils::SetGenericParamListL( data, *commandLiw ); + + TBuf8< KMaxLength > interface( KMCSDataSourceInterface8 ); + + delete iServiceHandler; + iServiceHandler = NULL; + iServiceHandler = CHnServiceHandler::NewL( + KMCSService8, interface, KCmdGetList8, + EServiceModeAsynchronous, constructorLiw, commandLiw ); + + CleanupStack::Pop( commandLiw ); + CleanupStack::Pop( constructorLiw ); + + iServiceHandler->ExecuteL( this ); + + CleanupStack::PopAndDestroy( &constructor ); + CleanupStack::PopAndDestroy( serviceData ); + CleanupStack::PopAndDestroy( &data ); + if( filter ) + { + CleanupStack::PopAndDestroy( filter ); + } + if( id ) + { + CleanupStack::PopAndDestroy( id ); + } + CleanupStack::PopAndDestroy( inDataKey ); } - CHnMdBaseKey* inDataKey = HnMdKeyFactory::CreateL( - KInData8, KKeyTypeMap, KDefaultParentId8 ); - CleanupStack::PushL( inDataKey ); - - CHnMdBaseKey* filter( NULL ); - HBufC8* id( NULL ); - if ( iCRKeyFolderName.Length()>0 && !( iNotifyType & EAPP_UID ) ) - { - // app group name is known - // id is optional - id = HnConvUtils::NumToStr8LC( KRootId ); - inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuFolder8 ) ); - inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KIdParam, KKeyTypeInteger, *id ) ); - inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KRecursiveSearch8, KKeyTypeBoolean, KStringTrue8 ) ); - inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KFlatResult8, KKeyTypeBoolean, KStringTrue8 ) ); - - filter = HnMdKeyFactory::CreateL( - KFilter8, KKeyTypeMap, KStringTrue8 ); - CleanupStack::PushL( filter ); - filter->AddSubKeyL( HnMdKeyFactory::CreateL( KMcsAppGroupName8, KKeyTypeString, iCRKeyFolderName ) ); - filter->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuFolder8 ) ); - filter->AddSubKeyL( HnMdKeyFactory::CreateL( KHidden8, KKeyTypeBoolean, KStringFalse8 ) ); - } - else if( iNotifyType & EAPP_ID ) - { - // no app group name, id is known - inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuApplication8 ) ); - inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KIdParam, KKeyTypeInteger, iCRKeyFolderItemUid ) ); - inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KParentOnly8, KKeyTypeBoolean, KStringTrue8 ) ); - } - else if( iNotifyType & EAPP_UID ) - { - // uid is known - // app group name is optional - id = HnConvUtils::NumToStr8LC( KRootId ); - inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuFolder8 ) ); - inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KIdParam, KKeyTypeInteger, *id ) ); - inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KRecursiveSearch8, KKeyTypeBoolean, KStringTrue8 ) ); - inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KFlatResult8, KKeyTypeBoolean, KStringTrue8 ) ); - - filter = HnMdKeyFactory::CreateL( - KFilter8, KKeyTypeMap, KStringTrue8 ); - CleanupStack::PushL( filter ); - filter->AddSubKeyL( HnMdKeyFactory::CreateL( KUid8, KKeyTypeInteger, iCRKeyFolderItemUid ) ); - filter->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuApplication8 ) ); - filter->AddSubKeyL( HnMdKeyFactory::CreateL( KHidden8, KKeyTypeBoolean, KStringFalse8 ) ); - } - else - { - // No app group name, no uid. Search for root. - id = HnConvUtils::NumToStr8LC( KRootId ); - inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuFolder8 ) ); - inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KIdParam, KKeyTypeInteger, *id ) ); - inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KParentOnly8, KKeyTypeBoolean, KStringTrue8 ) ); - } - - RPointerArray< CHnMdBaseKey > data; - CleanupClosePushL( data ); - data.AppendL( inDataKey ); - if ( filter ) - { - data.AppendL( filter ); - } - - CHnMdBaseKey* serviceData = HnMdKeyFactory::CreateL( - KServiceContentName, KKeyTypeString, KMatrixMenuData ); - CleanupStack::PushL( serviceData ); - - RPointerArray< CHnMdBaseKey> constructor; - CleanupClosePushL( constructor ); - constructor.AppendL( serviceData ); - CLiwGenericParamList* constructorLiw = CLiwGenericParamList::NewLC(); - CLiwGenericParamList* commandLiw = CLiwGenericParamList::NewLC(); - HnLiwUtils::SetGenericParamListL( constructor, *constructorLiw ); - HnLiwUtils::SetGenericParamListL( data, *commandLiw ); - - TBuf8< KMaxLength > interface( KMCSDataSourceInterface8 ); - - delete iServiceHandler; - iServiceHandler = NULL; - iServiceHandler = CHnServiceHandler::NewL( - KMCSService8, interface, KCmdGetList8, - EServiceModeAsynchronous, constructorLiw, commandLiw ); - - CleanupStack::Pop( commandLiw ); - CleanupStack::Pop( constructorLiw ); - - iServiceHandler->ExecuteL( this ); - - CleanupStack::PopAndDestroy( &constructor ); - CleanupStack::PopAndDestroy( serviceData ); - CleanupStack::PopAndDestroy( &data ); - if( filter ) - { - CleanupStack::PopAndDestroy( filter ); - } - if( id ) - { - CleanupStack::PopAndDestroy( id ); - } - CleanupStack::PopAndDestroy( inDataKey ); - } - DEBUG(("_MM_:CHnRepositoryShowFolderObserver::HandleNotifyStringL OUT")); - } // --------------------------------------------------------------------------- @@ -403,91 +401,91 @@ // --------------------------------------------------------------------------- // void CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName( const TDesC& aNewValue ) - { - DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName IN" )); - iCRKeyFolderName.Copy( KBlank ); - iCRKeyFolderItemUid.Copy( KBlank ); + { + DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName IN" )); + iCRKeyFolderName.Copy( KBlank ); + iCRKeyFolderItemUid.Copy( KBlank ); - int keyValueLength = aNewValue.Length(); - if( keyValueLength ) - { - TApaAppGroupName folder; - TBuf tempBuf; - TBuf timeStamp; + int keyValueLength = aNewValue.Length(); + if( keyValueLength ) + { + TApaAppGroupName folder; + TBuf tempBuf; + TBuf timeStamp; - TInt ret = aNewValue.Find( KComma ); - if( (ret == KErrNotFound )|| ( ret == ( keyValueLength-1 ) ) ) - { - DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (bad CR key value input) OUT" )); - return; //bad CR key value input - } - if( ret>KApaMaxAppGroupName ) - { - return; - } - folder.Copy(aNewValue.Left(ret)); - if( aNewValue.Length()-ret > tempBuf.MaxLength() ) - { - return; - } - tempBuf.Copy(aNewValue.Mid( ret + 1 ) ); + TInt ret = aNewValue.Find( KComma ); + if( ( ret == KErrNotFound ) || ( ret == ( keyValueLength - 1 ) ) ) + { + DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (bad CR key value input) OUT" )); + return; //bad CR key value input + } + if( ret > KApaMaxAppGroupName ) + { + return; + } + folder.Copy( aNewValue.Left( ret ) ); + if( aNewValue.Length() - ret > tempBuf.MaxLength() ) + { + return; + } + tempBuf.Copy( aNewValue.Mid( ret + 1 ) ); - TInt posUid = tempBuf.Find( KComma ); - if ( KErrNotFound != posUid ) + TInt posUid = tempBuf.Find( KComma ); + if( KErrNotFound != posUid ) { - if( posUid>KTimeStampBufferLength ) + if( posUid > KTimeStampBufferLength ) { return; } - timeStamp.Copy( tempBuf.Left(posUid) ); - if( tempBuf.Length()-(posUid+1) > KUidStringLength ) + timeStamp.Copy( tempBuf.Left( posUid ) ); + if( tempBuf.Length() - ( posUid + 1 ) > KUidStringLength ) { return; } iCRKeyFolderItemUid.Copy( tempBuf.Mid( posUid + 1 ) ); } - else + else { - if( tempBuf.Length()>KTimeStampBufferLength ) - { - return; - } + if( tempBuf.Length() > KTimeStampBufferLength ) + { + return; + } timeStamp.Copy( tempBuf ); } - TTime currentTime; - currentTime.HomeTime(); - TTimeIntervalSeconds interval; + TTime currentTime; + currentTime.HomeTime(); + TTimeIntervalSeconds interval; - TTime timeStampTime; - ret = timeStampTime.Set(timeStamp); + TTime timeStampTime; + ret = timeStampTime.Set( timeStamp ); - if(ret == KErrGeneral ) - { - DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (bad timestamp) OUT" )); + if( ret == KErrGeneral ) + { + DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (bad timestamp) OUT" )); return; // bad time stamp value - } + } - ret = currentTime.SecondsFrom( timeStampTime, interval ); + ret = currentTime.SecondsFrom( timeStampTime, interval ); - if( interval.Int() < 0 ) - {//negative timestamp is set ahead of current time...! - DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (negative interval) OUT" )); + if( interval.Int() < 0 ) + {//negative timestamp is set ahead of current time...! + DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (negative interval) OUT" )); return; - } + } - if(( interval.Int()) > KTimeStampCutOff ) - {//positive timestamp but more than 5 seconds - DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (more than 5 seconds) OUT" )); + if( ( interval.Int() ) > KTimeStampCutOff ) + {//positive timestamp but more than 5 seconds + DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (more than 5 seconds) OUT" )); return; - } - else - { - iCRKeyFolderName.Copy(folder); - } + } + else + { + iCRKeyFolderName.Copy( folder ); + } + } + DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName OUT" )); } - DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName OUT" )); - } // --------------------------------------------------------------------------- // @@ -547,7 +545,6 @@ // void CHnRepositoryShowFolderObserver::GetShowFolderGroupNameL() { - CHnMdBaseKey* inDataKey = HnMdKeyFactory::CreateL( KInData8, KKeyTypeMap, KDefaultParentId8 ); CleanupStack::PushL( inDataKey ); @@ -611,13 +608,13 @@ // --------------------------------------------------------------------------- // TInt CHnRepositoryShowFolderObserver::HandleNotifyL( - TInt /*aCmdId*/, - TInt aEventId, - CLiwGenericParamList& aEventParamList, - const CLiwGenericParamList& /*aInParamList*/) - { - DEBUG(("_MM_:CHnRepositoryShowFolderObserver::HandleNotifyL IN")); - if( aEventId == KLiwEventCanceled ) + TInt /*aCmdId*/, + TInt aEventId, + CLiwGenericParamList& aEventParamList, + const CLiwGenericParamList& /*aInParamList*/) + { + DEBUG(("_MM_:CHnRepositoryShowFolderObserver::HandleNotifyL IN")); + if( aEventId == KLiwEventCanceled ) { return KErrNotFound; } @@ -772,4 +769,248 @@ return KErrNone; } +// class CHnRepositoryOpenItemObserver +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +CHnRepositoryOpenItemObserver * CHnRepositoryOpenItemObserver::NewL( + THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid, const TUint32 aId ) + { + CHnRepositoryOpenItemObserver * self = CHnRepositoryOpenItemObserver::NewLC( + aCmnPtrs, aRepositoryUid, aId ); + CleanupStack::Pop(self); + return self; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +CHnRepositoryOpenItemObserver * CHnRepositoryOpenItemObserver::NewLC( + THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid, const TUint32 aId ) + { + CHnRepositoryOpenItemObserver * self = new (ELeave) CHnRepositoryOpenItemObserver( + aCmnPtrs, aId ); + CleanupStack::PushL(self); + self->ConstructL( aRepositoryUid ); + return self; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void CHnRepositoryOpenItemObserver::ConstructL( const TUid aRepositoryUid ) + { + CHnRepositoryObserver::ConstructL( aRepositoryUid ); + TInt ret = iRepository->Create( iId, KBlank ); + iNotifyHandler = CCenRepNotifyHandler::NewL( *this, *iRepository, + CCenRepNotifyHandler::EStringKey, iId ); + iNotifyHandler->StartListeningL(); + } + + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +CHnRepositoryOpenItemObserver::CHnRepositoryOpenItemObserver( + THnMdCommonPointers* aCmnPtrs, TUint32 aId ) : + CHnRepositoryObserver( aCmnPtrs, aId ) + { + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +CHnRepositoryOpenItemObserver::~CHnRepositoryOpenItemObserver() + { + iRepository->Delete( iId ); + delete iServiceHandler; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void CHnRepositoryOpenItemObserver::HandleNotifyString( + TUint32 aId, const TDesC16& aNewValue ) + { + TRAP_IGNORE( HandleNotifyStringL( aId, aNewValue ) ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void CHnRepositoryOpenItemObserver::HandleNotifyStringL( + TUint32 aId, const TDesC16& aNewValue ) + { + DEBUG(("_MM_:CHnRepositoryOpenItemObserver::HandleNotifyStringL IN")); + DEBUG(("\tID: %d : %S", aId, &aNewValue)); + + // Open item + if( aId == iId && aNewValue.Length()) + { + ShowFolderL( aNewValue ); + } + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +TInt CHnRepositoryOpenItemObserver::HandleNotifyL( + TInt /*aCmdId*/, + TInt aEventId, + CLiwGenericParamList& aEventParamList, + const CLiwGenericParamList& /*aInParamList*/) + { + DEBUG(("_MM_:CHnRepositoryOpenItemObserver::HandleNotifyL IN")); + if( aEventId == KLiwEventCanceled ) + { + return KErrNotFound; + } + else + { + TInt pos( 0 ); + const TLiwGenericParam* first = aEventParamList.FindFirst( + pos, KReturnValue8() ); + if( pos == KErrNotFound ) + { + return KErrNotFound; + } + + TInt count = first->Value().AsList()->Count(); + if( count == 0 ) + { + return KErrNotFound; + } + + TLiwVariant varId; + varId.PushL(); + TLiwVariant varAppGroupName; + varAppGroupName.PushL(); + TLiwVariant varSuiteName; + varSuiteName.PushL(); + TLiwVariant varChildrenCount; + varChildrenCount.PushL(); + + HnLiwUtils::GetVariantL( aEventParamList, KIdPath8, 0, varId ); + HnLiwUtils::GetVariantL( aEventParamList, KAppGroupNamePath8, 0, varAppGroupName ); + HnLiwUtils::GetVariantL( aEventParamList, KTitleNamePath8, 0, varSuiteName ); + HnLiwUtils::GetVariantL( aEventParamList, KChildrenCountPath8, 0, varChildrenCount ); + + CLiwGenericParamList* paramList = CLiwGenericParamList::NewL(); + CleanupStack::PushL( paramList ); + + CLiwDefaultMap* map = CLiwDefaultMap::NewLC(); + + paramList->AppendL( TLiwGenericParam( KSuiteName8, TLiwVariant( + KFolderSuite ) ) ); + + map->InsertL( KSuiteName8, varSuiteName ); + map->InsertL( KFolderId8, varId ); + map->InsertL( KRemoveLocked8, TLiwVariant( KStringFalse8 ) ); + map->InsertL( KParentFolderId8, varId ); + map->InsertL( KTmpParentFolderId8, varId ); + map->InsertL( KMcsAppGroupName8, varAppGroupName ); + + paramList->AppendL( TLiwGenericParam( KParams8, TLiwVariant( map ) ) ); + + CleanupStack::PopAndDestroy( map ); + + while( iCmnPtrs->iModel->LoadedSuitesCount() > 1 ) + { + CHnMdSuite* suite = iCmnPtrs->iModel->GetLastSuite(); + iCmnPtrs->iContainer->PopSuiteModelL( suite->SuiteName() ); + iCmnPtrs->iModel->DeleteLastSuite(); + } + + if( iCmnPtrs->iContainer->GetLastSuiteModel()->CustomId() + != varId.AsTInt64() ) + { + iCmnPtrs->iModelEventObserver->HandleModelEventL( + KNewSuiteLoadedMdEvent, *paramList ); + iCmnPtrs->iModel->QueueForeground( + CHnMdModel::EWhenCurrentTopSuiteIsEvaluated ); + } + else + { + iCmnPtrs->iContainer->GetLastSuiteModel()->NotifyObserversL( + ESuiteModelInitialized ); + CLiwGenericParamList* paramList = CLiwGenericParamList::NewL(); + CleanupStack::PushL( paramList ); + iCmnPtrs->iModelEventObserver->HandleModelEventL( + KAppGainForeground, *paramList ); + CleanupStack::PopAndDestroy( paramList ); + } + + iRepository->Set( iId, KBlank ); // reset key repository to empty string + + CleanupStack::PopAndDestroy( paramList ); + CleanupStack::PopAndDestroy( &varChildrenCount ); + CleanupStack::PopAndDestroy( &varSuiteName ); + CleanupStack::PopAndDestroy( &varAppGroupName ); + CleanupStack::PopAndDestroy( &varId ); + } + + DEBUG(("_MM_:CHnRepositoryOpenItemObserver::HandleNotifyL OUT")); + return KErrNone; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void CHnRepositoryOpenItemObserver::ShowFolderL( const TDesC16& aFolderId ) + { + CHnMdBaseKey* inDataKey = HnMdKeyFactory::CreateL( + KInData8, KKeyTypeMap, KDefaultParentId8 ); + CleanupStack::PushL( inDataKey ); + inDataKey->AddSubKeyL( + HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuFolder8 ) ); + inDataKey->AddSubKeyL( + HnMdKeyFactory::CreateL( KIdParam, KKeyTypeInteger, aFolderId ) ); + inDataKey->AddSubKeyL( + HnMdKeyFactory::CreateL( KParentOnly8, KKeyTypeBoolean, KStringTrue8 ) ); + + RPointerArray< CHnMdBaseKey > data; + CleanupClosePushL( data ); + data.Append( inDataKey ); + + CHnMdBaseKey* serviceData = HnMdKeyFactory::CreateL( + KServiceContentName, KKeyTypeString, KMatrixMenuData ); + CleanupStack::PushL( serviceData ); + + RPointerArray< CHnMdBaseKey> constructor; + CleanupClosePushL( constructor ); + constructor.Append( serviceData ); + CLiwGenericParamList* constructorLiw = CLiwGenericParamList::NewLC(); + CLiwGenericParamList* commandLiw = CLiwGenericParamList::NewLC(); + HnLiwUtils::SetGenericParamListL( constructor, *constructorLiw ); + HnLiwUtils::SetGenericParamListL( data, *commandLiw ); + + TBuf8< KMaxLength > interface( KMCSDataSourceInterface8 ); + + delete iServiceHandler; + iServiceHandler = NULL; + iServiceHandler = CHnServiceHandler::NewL( + KMCSService8, interface, KCmdGetList8, + EServiceModeAsynchronous, constructorLiw, commandLiw ); + + CleanupStack::Pop( commandLiw ); + CleanupStack::Pop( constructorLiw ); + + iServiceHandler->ExecuteL( this ); + + CleanupStack::PopAndDestroy( &constructor ); + CleanupStack::PopAndDestroy( serviceData ); + CleanupStack::PopAndDestroy( &data ); + CleanupStack::PopAndDestroy( inDataKey ); + + } + // End of File diff -r 3321d3e205b6 -r b01126ce0bec menufw/menusuites/foldersuite/loc/matrixmenudata.loc Binary file menufw/menusuites/foldersuite/loc/matrixmenudata.loc has changed diff -r 3321d3e205b6 -r b01126ce0bec taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h --- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h Tue Sep 14 20:58:58 2010 +0300 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h Wed Sep 15 12:00:00 2010 +0300 @@ -303,6 +303,11 @@ void RenderContentL( ); /** + * Prepare bitmap for item. + */ + CGulIcon* CreateItemIconLC( CTsFswEntry* aEntry, TBool aIsScreenshot ); + + /** * Creates the ganes grid control. */ void ReCreateGridL(); @@ -384,6 +389,11 @@ */ TBool LongTapAnimForPos( const TPoint& aHitPoint ); + /** + * Count grid rectangle based on given item position + */ + TRect CountCenteredGridRect( TPoint aItemPosition); + private: // Data // parent control @@ -458,6 +468,7 @@ // Screenshot handling RArray iPrevScreenshots; + RArray iPrevWgIds; }; #endif // TSFASTSWAPAREA_H diff -r 3321d3e205b6 -r b01126ce0bec taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapareautils.h --- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapareautils.h Tue Sep 14 20:58:58 2010 +0300 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapareautils.h Wed Sep 15 12:00:00 2010 +0300 @@ -198,6 +198,17 @@ CFbsBitmap* CopyBitmapL( TInt aFbsHandle, TSize aSize, TBool aIsScreenshot ); /** + * Duplicates handle to bitmap. + */ + CFbsBitmap* DuplicateBitmapLC( TInt aFbsHandle ); + + /** + * Duplicates handle to bitmap. + */ + void ScaleBitmapL( CFbsBitmap* aSourceBitmap, + CFbsBitmap* aTargetBitmap ); + + /** * Cancels ongoing scale tasks */ void CancelScaleTasks(); diff -r 3321d3e205b6 -r b01126ce0bec taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp --- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -584,10 +584,8 @@ TSLOG_CONTEXT( MoveAppToForeground, TSLOG_LOCAL ); TSLOG_IN(); - if ( !iUiStarted ) - { - TRAP_IGNORE( iUnderAppWgId = WgIdOfUnderlyingAppL(EFalse) ); - } + TRAP_IGNORE( iUnderAppWgId = WgIdOfUnderlyingAppL(EFalse) ); + iUiStarted = ETrue; // Request window server to bring our application diff -r 3321d3e205b6 -r b01126ce0bec taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp --- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -140,6 +140,7 @@ delete iLongTapAnimationTimer; delete iFastSwapExt; iPrevScreenshots.Close(); + iPrevWgIds.Close(); delete iEventSupressor; } @@ -273,7 +274,10 @@ CleanupStack::PopAndDestroy(&rects); - iGrid->SetRect(gridAppPane.Rect()); + TPoint position = iFastSwapExt->ItemViewPosition( SelectedIndex() ); + iGrid->SetRect( CountCenteredGridRect( position ) ); + + CTsAppUi* appUi = static_cast(iEikonEnv->AppUi()); @@ -692,6 +696,8 @@ CleanupClosePushL(strokeItemArray); RArray screenshotList; CleanupClosePushL(screenshotList); + RArray wgIdList; + CleanupClosePushL(wgIdList); // Update view based on number of items LayoutGridViewL( iArray.Count() ); @@ -711,20 +717,15 @@ formAppName.Append(appName); textArray->AppendL(formAppName); CleanupStack::PopAndDestroy(&formAppName); - TSize sz = iFastSwapExt->PreferredImageSize(); // take the screenshot or appicon+mask and make a copy and scale - CFbsBitmap* bitmap = 0; TInt h = iArray[i]->ScreenshotHandle(); TSLOG2( TSLOG_INFO, "'%S' screenshot handle %d", &appName, h ); - TInt maskh = 0; - CFbsBitmap* mask = 0; TBool isScreenshot( ETrue ); if ( !h ) { // No screenshot, take app icon h = iArray[i]->AppIconBitmapHandle(); - maskh = iArray[i]->AppIconMaskHandle(); isScreenshot = EFalse; TSLOG1( TSLOG_INFO, "using appicon, handle = %d", h ); } @@ -737,36 +738,13 @@ // check screenshot - if it exists already, use it // so there is no unnecessary scaling performed + CGulIcon* icon = CreateItemIconLC( iArray[i], isScreenshot ); + iconArray->AppendL(icon); + CleanupStack::Pop( icon ); //icon + screenshotList.AppendL( h ); - TInt idx = iPrevScreenshots.Find( h ); - if ( idx != KErrNotFound && oldIconArray && idx < oldIconArray->Count() ) - { - CGulIcon* existingIcon = oldIconArray->At( idx ); - if ( existingIcon->Bitmap() ) - { - h = existingIcon->Bitmap()->Handle(); - if ( existingIcon->Mask() ) - { - maskh = existingIcon->Mask()->Handle(); - } - isScreenshot = EFalse; - } - } - - // create bitmap for grid item - bitmap = iFastSwapExt->CopyBitmapL( h, sz, isScreenshot ); - CleanupStack::PushL( bitmap ); - if ( maskh ) - { - mask = iFastSwapExt->CopyBitmapL( maskh, sz, EFalse ); - } - CleanupStack::PushL( mask ); - - CGulIcon* icon = CGulIcon::NewL( bitmap, mask ); - CleanupStack::PushL(icon); - iconArray->AppendL(icon); - CleanupStack::Pop( 3, bitmap ); // mask, bitmap, icon - + wgIdList.AppendL( iArray[i]->WgId() ); + // Check if item can be closed if ( CanClose(i) && AknLayoutUtils::PenEnabled() ) { @@ -775,10 +753,14 @@ } // Update screenshot list iPrevScreenshots.Reset(); - for ( TInt i = 0; i < screenshotList.Count(); i++ ) + iPrevWgIds.Reset(); + for ( TInt i = 0; + i < screenshotList.Count() && i < wgIdList.Count(); i++ ) { iPrevScreenshots.AppendL( screenshotList[i] ); + iPrevWgIds.AppendL( wgIdList[i] ); } + CleanupStack::PopAndDestroy( &wgIdList ); CleanupStack::PopAndDestroy( &screenshotList ); // Setup grid @@ -814,6 +796,87 @@ TSLOG_OUT(); } +// -------------------------------------------------------------------------- +// CTsFastSwapArea::CreateItemIconLC +// -------------------------------------------------------------------------- +// +CGulIcon* CTsFastSwapArea::CreateItemIconLC( CTsFswEntry* aEntry, + TBool aIsScreenshot ) + { + TSize sz = iFastSwapExt->PreferredImageSize(); + CArrayPtr* oldIconArray = + iGrid->ItemDrawer()->FormattedCellData()->IconArray(); + + CFbsBitmap* bitmap = NULL; + CFbsBitmap* mask = NULL; + + TInt h = 0; + TInt maskh = 0; + if ( aIsScreenshot ) + { + h = aEntry->ScreenshotHandle(); + } + else + { + h = aEntry->AppIconBitmapHandle(); + maskh = aEntry->AppIconMaskHandle(); + } + + TInt idx = iPrevScreenshots.Find( h ); + TInt wgIdIdx = iPrevWgIds.Find( aEntry->WgId() ); + + if ( idx != KErrNotFound && idx == wgIdIdx + && oldIconArray && idx < oldIconArray->Count() ) + { + CGulIcon* existingIcon = oldIconArray->At( idx ); + if ( existingIcon->Bitmap() ) + { + bitmap = iFastSwapExt->DuplicateBitmapLC( + existingIcon->Bitmap()->Handle() ); + if ( existingIcon->Mask() ) + { + maskh = existingIcon->Mask()->Handle(); + mask = iFastSwapExt->DuplicateBitmapLC( maskh ); + } + } + } + else if ( idx == KErrNotFound && wgIdIdx != KErrNotFound + && oldIconArray && wgIdIdx < oldIconArray->Count() ) + { + CGulIcon* existingIcon = oldIconArray->At( wgIdIdx ); + if ( existingIcon->Bitmap() + && !existingIcon->Mask() ) + { + bitmap = iFastSwapExt->DuplicateBitmapLC( + existingIcon->Bitmap()->Handle() ); + CFbsBitmap* source = iFastSwapExt->DuplicateBitmapLC( h ); + iFastSwapExt->ScaleBitmapL( source, bitmap ); + CleanupStack::Pop( source ); + } + } + + // create bitmap for grid item + if ( !bitmap ) + { + bitmap = iFastSwapExt->CopyBitmapL( h, sz, aIsScreenshot ); + CleanupStack::PushL( bitmap ); + } + if ( !mask && maskh ) + { + mask = iFastSwapExt->CopyBitmapL( maskh, sz, EFalse ); + CleanupStack::PushL( mask ); + } + else if ( !mask ) + { + CleanupStack::PushL( mask ); + } + + CGulIcon* icon = CGulIcon::NewL( bitmap, mask ); + CleanupStack::Pop( 2, bitmap ); + CleanupStack::PushL( icon ); + return icon; + } + // -------------------------------------------------------------------------- // CTsFastSwapArea::CountComponentControls @@ -1074,13 +1137,18 @@ else if ( aPointerEvent.iType == TPointerEvent::EButton1Up ) { CancelLongTapAnimation( EFalse ); - if( iActivateOnPointerRelease != TPoint() || - iSupressDrag) + if( iActivateOnPointerRelease != TPoint() ) { iHandlePointerCandidate = ETrue; - TapL(iActivateOnPointerRelease); + TapL( iActivateOnPointerRelease ); iActivateOnPointerRelease = TPoint(); } + else if( iSupressDrag ) + { + iSupressDrag = EFalse; + iHandlePointerCandidate = ETrue; + TapL( iTapEvent.iParentPosition ); + } } } @@ -1525,17 +1593,7 @@ if ( aDrawNow ) { - TInt currentXPos = aPoint.iX; - currentXPos -= Rect().Width() / 2; - TRect gridViewRect = Rect(); - gridViewRect.iTl.iX = -currentXPos; - // Take edge offset into account - gridViewRect.iTl.iX += Rect().iTl.iX; - if(GridItemCount() && GridItemCount() <= iMaxItemsOnScreen) - { - // Center view - gridViewRect.iTl.iX += ( Rect().Width() - GridItemCount() * iGridItemWidth ) / 2; - } + TRect gridViewRect = CountCenteredGridRect( aPoint ); //iParent.DrawDeferred(); iGrid->DrawDeferred(); iGrid->SetRect( gridViewRect ); @@ -1598,6 +1656,10 @@ { iActivateOnPointerRelease = aPoint; } + else + { + iSupressDrag = EFalse; + } iGrid->ShowHighlight(); DrawNow(); } @@ -1761,4 +1823,24 @@ return EFalse; } +// ----------------------------------------------------------------------------- +// CTsFastSwapArea::CountCenteredGridRect +// ----------------------------------------------------------------------------- +// +TRect CTsFastSwapArea::CountCenteredGridRect( TPoint aItemPosition) + { + TInt currentXPos = aItemPosition.iX; + currentXPos -= Rect().Width() / 2; + TRect gridViewRect = Rect(); + gridViewRect.iTl.iX = -currentXPos; + // Take edge offset into account + gridViewRect.iTl.iX += Rect().iTl.iX; + if(GridItemCount() && GridItemCount() <= iMaxItemsOnScreen) + { + // Center view + gridViewRect.iTl.iX += ( Rect().Width() - GridItemCount() * iGridItemWidth ) / 2; + } + return gridViewRect; + } + // End of file diff -r 3321d3e205b6 -r b01126ce0bec taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapareautils.cpp --- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapareautils.cpp Tue Sep 14 20:58:58 2010 +0300 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapareautils.cpp Wed Sep 15 12:00:00 2010 +0300 @@ -514,9 +514,7 @@ CFbsBitmap* ret = new (ELeave) CFbsBitmap(); CleanupStack::PushL( ret ); - CFbsBitmap* bmp = new (ELeave) CFbsBitmap(); - CleanupStack::PushL( bmp ); - User::LeaveIfError( bmp->Duplicate( aFbsHandle ) ); + CFbsBitmap* bmp = DuplicateBitmapLC( aFbsHandle ); // First scale using normal method, to show "draft" screenshots. // Do not always use aSize, preserving the aspect ratio is quite @@ -528,11 +526,7 @@ // Second, if it is screenshot, perform quality improvement scaling if ( aIsScreenshot ) { - CTsBitmapScaleTask* rotaTask = new (ELeave) CTsBitmapScaleTask( *this ); - CleanupStack::PushL( rotaTask ); - iScaleTasks.AppendL( rotaTask ); - rotaTask->StartLD( bmp, ret ); // ownership of bmp transferred - CleanupStack::Pop( rotaTask ); + ScaleBitmapL( bmp, ret ); CleanupStack::Pop( bmp ); } else @@ -544,6 +538,32 @@ return ret; } +// -------------------------------------------------------------------------- +// CTsFastSwapAreaExtension::DuplicateBitmapL +// -------------------------------------------------------------------------- +// +CFbsBitmap* CTsFastSwapAreaExtension::DuplicateBitmapLC( TInt aFbsHandle ) + { + CFbsBitmap* bmp = new (ELeave) CFbsBitmap(); + CleanupStack::PushL( bmp ); + User::LeaveIfError( bmp->Duplicate( aFbsHandle ) ); + return bmp; + } + +// -------------------------------------------------------------------------- +// CTsFastSwapAreaExtension::ScaleBitmapL +// -------------------------------------------------------------------------- +// +void CTsFastSwapAreaExtension::ScaleBitmapL( CFbsBitmap* aSourceBitmap, + CFbsBitmap* aTargetBitmap ) + { + CTsBitmapScaleTask* rotaTask = new (ELeave) CTsBitmapScaleTask( *this ); + CleanupStack::PushL( rotaTask ); + iScaleTasks.AppendL( rotaTask ); + rotaTask->StartLD( aSourceBitmap, aTargetBitmap ); + // ownership of bmp transferred + CleanupStack::Pop( rotaTask ); + } // -------------------------------------------------------------------------- // CTsFastSwapAreaExtension::CancelScaleTasks