# HG changeset patch # User Dario Sestito # Date 1284734236 -3600 # Node ID 9f918e9840813f54df3e264b0b46c686300a6a96 # Parent 3321d3e205b60df74896ea89b7ad1959443d4537# Parent 20d75ec6647e3a219a98e7c829b1cc4ed12ec250 Merge in fixes for bug 1972 and bug 2840 diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/common/empty_2001f47f/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/common/empty_2001f47f/group/bld.inf Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,55 @@ +/* +* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* The information required for building +* +*/ + +#include + +PRJ_PLATFORMS +DEFAULT + +PRJ_EXPORTS +// Support for productization and Carbide.Ui customization +//******************************************************** +../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/empty_2001f47f/hsps/manifest.dat +../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/empty_2001f47f/hsps/widgetconfiguration.xml +../xuikon/00/empty.dat /epoc32/data/Z/resource/homescreen/empty_2001f47f/xuikon/empty_2001f47f.dat +../xuikon/00/empty.css /epoc32/data/Z/resource/homescreen/empty_2001f47f/xuikon/empty.css +../xuikon/00/empty.xml /epoc32/data/Z/resource/homescreen/empty_2001f47f/xuikon/empty.xml + +// Support for S60 builds +//*********************** +../rom/empty_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(empty_2001f47f_variant.iby) +../rom/empty.iby CORE_APP_LAYER_IBY_EXPORT_PATH(empty_2001f47f.iby) + +// Dtd-localization +//***************** +PRJ_EXTENSIONS +START EXTENSION tools/dtd +OPTION SWITCH_LOC_FILE_NAME empty_2001f47f +OPTION DTD_TYPE widget +OPTION LOC_FOLDERS yes +END + +PRJ_MMPFILES + +PRJ_TESTMMPFILES + +// End of File + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/common/empty_2001f47f/hsps/00/manifest.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/common/empty_2001f47f/hsps/00/manifest.dat Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,60 @@ + + + + + + qhd_tch + vga_tch + + + + widget + + + + + + 0x2001f48a + + + + + + 0x101fb657 + + + + + + 0x2001f47f + + + + + + &qtn_empty_2001f47f_name; + + empty + + 1.0 + + + + + + widgetconfiguration.xml + + + + + empty.o0000 + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/common/empty_2001f47f/hsps/00/widgetconfiguration.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/common/empty_2001f47f/hsps/00/widgetconfiguration.xml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,5 @@ + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/common/empty_2001f47f/rom/empty.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/common/empty_2001f47f/rom/empty.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,26 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Empty widget HSPS-plugin IBY file +* +*/ + +#ifndef __EMPTY_2001F47F_IBY__ +#define __EMPTY_2001F47F_IBY__ + +// Enabled by DTD-localization tools +data=ZPRIVATE\200159c0\install\empty_2001f47f\xuikon\00\empty.o0000 \private\200159c0\install\empty_2001f47f\xuikon\00\empty.o0000 +data=ZPRIVATE\200159c0\install\empty_2001f47f\hsps\00\manifest.dat \private\200159c0\install\empty_2001f47f\hsps\00\manifest.dat + +#endif // __EMPTY_2001F47F_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/common/empty_2001f47f/rom/empty_variant.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/common/empty_2001f47f/rom/empty_variant.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,25 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Empty widget HSPS-plugin variant specific IBY file. +* +*/ + +#ifndef __EMPTY_2001F47F_VARIANT_IBY__ +#define __EMPTY_2001F47F_VARIANT_IBY__ + +// Enabled by variation tools, variant specific +data=ZPRIVATE\200159c0\install\empty_2001f47f\hsps\00\widgetconfiguration.xml \private\200159c0\install\empty_2001f47f\hsps\00\widgetconfiguration.xml + +#endif // __EMPTY_2001F47F_VARIANT_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/common/empty_2001f47f/xuikon/00/empty.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/common/empty_2001f47f/xuikon/00/empty.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,6 @@ +widget +{ + display: none; + visibility: hidden; +} + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/common/empty_2001f47f/xuikon/00/empty.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/common/empty_2001f47f/xuikon/00/empty.dat Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,11 @@ + + + E029CF57 + 101FB657 + 11001001 + empty + empty + 1.0 + empty.xml + empty.css + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/common/empty_2001f47f/xuikon/00/empty.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/common/empty_2001f47f/xuikon/00/empty.xml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,4 @@ + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/common/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/common/group/bld.inf Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,24 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: The information required for building +* +*/ + +#include "../empty_2001f47f/group/bld.inf" +#include "../view_200286ed/group/bld.inf" + +PRJ_PLATFORMS +DEFAULT + +PRJ_EXPORTS diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/common/view_200286ed/conf/view200286ed.confml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/common/view_200286ed/conf/view200286ed.confml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,96 @@ + + + + + Widgets on Blanko Homescreen + + Widget name + + + Bundle identifier for the (C)WRT widgets. Leave empty if not set. + + + Templeate identifier for the (C)WRT widgets. None for the native widgets + + + Locking status + + + + + + + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/common/view_200286ed/conf/view200286ed.gcfml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/common/view_200286ed/conf/view200286ed.gcfml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/common/view_200286ed/conf/view200286edmanifest.confml Binary file idlehomescreen/data/common/view_200286ed/conf/view200286edmanifest.confml has changed diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/common/view_200286ed/conf/view200286edmanifest.gcfml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/common/view_200286ed/conf/view200286edmanifest.gcfml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + & + + ; + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/common/view_200286ed/conf/view200286edxuikon.confml Binary file idlehomescreen/data/common/view_200286ed/conf/view200286edxuikon.confml has changed diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/common/view_200286ed/conf/view200286edxuikon.gcfml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/common/view_200286ed/conf/view200286edxuikon.gcfml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/common/view_200286ed/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/common/view_200286ed/group/bld.inf Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,40 @@ +/* +* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* The information required for building +* +*/ + +#include + +PRJ_PLATFORMS +DEFAULT + +PRJ_EXPORTS + +//Confml and cfgml files for the customization +// starting use confml it is need to remove root_configuration.xml direct exporting (view_200286e5_variant.iby) +//*********************************** +../conf/view200286ed.confml APP_LAYER_CONFML(view200286ed.confml) +../conf/view200286ed.gcfml APP_LAYER_GCFML(view200286ed.gcfml) +../conf/view200286edmanifest.confml APP_LAYER_CONFML(view200286edmanifest.confml) +../conf/view200286edmanifest.gcfml APP_LAYER_GCFML(view200286edmanifest.gcfml) +../conf/view200286edxuikon.confml APP_LAYER_CONFML(view200286edxuikon.confml) +../conf/view200286edxuikon.gcfml APP_LAYER_GCFML(view200286edxuikon.gcfml) + +PRJ_MMPFILES + +PRJ_TESTMMPFILES + +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/group/bld.inf --- a/idlehomescreen/data/group/bld.inf Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/group/bld.inf Fri Sep 17 15:37:16 2010 +0100 @@ -16,7 +16,8 @@ */ -#include "../vga_tch/group/bld.inf" // Buzzidle +#include "../common/group/bld.inf" +// #include "../vga_tch/group/bld.inf" // Buzzidle #include "../qhd_tch/group/bld.inf" // Flashidle PRJ_PLATFORMS diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/widgetconfiguration.xml --- a/idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/widgetconfiguration.xml Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/widgetconfiguration.xml Fri Sep 17 15:37:16 2010 +0100 @@ -4,28 +4,28 @@ - + - - + + - + - + - + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/empty_2001f47f/group/bld.inf --- a/idlehomescreen/data/qhd_tch/empty_2001f47f/group/bld.inf Thu Sep 02 15:42:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* The information required for building -* -*/ - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS -// Support for productization and Carbide.Ui customization -//******************************************************** -../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/empty_2001f47f/hsps/manifest.dat -../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/empty_2001f47f/hsps/widgetconfiguration.xml -../xuikon/00/empty.dat /epoc32/data/Z/resource/homescreen/empty_2001f47f/xuikon/empty_2001f47f.dat -../xuikon/00/empty.css /epoc32/data/Z/resource/homescreen/empty_2001f47f/xuikon/empty.css -../xuikon/00/empty.xml /epoc32/data/Z/resource/homescreen/empty_2001f47f/xuikon/empty.xml - -// Support for S60 builds -//*********************** -../rom/empty_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(empty_2001f47f_variant.iby) -../rom/empty.iby CORE_APP_LAYER_IBY_EXPORT_PATH(empty_2001f47f.iby) - -// Dtd-localization -//***************** -PRJ_EXTENSIONS -START EXTENSION tools/dtd -OPTION SWITCH_LOC_FILE_NAME empty_2001f47f -OPTION DTD_TYPE widget -OPTION LOC_FOLDERS yes -END - -PRJ_MMPFILES - -PRJ_TESTMMPFILES - -// End of File - - - - diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/empty_2001f47f/hsps/00/manifest.dat --- a/idlehomescreen/data/qhd_tch/empty_2001f47f/hsps/00/manifest.dat Thu Sep 02 15:42:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ - - - - - - - qhd_tch - - - - widget - - - - - - 0x2001f48a - - - - - - 0x101fb657 - - - - - - 0x2001f47f - - - - - - &qtn_empty_2001f47f_name; - - empty - - 1.0 - - - - - - widgetconfiguration.xml - - - - - empty.o0000 - - - - - - - - - - diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/empty_2001f47f/hsps/00/widgetconfiguration.xml --- a/idlehomescreen/data/qhd_tch/empty_2001f47f/hsps/00/widgetconfiguration.xml Thu Sep 02 15:42:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ - - - - - diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/empty_2001f47f/rom/empty.iby --- a/idlehomescreen/data/qhd_tch/empty_2001f47f/rom/empty.iby Thu Sep 02 15:42:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -/* -* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* Empty widget HSPS-plugin IBY file -* -*/ - -#ifndef __EMPTY_2001F47F_IBY__ -#define __EMPTY_2001F47F_IBY__ - -#if defined(__LAYOUT_360_640_TOUCH) || defined(__LAYOUT_640_360_TOUCH) - -// Enabled by DTD-localization tools -data=ZPRIVATE\200159c0\install\empty_2001f47f\xuikon\00\empty.o0000 \private\200159c0\install\empty_2001f47f\xuikon\00\empty.o0000 -data=ZPRIVATE\200159c0\install\empty_2001f47f\hsps\00\manifest.dat \private\200159c0\install\empty_2001f47f\hsps\00\manifest.dat - -#endif // __LAYOUT_360_640_TOUCH || __LAYOUT_640_360_TOUCH - -#endif // __EMPTY_2001F47F_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/empty_2001f47f/rom/empty_variant.iby --- a/idlehomescreen/data/qhd_tch/empty_2001f47f/rom/empty_variant.iby Thu Sep 02 15:42:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -/* -* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* Empty widget HSPS-plugin variant specific IBY file. -* -*/ - -#ifndef __EMPTY_2001F47F_VARIANT_IBY__ -#define __EMPTY_2001F47F_VARIANT_IBY__ - -#if defined(__LAYOUT_360_640_TOUCH) || defined(__LAYOUT_640_360_TOUCH) - -// Enabled by variation tools, variant specific -data=ZPRIVATE\200159c0\install\empty_2001f47f\hsps\00\widgetconfiguration.xml \private\200159c0\install\empty_2001f47f\hsps\00\widgetconfiguration.xml - -#endif // __LAYOUT_360_640_TOUCH || __LAYOUT_640_360_TOUCH - -#endif // __EMPTY_2001F47F_VARIANT_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/empty_2001f47f/xuikon/00/empty.css --- a/idlehomescreen/data/qhd_tch/empty_2001f47f/xuikon/00/empty.css Thu Sep 02 15:42:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -widget -{ - display: none; - visibility: hidden; -} - diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/empty_2001f47f/xuikon/00/empty.dat --- a/idlehomescreen/data/qhd_tch/empty_2001f47f/xuikon/00/empty.dat Thu Sep 02 15:42:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ - - - E029CF57 - 101FB657 - 11001001 - empty - empty - 1.0 - empty.xml - empty.css - \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/empty_2001f47f/xuikon/00/empty.xml --- a/idlehomescreen/data/qhd_tch/empty_2001f47f/xuikon/00/empty.xml Thu Sep 02 15:42:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ - - - - diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/group/bld.inf --- a/idlehomescreen/data/qhd_tch/group/bld.inf Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/group/bld.inf Fri Sep 17 15:37:16 2010 +0100 @@ -16,7 +16,6 @@ */ #include "../desktop_20026f4f/group/bld.inf" -#include "../empty_2001f47f/group/bld.inf" #include "../onerow_2001f480/group/bld.inf" #include "../tworows_2001f488/group/bld.inf" #include "../threerows_2001f486/group/bld.inf" @@ -28,7 +27,6 @@ #include "../view_20022fe0/group/bld.inf" #include "../view_200286e4/group/bld.inf" #include "../view_200286e5/group/bld.inf" -#include "../view_200286ed/group/bld.inf" #include "../templateview_20026f50/group/bld.inf" #include "../root_2001f482/group/bld.inf" diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/00/onerow.css --- a/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/00/onerow.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/00/onerow.css Fri Sep 17 15:37:16 2010 +0100 @@ -1,30 +1,40 @@ widget#onerow_template { block-progression:rl; + } image#image_container { - padding-top:8px; - padding-bottom:8px; - padding-left:8px; - padding-right:8px; - height: 90%; - width: 20%; + height: 70px; + width: 70px; + margin-top:3px; + margin-bottom:3px; + margin-left:3px; + margin-right:2px; + padding-top:3px; + padding-bottom:3px; + padding-left:3px; + padding-right:3px; nav-index:appearance; _s60-aspect-ratio:preserve; } text { - padding-left:8px; - padding-right:8px; - font-line-space: 15; - text-align:left; + font-size:3.5u; + margin-left:2px; + margin-right:3px; + margin-top:3px; + margin-bottom:3px; + padding-top:3px; + padding-bottom:3px; + padding-left:3px; + padding-right:3px; + text-align:center; text-overflow-mode: wrap; max-line-amount: 2; font-family: EAknLogicalFontSecondaryFont; - font-size: 23px; color: "SKIN(268458534 13056 74)"; nav-index:appearance; } diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/37/onerow.css --- a/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/37/onerow.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/37/onerow.css Fri Sep 17 15:37:16 2010 +0100 @@ -6,27 +6,36 @@ image#image_container { - padding-top:8px; - padding-bottom:8px; - padding-left:8px; - padding-right:8px; - height: 90%; - width: 20%; + height: 70px; + width: 70px; + margin-top:3px; + margin-bottom:3px; + margin-left:3px; + margin-right:2px; + padding-top:3px; + padding-bottom:3px; + padding-left:3px; + padding-right:3px; nav-index:appearance; _s60-aspect-ratio:preserve; } text { - padding-left:8px; - padding-right:8px; - font-line-space: 15; + font-size:3.5u; + margin-left:2px; + margin-right:3px; + margin-top:3px; + margin-bottom:3px; + padding-top:3px; + padding-bottom:3px; + padding-left:3px; + padding-right:3px; direction: ltr; - text-align: right; + text-align:center; text-overflow-mode: wrap; max-line-amount: 2; font-family: EAknLogicalFontSecondaryFont; - font-size: 23px; color: "SKIN(268458534 13056 74)"; nav-index:appearance; } diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/50/onerow.css --- a/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/50/onerow.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/50/onerow.css Fri Sep 17 15:37:16 2010 +0100 @@ -6,27 +6,36 @@ image#image_container { - padding-top:8px; - padding-bottom:8px; - padding-left:8px; - padding-right:8px; - height: 90%; - width: 20%; + height: 70px; + width: 70px; + margin-top:3px; + margin-bottom:3px; + margin-left:3px; + margin-right:2px; + padding-top:3px; + padding-bottom:3px; + padding-left:3px; + padding-right:3px; nav-index:appearance; _s60-aspect-ratio:preserve; } text { - padding-left:8px; - padding-right:8px; - font-line-space: 15; + font-size:3.5u; + margin-left:2px; + margin-right:3px; + margin-top:3px; + margin-bottom:3px; + padding-top:3px; + padding-bottom:3px; + padding-left:3px; + padding-right:3px; direction: ltr; - text-align: right; + text-align:center; text-overflow-mode: wrap; max-line-amount: 2; font-family: EAknLogicalFontSecondaryFont; - font-size: 23px; color: "SKIN(268458534 13056 74)"; nav-index:appearance; } diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/57/onerow.css --- a/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/57/onerow.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/57/onerow.css Fri Sep 17 15:37:16 2010 +0100 @@ -6,27 +6,36 @@ image#image_container { - padding-top:8px; - padding-bottom:8px; - padding-left:8px; - padding-right:8px; - height: 90%; - width: 20%; + height: 70px; + width: 70px; + margin-top:3px; + margin-bottom:3px; + margin-left:3px; + margin-right:2px; + padding-top:3px; + padding-bottom:3px; + padding-left:3px; + padding-right:3px; nav-index:appearance; _s60-aspect-ratio:preserve; } text { - padding-left:8px; - padding-right:8px; - font-line-space: 15; + font-size:3.5u; + margin-left:2px; + margin-right:3px; + margin-top:3px; + margin-bottom:3px; + padding-top:3px; + padding-bottom:3px; + padding-left:3px; + padding-right:3px; direction: ltr; - text-align: right; + text-align:center; text-overflow-mode: wrap; max-line-amount: 2; font-family: EAknLogicalFontSecondaryFont; - font-size: 23px; color: "SKIN(268458534 13056 74)"; nav-index:appearance; } diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/94/onerow.css --- a/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/94/onerow.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/94/onerow.css Fri Sep 17 15:37:16 2010 +0100 @@ -6,27 +6,36 @@ image#image_container { - padding-top:8px; - padding-bottom:8px; - padding-left:8px; - padding-right:8px; - height: 90%; - width: 20%; + height: 70px; + width: 70px; + margin-top:3px; + margin-bottom:3px; + margin-left:3px; + margin-right:2px; + padding-top:3px; + padding-bottom:3px; + padding-left:3px; + padding-right:3px; nav-index:appearance; _s60-aspect-ratio:preserve; } text { - padding-left:8px; - padding-right:8px; - font-line-space: 15; + font-size:3.5u; + margin-left:2px; + margin-right:3px; + margin-top:3px; + margin-bottom:3px; + padding-top:3px; + padding-bottom:3px; + padding-left:3px; + padding-right:3px; direction: ltr; - text-align: right; + text-align:center; text-overflow-mode: wrap; max-line-amount: 2; font-family: EAknLogicalFontSecondaryFont; - font-size: 23px; color: "SKIN(268458534 13056 74)"; nav-index:appearance; } diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.css --- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.css Fri Sep 17 15:37:16 2010 +0100 @@ -9,20 +9,30 @@ block-progression: lr; } -clock +clock#clock { width: 152px; margin-right: 3px; padding-top: 2px; padding-bottom: 2px; _s60-format: locale; - _s60-ampm-font-size: 16px; - _s60-digital-font-size: 56px; + _s60-font-size: 56px; color: "SKIN(268458534 13056 74)"; background-color: "SKIN(268458534 9916)"; nav-index: appearance; } +ampm +{ + position: absolute; + width: 46px; + height: 20px; + left: 88px; + top: 60px; + text-align: right; + _s60-font-size: 16px; +} + box.clock_profile { background-color: "SKIN(268458534 9916)"; @@ -36,34 +46,22 @@ block-progression: tb; } -box#date_container +clock#date_content { width: auto; height: 26px; - block-progression: lr; - margin-bottom: 3px; - padding-bottom: 2px; -} - -box#date_content -{ - width: adaptive; - height: adaptive; margin-left: auto; margin-right: auto; + margin-bottom: 3px; + padding-bottom: 2px; + color:"SKIN(268458534 13056 74)"; + background-color: "SKIN(268458534 9916)"; + nav-index: appearance; } -text#date_text +date { - text-align: center; - margin-left: 2px; - margin-right: 2px; - width: adaptive; - height: adaptive; - font-family: EAknLogicalFontSecondaryFont; - font-size: 3.5u; - _s60-text-valign: top; - color:"SKIN(268458534 13056 74)"; + _s60-font-size: 3.5u; } box#profile_softindicator diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.xml --- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.xml Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.xml Fri Sep 17 15:37:16 2010 +0100 @@ -9,6 +9,14 @@ + + + + + + + + @@ -17,20 +25,16 @@ - - - - - - - + + + - - + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/37/profile.css --- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/37/profile.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/37/profile.css Fri Sep 17 15:37:16 2010 +0100 @@ -9,20 +9,30 @@ block-progression: lr; } -clock +clock#clock { width: 152px; margin-left: 3px; padding-top: 2px; padding-bottom: 2px; _s60-format: locale; - _s60-ampm-font-size: 16px; - _s60-digital-font-size: 56px; + _s60-font-size: 56px; color: "SKIN(268458534 13056 74)"; background-color: "SKIN(268458534 9916)"; nav-index: appearance; } +ampm +{ + position: absolute; + width: 46px; + height: 20px; + left: 88px; + top: 60px; + text-align: right; + _s60-font-size: 16px; +} + box.clock_profile { background-color: "SKIN(268458534 9916)"; @@ -36,34 +46,22 @@ block-progression: tb; } -box#date_container +clock#date_content { width: auto; height: 26px; - block-progression: rl; - margin-bottom: 3px; - padding-bottom: 2px; -} - -box#date_content -{ - width: adaptive; - height: adaptive; margin-left: auto; margin-right: auto; + margin-bottom: 3px; + padding-bottom: 2px; + color:"SKIN(268458534 13056 74)"; + background-color: "SKIN(268458534 9916)"; + nav-index: appearance; } -text#date_text +date { - text-align: center; - margin-left: 2px; - margin-right: 2px; - width: adaptive; - height: adaptive; - font-family: EAknLogicalFontSecondaryFont; - font-size: 3.5u; - _s60-text-valign: top; - color:"SKIN(268458534 13056 74)"; + _s60-font-size: 3.5u; } box#profile_softindicator diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/50/profile.css --- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/50/profile.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/50/profile.css Fri Sep 17 15:37:16 2010 +0100 @@ -9,20 +9,30 @@ block-progression: lr; } -clock +clock#clock { width: 152px; margin-left: 3px; padding-top: 2px; padding-bottom: 2px; _s60-format: locale; - _s60-ampm-font-size: 16px; - _s60-digital-font-size: 56px; + _s60-font-size: 56px; color: "SKIN(268458534 13056 74)"; background-color: "SKIN(268458534 9916)"; nav-index: appearance; } +ampm +{ + position: absolute; + width: 46px; + height: 20px; + left: 88px; + top: 60px; + text-align: right; + _s60-font-size: 16px; +} + box.clock_profile { background-color: "SKIN(268458534 9916)"; @@ -36,34 +46,22 @@ block-progression: tb; } -box#date_container +clock#date_content { width: auto; height: 26px; - block-progression: rl; - margin-bottom: 3px; - padding-bottom: 2px; -} - -box#date_content -{ - width: adaptive; - height: adaptive; margin-left: auto; margin-right: auto; + margin-bottom: 3px; + padding-bottom: 2px; + color:"SKIN(268458534 13056 74)"; + background-color: "SKIN(268458534 9916)"; + nav-index: appearance; } -text#date_text +date { - text-align: center; - margin-left: 2px; - margin-right: 2px; - width: adaptive; - height: adaptive; - font-family: EAknLogicalFontSecondaryFont; - font-size: 3.5u; - _s60-text-valign: top; - color:"SKIN(268458534 13056 74)"; + _s60-font-size: 3.5u; } box#profile_softindicator diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/57/profile.css --- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/57/profile.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/57/profile.css Fri Sep 17 15:37:16 2010 +0100 @@ -9,20 +9,30 @@ block-progression: lr; } -clock +clock#clock { width: 152px; margin-left: 3px; padding-top: 2px; padding-bottom: 2px; _s60-format: locale; - _s60-ampm-font-size: 16px; - _s60-digital-font-size: 56px; + _s60-font-size: 56px; color: "SKIN(268458534 13056 74)"; background-color: "SKIN(268458534 9916)"; nav-index: appearance; } +ampm +{ + position: absolute; + width: 46px; + height: 20px; + left: 88px; + top: 60px; + text-align: right; + _s60-font-size: 16px; +} + box.clock_profile { background-color: "SKIN(268458534 9916)"; @@ -36,34 +46,22 @@ block-progression: tb; } -box#date_container +clock#date_content { width: auto; height: 26px; - block-progression: rl; - margin-bottom: 3px; - padding-bottom: 2px; -} - -box#date_content -{ - width: adaptive; - height: adaptive; margin-left: auto; margin-right: auto; + margin-bottom: 3px; + padding-bottom: 2px; + color:"SKIN(268458534 13056 74)"; + background-color: "SKIN(268458534 9916)"; + nav-index: appearance; } -text#date_text +date { - text-align: center; - margin-left: 2px; - margin-right: 2px; - width: adaptive; - height: adaptive; - font-family: EAknLogicalFontSecondaryFont; - font-size: 3.5u; - _s60-text-valign: top; - color:"SKIN(268458534 13056 74)"; + _s60-font-size: 3.5u; } box#profile_softindicator diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/94/profile.css --- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/94/profile.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/94/profile.css Fri Sep 17 15:37:16 2010 +0100 @@ -9,20 +9,30 @@ block-progression: lr; } -clock +clock#clock { width: 152px; margin-left: 3px; padding-top: 2px; padding-bottom: 2px; _s60-format: locale; - _s60-ampm-font-size: 16px; - _s60-digital-font-size: 56px; + _s60-font-size: 56px; color: "SKIN(268458534 13056 74)"; background-color: "SKIN(268458534 9916)"; nav-index: appearance; } +ampm +{ + position: absolute; + width: 46px; + height: 20px; + left: 88px; + top: 60px; + text-align: right; + _s60-font-size: 16px; +} + box.clock_profile { background-color: "SKIN(268458534 9916)"; @@ -36,34 +46,22 @@ block-progression: tb; } -box#date_container +clock#date_content { width: auto; height: 26px; - block-progression: rl; - margin-bottom: 3px; - padding-bottom: 2px; -} - -box#date_content -{ - width: adaptive; - height: adaptive; margin-left: auto; margin-right: auto; + margin-bottom: 3px; + padding-bottom: 2px; + color:"SKIN(268458534 13056 74)"; + background-color: "SKIN(268458534 9916)"; + nav-index: appearance; } -text#date_text +date { - text-align: center; - margin-left: 2px; - margin-right: 2px; - width: adaptive; - height: adaptive; - font-family: EAknLogicalFontSecondaryFont; - font-size: 3.5u; - _s60-text-valign: top; - color:"SKIN(268458534 13056 74)"; + _s60-font-size: 3.5u; } box#profile_softindicator diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/templateview_20026f50/loc/templateview.loc --- a/idlehomescreen/data/qhd_tch/templateview_20026f50/loc/templateview.loc Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/loc/templateview.loc Fri Sep 17 15:37:16 2010 +0100 @@ -308,3 +308,15 @@ // w: // r: TB9.2 #define qtn_hs_text_softkey_call "Call" + +// d: Lock keypad +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_lock_keypad "Lock keypad" + +// d: Menu +// l: nhd_control_pane_t2/opt7 +// w: +// r: TB9.2 +#define qtn_hs_apps_menu_skey "Menu" diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/view.dtd --- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/view.dtd Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/view.dtd Fri Sep 17 15:37:16 2010 +0100 @@ -494,3 +494,21 @@ qtn_hs_text_softkey_call.parents "" --> + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/00/threerows.css --- a/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/00/threerows.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/00/threerows.css Fri Sep 17 15:37:16 2010 +0100 @@ -5,29 +5,38 @@ image#image_container { - padding-top:8px; - padding-bottom:8px; - padding-left:8px; - padding-right:8px; - height: 90%; - width: 20%; + height: 70px; + width: 70px; + margin-top:3px; + margin-bottom:3px; + margin-left:3px; + margin-right:2px; + padding-top:3px; + padding-bottom:3px; + padding-left:3px; + padding-right:3px; + nav-index:appearance; _s60-aspect-ratio:preserve; - nav-index:appearance; } box#text_container { + direction: ltr; block-progression:tb; + margin-left:2px; + margin-right:3px; } text.text_box { - padding-left:8px; - padding-right:8px; - text-align:left; + padding-right:3px; + padding-left:3px; + padding-top:1px; + padding-bottom:1px; font-family: EAknLogicalFontSecondaryFont; - font-size: 23px; - color: "SKIN(268458534 13056 74)"; + font-size: 3.5u; + height:25px; + color:"SKIN(268458534 13056 74)"; nav-index:appearance; _s60-text-valign: top; } diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/37/threerows.css --- a/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/37/threerows.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/37/threerows.css Fri Sep 17 15:37:16 2010 +0100 @@ -6,30 +6,40 @@ image#image_container { - padding-top:8px; - padding-bottom:8px; - padding-left:8px; - padding-right:8px; - height: 90%; - width: 20%; + height: 70px; + width: 70px; + margin-top:3px; + margin-bottom:3px; + margin-left:3px; + margin-right:2px; + padding-top:3px; + padding-bottom:3px; + padding-left:3px; + padding-right:3px; + nav-index:appearance; _s60-aspect-ratio:preserve; - nav-index:appearance; } box#text_container { + direction: ltr; block-progression:tb; + margin-left:2px; + margin-right:3px; } text.text_box { - padding-left:8px; - padding-right:8px; + padding-right:3px; + padding-left:3px; + padding-top:1px; + padding-bottom:1px; direction: ltr; text-align: right; font-family: EAknLogicalFontSecondaryFont; - font-size: 23px; - color: "SKIN(268458534 13056 74)"; + font-size: 3.5u; + height:25px; + color:"SKIN(268458534 13056 74)"; nav-index:appearance; _s60-text-valign: top; } diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/50/threerows.css --- a/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/50/threerows.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/50/threerows.css Fri Sep 17 15:37:16 2010 +0100 @@ -6,30 +6,40 @@ image#image_container { - padding-top:8px; - padding-bottom:8px; - padding-left:8px; - padding-right:8px; - height: 90%; - width: 20%; + height: 70px; + width: 70px; + margin-top:3px; + margin-bottom:3px; + margin-left:3px; + margin-right:2px; + padding-top:3px; + padding-bottom:3px; + padding-left:3px; + padding-right:3px; + nav-index:appearance; _s60-aspect-ratio:preserve; - nav-index:appearance; } box#text_container { + direction: ltr; block-progression:tb; + margin-left:2px; + margin-right:3px; } text.text_box { - padding-left:8px; - padding-right:8px; + padding-right:3px; + padding-left:3px; + padding-top:1px; + padding-bottom:1px; direction: ltr; text-align: right; font-family: EAknLogicalFontSecondaryFont; - font-size: 23px; - color: "SKIN(268458534 13056 74)"; + font-size: 3.5u; + height:25px; + color:"SKIN(268458534 13056 74)"; nav-index:appearance; _s60-text-valign: top; } diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/57/threerows.css --- a/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/57/threerows.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/57/threerows.css Fri Sep 17 15:37:16 2010 +0100 @@ -6,31 +6,40 @@ image#image_container { - padding-top:8px; - padding-bottom:8px; - padding-left:8px; - padding-right:8px; - height: 90%; - width: 20%; + height: 70px; + width: 70px; + margin-top:3px; + margin-bottom:3px; + margin-left:3px; + margin-right:2px; + padding-top:3px; + padding-bottom:3px; + padding-left:3px; + padding-right:3px; + nav-index:appearance; _s60-aspect-ratio:preserve; - nav-index:appearance; } box#text_container { + direction: ltr; block-progression:tb; + margin-left:2px; + margin-right:3px; } text.text_box { - padding-left:8px; - padding-right:8px; + padding-right:3px; + padding-left:3px; + padding-top:1px; + padding-bottom:1px; direction: ltr; text-align: right; font-family: EAknLogicalFontSecondaryFont; - font-size: 23px; - color: "SKIN(268458534 13056 74)"; + font-size: 3.5u; + height:25px; + color:"SKIN(268458534 13056 74)"; nav-index:appearance; _s60-text-valign: top; } - diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/94/threerows.css --- a/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/94/threerows.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/94/threerows.css Fri Sep 17 15:37:16 2010 +0100 @@ -6,30 +6,40 @@ image#image_container { - padding-top:8px; - padding-bottom:8px; - padding-left:8px; - padding-right:8px; - height: 90%; - width: 20%; + height: 70px; + width: 70px; + margin-top:3px; + margin-bottom:3px; + margin-left:3px; + margin-right:2px; + padding-top:3px; + padding-bottom:3px; + padding-left:3px; + padding-right:3px; + nav-index:appearance; _s60-aspect-ratio:preserve; - nav-index:appearance; } box#text_container { + direction: ltr; block-progression:tb; + margin-left:2px; + margin-right:3px; } text.text_box { - padding-left:8px; - padding-right:8px; + padding-right:3px; + padding-left:3px; + padding-top:1px; + padding-bottom:1px; direction: ltr; text-align: right; font-family: EAknLogicalFontSecondaryFont; - font-size: 23px; - color: "SKIN(268458534 13056 74)"; + font-size: 3.5u; + height:25px; + color:"SKIN(268458534 13056 74)"; nav-index:appearance; _s60-text-valign: top; } diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/00/tworows.css --- a/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/00/tworows.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/00/tworows.css Fri Sep 17 15:37:16 2010 +0100 @@ -5,29 +5,38 @@ image#image_container { - padding-top:8px; - padding-bottom:8px; - padding-left:8px; - padding-right:8px; - height: 90%; - width: 20%; + height: 70px; + width: 70px; + margin-top:3px; + margin-bottom:3px; + margin-left:3px; + margin-right:2px; + padding-top:3px; + padding-bottom:3px; + padding-left:3px; + padding-right:3px; + nav-index:appearance; _s60-aspect-ratio:preserve; - nav-index:appearance; } box#text_container { + direction: ltr; block-progression:tb; + margin-left:2px; + margin-right:3px; + margin-top:10px; } text.text_box { - padding-right:8px; - padding-left:8px; - padding-top:8px; - text-align:left; + padding-right:3px; + padding-left:3px; + padding-top:3px; + padding-bottom:3px; font-family: EAknLogicalFontSecondaryFont; - font-size: 23px; + font-size: 3.5u; + height:25px; color:"SKIN(268458534 13056 74)"; nav-index:appearance; _s60-text-valign: top; diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/37/tworows.css --- a/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/37/tworows.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/37/tworows.css Fri Sep 17 15:37:16 2010 +0100 @@ -6,30 +6,39 @@ image#image_container { - padding-top:8px; - padding-bottom:8px; - padding-left:8px; - padding-right:8px; - height: 90%; - width: 20%; + height: 70px; + width: 70px; + margin-top:3px; + margin-bottom:3px; + margin-left:3px; + margin-right:2px; + padding-top:3px; + padding-bottom:3px; + padding-left:3px; + padding-right:3px; + nav-index:appearance; _s60-aspect-ratio:preserve; - nav-index:appearance; } box#text_container { block-progression:tb; + margin-left:2px; + margin-right:3px; + margin-top:10px; } text.text_box { - padding-right:8px; - padding-left:8px; - padding-top:8px; + padding-right:3px; + padding-left:3px; + padding-top:3px; + padding-bottom:3px; direction: ltr; text-align: right; font-family: EAknLogicalFontSecondaryFont; - font-size: 23px; + font-size: 3.5u; + height:25px; color:"SKIN(268458534 13056 74)"; nav-index:appearance; _s60-text-valign: top; diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/50/tworows.css --- a/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/50/tworows.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/50/tworows.css Fri Sep 17 15:37:16 2010 +0100 @@ -6,30 +6,39 @@ image#image_container { - padding-top:8px; - padding-bottom:8px; - padding-left:8px; - padding-right:8px; - height: 90%; - width: 20%; + height: 70px; + width: 70px; + margin-top:3px; + margin-bottom:3px; + margin-left:3px; + margin-right:2px; + padding-top:3px; + padding-bottom:3px; + padding-left:3px; + padding-right:3px; + nav-index:appearance; _s60-aspect-ratio:preserve; - nav-index:appearance; } box#text_container { block-progression:tb; + margin-left:2px; + margin-right:3px; + margin-top:10px; } text.text_box { - padding-right:8px; - padding-left:8px; - padding-top:8px; + padding-right:3px; + padding-left:3px; + padding-top:3px; + padding-bottom:3px; direction: ltr; text-align: right; font-family: EAknLogicalFontSecondaryFont; - font-size: 23px; + font-size: 3.5u; + height:25px; color:"SKIN(268458534 13056 74)"; nav-index:appearance; _s60-text-valign: top; diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/57/tworows.css --- a/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/57/tworows.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/57/tworows.css Fri Sep 17 15:37:16 2010 +0100 @@ -6,30 +6,39 @@ image#image_container { - padding-top:8px; - padding-bottom:8px; - padding-left:8px; - padding-right:8px; - height: 90%; - width: 20%; + height: 70px; + width: 70px; + margin-top:3px; + margin-bottom:3px; + margin-left:3px; + margin-right:2px; + padding-top:3px; + padding-bottom:3px; + padding-left:3px; + padding-right:3px; + nav-index:appearance; _s60-aspect-ratio:preserve; - nav-index:appearance; } box#text_container { block-progression:tb; + margin-left:2px; + margin-right:3px; + margin-top:10px; } text.text_box { - padding-right:8px; - padding-left:8px; - padding-top:8px; + padding-right:3px; + padding-left:3px; + padding-top:3px; + padding-bottom:3px; direction: ltr; text-align: right; font-family: EAknLogicalFontSecondaryFont; - font-size: 23px; + font-size: 3.5u; + height:25px; color:"SKIN(268458534 13056 74)"; nav-index:appearance; _s60-text-valign: top; diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/94/tworows.css --- a/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/94/tworows.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/94/tworows.css Fri Sep 17 15:37:16 2010 +0100 @@ -6,30 +6,39 @@ image#image_container { - padding-top:8px; - padding-bottom:8px; - padding-left:8px; - padding-right:8px; - height: 90%; - width: 20%; + height: 70px; + width: 70px; + margin-top:3px; + margin-bottom:3px; + margin-left:3px; + margin-right:2px; + padding-top:3px; + padding-bottom:3px; + padding-left:3px; + padding-right:3px; + nav-index:appearance; _s60-aspect-ratio:preserve; - nav-index:appearance; } box#text_container { block-progression:tb; + margin-left:2px; + margin-right:3px; + margin-top:10px; } text.text_box { - padding-right:8px; - padding-left:8px; - padding-top:8px; + padding-right:3px; + padding-left:3px; + padding-top:3px; + padding-bottom:3px; direction: ltr; text-align: right; font-family: EAknLogicalFontSecondaryFont; - font-size: 23px; + font-size: 3.5u; + height:25px; color:"SKIN(268458534 13056 74)"; nav-index:appearance; _s60-text-valign: top; diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/view_2001f48b/hsps/00/viewconfiguration.xml --- a/idlehomescreen/data/qhd_tch/view_2001f48b/hsps/00/viewconfiguration.xml Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/view_2001f48b/hsps/00/viewconfiguration.xml Fri Sep 17 15:37:16 2010 +0100 @@ -12,12 +12,44 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/view_2001f48b/loc/View.loc --- a/idlehomescreen/data/qhd_tch/view_2001f48b/loc/View.loc Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/view_2001f48b/loc/View.loc Fri Sep 17 15:37:16 2010 +0100 @@ -308,3 +308,15 @@ // w: // r: TB9.2 #define qtn_hs_text_softkey_call "Call" + +// d: Lock keypad +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_lock_keypad "Lock keypad" + +// d: Menu +// l: nhd_control_pane_t2/opt7 +// w: +// r: TB9.2 +#define qtn_hs_apps_menu_skey "Menu" diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.dtd --- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.dtd Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.dtd Fri Sep 17 15:37:16 2010 +0100 @@ -494,3 +494,21 @@ qtn_hs_text_softkey_call.parents "" --> + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/view_20022fe0/loc/View.loc --- a/idlehomescreen/data/qhd_tch/view_20022fe0/loc/View.loc Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/view_20022fe0/loc/View.loc Fri Sep 17 15:37:16 2010 +0100 @@ -308,3 +308,15 @@ // w: // r: TB9.2 #define qtn_hs_text_softkey_call "Call" + +// d: Lock keypad +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_lock_keypad "Lock keypad" + +// d: Menu +// l: nhd_control_pane_t2/opt7 +// w: +// r: TB9.2 +#define qtn_hs_apps_menu_skey "Menu" diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/00/View.dtd --- a/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/00/View.dtd Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/00/View.dtd Fri Sep 17 15:37:16 2010 +0100 @@ -494,3 +494,21 @@ qtn_hs_text_softkey_call.parents "" --> + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/view_200286e4/loc/View.loc --- a/idlehomescreen/data/qhd_tch/view_200286e4/loc/View.loc Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/view_200286e4/loc/View.loc Fri Sep 17 15:37:16 2010 +0100 @@ -308,3 +308,15 @@ // w: // r: TB9.2 #define qtn_hs_text_softkey_call "Call" + +// d: Lock keypad +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_lock_keypad "Lock keypad" + +// d: Menu +// l: nhd_control_pane_t2/opt7 +// w: +// r: TB9.2 +#define qtn_hs_apps_menu_skey "Menu" diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.dtd --- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.dtd Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.dtd Fri Sep 17 15:37:16 2010 +0100 @@ -494,3 +494,21 @@ qtn_hs_text_softkey_call.parents "" --> + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/view_200286e5/loc/View.loc --- a/idlehomescreen/data/qhd_tch/view_200286e5/loc/View.loc Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/view_200286e5/loc/View.loc Fri Sep 17 15:37:16 2010 +0100 @@ -308,3 +308,15 @@ // w: // r: TB9.2 #define qtn_hs_text_softkey_call "Call" + +// d: Lock keypad +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_lock_keypad "Lock keypad" + +// d: Menu +// l: nhd_control_pane_t2/opt7 +// w: +// r: TB9.2 +#define qtn_hs_apps_menu_skey "Menu" diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.dtd --- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.dtd Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.dtd Fri Sep 17 15:37:16 2010 +0100 @@ -494,3 +494,21 @@ qtn_hs_text_softkey_call.parents "" --> + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286ed.confml --- a/idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286ed.confml Thu Sep 02 15:42:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,99 +0,0 @@ - - - - - Widgets on Blanko Homescreen - - Widget name - - - Bundle identifier for the (C)WRT widgets. Leave empty if not set. - - - Templeate identifier for the (C)WRT widgets. None for the native widgets - - - Locking status - - - - - - - \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286ed.gcfml --- a/idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286ed.gcfml Thu Sep 02 15:42:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286edmanifest.confml Binary file idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286edmanifest.confml has changed diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286edmanifest.gcfml --- a/idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286edmanifest.gcfml Thu Sep 02 15:42:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - & - - ; - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286edxuikon.confml Binary file idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286edxuikon.confml has changed diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286edxuikon.gcfml --- a/idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286edxuikon.gcfml Thu Sep 02 15:42:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/qhd_tch/view_200286ed/group/bld.inf --- a/idlehomescreen/data/qhd_tch/view_200286ed/group/bld.inf Thu Sep 02 15:42:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* -* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* The information required for building -* -*/ - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -//Confml and cfgml files for the customization -// starting use confml it is need to remove root_configuration.xml direct exporting (view_200286e5_variant.iby) -//*********************************** -../conf/view200286ed.confml APP_LAYER_CONFML(view200286ed.confml) -../conf/view200286ed.gcfml APP_LAYER_GCFML(view200286ed.gcfml) -../conf/view200286edmanifest.confml APP_LAYER_CONFML(view200286edmanifest.confml) -../conf/view200286edmanifest.gcfml APP_LAYER_GCFML(view200286edmanifest.gcfml) -../conf/view200286edxuikon.confml APP_LAYER_CONFML(view200286edxuikon.confml) -../conf/view200286edxuikon.gcfml APP_LAYER_GCFML(view200286edxuikon.gcfml) - -PRJ_MMPFILES - -PRJ_TESTMMPFILES - -// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/clockdate_200286e6/gfx/icon.mif Binary file idlehomescreen/data/vga_tch/clockdate_200286e6/gfx/icon.mif has changed diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/clockdate_200286e6/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/group/bld.inf Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,71 @@ +/* +* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +*/ + +#include + +PRJ_PLATFORMS +DEFAULT + +PRJ_EXPORTS +// Support for productization and Carbide.Ui customization +//******************************************************** +../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/clockdate_200286e6/hsps/manifest.dat +../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/clockdate_200286e6/hsps/widgetconfiguration.xml + +../xuikon/00/clockdate.dat /epoc32/data/Z/resource/homescreen/clockdate_200286e6/xuikon/clockdate_200286e6.dat +../xuikon/00/clockdate.css /epoc32/data/Z/resource/homescreen/clockdate_200286e6/xuikon/clockdate.css +../xuikon/00/clockdate.xml /epoc32/data/Z/resource/homescreen/clockdate_200286e6/xuikon/clockdate.xml + +// logo icon +../gfx/icon.mif /epoc32/data/Z/resource/homescreen/clockdate_200286e6/hsps/icon.mif + +// Arabic languages +//***************** +../xuikon/37/clockdate.css /epoc32/data/Z/resource/homescreen/clockdate_200286e6/xuikon/37/clockdate.css +../xuikon/50/clockdate.css /epoc32/data/Z/resource/homescreen/clockdate_200286e6/xuikon/50/clockdate.css +../xuikon/57/clockdate.css /epoc32/data/Z/resource/homescreen/clockdate_200286e6/xuikon/57/clockdate.css +../xuikon/94/clockdate.css /epoc32/data/Z/resource/homescreen/clockdate_200286e6/xuikon/94/clockdate.css + +// Support for S60 localization +//***************************** +// export localizable loc files (engineering versions) +../loc/clockdatewidget.loc APP_LAYER_LOC_EXPORT_PATH(clockdatewidget.loc) +../loc/clockdateconfiguration.loc APP_LAYER_LOC_EXPORT_PATH(clockdateconfiguration.loc) + +// Support for S60 builds +//*********************** +../rom/clockdatewidget_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(clockdate_200286e6_resources.iby) +../rom/clockdatewidget_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(clockdate_200286e6_customer.iby) +../rom/clockdatewidget_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(clockdate_200286e6_variant.iby) +../rom/clockdatewidget.iby CORE_APP_LAYER_IBY_EXPORT_PATH(clockdate_200286e6.iby) + +// Dtd-localization +//***************** +PRJ_EXTENSIONS +START EXTENSION tools/dtd +OPTION SWITCH_LOC_FILE_NAME clockdate_200286e6 +OPTION DTD_TYPE widget +OPTION LOC_FOLDERS yes +END + +PRJ_MMPFILES + +PRJ_TESTMMPFILES + +// End of File + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/clockdate_200286e6/hsps/00/clockdateconfiguration.dtd --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/hsps/00/clockdateconfiguration.dtd Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,41 @@ + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/clockdate_200286e6/hsps/00/manifest.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/hsps/00/manifest.dat Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,33 @@ + + + + vga_tch + + widget + + + 0x2001f48a + + + 0x101fb657 + + + 0x200286e6 + + Time and Date + clockdate + 1.0 + + + Clock widget + + + widgetconfiguration.xml + + skin(270501603 9360):mif(icon.mif 16384 16385) + + + clockdate.o0000 + + + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/clockdate_200286e6/hsps/00/widgetconfiguration.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/hsps/00/widgetconfiguration.xml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,5 @@ + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/clockdate_200286e6/loc/clockdateconfiguration.loc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/loc/clockdateconfiguration.loc Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Localization strings for project Active Idle 3 (hsps) +* +*/ + + +// d: clockdate widget name +// l: listrow_wgtman_pane_t1 +// w: +// r: TB9.2 +#define qtn_clockdate_configuration_name "Time & date" + +// d: clockdate widget description +// l: wgtman_list_pane_t1 +// w: +// r: TB9.2 +#define qtn_clockdate_configuration_desc "Quick access to time and date." \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/clockdate_200286e6/loc/clockdatewidget.loc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/loc/clockdatewidget.loc Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,17 @@ +/* +* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Localization strings for project Active Idle 3 (xuikon) +* +*/ + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/clockdate_200286e6/rom/clockdatewidget.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/rom/clockdatewidget.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* clockdate widget HSPS-plugin IBY file. +* +*/ + +#ifndef __CLOCKDATEWIDGET_200286e6_IBY__ +#define __CLOCKDATEWIDGET_200286e6_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools +data=ZPRIVATE\200159c0\install\clockdate_200286e6\hsps\00\manifest.dat \private\200159c0\install\clockdate_200286e6\hsps\00\manifest.dat + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __CLOCKDATEWIDGET_200286e6_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/clockdate_200286e6/rom/clockdatewidget_customer.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/rom/clockdatewidget_customer.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,30 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* clockdate widget HSPS-plugin language specific IBY file. +* +*/ + +#ifndef __CLOCKDATEWIDGET_200286e6_CUSTOMER_IBY__ +#define __CLOCKDATEWIDGET_200286e6_CUSTOMER_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools, language specific +data=ZPRIVATE\200159c0\install\clockdate_200286e6\xuikon\00\clockdate.o0000 \private\200159c0\install\clockdate_200286e6\xuikon\00\clockdate.o0000 +// data=ZPRIVATE\200159c0\install\clockdate_200286e6\hsps\00\clockdateconfiguration.dtd \private\200159c0\install\clockdate_200286e6\hsps\00\clockdateconfiguration.dtd + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __CLOCKDATEWIDGET_200286e6_CUSTOMER_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/clockdate_200286e6/rom/clockdatewidget_resources.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/rom/clockdatewidget_resources.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,30 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* profile widget HSPS-plugin language specific IBY file. +* +*/ + +#ifndef __CLOCKDATEWIDGET_200286e6_RESOURCES_IBY__ +#define __CLOCKDATEWIDGET_200286e6_RESOURCES_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +data=ZPRIVATE\200159c0\install\clockdate_200286e6\xuikon\00\clockdate.o0000 \private\200159c0\install\clockdate_200286e6\xuikon\00\clockdate.o0000 +data=ZPRIVATE\200159c0\install\clockdate_200286e6\hsps\00\icon.mif \private\200159c0\install\clockdate_200286e6\hsps\00\icon.mif +// data=ZPRIVATE\200159c0\install\clockdate_200286e6\hsps\00\clockdateconfiguration.dtd \private\200159c0\install\clockdate_200286e6\hsps\00\clockdateconfiguration.dtd + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __CLOCKDATEWIDGET_200286e6_RESOURCES_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/clockdate_200286e6/rom/clockdatewidget_variant.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/rom/clockdatewidget_variant.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* clockdate widget HSPS-plugin variant specific IBY file. +* +*/ + +#ifndef __clockdateWIDGET_200286e6_VARIANT_IBY__ +#define __clockdateWIDGET_200286e6_VARIANT_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by variation tools, variant specific +data=ZPRIVATE\200159c0\install\clockdate_200286e6\hsps\00\widgetconfiguration.xml \private\200159c0\install\clockdate_200286e6\hsps\00\widgetconfiguration.xml + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __clockdateWIDGET_200286e6_VARIANT_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,57 @@ +clock#clock +{ + width: 176px; + height: 115px; + _s60-font-size: 48px; + color: "SKIN(268458534 13056 74)"; + background-color: "SKIN(268458534 9916)"; + nav-index: appearance; +} + +face12 +{ + position: absolute; + top: 14px; + left: 19px; + width: 102px; + height: 59px; + text-align: right; +} + +ampm +{ + position: absolute; + width: 46px; + height: 28px; + top: 37px; + left: 124px; + text-align: left; + _s60-font-size: 28px; +} + +face24 +{ + position: absolute; + top: 14px; + width: auto; + height: 59px; +} + +date +{ + position: absolute; + top: 78px; + width: auto; + height: 28px; + _s60-font-size: 26px; +} + +face +{ + width: auto; + height: auto; + + margin-left: 6px; + margin-right: 6px; + margin-bottom: 5px; +} diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.dat Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,11 @@ + + + 2001CB4F + 101FB657 + 110012F5 + clockdate + clockdate + 1.0 + clockdate.xml + clockdate.css + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.xml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/37/clockdate.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/37/clockdate.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,57 @@ +clock#clock +{ + width: 176px; + height: 115px; + _s60-font-size: 48px; + color: "SKIN(268458534 13056 74)"; + background-color: "SKIN(268458534 9916)"; + nav-index: appearance; +} + +face12 +{ + position: absolute; + left: 55px; + top: 14px; + width: 102px; + height: 59px; + text-align: left; +} + +ampm +{ + position: absolute; + width: 46px; + height: 28px; + left: 6px; + top: 37px; + text-align: right; + _s60-font-size: 28px; +} + +face24 +{ + position: absolute; + top: 14px; + width: auto; + height: 59px; +} + +date +{ + position: absolute; + top: 78px; + width: auto; + height: 28px; + _s60-font-size: 26px; +} + +face +{ + width: auto; + height: auto; + + margin-left: 6px; + margin-right: 6px; + margin-bottom: 5px; +} diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/50/clockdate.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/50/clockdate.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,57 @@ +clock#clock +{ + width: 176px; + height: 115px; + _s60-font-size: 48px; + color: "SKIN(268458534 13056 74)"; + background-color: "SKIN(268458534 9916)"; + nav-index: appearance; +} + +face12 +{ + position: absolute; + left: 55px; + top: 14px; + width: 102px; + height: 59px; + text-align: left; +} + +ampm +{ + position: absolute; + width: 46px; + height: 28px; + left: 6px; + top: 37px; + text-align: right; + _s60-font-size: 28px; +} + +face24 +{ + position: absolute; + top: 14px; + width: auto; + height: 59px; +} + +date +{ + position: absolute; + top: 78px; + width: auto; + height: 28px; + _s60-font-size: 26px; +} + +face +{ + width: auto; + height: auto; + + margin-left: 6px; + margin-right: 6px; + margin-bottom: 5px; +} diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/57/clockdate.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/57/clockdate.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,57 @@ +clock#clock +{ + width: 176px; + height: 115px; + _s60-font-size: 48px; + color: "SKIN(268458534 13056 74)"; + background-color: "SKIN(268458534 9916)"; + nav-index: appearance; +} + +face12 +{ + position: absolute; + left: 55px; + top: 14px; + width: 102px; + height: 59px; + text-align: left; +} + +ampm +{ + position: absolute; + width: 46px; + height: 28px; + left: 6px; + top: 37px; + text-align: right; + _s60-font-size: 28px; +} + +face24 +{ + position: absolute; + top: 14px; + width: auto; + height: 59px; +} + +date +{ + position: absolute; + top: 78px; + width: auto; + height: 28px; + _s60-font-size: 26px; +} + +face +{ + width: auto; + height: auto; + + margin-left: 6px; + margin-right: 6px; + margin-bottom: 5px; +} diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/94/clockdate.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/94/clockdate.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,57 @@ +clock#clock +{ + width: 176px; + height: 115px; + _s60-font-size: 48px; + color: "SKIN(268458534 13056 74)"; + background-color: "SKIN(268458534 9916)"; + nav-index: appearance; +} + +face12 +{ + position: absolute; + left: 55px; + top: 14px; + width: 102px; + height: 59px; + text-align: left; +} + +ampm +{ + position: absolute; + width: 46px; + height: 28px; + left: 6px; + top: 37px; + text-align: right; + _s60-font-size: 28px; +} + +face24 +{ + position: absolute; + top: 14px; + width: auto; + height: 59px; +} + +date +{ + position: absolute; + top: 78px; + width: auto; + height: 28px; + _s60-font-size: 26px; +} + +face +{ + width: auto; + height: auto; + + margin-left: 6px; + margin-right: 6px; + margin-bottom: 5px; +} diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/desktop_20018eee/hsps/00/widgetconfiguration.xml --- a/idlehomescreen/data/vga_tch/desktop_20018eee/hsps/00/widgetconfiguration.xml Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/desktop_20018eee/hsps/00/widgetconfiguration.xml Fri Sep 17 15:37:16 2010 +0100 @@ -4,45 +4,31 @@ - + - + - + - - - - - - - - + - - + + - + - - - - - - - diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop.iby --- a/idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop.iby Fri Sep 17 15:37:16 2010 +0100 @@ -12,20 +12,18 @@ * Contributors: * * Description: -* Top Contacts widget HSPS-plugin core IBY file. +* Desktop widget HSPS-plugin core IBY file. * */ -#ifdef FF_TOPCONTACTSWIDGET_COMPONENT +#ifndef __DESKTOP_20018EEE_IBY__ +#define __DESKTOP_20018EEE_IBY__ -#ifndef __TOPCONTACTS_IBY__ -#define __TOPCONTACTS_IBY__ - -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools -data=ZPRIVATE\200159c0\install\topcontacts\hsps\00\manifest.dat \private\200159c0\install\topcontacts\hsps\00\manifest.dat +data=ZPRIVATE\200159c0\install\desktop_20018eee\hsps\00\manifest.dat \private\200159c0\install\desktop_20018eee\hsps\00\manifest.dat -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 -#endif // FF_TOPCONTACTSWIDGET_COMPONENT \ No newline at end of file +#endif // __DESKTOP_20018EEE_IBY__ \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop_customer.iby --- a/idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop_customer.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop_customer.iby Fri Sep 17 15:37:16 2010 +0100 @@ -12,22 +12,17 @@ * Contributors: * * Description: -* Top Contacts widget HSPS-plugin customer specific IBY file. +* Desktop widget HSPS-plugin customer specific IBY file. * */ -#ifdef FF_TOPCONTACTSWIDGET_COMPONENT - #ifndef __DESKTOP_20018EEE_CUSTOMER_IBY__ #define __DESKTOP_20018EEE_CUSTOMER_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) -data=ZPRIVATE\200159c0\install\topcontacts\xuikon\00\TopContacts.o0000 \private\200159c0\install\topcontacts\xuikon\00\TopContacts.o0000 -data=ZPRIVATE\200159c0\install\topcontacts\hsps\00\topcontact_hs_widget.dtd \private\200159c0\install\topcontacts\hsps\00\topcontact_hs_widget.dtd +data=ZPRIVATE\200159c0\install\desktop_20018eee\xuikon\00\Desktop.o0000 \private\200159c0\install\desktop_20018eee\xuikon\00\Desktop.o0000 -#endif // FF_LAYOUT_480_640_VGA3 +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __DESKTOP_20018EEE_CUSTOMER_IBY__ - -#endif // FF_TOPCONTACTSWIDGET_COMPONENT diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop_resources.iby --- a/idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop_resources.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop_resources.iby Fri Sep 17 15:37:16 2010 +0100 @@ -12,36 +12,30 @@ * Contributors: * * Description: -* Top Contacts widget HSPS-plugin language specific IBY file. +* Desktop widget HSPS-plugin language specific IBY file. * */ -#ifdef FF_TOPCONTACTSWIDGET_COMPONENT - #ifndef __DESKTOP_20018EEE_RESOURCES_IBY__ #define __DESKTOP_20018EEE_RESOURCES_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools, language specific #if defined (__LOCALES_37_IBY__) -data=ZPRIVATE\200159c0\install\topcontacts\xuikon\37\topcontacts.o0037 \private\200159c0\install\topcontacts\xuikon\37\topcontacts.o0037 +data=ZPRIVATE\200159c0\install\desktop_20018eee\xuikon\37\Desktop.o0037 \private\200159c0\install\desktop_20018eee\xuikon\37\Desktop.o0037 #endif #if defined (__LOCALES_50_IBY__) -data=ZPRIVATE\200159c0\install\topcontacts\xuikon\50\topcontacts.o0050 \private\200159c0\install\topcontacts\xuikon\50\topcontacts.o0050 +data=ZPRIVATE\200159c0\install\desktop_20018eee\xuikon\50\Desktop.o0050 \private\200159c0\install\desktop_20018eee\xuikon\50\Desktop.o0050 #endif #if defined (__LOCALES_57_IBY__) -data=ZPRIVATE\200159c0\install\topcontacts\xuikon\57\topcontacts.o0057 \private\200159c0\install\topcontacts\xuikon\57\topcontacts.o0057 +data=ZPRIVATE\200159c0\install\desktop_20018eee\xuikon\57\Desktop.o0057 \private\200159c0\install\desktop_20018eee\xuikon\57\Desktop.o0057 #endif #if defined (__LOCALES_94_IBY__) -data=ZPRIVATE\200159c0\install\topcontacts\xuikon\94\topcontacts.o0094 \private\200159c0\install\topcontacts\xuikon\94\topcontacts.o0094 +data=ZPRIVATE\200159c0\install\desktop_20018eee\xuikon\94\Desktop.o0094 \private\200159c0\install\desktop_20018eee\xuikon\94\Desktop.o0094 #endif - -data=ZPRIVATE\200159c0\install\topcontacts\hsps\00\topcontact_hs_widget.dtd \private\200159c0\install\topcontacts\hsps\00\topcontact_hs_widget.dtd - -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __DESKTOP_20018EEE_RESOURCES_IBY__ -#endif // FF_TOPCONTACTSWIDGET_COMPONENT diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop_variant.iby --- a/idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop_variant.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop_variant.iby Fri Sep 17 15:37:16 2010 +0100 @@ -12,22 +12,18 @@ * Contributors: * * Description: -* Top Contacts widget HSPS-plugin variant specific IBY file. +* Desktop widget HSPS-plugin variant specific IBY file. * */ -#ifdef FF_TOPCONTACTSWIDGET_COMPONENT - #ifndef __DESKTOP_20018EEE_VARIANT_IBY__ #define __DESKTOP_20018EEE_VARIANT_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by variation tools, variant specific -data=ZPRIVATE\200159c0\install\topcontacts\hsps\00\widgetconfiguration.xml \private\200159c0\install\topcontacts\hsps\00\widgetconfiguration.xml +data=ZPRIVATE\200159c0\install\desktop_20018eee\hsps\00\widgetconfiguration.xml \private\200159c0\install\desktop_20018eee\hsps\00\widgetconfiguration.xml -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __DESKTOP_20018EEE_VARIANT_IBY__ - -#endif // FF_TOPCONTACTSWIDGET_COMPONENT diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/00/desktop.css --- a/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/00/desktop.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/00/desktop.css Fri Sep 17 15:37:16 2010 +0100 @@ -1,59 +1,31 @@ widget#desktop_widget { - width: auto; - height: 70px; - block-progression: rl; direction: ltr; + color: "SKIN(268458534 13056 74)"; + background-color: "SKIN(268458534 9916)"; } button.button { - width: 70px; - height: auto; - nav-index: appearance; - - margin-left: 4px; - margin-right: 4px; - - background-color: "SKIN(268458534 9906)"; + width: 105px; + height: 105px; + margin-top: 5px; } button#button1 { - margin-left: 0px; -} - -button#button6 -{ - margin-right: 0px; -} - -button.button:focus -{ - focus-background: "SKIN(268458534 5120 9)"; + margin-left: 10px; } image.icon { - width: auto; - height: auto; - _s60-aspect-ratio: preserve; -} - -/* For presence */ -image.second_icon -{ - margin-top:0%; - width: 25%; - height: 25%; - position: absolute; - bottom: 0%; - left: 70%; - top: 3%; - _s60-aspect-ratio:preserve; + padding-left: 5px; + padding-top: 5px; + width: 95px; + height: 95px; } tooltip.tooltip @@ -75,12 +47,14 @@ padding-right: 6px; } + text.tooltiptext -{ +{ font-family: EAknLogicalFontSecondaryFont; font-size: 23px; width: adaptive; color: "SKIN(268458534 13056 19)"; + overflow: visible; } /********************* diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/00/desktop.xml --- a/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/00/desktop.xml Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/00/desktop.xml Fri Sep 17 15:37:16 2010 +0100 @@ -2,23 +2,14 @@ - - + - - - - - - - - - - - - - - - - - - @@ -199,6 +96,5 @@ - - \ No newline at end of file + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/37/desktop.css --- a/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/37/desktop.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/37/desktop.css Fri Sep 17 15:37:16 2010 +0100 @@ -1,66 +1,38 @@ widget#desktop_widget { - width: auto; - height: 70px; - block-progression: rl; direction: rtl; + color: "SKIN(268458534 13056 74)"; + background-color: "SKIN(268458534 9916)"; } button.button { - width: 70px; - height: auto; - nav-index: appearance; - - margin-left: 4px; - margin-right: 4px; - background-color: "SKIN(268458534 9906)"; + width: 105px; + height: 105px; + margin-top: 5px; } button#button1 { - margin-left: 0px; -} - -button#button6 -{ - margin-right: 0px; -} - -button.button:focus -{ - focus-background: "SKIN(268458534 5120 9)"; + margin-right: 10px; } image.icon { - width: auto; - height: auto; - _s60-aspect-ratio: preserve; -} - -/* For presence */ -image.second_icon -{ - margin-top:0%; - width: 25%; - height: 25%; - position: absolute; - bottom: 0%; - left: 70%; - top: 3%; - _s60-aspect-ratio:preserve; + padding-left: 5px; + padding-top: 5px; + width: 95px; + height: 95px; } tooltip.tooltip { - width: 15.0u; /* any fixed lenghts works here if the owerflow is set to - both tooltip and text inside it */ - height: 5.5u; - + width: adaptive; + max-width: 350px; + height: 33px; border-style: solid; border-width: 5px; @@ -68,23 +40,21 @@ _s60-display-time: 1000000; background-color:"SKIN(268458534 8480)"; - overflow: visible; + display: block; + padding-left: 6px; + padding-top: 3px; + padding-bottom: 3px; + padding-right: 6px; } text.tooltiptext -{ - position: static; +{ font-family: EAknLogicalFontSecondaryFont; - font-size: 3.5u; - width: 100%; - height: 85%; - text-align: center; + font-size: 23px; + width: adaptive; color: "SKIN(268458534 13056 19)"; overflow: visible; - padding-right: 1u; - padding-left: 1u; - padding-bottom: 1u; } /********************* @@ -95,7 +65,7 @@ width: 15.0u; height: adaptive; border-style: solid; - border-width: 5px; + border-width: 5px; /* delay comes from the xSP server */ _s60-start-delay: 0; _s60-display-time: 60000000; /* 6 sec */ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/50/desktop.css --- a/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/50/desktop.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/50/desktop.css Fri Sep 17 15:37:16 2010 +0100 @@ -1,66 +1,38 @@ widget#desktop_widget { - width: auto; - height: 70px; - block-progression: rl; direction: rtl; + color: "SKIN(268458534 13056 74)"; + background-color: "SKIN(268458534 9916)"; } button.button { - width: 70px; - height: auto; - nav-index: appearance; - - margin-left: 4px; - margin-right: 4px; - background-color: "SKIN(268458534 9906)"; + width: 105px; + height: 105px; + margin-top: 5px; } button#button1 { - margin-left: 0px; -} - -button#button6 -{ - margin-right: 0px; -} - -button.button:focus -{ - focus-background: "SKIN(268458534 5120 9)"; + margin-right: 10px; } image.icon { - width: auto; - height: auto; - _s60-aspect-ratio: preserve; -} - -/* For presence */ -image.second_icon -{ - margin-top:0%; - width: 25%; - height: 25%; - position: absolute; - bottom: 0%; - left: 70%; - top: 3%; - _s60-aspect-ratio:preserve; + padding-left: 5px; + padding-top: 5px; + width: 95px; + height: 95px; } tooltip.tooltip { - width: 15.0u; /* any fixed lenghts works here if the owerflow is set to - both tooltip and text inside it */ - height: 5.5u; - + width: adaptive; + max-width: 350px; + height: 33px; border-style: solid; border-width: 5px; @@ -68,23 +40,21 @@ _s60-display-time: 1000000; background-color:"SKIN(268458534 8480)"; - overflow: visible; + display: block; + padding-left: 6px; + padding-top: 3px; + padding-bottom: 3px; + padding-right: 6px; } text.tooltiptext -{ - position: static; +{ font-family: EAknLogicalFontSecondaryFont; - font-size: 3.5u; - width: 100%; - height: 85%; - text-align: center; + font-size: 23px; + width: adaptive; color: "SKIN(268458534 13056 19)"; overflow: visible; - padding-right: 1u; - padding-left: 1u; - padding-bottom: 1u; } /********************* diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/57/desktop.css --- a/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/57/desktop.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/57/desktop.css Fri Sep 17 15:37:16 2010 +0100 @@ -1,91 +1,60 @@ - widget#desktop_widget +widget#desktop_widget { - width: auto; - height: 70px; - block-progression: rl; direction: rtl; + color: "SKIN(268458534 13056 74)"; + background-color: "SKIN(268458534 9916)"; } button.button { - width: 70px; - height: auto; - nav-index: appearance; - - margin-left: 4px; - margin-right: 4px; - - background-color: "SKIN(268458534 9906)"; + width: 105px; + height: 105px; + margin-top: 5px; } button#button1 { - margin-left: 0px; -} - -button#button6 -{ - margin-right: 0px; -} - -button.button:focus -{ - focus-background: "SKIN(268458534 5120 9)"; + margin-right: 10px; } image.icon { - width: auto; - height: auto; - _s60-aspect-ratio: preserve; -} - -/* For presence */ -image.second_icon -{ - margin-top:0%; - width: 25%; - height: 25%; - position: absolute; - bottom: 0%; - left: 70%; - top: 3%; - _s60-aspect-ratio:preserve; + padding-left: 5px; + padding-top: 5px; + width: 95px; + height: 95px; } tooltip.tooltip { - width: 15.0u; /* any fixed lenghts works here if the owerflow is set to - both tooltip and text inside it */ - height: 5.5u; - + width: adaptive; + max-width: 350px; + height: 33px; border-style: solid; - border-width: 5px; + border-width: 5px; _s60-start-delay: 1000000; _s60-display-time: 1000000; background-color:"SKIN(268458534 8480)"; - overflow: visible; + display: block; + padding-left: 6px; + padding-top: 3px; + padding-bottom: 3px; + padding-right: 6px; } text.tooltiptext -{ - position: static; +{ font-family: EAknLogicalFontSecondaryFont; - font-size: 3.5u; - width: 100%; - height: 85%; - text-align: center; + font-size: 23px; + width: adaptive; color: "SKIN(268458534 13056 19)"; overflow: visible; - padding-right: 1u; - padding-left: 1u; - padding-bottom: 1u; } /********************* diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/94/desktop.css --- a/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/94/desktop.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/94/desktop.css Fri Sep 17 15:37:16 2010 +0100 @@ -1,91 +1,60 @@ widget#desktop_widget { - width: auto; - height: 70px; - block-progression: rl; direction: rtl; + color: "SKIN(268458534 13056 74)"; + background-color: "SKIN(268458534 9916)"; } button.button { - width: 70px; - height: auto; - nav-index: appearance; - - margin-left: 4px; - margin-right: 4px; - - background-color: "SKIN(268458534 9906)"; + width: 105px; + height: 105px; + margin-top: 5px; } button#button1 { - margin-left: 0px; -} - -button#button6 -{ - margin-right: 0px; -} - -button.button:focus -{ - focus-background: "SKIN(268458534 5120 9)"; + margin-right: 10px; } image.icon { - width: auto; - height: auto; - _s60-aspect-ratio: preserve; -} - -/* For presence */ -image.second_icon -{ - margin-top:0%; - width: 25%; - height: 25%; - position: absolute; - bottom: 0%; - left: 70%; - top: 3%; - _s60-aspect-ratio:preserve; + padding-left: 5px; + padding-top: 5px; + width: 95px; + height: 95px; } tooltip.tooltip { - width: 15.0u; /* any fixed lenghts works here if the owerflow is set to - both tooltip and text inside it */ - height: 5.5u; - + width: adaptive; + max-width: 350px; + height: 33px; border-style: solid; - border-width: 5px; + border-width: 5px; _s60-start-delay: 1000000; _s60-display-time: 1000000; background-color:"SKIN(268458534 8480)"; - overflow: visible; + display: block; + padding-left: 6px; + padding-top: 3px; + padding-bottom: 3px; + padding-right: 6px; } text.tooltiptext -{ - position: static; +{ font-family: EAknLogicalFontSecondaryFont; - font-size: 3.5u; - width: 100%; - height: 85%; - text-align: center; + font-size: 23px; + width: adaptive; color: "SKIN(268458534 13056 19)"; overflow: visible; - padding-right: 1u; - padding-left: 1u; - padding-bottom: 1u; } /********************* diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget.iby --- a/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget.iby Fri Sep 17 15:37:16 2010 +0100 @@ -19,11 +19,11 @@ #ifndef __DOUBLE_ROW_ICON_WIDGET_2001FDBD_IBY__ #define __DOUBLE_ROW_ICON_WIDGET_2001FDBD_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools data=ZPRIVATE\200159c0\install\double_row_icon_widget_2001fdbd\hsps\00\manifest.dat \private\200159c0\install\double_row_icon_widget_2001fdbd\hsps\00\manifest.dat -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __DOUBLE_ROW_ICON_WIDGET_2001FDBD_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget_customer.iby --- a/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget_customer.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget_customer.iby Fri Sep 17 15:37:16 2010 +0100 @@ -19,11 +19,11 @@ #ifndef __DOUBLE_ROW_ICON_WIDGET_2001FDBD_CUSTOMER_IBY__ #define __DOUBLE_ROW_ICON_WIDGET_2001FDBD_CUSTOMER_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools, language specific data=ZPRIVATE\200159c0\install\double_row_icon_widget_2001fdbd\xuikon\00\double_row_icon_widget.o0000 \private\200159c0\install\double_row_icon_widget_2001fdbd\xuikon\00\double_row_icon_widget.o0000 -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __DOUBLE_ROW_ICON_WIDGET_2001FDBD_CUSTOMER_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget_resources.iby --- a/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget_resources.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget_resources.iby Fri Sep 17 15:37:16 2010 +0100 @@ -18,7 +18,7 @@ #ifndef __DOUBLE_ROW_ICON_WIDGET_2001FDBD_RESOURCES_IBY__ #define __DOUBLE_ROW_ICON_WIDGET_2001FDBD_RESOURCES_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools, language specific #if defined (__LOCALES_37_IBY__) @@ -34,6 +34,6 @@ data=ZPRIVATE\200159c0\install\double_row_icon_widget_2001fdbd\xuikon\94\double_row_icon_widget.o0094 \private\200159c0\install\double_row_icon_widget_2001fdbd\xuikon\94\double_row_icon_widget.o0094 #endif -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __DOUBLE_ROW_ICON_WIDGET_2001FDBD_RESOURCES_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget_variant.iby --- a/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget_variant.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget_variant.iby Fri Sep 17 15:37:16 2010 +0100 @@ -19,11 +19,11 @@ #ifndef __DOUBLE_ROW_ICON_WIDGET_2001FDBD_VARIANT_IBY__ #define __DOUBLE_ROW_ICON_WIDGET_2001FDBD_VARIANT_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by variation tools, variant specific data=ZPRIVATE\200159c0\install\double_row_icon_widget_2001fdbd\hsps\00\widgetconfiguration.xml \private\200159c0\install\double_row_icon_widget_2001fdbd\hsps\00\widgetconfiguration.xml -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __DOUBLE_ROW_ICON_WIDGET_2001FDBD_VARIANT_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget.iby --- a/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget.iby Fri Sep 17 15:37:16 2010 +0100 @@ -18,11 +18,11 @@ #ifndef __DOUBLE_ROW_WIDGET_2001FDC2_IBY__ #define __DOUBLE_ROW_WIDGET_2001FDC2_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools data=ZPRIVATE\200159c0\install\double_row_widget_2001fdc2\hsps\00\manifest.dat \private\200159c0\install\double_row_widget_2001fdc2\hsps\00\manifest.dat -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __DOUBLE_ROW_WIDGET_2001FDC2_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget_customer.iby --- a/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget_customer.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget_customer.iby Fri Sep 17 15:37:16 2010 +0100 @@ -18,11 +18,11 @@ #ifndef __DOUBLE_ROW_WIDGET_2001FDC2_CUSTOMER_IBY__ #define __DOUBLE_ROW_WIDGET_2001FDC2_CUSTOMER_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FFLAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools, language specific data=ZPRIVATE\200159c0\install\double_row_widget_2001fdc2\xuikon\00\double_row_widget.o0000 \private\200159c0\install\double_row_widget_2001fdc2\xuikon\00\double_row_widget.o0000 -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __DOUBLE_ROW_WIDGET_2001FDC2_CUSTOMER_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget_resources.iby --- a/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget_resources.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget_resources.iby Fri Sep 17 15:37:16 2010 +0100 @@ -18,7 +18,7 @@ #ifndef __DOUBLE_ROW_WIDGET_2001FDC2_RESOURCES_IBY__ #define __DOUBLE_ROW_WIDGET_2001FDC2_RESOURCES_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools, language specific #if defined (__LOCALES_37_IBY__) @@ -34,6 +34,6 @@ data=ZPRIVATE\200159c0\install\double_row_widget_2001fdc2\xuikon\94\double_row_widget.o0094 \private\200159c0\install\double_row_widget_2001fdc2\xuikon\94\double_row_widget.o0094 #endif -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __DOUBLE_ROW_WIDGET_2001FDC2_RESOURCES_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget_variant.iby --- a/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget_variant.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget_variant.iby Fri Sep 17 15:37:16 2010 +0100 @@ -18,11 +18,11 @@ #ifndef __DOUBLE_ROW_WIDGET_2001FDC2_VARIANT_IBY__ #define __DOUBLE_ROW_WIDGET_2001FDC2_VARIANT_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by variation tools, variant specific data=ZPRIVATE\200159c0\install\double_row_widget_2001fdc2\hsps\00\widgetconfiguration.xml \private\200159c0\install\double_row_widget_2001fdc2\hsps\00\widgetconfiguration.xml -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __DOUBLE_ROW_WIDGET_2001FDC2_VARIANT_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/group/bld.inf --- a/idlehomescreen/data/vga_tch/group/bld.inf Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/group/bld.inf Fri Sep 17 15:37:16 2010 +0100 @@ -15,15 +15,20 @@ * */ - +#include "../clockdate_200286e6/group/bld.inf" +#include "../desktop_20018eee/group/bld.inf" #include "../double_row_icon_widget_2001fdbd/group/bld.inf" #include "../double_row_widget_2001fdc2/group/bld.inf" +#include "../profilemode_200286e7/group/bld.inf" #include "../root_2001f48f/group/bld.inf" #include "../single_row_icon_widget_2001fdc0/group/bld.inf" #include "../single_row_widget_2001fdc1/group/bld.inf" #include "../triple_row_icon_widget_2001fdbe/group/bld.inf" #include "../triple_row_widget_2001fdbf/group/bld.inf" #include "../view1_2001fdb9/group/bld.inf" +#include "../view2_200286ea/group/bld.inf" +#include "../view3_200286eb/group/bld.inf" +#include "../templateview_200286ec/group/bld.inf" #include "../wideimage_10009dff/group/bld.inf" PRJ_PLATFORMS diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/profilemode_200286e7/gfx/icon.mif Binary file idlehomescreen/data/vga_tch/profilemode_200286e7/gfx/icon.mif has changed diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/profilemode_200286e7/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/group/bld.inf Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,74 @@ +/* +* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +*/ + +#include + +PRJ_PLATFORMS +DEFAULT + +PRJ_EXPORTS +// Support for productization and Carbide.Ui customization +//******************************************************** +../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/profilemode_200286e7/hsps/manifest.dat +../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/profilemode_200286e7/hsps/widgetconfiguration.xml +// ../hsps/00/profilemodeconfiguration.dtd /epoc32/data/Z/resource/homescreen/profilemode_200286e7/hsps/profilemodeconfiguration.dtd + +../xuikon/00/profilemode.dat /epoc32/data/Z/resource/homescreen/profilemode_200286e7/xuikon/profilemode_200286e7.dat +../xuikon/00/profilemode.css /epoc32/data/Z/resource/homescreen/profilemode_200286e7/xuikon/profilemode.css +../xuikon/00/profilemode.xml /epoc32/data/Z/resource/homescreen/profilemode_200286e7/xuikon/profilemode.xml +// ../xuikon/00/profilemodewidget.dtd /epoc32/data/Z/resource/homescreen/profilemode_200286e7/xuikon/profilemodewidget.dtd + +// logo icon +../gfx/icon.mif /epoc32/data/Z/resource/homescreen/profilemode_200286e7/hsps/icon.mif + +// Arabic languages +//***************** +../xuikon/37/profilemode.css /epoc32/data/Z/resource/homescreen/profilemode_200286e7/xuikon/37/profilemode.css +../xuikon/50/profilemode.css /epoc32/data/Z/resource/homescreen/profilemode_200286e7/xuikon/50/profilemode.css +../xuikon/57/profilemode.css /epoc32/data/Z/resource/homescreen/profilemode_200286e7/xuikon/57/profilemode.css +../xuikon/94/profilemode.css /epoc32/data/Z/resource/homescreen/profilemode_200286e7/xuikon/94/profilemode.css + +// Support for S60 localization +//***************************** +// export localizable loc files (engineering versions) +// ../loc/profilemodewidget.loc APP_LAYER_LOC_EXPORT_PATH(profilemodewidget.loc) +// ../loc/profilemodeconfiguration.loc APP_LAYER_LOC_EXPORT_PATH(profilemodeconfiguration.loc) + +// Support for S60 builds +//*********************** +../rom/profilemodewidget_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(profilemode_200286e7_resources.iby) +../rom/profilemodewidget_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(profilemode_200286e7_customer.iby) +../rom/profilemodewidget_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(profilemode_200286e7_variant.iby) +../rom/profilemodewidget.iby CORE_APP_LAYER_IBY_EXPORT_PATH(profilemode_200286e7.iby) + +// Dtd-localization +//***************** +PRJ_EXTENSIONS +START EXTENSION tools/dtd +OPTION SWITCH_LOC_FILE_NAME profilemode_200286e7 +OPTION DTD_TYPE widget +OPTION LOC_FOLDERS yes +END + + +PRJ_MMPFILES + +PRJ_TESTMMPFILES + +// End of File + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/profilemode_200286e7/hsps/00/manifest.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/hsps/00/manifest.dat Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,41 @@ + + + + + + + vga_tch + + widget + + + 0x2001f48a + + + 0x101fb657 + + + 0x200286e7 + + + + + Profilemode + + profilemode + 1.0 + + + + Change and edit active profile + + + widgetconfiguration.xml + + skin(270501603 9360):mif(icon.mif 16384 16385) + + + profilemode.o0000 + + + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/profilemode_200286e7/hsps/00/profilemodeconfiguration.dtd --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/hsps/00/profilemodeconfiguration.dtd Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,41 @@ + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/profilemode_200286e7/hsps/00/widgetconfiguration.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/hsps/00/widgetconfiguration.xml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,5 @@ + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/profilemode_200286e7/loc/profilemodeconfiguration.loc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/loc/profilemodeconfiguration.loc Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Localization strings for project Active Idle 3 (hsps) +* +*/ + + +// d: profilemode widget name +// l: listrow_wgtman_pane_t1 +// w: +// r: TB9.2 +#define qtn_profilemode_configuration_name "Profile" + +// d: profilemode widget description +// l: wgtman_list_pane_t1 +// w: +// r: TB9.2 +#define qtn_profilemode_configuration_desc "Quick access to time, date and change profilemode." \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/profilemode_200286e7/loc/profilemodewidget.loc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/loc/profilemodewidget.loc Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,23 @@ +/* +* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Localization strings for project Active Idle 3 (xuikon) +* +*/ + + +// d: Edit active profilemode +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.1 +#define qtn_hs_profilemode_edit "Edit active profilemode" diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/profilemode_200286e7/rom/profilemodewidget.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/rom/profilemodewidget.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* profilemode widget HSPS-plugin IBY file. +* +*/ + +#ifndef __PROFILEMODEWIDGET_200286E7_IBY__ +#define __PROFILEMODEWIDGET_200286E7_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools +data=ZPRIVATE\200159c0\install\profilemode_200286e7\hsps\00\manifest.dat \private\200159c0\install\profilemode_200286e7\hsps\00\manifest.dat + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __PROFILEMODEWIDGET_200286E7_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/profilemode_200286e7/rom/profilemodewidget_customer.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/rom/profilemodewidget_customer.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,30 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* profilemode widget HSPS-plugin language specific IBY file. +* +*/ + +#ifndef __PROFILEMODEWIDGET_200286E7_CUSTOMER_IBY__ +#define __PROFILEMODEWIDGET_200286E7_CUSTOMER_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools, language specific +data=ZPRIVATE\200159c0\install\profilemode_200286e7\xuikon\00\profilemode.o0000 \private\200159c0\install\profilemode_200286e7\xuikon\00\profilemode.o0000 +data=ZPRIVATE\200159c0\install\profilemode_200286e7\hsps\00\profilemodeconfiguration.dtd \private\200159c0\install\profilemode_200286e7\hsps\00\profilemodeconfiguration.dtd + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __PROFILEMODEWIDGET_200286E7_CUSTOMER_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/profilemode_200286e7/rom/profilemodewidget_resources.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/rom/profilemodewidget_resources.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,30 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* profilemode widget HSPS-plugin language specific IBY file. +* +*/ + +#ifndef __PROFILEMODEWIDGET_200286E7_RESOURCES_IBY__ +#define __PROFILEMODEWIDGET_200286E7_RESOURCES_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +data=ZPRIVATE\200159c0\install\profilemode_200286e7\xuikon\00\profilemode.o0000 \private\200159c0\install\profilemode_200286e7\xuikon\00\profilemode.o0000 +data=ZPRIVATE\200159c0\install\profilemode_200286e7\hsps\00\icon.mif \private\200159c0\install\profilemode_200286e7\hsps\00\icon.mif +data=ZPRIVATE\200159c0\install\profilemode_200286e7\hsps\00\profilemodeconfiguration.dtd \private\200159c0\install\profilemode_200286e7\hsps\00\profilemodeconfiguration.dtd + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __PROFILEMODEWIDGET_200286E7_RESOURCES_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/profilemode_200286e7/rom/profilemodewidget_variant.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/rom/profilemodewidget_variant.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* profilemode widget HSPS-plugin variant specific IBY file. +* +*/ + +#ifndef __PROFILEMODEWIDGET_200286E7_VARIANT_IBY__ +#define __PROFILEMODEWIDGET_200286E7_VARIANT_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by variation tools, variant specific +data=ZPRIVATE\200159c0\install\profilemode_200286e7\hsps\00\widgetconfiguration.xml \private\200159c0\install\profilemode_200286e7\hsps\00\widgetconfiguration.xml + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __PROFILEMODEWIDGET_200286E7_VARIANT_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/00/profilemode.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/00/profilemode.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,176 @@ +widget#profilewidget +{ + background-color: "SKIN(268458534 9916)"; + direction: ltr; + block-progression: tb; + nav-index: appearance; +} + +box#marginbox1 +{ + display: block; + width: auto; + height: 15px; +} + +box#profileiconbox +{ + padding-top: 8px; + padding-bottom: 3px; + height: 32px; + width: auto; +} + +image#profileicon +{ + margin-top: auto; + margin-bottom: auto; + margin-left: auto; + margin-right: auto; + width: 32px; + height: 32px; +} + +box#marginbox2 +{ + display: block; + width: auto; + height: 3px; +} + +box#profilenamebox +{ + height: 32px; + width: auto; +} + +text#profilename +{ + /* + padding-left: 9px; + padding-right: 9px; + */ + height: 32px; + text-align: center; + display: block; + visibility: visible; + width: auto; + font-family: EAknLogicalFontSecondaryFont; + /* font-size: 32px; */ + font-size: 30px; + color: "SKIN(268458534 13056 74)"; +} + +/* +box#profile_softindicator +{ + display: none; + padding-top: 2px; + padding-bottom: 2px; + padding-left: 2px; + padding-right: 2px; + direction: ltr; +} + +image#SatIdleModeIcon +{ + display: none; + width: 18px; + height: 20px; + position: static; + margin-top: auto; +} +*/ +/* Default system profiles */ +text.systemprofileitem +{ + display: block; +} + +/* Placeholders for profiles added by user */ +text.userprofileitem +{ + display: none; +} + +/****************** + SOFT INDICATOR WIDGET AREA +*******************/ +/* +newsticker.SIText +{ + text-align: center; + display: block; + visibility: visible; + width: auto; + font-family: EAknLogicalFontSecondaryFont; + font-size: 32px; + color: "SKIN(268458534 13056 74)"; + + white-space-collapse: collapse; + + _s60-scroll-behaviour: scroll-alternate; + + _s60-display-time: 2000; + _s60-scroll-loop: false; + _s60-start-delay: 0; + _s60-restart-after-update: true; +} +*/ + +newsticker#indicator +{ + padding-left: 9px; + padding-right: 9px; + text-align: center; + display: none; + visibility: visible; + width: auto; + height: 32px; + font-family: EAknLogicalFontSecondaryFont; + /* font-size: 32px; */ + font-size: 30px; + color: "SKIN(268458534 13056 74)"; + + white-space-collapse: collapse; + + _s60-scroll-behaviour: scroll-alternate; + + _s60-display-time: 2000; + _s60-scroll-loop: false; + _s60-start-delay: 0; + _s60-restart-after-update: true; +} + +box#NT_CUGMCN +{ + display: none; + text-align: center; + margin-left: auto; + margin-right: auto; + /* width: adaptive; */ + width: auto; + height: auto; + block-progression: rl; +} + +box#NT_SATVHZ +{ + text-align: center; + margin-left: auto; + margin-right: auto; + /* width: adaptive; */ + width: auto; + height: auto; + block-progression: rl; +} + +title#title_vhz +{ + display: none; +} + +title#title_sat +{ + display: none; +} diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/00/profilemode.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/00/profilemode.dat Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,12 @@ + + + 2001CB4F + 101FB657 + 110012F5 + profilemode + profilemode + 1.0 + profilemode.xml + profilemode.css + + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/00/profilemode.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/00/profilemode.xml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <property class="DeviceStatus/CUGIndicator"/> + <property class="policy/emptyContent" name="title_cug" value="display: none;"/> + <property class="policy/Content" name="title_cug" value="display: block;"/> + <property class="policy/Visibility" name="indicator" value="if (title_cug,title_sat,title_vhz,title_mcn) display: block"/> + <property class="policy/Visibility" name="indicator" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: none"/> + <property class="policy/Visibility" name="marginbox1" value="if (title_cug,title_sat,title_vhz,title_mcn) display: none"/> + <property class="policy/Visibility" name="marginbox1" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: block"/> + <property class="policy/Visibility" name="marginbox2" value="if (title_cug,title_sat,title_vhz,title_mcn) display: none"/> + <property class="policy/Visibility" name="marginbox2" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: block"/> + + + + <property class="SAT/SatIdleModeText"/> + <property class="policy/emptyContent" name="title_sat" value="display: none;"/> + <property class="policy/Content" name="title_sat" value="display: block;"/> + <property class="policy/Visibility" name="indicator" value="if (title_cug,title_sat,title_vhz,title_mcn) display: block"/> + <property class="policy/Visibility" name="indicator" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: none"/> + <property class="policy/Visibility" name="marginbox1" value="if (title_cug,title_sat,title_vhz,title_mcn) display: none"/> + <property class="policy/Visibility" name="marginbox1" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: block"/> + <property class="policy/Visibility" name="marginbox2" value="if (title_cug,title_sat,title_vhz,title_mcn) display: none"/> + <property class="policy/Visibility" name="marginbox2" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: block"/> + + + + <property class="DeviceStatus/VHZText"/> + <property class="policy/emptyContent" name="title_vhz" value="display: none;"/> + <property class="policy/Content" name="title_vhz" value="display: block;"/> + <property class="policy/Visibility" name="indicator" value="if (title_cug,title_sat,title_vhz,title_mcn) display: block"/> + <property class="policy/Visibility" name="indicator" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: none"/> + <property class="policy/Visibility" name="marginbox1" value="if (title_cug,title_sat,title_vhz,title_mcn) display: none"/> + <property class="policy/Visibility" name="marginbox1" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: block"/> + <property class="policy/Visibility" name="marginbox2" value="if (title_cug,title_sat,title_vhz,title_mcn) display: none"/> + <property class="policy/Visibility" name="marginbox2" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: block"/> + + + + <property class="DeviceStatus/MCNIndicator"/> + <property class="policy/emptyContent" name="title_mcn" value="display: none;"/> + <property class="policy/Content" name="title_mcn" value="display: block;"/> + <property class="policy/Visibility" name="indicator" value="if (title_cug,title_sat,title_vhz,title_mcn) display: block"/> + <property class="policy/Visibility" name="indicator" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: none"/> + <property class="policy/Visibility" name="marginbox1" value="if (title_cug,title_sat,title_vhz,title_mcn) display: none"/> + <property class="policy/Visibility" name="marginbox1" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: block"/> + <property class="policy/Visibility" name="marginbox2" value="if (title_cug,title_sat,title_vhz,title_mcn) display: none"/> + <property class="policy/Visibility" name="marginbox2" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: block"/> + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/00/profilemodewidget.dtd --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/00/profilemodewidget.dtd Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,30 @@ + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/37/profilemode.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/37/profilemode.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,176 @@ +widget#profilewidget +{ + background-color: "SKIN(268458534 9916)"; + direction: rtl; + block-progression: tb; + nav-index: appearance; +} + +box#marginbox1 +{ + display: block; + width: auto; + height: 15px; +} + +box#profileiconbox +{ + padding-top: 8px; + padding-bottom: 3px; + height: 32px; + width: auto; +} + +image#profileicon +{ + margin-top: auto; + margin-bottom: auto; + margin-left: auto; + margin-right: auto; + width: 32px; + height: 32px; +} + +box#marginbox2 +{ + display: block; + width: auto; + height: 3px; +} + +box#profilenamebox +{ + height: 32px; + width: auto; +} + +text#profilename +{ + /* + padding-left: 9px; + padding-right: 9px; + */ + height: 32px; + text-align: center; + display: block; + visibility: visible; + width: auto; + font-family: EAknLogicalFontSecondaryFont; + /* font-size: 32px; */ + font-size: 30px; + color: "SKIN(268458534 13056 74)"; +} + +/* +box#profile_softindicator +{ + display: none; + padding-top: 2px; + padding-bottom: 2px; + padding-left: 2px; + padding-right: 2px; + direction: ltr; +} + +image#SatIdleModeIcon +{ + display: none; + width: 18px; + height: 20px; + position: static; + margin-top: auto; +} +*/ +/* Default system profiles */ +text.systemprofileitem +{ + display: block; +} + +/* Placeholders for profiles added by user */ +text.userprofileitem +{ + display: none; +} + +/****************** + SOFT INDICATOR WIDGET AREA +*******************/ +/* +newsticker.SIText +{ + text-align: center; + display: block; + visibility: visible; + width: auto; + font-family: EAknLogicalFontSecondaryFont; + font-size: 32px; + color: "SKIN(268458534 13056 74)"; + + white-space-collapse: collapse; + + _s60-scroll-behaviour: scroll-alternate; + + _s60-display-time: 2000; + _s60-scroll-loop: false; + _s60-start-delay: 0; + _s60-restart-after-update: true; +} +*/ + +newsticker#indicator +{ + padding-left: 9px; + padding-right: 9px; + text-align: center; + display: none; + visibility: visible; + width: auto; + height: 32px; + font-family: EAknLogicalFontSecondaryFont; + /* font-size: 32px; */ + font-size: 30px; + color: "SKIN(268458534 13056 74)"; + + white-space-collapse: collapse; + + _s60-scroll-behaviour: scroll-alternate; + + _s60-display-time: 2000; + _s60-scroll-loop: false; + _s60-start-delay: 0; + _s60-restart-after-update: true; +} + +box#NT_CUGMCN +{ + display: none; + text-align: center; + margin-left: auto; + margin-right: auto; + /* width: adaptive; */ + width: auto; + height: auto; + block-progression: rl; +} + +box#NT_SATVHZ +{ + text-align: center; + margin-left: auto; + margin-right: auto; + /* width: adaptive; */ + width: auto; + height: auto; + block-progression: rl; +} + +title#title_vhz +{ + display: none; +} + +title#title_sat +{ + display: none; +} diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/50/profilemode.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/50/profilemode.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,176 @@ +widget#profilewidget +{ + background-color: "SKIN(268458534 9916)"; + direction: rtl; + block-progression: tb; + nav-index: appearance; +} + +box#marginbox1 +{ + display: block; + width: auto; + height: 15px; +} + +box#profileiconbox +{ + padding-top: 8px; + padding-bottom: 3px; + height: 32px; + width: auto; +} + +image#profileicon +{ + margin-top: auto; + margin-bottom: auto; + margin-left: auto; + margin-right: auto; + width: 32px; + height: 32px; +} + +box#marginbox2 +{ + display: block; + width: auto; + height: 3px; +} + +box#profilenamebox +{ + height: 32px; + width: auto; +} + +text#profilename +{ + /* + padding-left: 9px; + padding-right: 9px; + */ + height: 32px; + text-align: center; + display: block; + visibility: visible; + width: auto; + font-family: EAknLogicalFontSecondaryFont; + /* font-size: 32px; */ + font-size: 30px; + color: "SKIN(268458534 13056 74)"; +} + +/* +box#profile_softindicator +{ + display: none; + padding-top: 2px; + padding-bottom: 2px; + padding-left: 2px; + padding-right: 2px; + direction: ltr; +} + +image#SatIdleModeIcon +{ + display: none; + width: 18px; + height: 20px; + position: static; + margin-top: auto; +} +*/ +/* Default system profiles */ +text.systemprofileitem +{ + display: block; +} + +/* Placeholders for profiles added by user */ +text.userprofileitem +{ + display: none; +} + +/****************** + SOFT INDICATOR WIDGET AREA +*******************/ +/* +newsticker.SIText +{ + text-align: center; + display: block; + visibility: visible; + width: auto; + font-family: EAknLogicalFontSecondaryFont; + font-size: 32px; + color: "SKIN(268458534 13056 74)"; + + white-space-collapse: collapse; + + _s60-scroll-behaviour: scroll-alternate; + + _s60-display-time: 2000; + _s60-scroll-loop: false; + _s60-start-delay: 0; + _s60-restart-after-update: true; +} +*/ + +newsticker#indicator +{ + padding-left: 9px; + padding-right: 9px; + text-align: center; + display: none; + visibility: visible; + width: auto; + height: 32px; + font-family: EAknLogicalFontSecondaryFont; + /* font-size: 32px; */ + font-size: 30px; + color: "SKIN(268458534 13056 74)"; + + white-space-collapse: collapse; + + _s60-scroll-behaviour: scroll-alternate; + + _s60-display-time: 2000; + _s60-scroll-loop: false; + _s60-start-delay: 0; + _s60-restart-after-update: true; +} + +box#NT_CUGMCN +{ + display: none; + text-align: center; + margin-left: auto; + margin-right: auto; + /* width: adaptive; */ + width: auto; + height: auto; + block-progression: rl; +} + +box#NT_SATVHZ +{ + text-align: center; + margin-left: auto; + margin-right: auto; + /* width: adaptive; */ + width: auto; + height: auto; + block-progression: rl; +} + +title#title_vhz +{ + display: none; +} + +title#title_sat +{ + display: none; +} diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/57/profilemode.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/57/profilemode.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,176 @@ +widget#profilewidget +{ + background-color: "SKIN(268458534 9916)"; + direction: rtl; + block-progression: tb; + nav-index: appearance; +} + +box#marginbox1 +{ + display: block; + width: auto; + height: 15px; +} + +box#profileiconbox +{ + padding-top: 8px; + padding-bottom: 3px; + height: 32px; + width: auto; +} + +image#profileicon +{ + margin-top: auto; + margin-bottom: auto; + margin-left: auto; + margin-right: auto; + width: 32px; + height: 32px; +} + +box#marginbox2 +{ + display: block; + width: auto; + height: 3px; +} + +box#profilenamebox +{ + height: 32px; + width: auto; +} + +text#profilename +{ + /* + padding-left: 9px; + padding-right: 9px; + */ + height: 32px; + text-align: center; + display: block; + visibility: visible; + width: auto; + font-family: EAknLogicalFontSecondaryFont; + /* font-size: 32px; */ + font-size: 30px; + color: "SKIN(268458534 13056 74)"; +} + +/* +box#profile_softindicator +{ + display: none; + padding-top: 2px; + padding-bottom: 2px; + padding-left: 2px; + padding-right: 2px; + direction: ltr; +} + +image#SatIdleModeIcon +{ + display: none; + width: 18px; + height: 20px; + position: static; + margin-top: auto; +} +*/ +/* Default system profiles */ +text.systemprofileitem +{ + display: block; +} + +/* Placeholders for profiles added by user */ +text.userprofileitem +{ + display: none; +} + +/****************** + SOFT INDICATOR WIDGET AREA +*******************/ +/* +newsticker.SIText +{ + text-align: center; + display: block; + visibility: visible; + width: auto; + font-family: EAknLogicalFontSecondaryFont; + font-size: 32px; + color: "SKIN(268458534 13056 74)"; + + white-space-collapse: collapse; + + _s60-scroll-behaviour: scroll-alternate; + + _s60-display-time: 2000; + _s60-scroll-loop: false; + _s60-start-delay: 0; + _s60-restart-after-update: true; +} +*/ + +newsticker#indicator +{ + padding-left: 9px; + padding-right: 9px; + text-align: center; + display: none; + visibility: visible; + width: auto; + height: 32px; + font-family: EAknLogicalFontSecondaryFont; + /* font-size: 32px; */ + font-size: 30px; + color: "SKIN(268458534 13056 74)"; + + white-space-collapse: collapse; + + _s60-scroll-behaviour: scroll-alternate; + + _s60-display-time: 2000; + _s60-scroll-loop: false; + _s60-start-delay: 0; + _s60-restart-after-update: true; +} + +box#NT_CUGMCN +{ + display: none; + text-align: center; + margin-left: auto; + margin-right: auto; + /* width: adaptive; */ + width: auto; + height: auto; + block-progression: rl; +} + +box#NT_SATVHZ +{ + text-align: center; + margin-left: auto; + margin-right: auto; + /* width: adaptive; */ + width: auto; + height: auto; + block-progression: rl; +} + +title#title_vhz +{ + display: none; +} + +title#title_sat +{ + display: none; +} diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/94/profilemode.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/94/profilemode.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,176 @@ +widget#profilewidget +{ + background-color: "SKIN(268458534 9916)"; + direction: rtl; + block-progression: tb; + nav-index: appearance; +} + +box#marginbox1 +{ + display: block; + width: auto; + height: 15px; +} + +box#profileiconbox +{ + padding-top: 8px; + padding-bottom: 3px; + height: 32px; + width: auto; +} + +image#profileicon +{ + margin-top: auto; + margin-bottom: auto; + margin-left: auto; + margin-right: auto; + width: 32px; + height: 32px; +} + +box#marginbox2 +{ + display: block; + width: auto; + height: 3px; +} + +box#profilenamebox +{ + height: 32px; + width: auto; +} + +text#profilename +{ + /* + padding-left: 9px; + padding-right: 9px; + */ + height: 32px; + text-align: center; + display: block; + visibility: visible; + width: auto; + font-family: EAknLogicalFontSecondaryFont; + /* font-size: 32px; */ + font-size: 30px; + color: "SKIN(268458534 13056 74)"; +} + +/* +box#profile_softindicator +{ + display: none; + padding-top: 2px; + padding-bottom: 2px; + padding-left: 2px; + padding-right: 2px; + direction: ltr; +} + +image#SatIdleModeIcon +{ + display: none; + width: 18px; + height: 20px; + position: static; + margin-top: auto; +} +*/ +/* Default system profiles */ +text.systemprofileitem +{ + display: block; +} + +/* Placeholders for profiles added by user */ +text.userprofileitem +{ + display: none; +} + +/****************** + SOFT INDICATOR WIDGET AREA +*******************/ +/* +newsticker.SIText +{ + text-align: center; + display: block; + visibility: visible; + width: auto; + font-family: EAknLogicalFontSecondaryFont; + font-size: 32px; + color: "SKIN(268458534 13056 74)"; + + white-space-collapse: collapse; + + _s60-scroll-behaviour: scroll-alternate; + + _s60-display-time: 2000; + _s60-scroll-loop: false; + _s60-start-delay: 0; + _s60-restart-after-update: true; +} +*/ + +newsticker#indicator +{ + padding-left: 9px; + padding-right: 9px; + text-align: center; + display: none; + visibility: visible; + width: auto; + height: 32px; + font-family: EAknLogicalFontSecondaryFont; + /* font-size: 32px; */ + font-size: 30px; + color: "SKIN(268458534 13056 74)"; + + white-space-collapse: collapse; + + _s60-scroll-behaviour: scroll-alternate; + + _s60-display-time: 2000; + _s60-scroll-loop: false; + _s60-start-delay: 0; + _s60-restart-after-update: true; +} + +box#NT_CUGMCN +{ + display: none; + text-align: center; + margin-left: auto; + margin-right: auto; + /* width: adaptive; */ + width: auto; + height: auto; + block-progression: rl; +} + +box#NT_SATVHZ +{ + text-align: center; + margin-left: auto; + margin-right: auto; + /* width: adaptive; */ + width: auto; + height: auto; + block-progression: rl; +} + +title#title_vhz +{ + display: none; +} + +title#title_sat +{ + display: none; +} diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/root_2001f48f/conf/root2001f48f.confml Binary file idlehomescreen/data/vga_tch/root_2001f48f/conf/root2001f48f.confml has changed diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/root_2001f48f/conf/root2001f48f.gcfml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/root_2001f48f/conf/root2001f48f.gcfml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/root_2001f48f/group/bld.inf --- a/idlehomescreen/data/vga_tch/root_2001f48f/group/bld.inf Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/root_2001f48f/group/bld.inf Fri Sep 17 15:37:16 2010 +0100 @@ -26,13 +26,16 @@ // Support for productization and Carbide.Ui customization //******************************************************** ../hsps/00/manifest.dat /epoc32/data/z/resource/homescreen/root_2001f48f/hsps/manifest.dat -../hsps/00/rootconfiguration.xml /epoc32/data/z/resource/homescreen/root_2001f48f/hsps/rootconfiguration.xml -//../hsps/00/rootconfiguration.dtd /epoc32/data/z/resource/homescreen/root_2001f48f/hsps/rootconfiguration.dtd +//../hsps/00/rootconfiguration.xml /epoc32/data/z/resource/homescreen/root_2001f48f/hsps/rootconfiguration.xml ../xuikon/00/root.dat /epoc32/data/z/resource/homescreen/root_2001f48f/xuikon/root_2001f48f.dat ../xuikon/00/root.css /epoc32/data/z/resource/homescreen/root_2001f48f/xuikon/root.css ../xuikon/00/root.xml /epoc32/data/z/resource/homescreen/root_2001f48f/xuikon/root.xml - +//Confml and cfgml files for the customization +// starting use confml it is need to remove root_configuration.xml direct exporting (root_2001f482_variant.iby) +//*********************************** +../conf/root2001f48f.confml APP_LAYER_CONFML(root2001f48f.confml) +../conf/root2001f48f.gcfml APP_LAYER_GCFML(root2001f48f.gcfml) // Support for S60 localization //***************************** @@ -43,9 +46,9 @@ // Support for S60 builds //*********************** -../rom/root_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(root_2001f48f_resources.iby) -../rom/root_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(root_2001f48f_customer.iby) -../rom/root_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(root_2001f48f_variant.iby) +//../rom/root_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(root_2001f48f_resources.iby) +//../rom/root_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(root_2001f48f_customer.iby) +//../rom/root_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(root_2001f48f_variant.iby) ../rom/root.iby CORE_APP_LAYER_IBY_EXPORT_PATH(root_2001f48f.iby) diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/manifest.dat --- a/idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/manifest.dat Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/manifest.dat Fri Sep 17 15:37:16 2010 +0100 @@ -23,10 +23,7 @@ rootconfiguration.xml - - - - + root.o0000 diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/rootconfiguration.dtd --- a/idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/rootconfiguration.dtd Thu Sep 02 15:42:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ - - - - - - diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/rootconfiguration.xml --- a/idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/rootconfiguration.xml Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/rootconfiguration.xml Fri Sep 17 15:37:16 2010 +0100 @@ -1,16 +1,17 @@ - + - + - - - - - - + + + - - + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/root_2001f48f/rom/root.iby --- a/idlehomescreen/data/vga_tch/root_2001f48f/rom/root.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/root_2001f48f/rom/root.iby Fri Sep 17 15:37:16 2010 +0100 @@ -19,12 +19,12 @@ #ifndef __ROOT_2001F48F_IBY__ #define __ROOT_2001F48F_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools data=ZPRIVATE\200159c0\install\root_2001f48f\xuikon\00\root.o0000 \private\200159c0\install\root_2001f48f\xuikon\00\root.o0000 data=ZPRIVATE\200159c0\install\root_2001f48f\hsps\00\manifest.dat \private\200159c0\install\root_2001f48f\hsps\00\manifest.dat -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __ROOT_2001F48F_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/root_2001f48f/rom/root_customer.iby --- a/idlehomescreen/data/vga_tch/root_2001f48f/rom/root_customer.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/root_2001f48f/rom/root_customer.iby Fri Sep 17 15:37:16 2010 +0100 @@ -19,11 +19,11 @@ #ifndef __ROOT_2001F48F_CUSTOMER_IBY__ #define __ROOT_2001F48F_CUSTOMER_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools, language specific //data=ZPRIVATE\200159c0\install\root_2001f48f\hsps\00\rootconfiguration.dtd \private\200159c0\install\root_2001f48f\hsps\00\rootconfiguration.dtd -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __ROOT_2001F48F_CUSTOMER_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/root_2001f48f/rom/root_resources.iby --- a/idlehomescreen/data/vga_tch/root_2001f48f/rom/root_resources.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/root_2001f48f/rom/root_resources.iby Fri Sep 17 15:37:16 2010 +0100 @@ -19,11 +19,11 @@ #ifndef __ROOT_2001F48F_RESOURCES_IBY__ #define __ROOT_2001F48F_RESOURCES_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools, language specific //data=ZPRIVATE\200159c0\install\root_2001f48f\hsps\00\rootconfiguration.dtd \private\200159c0\install\root_2001f48f\hsps\00\rootconfiguration.dtd -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __ROOT_2001F48F_RESOURCES_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/root_2001f48f/rom/root_variant.iby --- a/idlehomescreen/data/vga_tch/root_2001f48f/rom/root_variant.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/root_2001f48f/rom/root_variant.iby Fri Sep 17 15:37:16 2010 +0100 @@ -19,11 +19,11 @@ #ifndef __ROOT_2001F48F_VARIANT_IBY__ #define __ROOT_2001F48F_VARIANT_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by variation tools, variant specific data=ZPRIVATE\200159c0\install\root_2001f48f\hsps\00\rootconfiguration.xml \private\200159c0\install\root_2001f48f\hsps\00\rootconfiguration.xml -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __ROOT_2001F48F_VARIANT_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/root_2001f48f/xuikon/00/root.xml --- a/idlehomescreen/data/vga_tch/root_2001f48f/xuikon/00/root.xml Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/root_2001f48f/xuikon/00/root.xml Fri Sep 17 15:37:16 2010 +0100 @@ -1,5 +1,4 @@ - diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget.iby --- a/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget.iby Fri Sep 17 15:37:16 2010 +0100 @@ -19,10 +19,11 @@ #ifndef __SINGLE_ROW_WIDGET_2001FDC0_IBY__ #define __SINGLE_ROW_WIDGET_2001FDC0_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools data=ZPRIVATE\200159c0\install\single_row_icon_widget_2001fdc0\hsps\00\manifest.dat \private\200159c0\install\single_row_icon_widget_2001fdc0\hsps\00\manifest.dat -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + #endif // __SINGLE_ROW_WIDGET_2001FDC0_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget_customer.iby --- a/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget_customer.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget_customer.iby Fri Sep 17 15:37:16 2010 +0100 @@ -19,11 +19,11 @@ #ifndef __SINGLE_ROW_WIDGET_2001FDC0_CUSTOMER_IBY__ #define __SINGLE_ROW_WIDGET_2001FDC0_CUSTOMER_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools, language specific data=ZPRIVATE\200159c0\install\single_row_icon_widget_2001fdc0\xuikon\00\single_row_icon_widget.o0000 \private\200159c0\install\single_row_icon_widget_2001fdc0\xuikon\00\single_row_icon_widget.o0000 -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __SINGLE_ROW_WIDGET_2001FDC0_CUSTOMER_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget_resources.iby --- a/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget_resources.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget_resources.iby Fri Sep 17 15:37:16 2010 +0100 @@ -18,7 +18,7 @@ #ifndef __SINGLE_ROW_WIDGET_2001FDC0_RESOURCES_IBY__ #define __SINGLE_ROW_WIDGET_2001FDC0_RESOURCES_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools, language specific #if defined (__LOCALES_37_IBY__) @@ -34,6 +34,6 @@ data=ZPRIVATE\200159c0\install\single_row_icon_widget_2001fdc0\xuikon\94\single_row_icon_widget.o0094 \private\200159c0\install\single_row_icon_widget_2001fdc0\xuikon\94\single_row_icon_widget.o0094 #endif -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __SINGLE_ROW_WIDGET_2001FDC0_RESOURCES_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget_variant.iby --- a/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget_variant.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget_variant.iby Fri Sep 17 15:37:16 2010 +0100 @@ -19,11 +19,11 @@ #ifndef __SINGLE_ROW_WIDGET_2001FDC0_VARIANT_IBY__ #define __SINGLE_ROW_WIDGET_2001FDC0_VARIANT_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by variation tools, variant specific data=ZPRIVATE\200159c0\install\single_row_icon_widget_2001fdc0\hsps\00\widgetconfiguration.xml \private\200159c0\install\single_row_icon_widget_2001fdc0\hsps\00\widgetconfiguration.xml -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __SINGLE_ROW_WIDGET_2001FDC0_VARIANT_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget.iby --- a/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget.iby Fri Sep 17 15:37:16 2010 +0100 @@ -19,11 +19,11 @@ #ifndef __SINGLE_ROW_WIDGET_2001FDC1_IBY__ #define __SINGLE_ROW_WIDGET_2001FDC1_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools data=ZPRIVATE\200159c0\install\single_row_widget_2001fdc1\hsps\00\manifest.dat \private\200159c0\install\single_row_widget_2001fdc1\hsps\00\manifest.dat -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __SINGLE_ROW_WIDGET_2001FDC1_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget_customer.iby --- a/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget_customer.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget_customer.iby Fri Sep 17 15:37:16 2010 +0100 @@ -19,11 +19,11 @@ #ifndef __SINGLE_ROW_WIDGET_2001FDC1_CUSTOMER_IBY__ #define __SINGLE_ROW_WIDGET_2001FDC1_CUSTOMER_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools, language specific data=ZPRIVATE\200159c0\install\single_row_widget_2001fdc1\xuikon\00\single_row_widget.o0000 \private\200159c0\install\single_row_widget_2001fdc1\xuikon\00\single_row_widget.o0000 -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __SINGLE_ROW_WIDGET_2001FDC1_CUSTOMER_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget_resources.iby --- a/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget_resources.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget_resources.iby Fri Sep 17 15:37:16 2010 +0100 @@ -18,7 +18,7 @@ #ifndef __SINGLE_ROW_WIDGET_2001FDC1_RESOURCES_IBY__ #define __SINGLE_ROW_WIDGET_2001FDC1_RESOURCES_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools, language specific #if defined (__LOCALES_37_IBY__) @@ -34,6 +34,6 @@ data=ZPRIVATE\200159c0\install\single_row_widget_2001fdc1\xuikon\94\single_row_widget.o0094 \private\200159c0\install\single_row_widget_2001fdc1\xuikon\94\single_row_widget.o0094 #endif -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __SINGLE_ROW_WIDGET_2001FDC1_RESOURCES_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget_variant.iby --- a/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget_variant.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget_variant.iby Fri Sep 17 15:37:16 2010 +0100 @@ -19,11 +19,11 @@ #ifndef __SINGLE_ROW_WIDGET_2001FDC1_VARIANT_IBY__ #define __SINGLE_ROW_WIDGET_2001FDC1_VARIANT_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by variation tools, variant specific data=ZPRIVATE\200159c0\install\single_row_widget_2001fdc1\hsps\00\widgetconfiguration.xml \private\200159c0\install\single_row_widget_2001fdc1\hsps\00\widgetconfiguration.xml -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __SINGLE_ROW_WIDGET_2001FDC1_VARIANT_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/templateview_200286ec/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/group/bld.inf Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,77 @@ +/* +* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: The information required for building +* +*/ + + +#include + +PRJ_PLATFORMS +DEFAULT + +PRJ_EXPORTS +// Support for productization and Carbide.Ui customization +//******************************************************** +../hsps/00/manifest.dat /epoc32/data/z/resource/homescreen/tempateview_200286ec/hsps/manifest.dat +../hsps/00/viewconfiguration.xml /epoc32/data/z/resource/homescreen/tempateview_200286ec/hsps/viewconfiguration.xml +//../hsps/00/viewconfiguration.dtd /epoc32/data/z/resource/homescreen/tempateview_200286ec/hsps/viewconfiguration.dtd + +../xuikon/00/view.dat /epoc32/data/z/resource/homescreen/tempateview_200286ec/xuikon/tempateview_200286ec.dat +../xuikon/00/view.xml /epoc32/data/z/resource/homescreen/tempateview_200286ec/xuikon/view.xml +../xuikon/00/view.dtd /epoc32/data/z/resource/homescreen/tempateview_200286ec/xuikon/view.dtd +../xuikon/00/view.css /epoc32/data/z/resource/homescreen/tempateview_200286ec/xuikon/view.css + +// Arabic languages +//***************** +../xuikon/37/view.css /epoc32/data/z/resource/homescreen/tempateview_200286ec/xuikon/37/view.css +../xuikon/50/view.css /epoc32/data/z/resource/homescreen/tempateview_200286ec/xuikon/50/view.css +../xuikon/57/view.css /epoc32/data/z/resource/homescreen/tempateview_200286ec/xuikon/57/view.css +../xuikon/94/view.css /epoc32/data/z/resource/homescreen/tempateview_200286ec/xuikon/94/view.css + + +// Support for S60 localization +//***************************** +//#ifndef __VIEWCONFIGURATION_LOC__ +//#define __VIEWCONFIGURATION_LOC__ +//../loc/viewconfiguration.loc APP_LAYER_LOC_EXPORT_PATH(viewconfiguration.loc) +//#endif // __VIEWCONFIGURATION_LOC__ + +#ifndef __VIEW_LOC__ +#define __VIEW_LOC__ +../loc/view.loc APP_LAYER_LOC_EXPORT_PATH(view.loc) +#endif // __VIEW_LOC__ + +// Support for S60 builds +//*********************** +../rom/view_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(tempateview_200286ec_resources.iby) +../rom/view_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(tempateview_200286ec_customer.iby) +../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(tempateview_200286ec_variant.iby) +../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(tempateview_200286ec.iby) + + +// Dtd-localization +//***************** +PRJ_EXTENSIONS +START EXTENSION tools/dtd +OPTION SWITCH_LOC_FILE_NAME tempateview_200286ec +OPTION DTD_TYPE widget +END + + +PRJ_MMPFILES + +PRJ_TESTMMPFILES + +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/templateview_200286ec/hsps/00/manifest.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/hsps/00/manifest.dat Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,33 @@ + + + + vga_tch + + view + + + 0x2001f48a + + + 0x101fb657 + + + 0x200286ec + + + tempateview + ai3_nokia + 1.0 + + + viewconfiguration.xml + + + + + + + view.o0000 + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/templateview_200286ec/hsps/00/viewconfiguration.dtd --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/hsps/00/viewconfiguration.dtd Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,27 @@ + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/templateview_200286ec/hsps/00/viewconfiguration.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/hsps/00/viewconfiguration.xml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/templateview_200286ec/loc/view.loc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/loc/view.loc Fri Sep 17 15:37:16 2010 +0100 @@ -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 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/templateview_200286ec/loc/viewconfiguration.loc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/loc/viewconfiguration.loc Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,27 @@ +/* +* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Localization strings for tempateview plugin configuration (HSPS) +* +*/ + + + +// d: AI3 View +// l: ai_gene_pane_1_t1 +// w: +// r: TB9.2 +//#define qtn_view_configuration_name "AI3 View" + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/templateview_200286ec/rom/view.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/rom/view.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: View widget HSPS-plugin IBY file. +* +*/ + + +#ifndef __AI3VIEW_200286ec_IBY__ +#define __AI3VIEW_200286ec_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools +data=ZPRIVATE\200159c0\install\tempateview_200286ec\hsps\00\manifest.dat \private\200159c0\install\tempateview_200286ec\hsps\00\manifest.dat + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __AI3VIEW_200286ec_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/templateview_200286ec/rom/view_customer.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/rom/view_customer.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,30 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: View widget HSPS-plugin language specific IBY file. +* +*/ + + +#ifndef __AI3VIEW_200286ec_CUSTOMER_IBY__ +#define __AI3VIEW_200286ec_CUSTOMER_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools, language specific +data=ZPRIVATE\200159c0\install\tempateview_200286ec\xuikon\00\view.o0000 \private\200159c0\install\tempateview_200286ec\xuikon\00\view.o0000 +//data=ZPRIVATE\200159c0\install\tempateview_200286ec\hsps\00\viewconfiguration.dtd \private\200159c0\install\tempateview_200286ec\hsps\00\viewconfiguration.dtd + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __AI3VIEW_200286ec_CUSTOMER_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/templateview_200286ec/rom/view_resources.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/rom/view_resources.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,30 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: View widget HSPS-plugin language specific IBY file. +* +*/ + + +#ifndef __AI3VIEW_200286ec_RESOURCES_IBY__ +#define __AI3VIEW_200286ec_RESOURCES_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools, language specific +data=ZPRIVATE\200159c0\install\tempateview_200286ec\xuikon\00\view.o0000 \private\200159c0\install\tempateview_200286ec\xuikon\00\view.o0000 +//data=ZPRIVATE\200159c0\install\tempateview_200286ec\hsps\00\viewconfiguration.dtd \private\200159c0\install\tempateview_200286ec\hsps\00\viewconfiguration.dtd + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __AI3VIEW_200286ec_RESOURCES_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/templateview_200286ec/rom/view_variant.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/rom/view_variant.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: View widget HSPS-plugin variant specific IBY file. +* +*/ + + +#ifndef __AI3VIEW_200286ec_VARIANT_IBY__ +#define __AI3VIEW_200286ec_VARIANT_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by variation tools, variant specific +data=ZPRIVATE\200159c0\install\tempateview_200286ec\hsps\00\viewconfiguration.xml \private\200159c0\install\tempateview_200286ec\hsps\00\viewconfiguration.xml + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __AI3VIEW_200286ec_VARIANT_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/00/View.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/00/View.xml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,283 @@ + + + + + + + + + > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/00/view.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/00/view.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,73 @@ +view +{ + direction: ltr; + block-progression: tb; + background-image: wallpaper; + swipe: true; + + _s60-status-pane-layout: widescreen-flat-3softkeys; +} + +box#plugins_container +{ + direction: ltr; + block-progression: tb; +} + +plugin.miniplugins +{ + height: 115px; + width: 176px; + + margin-top: 9px; + margin-left: 9px; + + _s60-longtap: true; + + nav-index: appearance; +} + +plugin.plugins +{ + height: 115px; + width: 436px; + + margin-top: 9px; + margin-left: 10px; + + _s60-longtap: true; + + nav-index: appearance; +} + +trigger#hs_popup_open_hold:edit +{ + display: none; +} + +trigger#hs_popup_open_up +{ + display: none; +} + +trigger#hs_popup_open_up:edit +{ + display: block; +} + +softkey#rsk +{ + _s60-longtap: true; + _s60-aspect-ratio: preserve; +} + +softkey#msk_ltr +{ + display: block; +} + +softkey#msk_rtl +{ + display: none; +} + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/00/view.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/00/view.dat Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,13 @@ + + + E029CF57 + 101FB657 + 11001234 + Nokia + view + 1.0 + view.xml + view.css + view.dtd + + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/00/view.dtd --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/00/view.dtd Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,514 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/37/view.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/37/view.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,73 @@ +view +{ + direction: rtl; + block-progression: tb; + background-image: wallpaper; + swipe: true; + + _s60-status-pane-layout: widescreen-flat-3softkeys; +} + +box#plugins_container +{ + direction: rtl; + block-progression: tb; +} + +plugin.miniplugins +{ + height: 115px; + width: 176px; + + margin-top: 9px; + margin-right: 9px; + + _s60-longtap: true; + + nav-index: appearance; +} + +plugin.plugins +{ + height: 115px; + width: 436px; + + margin-top: 9px; + margin-right: 10px; + + _s60-longtap: true; + + nav-index: appearance; +} + +trigger#hs_popup_open_hold:edit +{ + display: none; +} + +trigger#hs_popup_open_up +{ + display: none; +} + +trigger#hs_popup_open_up:edit +{ + display: block; +} + +softkey#rsk +{ + _s60-longtap: true; + _s60-aspect-ratio: preserve; +} + +softkey#msk_ltr +{ + display: block; +} + +softkey#msk_rtl +{ + display: none; +} + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/50/view.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/50/view.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,73 @@ +view +{ + direction: rtl; + block-progression: tb; + background-image: wallpaper; + swipe: true; + + _s60-status-pane-layout: widescreen-flat-3softkeys; +} + +box#plugins_container +{ + direction: rtl; + block-progression: tb; +} + +plugin.miniplugins +{ + height: 115px; + width: 176px; + + margin-top: 9px; + margin-right: 9px; + + _s60-longtap: true; + + nav-index: appearance; +} + +plugin.plugins +{ + height: 115px; + width: 436px; + + margin-top: 9px; + margin-right: 10px; + + _s60-longtap: true; + + nav-index: appearance; +} + +trigger#hs_popup_open_hold:edit +{ + display: none; +} + +trigger#hs_popup_open_up +{ + display: none; +} + +trigger#hs_popup_open_up:edit +{ + display: block; +} + +softkey#rsk +{ + _s60-longtap: true; + _s60-aspect-ratio: preserve; +} + +softkey#msk_ltr +{ + display: block; +} + +softkey#msk_rtl +{ + display: none; +} + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/57/view.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/57/view.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,73 @@ +view +{ + direction: rtl; + block-progression: tb; + background-image: wallpaper; + swipe: true; + + _s60-status-pane-layout: widescreen-flat-3softkeys; +} + +box#plugins_container +{ + direction: rtl; + block-progression: tb; +} + +plugin.miniplugins +{ + height: 115px; + width: 176px; + + margin-top: 9px; + margin-right: 9px; + + _s60-longtap: true; + + nav-index: appearance; +} + +plugin.plugins +{ + height: 115px; + width: 436px; + + margin-top: 9px; + margin-right: 10px; + + _s60-longtap: true; + + nav-index: appearance; +} + +trigger#hs_popup_open_hold:edit +{ + display: none; +} + +trigger#hs_popup_open_up +{ + display: none; +} + +trigger#hs_popup_open_up:edit +{ + display: block; +} + +softkey#rsk +{ + _s60-longtap: true; + _s60-aspect-ratio: preserve; +} + +softkey#msk_ltr +{ + display: block; +} + +softkey#msk_rtl +{ + display: none; +} + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/94/view.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/94/view.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,73 @@ +view +{ + direction: rtl; + block-progression: tb; + background-image: wallpaper; + swipe: true; + + _s60-status-pane-layout: widescreen-flat-3softkeys; +} + +box#plugins_container +{ + direction: rtl; + block-progression: tb; +} + +plugin.miniplugins +{ + height: 115px; + width: 176px; + + margin-top: 9px; + margin-right: 9px; + + _s60-longtap: true; + + nav-index: appearance; +} + +plugin.plugins +{ + height: 115px; + width: 436px; + + margin-top: 9px; + margin-right: 10px; + + _s60-longtap: true; + + nav-index: appearance; +} + +trigger#hs_popup_open_hold:edit +{ + display: none; +} + +trigger#hs_popup_open_up +{ + display: none; +} + +trigger#hs_popup_open_up:edit +{ + display: block; +} + +softkey#rsk +{ + _s60-longtap: true; + _s60-aspect-ratio: preserve; +} + +softkey#msk_ltr +{ + display: block; +} + +softkey#msk_rtl +{ + display: none; +} + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget.iby --- a/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget.iby Fri Sep 17 15:37:16 2010 +0100 @@ -19,11 +19,11 @@ #ifndef __TRIPLE_ROW_ICON_WIDGET_2001FDBE_IBY__ #define __TRIPLE_ROW_ICON_WIDGET_2001FDBE_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools data=ZPRIVATE\200159c0\install\triple_row_icon_widget_2001fdbe\hsps\00\manifest.dat \private\200159c0\install\triple_row_icon_widget_2001fdbe\hsps\00\manifest.dat - -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __TRIPLE_ROW_ICON_WIDGET_2001FDBE_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget_customer.iby --- a/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget_customer.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget_customer.iby Fri Sep 17 15:37:16 2010 +0100 @@ -19,11 +19,11 @@ #ifndef __TRIPLE_ROW_ICON_WIDGET_2001FDBE_CUSTOMER_IBY__ #define __TRIPLE_ROW_ICON_WIDGET_2001FDBE_CUSTOMER_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools, language specific data=ZPRIVATE\200159c0\install\triple_row_icon_widget_2001fdbe\xuikon\00\triple_row_icon_widget.o0000 \private\200159c0\install\triple_row_icon_widget_2001fdbe\xuikon\00\triple_row_icon_widget.o0000 -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __TRIPLE_ROW_ICON_WIDGET_2001FDBE_CUSTOMER_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget_resources.iby --- a/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget_resources.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget_resources.iby Fri Sep 17 15:37:16 2010 +0100 @@ -18,7 +18,7 @@ #ifndef __TRIPLE_ROW_ICON_WIDGET_2001FDBE_RESOURCES_IBY__ #define __TRIPLE_ROW_ICON_WIDGET_2001FDBE_RESOURCES_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools, language specific #if defined (__LOCALES_37_IBY__) @@ -34,6 +34,6 @@ data=ZPRIVATE\200159c0\install\triple_row_icon_widget_2001fdbe\xuikon\94\triple_row_icon_widget.o0094 \private\200159c0\install\triple_row_icon_widget_2001fdbe\xuikon\94\triple_row_icon_widget.o0094 #endif -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __TRIPLE_ROW_ICON_WIDGET_2001FDBE_RESOURCES_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget_variant.iby --- a/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget_variant.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget_variant.iby Fri Sep 17 15:37:16 2010 +0100 @@ -19,11 +19,11 @@ #ifndef __TRIPLE_ROW_ICON_WIDGET_2001FDBE_VARIANT_IBY__ #define __TRIPLE_ROW_ICON_WIDGET_2001FDBE_VARIANT_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by variation tools, variant specific data=ZPRIVATE\200159c0\install\triple_row_icon_widget_2001fdbe\hsps\00\widgetconfiguration.xml \private\200159c0\install\triple_row_icon_widget_2001fdbe\hsps\00\widgetconfiguration.xml -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __TRIPLE_ROW_ICON_WIDGET_2001FDBE_VARIANT_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget.iby --- a/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget.iby Fri Sep 17 15:37:16 2010 +0100 @@ -18,11 +18,11 @@ #ifndef __TRIPLE_ROW_WIDGET_2001FDBF_IBY__ #define __TRIPLE_ROW_WIDGET_2001FDBF_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools data=ZPRIVATE\200159c0\install\triple_row_widget_2001fdbf\hsps\00\manifest.dat \private\200159c0\install\triple_row_widget_2001fdbf\hsps\00\manifest.dat -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __TRIPLE_ROW_WIDGET_2001FDBF_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget_customer.iby --- a/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget_customer.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget_customer.iby Fri Sep 17 15:37:16 2010 +0100 @@ -18,11 +18,11 @@ #ifndef __TRIPLE_ROW_WIDGET_2001FDBF_CUSTOMER_IBY__ #define __TRIPLE_ROW_WIDGET_2001FDBF_CUSTOMER_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools, language specific -data=ZPRIVATE\200159c0\install\triple_row_widget_2001fdbf\xuikon\00\triple_row_widget_2001fdbf.o0000 \private\200159c0\install\triple_row_widget_2001fdbf\xuikon\00\triple_row_widget.o0000 +data=ZPRIVATE\200159c0\install\triple_row_widget_2001fdbf\xuikon\00\triple_row_widget.o0000 \private\200159c0\install\triple_row_widget_2001fdbf\xuikon\00\triple_row_widget.o0000 -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __TRIPLE_ROW_WIDGET_2001FDBF_CUSTOMER_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget_resources.iby --- a/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget_resources.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget_resources.iby Fri Sep 17 15:37:16 2010 +0100 @@ -18,7 +18,7 @@ #ifndef __TRIPLE_ROW_WIDGET_2001FDBF_RESOURCES_IBY__ #define __TRIPLE_ROW_WIDGET_2001FDBF_RESOURCES_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools, language specific #if defined (__LOCALES_37_IBY__) @@ -34,6 +34,6 @@ data=ZPRIVATE\200159c0\install\triple_row_widget_2001fdbf\xuikon\94\triple_row_widget.o0094 \private\200159c0\install\triple_row_widget_2001fdbf\xuikon\94\triple_row_widget.o0094 #endif -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __TRIPLE_ROW_WIDGET_2001FDBF_RESOURCES_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget_variant.iby --- a/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget_variant.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget_variant.iby Fri Sep 17 15:37:16 2010 +0100 @@ -18,11 +18,11 @@ #ifndef __TRIPLE_ROW_WIDGET_2001FDBF_VARIANT_IBY__ #define __TRIPLE_ROW_WIDGET_2001FDBF_VARIANT_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by variation tools, variant specific data=ZPRIVATE\200159c0\install\triple_row_widget_2001fdbf\hsps\00\widgetconfiguration.xml \private\200159c0\install\triple_row_widget_2001fdbf\hsps\00\widgetconfiguration.xml -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __TRIPLE_ROW_WIDGET_2001FDBF_VARIANT_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9.confml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9.confml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,483 @@ + + + + + Maximum widget amount in Homescreen 1 page. Customizable + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Path of the Wallpaper resource. Customizable. + + + Not customizable! + + + Not customizable! + + + Widgets in the Homescreen 1 + + Widget name + + + Bundle identifier for the (C)WRT widgets. None for the native widgets + + + Templeate identifier for the (C)WRT widgets. None for the native widgets + + + Locking status for the widget 1 in Homescreen 1 page + + + Customize enabler for desktop/shortcut widget + + + Customize 1st item in desktop widget + + + Type of the item: Application, bookmark, or shortcut(param specific item) + + + Uid for the application, Menu content Uid for the bookmarks and shortcuts. + + + url for the bookmark based shortcut. for example http://www.google.com + + + Params for shortcut. For example: messaging:msg + + + Customize 2nd item in desktop widget + + + Type of the item: Application, bookmark, or shortcut(param specific item) + + + Uid for the application, Menu content Uid for the bookmarks and shortcuts + + + url for the bookmark based shortcut. for example http://www.google.com + + + Params for shortcut. messaging:msg + + + Customize 3rd item in desktop widget + + + Type of the item: Application, bookmark, or shortcut(param specific item) + + + Uid for the application,Menu content Uid for the bookmarks and shortcuts. + + + url for the bookmark based shortcut. for example http://www.google.com + + + Params for shortcut. messaging:msg + + + Customize 4th item in desktop widget + + + Type of the item: Application, bookmark, or shortcut(param specific item) + + + Uid for the application, Menu content ids for the bookmarks and shortcuts + + + url for the bookmark based shortcut. for example http://www.google.com + + + Params for shortcut. messaging:msg + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + + + + 6 + true + hs_vga_tch_view + use_empty_widget + wallpaper + path + + + 0x200286e6 + 0 + 0 + permanent + 0 + + + + + + + + + + + + + + + + + + + + + first + Shortcut1 + second + Shortcut2 + third + Shortcut3 + fourth + Shortcut4 + type + uid + view + param + + + 0x200286e7 + 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 + + + 0x20018EEE + 0 + 0 + none + 1 + 1 + application + 0x101F4CCE + + + 1 + shortcut + 0x99999999 + + messaging:msg + 1 + application + 0x10008D39 + + + 1 + application + 0x10005901 + + + 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 + + + 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 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9.gcfml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9.gcfml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9manifest.confml Binary file idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9manifest.confml has changed diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9manifest.gcfml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9manifest.gcfml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9xuikon.confml Binary file idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9xuikon.confml has changed diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9xuikon.gcfml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9xuikon.gcfml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view1_2001fdb9/group/bld.inf --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/group/bld.inf Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/group/bld.inf Fri Sep 17 15:37:16 2010 +0100 @@ -24,8 +24,8 @@ PRJ_EXPORTS // Support for productization and Carbide.Ui customization //******************************************************** -../hsps/00/manifest.dat /epoc32/data/z/resource/homescreen/view1_2001fdb9/hsps/manifest.dat -../hsps/00/viewconfiguration.xml /epoc32/data/z/resource/homescreen/view1_2001fdb9/hsps/viewconfiguration.xml +//../hsps/00/manifest.dat /epoc32/data/z/resource/homescreen/view1_2001fdb9/hsps/manifest.dat +//../hsps/00/viewconfiguration.xml /epoc32/data/z/resource/homescreen/view1_2001fdb9/hsps/viewconfiguration.xml //../hsps/00/viewconfiguration.dtd /epoc32/data/z/resource/homescreen/view1_2001fdb9/hsps/viewconfiguration.dtd ../xuikon/00/view.dat /epoc32/data/z/resource/homescreen/view1_2001fdb9/xuikon/view1_2001fdb9.dat @@ -41,6 +41,15 @@ ../xuikon/94/view.css /epoc32/data/z/resource/homescreen/view1_2001fdb9/xuikon/94/view.css +//Confml and cfgml files for the customization +// starting use confml it is need to remove root_configuration.xml direct exporting (view_200286e4_variant.iby) +//*********************************** +../conf/view2001fdb9.confml APP_LAYER_CONFML(view2001fdb9.confml) +../conf/view2001fdb9.gcfml APP_LAYER_GCFML(view2001fdb9.gcfml) +../conf/view2001fdb9manifest.confml APP_LAYER_CONFML(view2001fdb9manifest.confml) +../conf/view2001fdb9manifest.gcfml APP_LAYER_GCFML(view2001fdb9manifest.gcfml) +../conf/view2001fdb9xuikon.confml APP_LAYER_CONFML(view2001fdb9xuikon.confml) +../conf/view2001fdb9xuikon.gcfml APP_LAYER_GCFML(view2001fdb9xuikon.gcfml) // Support for S60 localization //***************************** //#ifndef __VIEWCONFIGURATION_LOC__ @@ -58,7 +67,7 @@ ../rom/view_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9_resources.iby) ../rom/view_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9_customer.iby) ../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9_variant.iby) -../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9.iby) +//../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9.iby) // Dtd-localization diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view1_2001fdb9/hsps/00/viewconfiguration.xml --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/hsps/00/viewconfiguration.xml Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/hsps/00/viewconfiguration.xml Fri Sep 17 15:37:16 2010 +0100 @@ -1,13 +1,55 @@ - + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view1_2001fdb9/loc/view.loc --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/loc/view.loc Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/loc/view.loc Fri Sep 17 15:37:16 2010 +0100 @@ -308,3 +308,15 @@ // w: // r: TB9.2 #define qtn_hs_text_softkey_call "Call" + +// d: Lock keypad +// l: list_single_pane_t1_cp2 +// w: +// r: TB9.2 +#define qtn_hs_lock_keypad "Lock keypad" + +// d: Menu +// l: nhd_control_pane_t2/opt7 +// w: +// r: TB9.2 +#define qtn_hs_apps_menu_skey "Menu" diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view.iby --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view.iby Fri Sep 17 15:37:16 2010 +0100 @@ -19,11 +19,11 @@ #ifndef __AI3VIEW_2001FDB9_IBY__ #define __AI3VIEW_2001FDB9_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools data=ZPRIVATE\200159c0\install\view1_2001fdb9\hsps\00\manifest.dat \private\200159c0\install\view1_2001fdb9\hsps\00\manifest.dat -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __AI3VIEW_2001FDB9_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view_customer.iby --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view_customer.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view_customer.iby Fri Sep 17 15:37:16 2010 +0100 @@ -19,12 +19,12 @@ #ifndef __AI3VIEW_2001FDB9_CUSTOMER_IBY__ #define __AI3VIEW_2001FDB9_CUSTOMER_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools, language specific data=ZPRIVATE\200159c0\install\view1_2001fdb9\xuikon\00\view.o0000 \private\200159c0\install\view1_2001fdb9\xuikon\00\view.o0000 //data=ZPRIVATE\200159c0\install\view1_2001fdb9\hsps\00\viewconfiguration.dtd \private\200159c0\install\view1_2001fdb9\hsps\00\viewconfiguration.dtd -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __AI3VIEW_2001FDB9_CUSTOMER_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view_resources.iby --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view_resources.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view_resources.iby Fri Sep 17 15:37:16 2010 +0100 @@ -19,12 +19,12 @@ #ifndef __AI3VIEW_2001FDB9_RESOURCES_IBY__ #define __AI3VIEW_2001FDB9_RESOURCES_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools, language specific data=ZPRIVATE\200159c0\install\view1_2001fdb9\xuikon\00\view.o0000 \private\200159c0\install\view1_2001fdb9\xuikon\00\view.o0000 //data=ZPRIVATE\200159c0\install\view1_2001fdb9\hsps\00\viewconfiguration.dtd \private\200159c0\install\view1_2001fdb9\hsps\00\viewconfiguration.dtd -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __AI3VIEW_2001FDB9_RESOURCES_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view_variant.iby --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view_variant.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view_variant.iby Fri Sep 17 15:37:16 2010 +0100 @@ -19,11 +19,11 @@ #ifndef __AI3VIEW_2001FDB9_VARIANT_IBY__ #define __AI3VIEW_2001FDB9_VARIANT_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by variation tools, variant specific data=ZPRIVATE\200159c0\install\view1_2001fdb9\hsps\00\viewconfiguration.xml \private\200159c0\install\view1_2001fdb9\hsps\00\viewconfiguration.xml -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __AI3VIEW_2001FDB9_VARIANT_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.css --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.css Fri Sep 17 15:37:16 2010 +0100 @@ -1,337 +1,73 @@ -view#homescreen -{ - position: static; - display: block; - - block-progression: tb; - direction: ltr; - - width: auto; - height: auto; - - background-image: wallpaper; - - _s60-status-pane-layout: widescreen-flat-3softkeys; -} - -box#main_container -{ - position: static; - display: block; - - width: auto; - height: auto; - - margin-top: 5px; - - /* These will be set by screendevicechange triggers: */ - /* landscape - ************ - margin-left: 5px; - margin-right: 5px;*/ - - /* portrait - *********** - margin-left: 17px; - margin-right: 17px;*/ -} - -box.sub_container -{ - position: absolute; - display: block; - - /* These will be set by screendevicechange triggers: */ - /* landscape - ************ - width: 184px; - height: 106px;*/ - - /* portrait - *********** - width: 223px; - height: 132px;*/ -} - -box#clock_container -{ - /* This box belongs to class="sub_container" */ - top: 0px; - left: 0px; -} - -clock#clock -{ - position: static; - display: block; - - margin-top: 3px; - margin-bottom: 3px; - margin-left: 3px; - margin-right: 3px; - - nav-index: appearance; - - background-color: "SKIN(268458534 9906)"; - color: "SKIN(268458534 13056 19)"; - - /* Face is format is fetched from locale */ - _s60-format: locale; - - /* These will be set by screendevicechange triggers: */ - /* landscape - ************ - _s60-ampm-font-size: 3.0u; - _s60-digital-font-size: 56px; - _s60-date-font-size: 3.0u;*/ - - /* portrait - *********** - _s60-ampm-font-size: 3.5u; - _s60-digital-font-size: 56px; - _s60-date-font-size: 3.5u;*/ -} - -clock#clock:focus -{ - focus-background: "SKIN(268458534 5120 9)"; -} - -box#profile_switcher_container -{ - block-progression: tb; - direction: ltr; - - /* These will be set by screendevicechange triggers: */ - /* landscape - ************ - top: 106px; - left: 0px;*/ - - /* portrait - *********** - top: 0px; - left: 223px;*/ -} - -box#profile +view { - position: static; - display: block; - - width: auto; - height: auto; - - margin-top: 3px; - margin-bottom: 6px; - margin-left: 3px; - margin-right: 3px; - - background-color: "SKIN(268458534 9906)"; - - nav-index: appearance; -} - -box#profile:focus -{ - focus-background: "SKIN(268458534 5120 9)"; -} - -/********************** - * MCN, CUG & Profile * - **********************/ -box#mcn_cug_profile_container -{ - width: auto; - height: auto; - - -} - -/************* - * SAT & VHZ * - *************/ -box#sat_vhz_container -{ - display: none; - width: auto; - height: auto; - block-progression: rl; -} - -image#sat_icon -{ - display: none; - visibility: hidden; - width: 18px; - height: 20px; - position: static; - margin-top: auto; -} - -title#sat -{ - display: none; -} -title#vhz -{ - display: none; -} - + direction: ltr; + block-progression: tb; + background-image: wallpaper; + swipe: true; -newsticker.statusindicator -{ - width: auto; - height: auto; - - text-align: center; - font-family: EAknLogicalFontSecondaryFont; - font-size: 3.5u; - color: "SKIN(268458534 13056 19)"; - - white-space-collapse: collapse; - - _s60-scroll-behaviour: alternate; - _s60-display-time: 2000; - _s60-scroll-loop: false; - _s60-start-delay: 0; - _s60-restart-after-update: true; -} - -box#switcher -{ - width: auto; - height: auto; - - block-progression: lr; - - margin-top: 6px; - margin-bottom: 3px; - margin-left: 3px; - margin-right: 3px; - - background-color: "SKIN(268458534 9906)"; - - nav-index: appearance; -} - -box#switcher:focus -{ - focus-background: "SKIN(268458534 5120 9)"; -} - -image#switcher_icon -{ - margin-top: auto; - margin-bottom: auto; - - margin-left: 5px; - height: 4u; - width: 4u; - - path: "SKIN(270501603 8585 19)"; -} - -text#switcher_text -{ - width: auto; - height: auto; - - text-align: left; - - font-size: 3.5u; - font-family: EAknLogicalFontSecondaryFont; - - color:"SKIN(268458534 13056 19)"; + _s60-status-pane-layout: widescreen-flat-3softkeys; } box#plugins_container { - position: absolute; - display: block; + direction: ltr; + block-progression: tb; +} - /* These will be set by screendevicechange triggers: */ - /* landscape - ************ - top: 0px; - left: 184px;*/ - - /* portrait - *********** - top: 129px; - left: 0px;*/ +plugin.miniplugins +{ + height: 115px; + width: 176px; - block-progression: tb; - direction: ltr; - - width: 440px; - height: auto; - - padding-left: 3px; - padding-right: 3px; + margin-top: 9px; + margin-left: 9px; + + _s60-longtap: true; + + nav-index: appearance; } -/*********** - * Plugins * - ***********/ -plugin +plugin.plugins { - position: static; - - width: auto; - height: adaptive; - - margin-bottom: 6px; - - background-color: "SKIN(268458534 9906)"; - - nav-index: appearance; + height: 115px; + width: 436px; + + margin-top: 9px; + margin-left: 10px; + + _s60-longtap: true; + + nav-index: appearance; } -plugin:focus +trigger#hs_popup_open_hold:edit { - focus-background: "SKIN(268458534 5120 9)"; + display: none; } -plugin:edit +trigger#hs_popup_open_up { - background-color: "SKIN(270501603 8582)"; + display: none; } -/************ - * Profiles * - ************/ -/* Default system profiles */ -text.systemprofileitem +trigger#hs_popup_open_up:edit { display: block; } -/* Placeholders for profiles added by user */ -text.userprofileitem +softkey#rsk { - display: none; + _s60-longtap: true; + _s60-aspect-ratio: preserve; } -/************ - * Softkeys * - ************/ -softkey.normal_mode_sk +softkey#msk_ltr { display: block; } -softkey.normal_mode_sk:edit +softkey#msk_rtl { display: none; } -softkey.edit_mode_sk -{ - display: none; -} - -softkey.edit_mode_sk:edit -{ - display: block; -} diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.dtd --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.dtd Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.dtd Fri Sep 17 15:37:16 2010 +0100 @@ -494,3 +494,21 @@ qtn_hs_text_softkey_call.parents "" --> + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.xml --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.xml Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.xml Fri Sep 17 15:37:16 2010 +0100 @@ -1,751 +1,159 @@ - + - - + + + > + + + + + + + - - - - - + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + - - - + + - - + + - - + + + + + - - - - - - - - + - - + + - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <property id="MCNIndicator" class="DeviceStatus/MCNIndicator" /> - - - <property id="CUGIndicator" class="DeviceStatus/CUGIndicator" /> - - - <property id="ActiveProfileIndicator" class="Profile/ActiveProfileNameAndIconChar" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <property id="VHZText" class="DeviceStatus/VHZText" /> - <property class="policy/emptyContent" name="vhz" value="display: none" /> - <property class="policy/Content" name="vhz" value="display: block" /> - <property class="policy/Visibility" name="sat_vhz_container" value="if (vhz,sat,sat_icon) display: block" /> - <property class="policy/Visibility" name="sat_vhz_container" value="if !+(vhz,sat,sat_icon) display: none" /> - - - <property id="Sat_SatIdleModeText" class="SAT/SatIdleModeText" /> - <property class="policy/emptyContent" name="sat" value="display: none" /> - <property class="policy/Content" name="sat" value="display: block" /> - <property class="policy/Visibility" name="sat_vhz_container" value="if (vhz,sat,sat_icon) display: block" /> - <property class="policy/Visibility" name="sat_vhz_container" value="if !+(vhz,sat,sat_icon) display: none" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - qtn_hs_profile_edit + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &shortcut_emptycaption; - &qtn_hs_text_softkey_back; - - - + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + @@ -753,181 +161,129 @@ - + + + + - - - - --> - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + + + + + + + + + + - - - - --> - - - - - + - - + + + + + + + + + + - + - + + + + + + + + + - + - + - - - - - - + + + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/37/view.css --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/37/view.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/37/view.css Fri Sep 17 15:37:16 2010 +0100 @@ -1,543 +1,73 @@ -view { - display: block; - position: static; - width: 100%; - height: 100%; +view +{ direction: rtl; block-progression: tb; background-image: wallpaper; - nav-index: appearance; - _s60-focus-visibility: true; - _s60-status-pane-layout: widescreen-flat-3softkeys; - -} - -trigger.western{ - display: none; -} - - -/** Softkeys **/ -softkey.normal_mode_sk -{ - display: block; -} - -softkey.normal_mode_sk:edit -{ - display: none; -} + swipe: true; -softkey.edit_mode_sk -{ - display: none; -} - -softkey.edit_mode_sk:edit -{ - display: block; -} - -/** General **/ - -plugin.widget_full_width{ - /* every plug-in decides its own height */ - height: adaptive; - background-color: "SKIN(268458534 9906)"; - background-size: 100%; - width: 100%; -/* padding-left: 1.7u; - padding-right: 1.7u;*/ - margin-bottom: 0.55u; - nav-index: auto; -} - -plugin.widget_full_width:focus { - focus-background:"SKIN(268458534 9896)"; + _s60-status-pane-layout: widescreen-flat-3softkeys; } -plugin:edit { - background-color:"SKIN(270501603 8582)"; -} - -text{ - text-align: center; - font-family: tahoma; - font-size: 3.0u; - /*color:"SKIN(268458534 13056 19)";*/ - color: white; -} - -/************ -Page switcher -************* - -text#switchertext{ - position: static; - text-align: right; - margin-left: 6.0u; -} - -image#switcherimage{ - position: absolute; - top: 1.4u; - left: 2.5u; - height: 3.5u; - width: 3.0u; - _s60-aspect-ratio: preserve; -} -*/ - - -/****************** -container areas -******************/ -box#mainbox{ - width: 100%; - height: 100%; -} - -box.profile_date +box#plugins_container { - background-color: "SKIN(268458534 9916)"; - nav-index: appearance; - height: auto; -} - -box.profile_date:focus -{ - background-color: "SKIN(268458534 5120 9)"; + direction: rtl; + block-progression: tb; } - -/********************************************* -Clock Profiles - portrait specific containers -**********************************************/ +plugin.miniplugins +{ + height: 115px; + width: 176px; -box#clock_profiles_portrait{ - display: block; - visibility: visible; - direction: rtl; - block-progression: rl; - padding-left: 1.7u; - padding-right: 1.7u; - margin-bottom: 0.55u; - height:13.86u; - visualisationaware:true; -} + margin-top: 9px; + margin-right: 9px; + + _s60-longtap: true; -box#profiles_pages_portrait{ - block-progression: tb; - direction: rtl; - height: adaptive; -} - -box#clock_container_portrait{ - display: block; - visibility: visible; - position: static; nav-index: appearance; - block-progression: tb; - background-color: "SKIN(268458534 9906)"; - - margin-left: 0.7u; - visualisationaware:true; - _s60-initial-focus: 1; -} - -box#clock_container_portrait:focus{ - background-color: "SKIN(268458534 5120 9)"; -} - -clock#clock_portrait{ - display: block; - visibility: visible; - position: static; - width: auto; - /*height: 70%;*/ - height: auto; - direction: rtl; - block-progression: tb; - background: none; - nav-index: appearance; - _s60-format: locale; - _s60-ampm-font-size: 16px; - _s60-digital-font-size: 56px; - color: white; } -box#date_container_portrait -{ - width: auto; - direction: rtl; - block-progression: rl; - height: 4.05u; - margin-bottom: 0.55u; - padding-top: 3px; - visualisationaware:true; -} - -box#date_content_portrait +plugin.plugins { - width: adaptive; - height: adaptive; -} + height: 115px; + width: 436px; -text#datetext2_portrait -{ - text-align: center; - width: auto; - height: auto; - font-family: EAknLogicalFontPrimaryFont; - font-size: 3u; - color: white; + margin-top: 9px; + margin-right: 10px; + + _s60-longtap: true; + + nav-index: appearance; } -box#profile_softindicator_portrait -{ - width: auto; - direction: rtl; - block-progression: tb; - background-color: "SKIN(268458534 9906)"; - nav-index: appearance; - height: 9.0u; - visualisationaware:true; -} - -box#NT_CUGMCN_portrait -{ - text-align: center; - width: adaptive; - height: auto; - block-progression: rl; -} - - -box#NT_SATVHZ_portrait -{ - display: none; - text-align: center; - width: adaptive; - height: auto; - block-progression: rl; -} - -title#title_vhz_portrait -{ - display: none; -} - -title#title_sat_portrait +trigger#hs_popup_open_hold:edit { display: none; } -/********************************************* -Clock Profiles - landscape specific containers -**********************************************/ - -box#clock_profiles_landscape{ - display: block; - visibility: visible; - direction: rtl; - block-progression: tb; - width: 30%; - height: 100%; - padding-left: 5px; - padding-top: 5px; - visualisationaware:true; -} - -box#profiles_pages_landscape{ - block-progression: tb; - direction: rtl; - height: adaptive; -} - -box#clock_container_landscape{ - - display: block; - visibility: visible; - position: static; - nav-index: appearance; - block-progression: tb; - background-color: "SKIN(268458534 9906)"; - height: 10.74u; - width: auto; - margin-bottom: 0.55u; - visualisationaware:true; - _s60-initial-focus: 2; -} - -box#clock_container_landscape:focus{ - background-color: "SKIN(268458534 5120 9)"; -} - -box#date_container_landscape +trigger#hs_popup_open_up { - width: auto; - direction: rtl; - block-progression: rl; - height: 6.7u; - margin-bottom: 0.55u; - visualisationaware:true; -} - -box#profile_softindicator_landscape -{ - width: auto; - direction: rtl; - block-progression: tb; - background-color: "SKIN(268458534 9906)"; - nav-index: appearance; - height: 6.7u; - margin-bottom: 0.55u; - visualisationaware:true; -} - -clock#clock_landscape{ - display: block; - visibility: visible; - position: static; - width: 100%; - height: auto; - direction: rtl; - block-progression: tb; - background: none; - nav-index: appearance; - _s60-format: locale; - _s60-ampm-font-size: 16px; - _s60-digital-font-size: 56px; - color: white; + display: none; } -clock:focus{ - background-color: "SKIN(268458534 5120 9)"; -} -/* Date in the clock widget */ -text#datetext{ - nav-index: appearance; - text-align: center; - padding-top: 0.5u; - padding-bottom: 0.5u; - width: 100%; - height: 24%; - font-family: EAknLogicalFontPrimaryFont; - font-size: 3u; - color: white; -} -/* Date in the clock widget */ -text#datetext:focus{ - background-color: "SKIN(268458534 5120 9)"; -} - -/* Date in separate widget above profiles */ - -box#date_content_landscape -{ - width: inherit; - height: inherit; -} - -text#datetext2_landscape -{ - text-align: center; - width: auto; - height: auto; - font-family: EAknLogicalFontPrimaryFont; - font-size: 3u; - color: white; -} - -box#profile_softindicator:focus -{ - focus-background:"SKIN(268458534 5120 9)"; -} - -image#profileicon { - display: block; - visibility: hidden; - width: 18px; - height: 20px; - position: static; - margin-top: auto; - z-index: 2; -} - -image#SatIdleModeIcon -{ - display: block; - visibility: hidden; - width: 18px; - height: 20px; - position: static; - margin-top: auto; -} - -text#profiletext -{ - text-align: center; - margin-left: 2px; - margin-right: 2px; - width: adaptive; - height: adaptive; - font-family: EAknLogicalFontPrimaryFont; - font-size: 3u; - color:"SKIN(268458534 13056 19)"; -} - -/* Profiles dialog */ -listquerydialog#profiledialog -{ - /* Avkon dialog is not layout capable */ - display: none; -} - -/* Default system profiles */ -text.systemprofileitem +trigger#hs_popup_open_up:edit { display: block; } -/* Placeholders for profiles added by user */ -text.userprofileitem +softkey#rsk { - display: none; -} - -/****************** - SOFT INDICATOR WIDGET AREA -*******************/ - -newsticker.SIText { - text-align: center; - display: block; - visibility: visible; - width: auto; - margin-left: 2px; - margin-right: 2px; - font-family: EAknLogicalFontPrimaryFont; - font-size: 3u; - white-space-collapse: collapse; - _s60-scroll-behaviour: alternate; - /*_s60-scroll-behaviour: scroll;*/ - _s60-display-time: 2000; - _s60-scroll-loop: false; - _s60-start-delay: 0; - _s60-restart-after-update: true; - color: white; - /*color:"SKIN(268458534 13056 19)";*/ + _s60-longtap: true; + _s60-aspect-ratio: preserve; } -box#NT_CUGMCN_landscape +softkey#msk_ltr { - text-align: center; - margin-left: auto; - margin-right: auto; - width: adaptive; - height: auto; - block-progression: rl; + display: block; } -box#NT_SATVHZ_landscape -{ - display: none; - text-align: center; - margin-left: auto; - margin-right: auto; - width: adaptive; - height: auto; - block-progression: rl; -} - -title#title_vhz_landscape -{ - display: none; -} - -title#title_sat_landscape -{ - display: none; -} - -image#SatIdleModeIcon_portrait -{ - display: none; -} - -image#SatIdleModeIcon_landscape +softkey#msk_rtl { display: none; } -/************ -Page switcher -************* -box#switcher{ - display: block; - visibility: visible; - block-progression: rl; - direction: ltr; - height: 4.5u; - background-color: "SKIN(268458534 9906)"; - background-size: 100%; - margin-top: 0.55u; -} - -box#switcher:focus { - background-color: "SKIN(268458534 5120 9)"; -} - -text#switchertext -{ - text-align: center; - margin-left: auto; - margin-right: auto; - width: adaptive; - height: 3.5u; - font-family: EAknLogicalFontPrimaryFont; - font-size: 3u; - color:"SKIN(268458534 13056 19)"; - color: white; - padding-top: 0.5u; - padding-bottom: 0.5u; -} - -image#switcherimage -{ - position: static; - height: 3.5u; - width: 3.5u; - margin-top: 0.5u; - margin-left: 2u; -} -*/ - -menuitem#webonlineitem -{ - display: block; -} - -menuitem#webonlineitem:edit -{ - display: none; -} - -menuitem#webofflineitem -{ - display: block; -} - -menuitem#webofflineitem:edit -{ - display: none; -} - -box#main_plugins{ - block-progression: tb; - display: block; - visibility: visible; - padding-left: 1.7u; - padding-right: 1.7u; -} - diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/50/view.css --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/50/view.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/50/view.css Fri Sep 17 15:37:16 2010 +0100 @@ -1,543 +1,73 @@ -view { - display: block; - position: static; - width: 100%; - height: 100%; +view +{ direction: rtl; block-progression: tb; background-image: wallpaper; - nav-index: appearance; - _s60-focus-visibility: true; - _s60-status-pane-layout: widescreen-flat-3softkeys; - -} - -trigger.western{ - display: none; -} - - -/** Softkeys **/ -softkey.normal_mode_sk -{ - display: block; -} - -softkey.normal_mode_sk:edit -{ - display: none; -} + swipe: true; -softkey.edit_mode_sk -{ - display: none; -} - -softkey.edit_mode_sk:edit -{ - display: block; -} - -/** General **/ - -plugin.widget_full_width{ - /* every plug-in decides its own height */ - height: adaptive; - background-color: "SKIN(268458534 9906)"; - background-size: 100%; - width: 100%; -/* padding-left: 1.7u; - padding-right: 1.7u;*/ - margin-bottom: 0.55u; - nav-index: auto; -} - -plugin.widget_full_width:focus { - focus-background:"SKIN(268458534 9896)"; + _s60-status-pane-layout: widescreen-flat-3softkeys; } -plugin:edit { - background-color:"SKIN(270501603 8582)"; -} - -text{ - text-align: center; - font-family: tahoma; - font-size: 3.0u; - /*color:"SKIN(268458534 13056 19)";*/ - color: white; -} - -/************ -Page switcher -************* - -text#switchertext{ - position: static; - text-align: right; - margin-left: 6.0u; -} - -image#switcherimage{ - position: absolute; - top: 1.4u; - left: 2.5u; - height: 3.5u; - width: 3.0u; - _s60-aspect-ratio: preserve; -} -*/ - - -/****************** -container areas -******************/ -box#mainbox{ - width: 100%; - height: 100%; -} - -box.profile_date +box#plugins_container { - background-color: "SKIN(268458534 9916)"; - nav-index: appearance; - height: auto; -} - -box.profile_date:focus -{ - background-color: "SKIN(268458534 5120 9)"; + direction: rtl; + block-progression: tb; } - -/********************************************* -Clock Profiles - portrait specific containers -**********************************************/ +plugin.miniplugins +{ + height: 115px; + width: 176px; -box#clock_profiles_portrait{ - display: block; - visibility: visible; - direction: rtl; - block-progression: rl; - padding-left: 1.7u; - padding-right: 1.7u; - margin-bottom: 0.55u; - height:13.86u; - visualisationaware:true; -} + margin-top: 9px; + margin-right: 9px; + + _s60-longtap: true; -box#profiles_pages_portrait{ - block-progression: tb; - direction: rtl; - height: adaptive; -} - -box#clock_container_portrait{ - display: block; - visibility: visible; - position: static; nav-index: appearance; - block-progression: tb; - background-color: "SKIN(268458534 9906)"; - - margin-left: 0.7u; - visualisationaware:true; - _s60-initial-focus: 1; -} - -box#clock_container_portrait:focus{ - background-color: "SKIN(268458534 5120 9)"; -} - -clock#clock_portrait{ - display: block; - visibility: visible; - position: static; - width: auto; - /*height: 70%;*/ - height: auto; - direction: rtl; - block-progression: tb; - background: none; - nav-index: appearance; - _s60-format: locale; - _s60-ampm-font-size: 16px; - _s60-digital-font-size: 56px; - color: white; } -box#date_container_portrait -{ - width: auto; - direction: rtl; - block-progression: rl; - height: 4.05u; - margin-bottom: 0.55u; - padding-top: 3px; - visualisationaware:true; -} - -box#date_content_portrait +plugin.plugins { - width: adaptive; - height: adaptive; -} + height: 115px; + width: 436px; -text#datetext2_portrait -{ - text-align: center; - width: auto; - height: auto; - font-family: EAknLogicalFontPrimaryFont; - font-size: 3u; - color: white; + margin-top: 9px; + margin-right: 10px; + + _s60-longtap: true; + + nav-index: appearance; } -box#profile_softindicator_portrait -{ - width: auto; - direction: rtl; - block-progression: tb; - background-color: "SKIN(268458534 9906)"; - nav-index: appearance; - height: 9.0u; - visualisationaware:true; -} - -box#NT_CUGMCN_portrait -{ - text-align: center; - width: adaptive; - height: auto; - block-progression: rl; -} - - -box#NT_SATVHZ_portrait -{ - display: none; - text-align: center; - width: adaptive; - height: auto; - block-progression: rl; -} - -title#title_vhz_portrait -{ - display: none; -} - -title#title_sat_portrait +trigger#hs_popup_open_hold:edit { display: none; } -/********************************************* -Clock Profiles - landscape specific containers -**********************************************/ - -box#clock_profiles_landscape{ - display: block; - visibility: visible; - direction: rtl; - block-progression: tb; - width: 30%; - height: 100%; - padding-left: 5px; - padding-top: 5px; - visualisationaware:true; -} - -box#profiles_pages_landscape{ - block-progression: tb; - direction: rtl; - height: adaptive; -} - -box#clock_container_landscape{ - - display: block; - visibility: visible; - position: static; - nav-index: appearance; - block-progression: tb; - background-color: "SKIN(268458534 9906)"; - height: 10.74u; - width: auto; - margin-bottom: 0.55u; - visualisationaware:true; - _s60-initial-focus: 2; -} - -box#clock_container_landscape:focus{ - background-color: "SKIN(268458534 5120 9)"; -} - -box#date_container_landscape +trigger#hs_popup_open_up { - width: auto; - direction: rtl; - block-progression: rl; - height: 6.7u; - margin-bottom: 0.55u; - visualisationaware:true; -} - -box#profile_softindicator_landscape -{ - width: auto; - direction: rtl; - block-progression: tb; - background-color: "SKIN(268458534 9906)"; - nav-index: appearance; - height: 6.7u; - margin-bottom: 0.55u; - visualisationaware:true; -} - -clock#clock_landscape{ - display: block; - visibility: visible; - position: static; - width: 100%; - height: auto; - direction: rtl; - block-progression: tb; - background: none; - nav-index: appearance; - _s60-format: locale; - _s60-ampm-font-size: 16px; - _s60-digital-font-size: 56px; - color: white; + display: none; } -clock:focus{ - background-color: "SKIN(268458534 5120 9)"; -} -/* Date in the clock widget */ -text#datetext{ - nav-index: appearance; - text-align: center; - padding-top: 0.5u; - padding-bottom: 0.5u; - width: 100%; - height: 24%; - font-family: EAknLogicalFontPrimaryFont; - font-size: 3u; - color: white; -} -/* Date in the clock widget */ -text#datetext:focus{ - background-color: "SKIN(268458534 5120 9)"; -} - -/* Date in separate widget above profiles */ - -box#date_content_landscape -{ - width: inherit; - height: inherit; -} - -text#datetext2_landscape -{ - text-align: center; - width: auto; - height: auto; - font-family: EAknLogicalFontPrimaryFont; - font-size: 3u; - color: white; -} - -box#profile_softindicator:focus -{ - focus-background:"SKIN(268458534 5120 9)"; -} - -image#profileicon { - display: block; - visibility: hidden; - width: 18px; - height: 20px; - position: static; - margin-top: auto; - z-index: 2; -} - -image#SatIdleModeIcon -{ - display: block; - visibility: hidden; - width: 18px; - height: 20px; - position: static; - margin-top: auto; -} - -text#profiletext -{ - text-align: center; - margin-left: 2px; - margin-right: 2px; - width: adaptive; - height: adaptive; - font-family: EAknLogicalFontPrimaryFont; - font-size: 3u; - color:"SKIN(268458534 13056 19)"; -} - -/* Profiles dialog */ -listquerydialog#profiledialog -{ - /* Avkon dialog is not layout capable */ - display: none; -} - -/* Default system profiles */ -text.systemprofileitem +trigger#hs_popup_open_up:edit { display: block; } -/* Placeholders for profiles added by user */ -text.userprofileitem +softkey#rsk { - display: none; -} - -/****************** - SOFT INDICATOR WIDGET AREA -*******************/ - -newsticker.SIText { - text-align: center; - display: block; - visibility: visible; - width: auto; - margin-left: 2px; - margin-right: 2px; - font-family: EAknLogicalFontPrimaryFont; - font-size: 3u; - white-space-collapse: collapse; - _s60-scroll-behaviour: alternate; - /*_s60-scroll-behaviour: scroll;*/ - _s60-display-time: 2000; - _s60-scroll-loop: false; - _s60-start-delay: 0; - _s60-restart-after-update: true; - color: white; - /*color:"SKIN(268458534 13056 19)";*/ + _s60-longtap: true; + _s60-aspect-ratio: preserve; } -box#NT_CUGMCN_landscape +softkey#msk_ltr { - text-align: center; - margin-left: auto; - margin-right: auto; - width: adaptive; - height: auto; - block-progression: rl; + display: block; } -box#NT_SATVHZ_landscape -{ - display: none; - text-align: center; - margin-left: auto; - margin-right: auto; - width: adaptive; - height: auto; - block-progression: rl; -} - -title#title_vhz_landscape -{ - display: none; -} - -title#title_sat_landscape -{ - display: none; -} - -image#SatIdleModeIcon_portrait -{ - display: none; -} - -image#SatIdleModeIcon_landscape +softkey#msk_rtl { display: none; } -/************ -Page switcher -************* -box#switcher{ - display: block; - visibility: visible; - block-progression: rl; - direction: ltr; - height: 4.5u; - background-color: "SKIN(268458534 9906)"; - background-size: 100%; - margin-top: 0.55u; -} - -box#switcher:focus { - background-color: "SKIN(268458534 5120 9)"; -} - -text#switchertext -{ - text-align: center; - margin-left: auto; - margin-right: auto; - width: adaptive; - height: 3.5u; - font-family: EAknLogicalFontPrimaryFont; - font-size: 3u; - color:"SKIN(268458534 13056 19)"; - color: white; - padding-top: 0.5u; - padding-bottom: 0.5u; -} - -image#switcherimage -{ - position: static; - height: 3.5u; - width: 3.5u; - margin-top: 0.5u; - margin-left: 2u; -} -*/ - -menuitem#webonlineitem -{ - display: block; -} - -menuitem#webonlineitem:edit -{ - display: none; -} - -menuitem#webofflineitem -{ - display: block; -} - -menuitem#webofflineitem:edit -{ - display: none; -} - -box#main_plugins{ - block-progression: tb; - display: block; - visibility: visible; - padding-left: 1.7u; - padding-right: 1.7u; -} - diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/57/view.css --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/57/view.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/57/view.css Fri Sep 17 15:37:16 2010 +0100 @@ -1,543 +1,73 @@ -view { - display: block; - position: static; - width: 100%; - height: 100%; +view +{ direction: rtl; block-progression: tb; background-image: wallpaper; - nav-index: appearance; - _s60-focus-visibility: true; - _s60-status-pane-layout: widescreen-flat-3softkeys; - -} - -trigger.western{ - display: none; -} - - -/** Softkeys **/ -softkey.normal_mode_sk -{ - display: block; -} - -softkey.normal_mode_sk:edit -{ - display: none; -} + swipe: true; -softkey.edit_mode_sk -{ - display: none; -} - -softkey.edit_mode_sk:edit -{ - display: block; -} - -/** General **/ - -plugin.widget_full_width{ - /* every plug-in decides its own height */ - height: adaptive; - background-color: "SKIN(268458534 9906)"; - background-size: 100%; - width: 100%; -/* padding-left: 1.7u; - padding-right: 1.7u;*/ - margin-bottom: 0.55u; - nav-index: auto; -} - -plugin.widget_full_width:focus { - focus-background:"SKIN(268458534 9896)"; + _s60-status-pane-layout: widescreen-flat-3softkeys; } -plugin:edit { - background-color:"SKIN(270501603 8582)"; -} - -text{ - text-align: center; - font-family: tahoma; - font-size: 3.0u; - /*color:"SKIN(268458534 13056 19)";*/ - color: white; -} - -/************ -Page switcher -************* - -text#switchertext{ - position: static; - text-align: right; - margin-left: 6.0u; -} - -image#switcherimage{ - position: absolute; - top: 1.4u; - left: 2.5u; - height: 3.5u; - width: 3.0u; - _s60-aspect-ratio: preserve; -} -*/ - - -/****************** -container areas -******************/ -box#mainbox{ - width: 100%; - height: 100%; -} - -box.profile_date +box#plugins_container { - background-color: "SKIN(268458534 9916)"; - nav-index: appearance; - height: auto; -} - -box.profile_date:focus -{ - background-color: "SKIN(268458534 5120 9)"; + direction: rtl; + block-progression: tb; } - -/********************************************* -Clock Profiles - portrait specific containers -**********************************************/ +plugin.miniplugins +{ + height: 115px; + width: 176px; -box#clock_profiles_portrait{ - display: block; - visibility: visible; - direction: rtl; - block-progression: rl; - padding-left: 1.7u; - padding-right: 1.7u; - margin-bottom: 0.55u; - height:13.86u; - visualisationaware:true; -} + margin-top: 9px; + margin-right: 9px; + + _s60-longtap: true; -box#profiles_pages_portrait{ - block-progression: tb; - direction: rtl; - height: adaptive; -} - -box#clock_container_portrait{ - display: block; - visibility: visible; - position: static; nav-index: appearance; - block-progression: tb; - background-color: "SKIN(268458534 9906)"; - - margin-left: 0.7u; - visualisationaware:true; - _s60-initial-focus: 1; -} - -box#clock_container_portrait:focus{ - background-color: "SKIN(268458534 5120 9)"; -} - -clock#clock_portrait{ - display: block; - visibility: visible; - position: static; - width: auto; - /*height: 70%;*/ - height: auto; - direction: rtl; - block-progression: tb; - background: none; - nav-index: appearance; - _s60-format: locale; - _s60-ampm-font-size: 16px; - _s60-digital-font-size: 56px; - color: white; } -box#date_container_portrait -{ - width: auto; - direction: rtl; - block-progression: rl; - height: 4.05u; - margin-bottom: 0.55u; - padding-top: 3px; - visualisationaware:true; -} - -box#date_content_portrait +plugin.plugins { - width: adaptive; - height: adaptive; -} + height: 115px; + width: 436px; -text#datetext2_portrait -{ - text-align: center; - width: auto; - height: auto; - font-family: EAknLogicalFontPrimaryFont; - font-size: 3u; - color: white; + margin-top: 9px; + margin-right: 10px; + + _s60-longtap: true; + + nav-index: appearance; } -box#profile_softindicator_portrait -{ - width: auto; - direction: rtl; - block-progression: tb; - background-color: "SKIN(268458534 9906)"; - nav-index: appearance; - height: 9.0u; - visualisationaware:true; -} - -box#NT_CUGMCN_portrait -{ - text-align: center; - width: adaptive; - height: auto; - block-progression: rl; -} - - -box#NT_SATVHZ_portrait -{ - display: none; - text-align: center; - width: adaptive; - height: auto; - block-progression: rl; -} - -title#title_vhz_portrait -{ - display: none; -} - -title#title_sat_portrait +trigger#hs_popup_open_hold:edit { display: none; } -/********************************************* -Clock Profiles - landscape specific containers -**********************************************/ - -box#clock_profiles_landscape{ - display: block; - visibility: visible; - direction: rtl; - block-progression: tb; - width: 30%; - height: 100%; - padding-left: 5px; - padding-top: 5px; - visualisationaware:true; -} - -box#profiles_pages_landscape{ - block-progression: tb; - direction: rtl; - height: adaptive; -} - -box#clock_container_landscape{ - - display: block; - visibility: visible; - position: static; - nav-index: appearance; - block-progression: tb; - background-color: "SKIN(268458534 9906)"; - height: 10.74u; - width: auto; - margin-bottom: 0.55u; - visualisationaware:true; - _s60-initial-focus: 2; -} - -box#clock_container_landscape:focus{ - background-color: "SKIN(268458534 5120 9)"; -} - -box#date_container_landscape +trigger#hs_popup_open_up { - width: auto; - direction: rtl; - block-progression: rl; - height: 6.7u; - margin-bottom: 0.55u; - visualisationaware:true; -} - -box#profile_softindicator_landscape -{ - width: auto; - direction: rtl; - block-progression: tb; - background-color: "SKIN(268458534 9906)"; - nav-index: appearance; - height: 6.7u; - margin-bottom: 0.55u; - visualisationaware:true; -} - -clock#clock_landscape{ - display: block; - visibility: visible; - position: static; - width: 100%; - height: auto; - direction: rtl; - block-progression: tb; - background: none; - nav-index: appearance; - _s60-format: locale; - _s60-ampm-font-size: 16px; - _s60-digital-font-size: 56px; - color: white; + display: none; } -clock:focus{ - background-color: "SKIN(268458534 5120 9)"; -} -/* Date in the clock widget */ -text#datetext{ - nav-index: appearance; - text-align: center; - padding-top: 0.5u; - padding-bottom: 0.5u; - width: 100%; - height: 24%; - font-family: EAknLogicalFontPrimaryFont; - font-size: 3u; - color: white; -} -/* Date in the clock widget */ -text#datetext:focus{ - background-color: "SKIN(268458534 5120 9)"; -} - -/* Date in separate widget above profiles */ - -box#date_content_landscape -{ - width: inherit; - height: inherit; -} - -text#datetext2_landscape -{ - text-align: center; - width: auto; - height: auto; - font-family: EAknLogicalFontPrimaryFont; - font-size: 3u; - color: white; -} - -box#profile_softindicator:focus -{ - focus-background:"SKIN(268458534 5120 9)"; -} - -image#profileicon { - display: block; - visibility: hidden; - width: 18px; - height: 20px; - position: static; - margin-top: auto; - z-index: 2; -} - -image#SatIdleModeIcon -{ - display: block; - visibility: hidden; - width: 18px; - height: 20px; - position: static; - margin-top: auto; -} - -text#profiletext -{ - text-align: center; - margin-left: 2px; - margin-right: 2px; - width: adaptive; - height: adaptive; - font-family: EAknLogicalFontPrimaryFont; - font-size: 3u; - color:"SKIN(268458534 13056 19)"; -} - -/* Profiles dialog */ -listquerydialog#profiledialog -{ - /* Avkon dialog is not layout capable */ - display: none; -} - -/* Default system profiles */ -text.systemprofileitem +trigger#hs_popup_open_up:edit { display: block; } -/* Placeholders for profiles added by user */ -text.userprofileitem +softkey#rsk { - display: none; -} - -/****************** - SOFT INDICATOR WIDGET AREA -*******************/ - -newsticker.SIText { - text-align: center; - display: block; - visibility: visible; - width: auto; - margin-left: 2px; - margin-right: 2px; - font-family: EAknLogicalFontPrimaryFont; - font-size: 3u; - white-space-collapse: collapse; - _s60-scroll-behaviour: alternate; - /*_s60-scroll-behaviour: scroll;*/ - _s60-display-time: 2000; - _s60-scroll-loop: false; - _s60-start-delay: 0; - _s60-restart-after-update: true; - color: white; - /*color:"SKIN(268458534 13056 19)";*/ + _s60-longtap: true; + _s60-aspect-ratio: preserve; } -box#NT_CUGMCN_landscape +softkey#msk_ltr { - text-align: center; - margin-left: auto; - margin-right: auto; - width: adaptive; - height: auto; - block-progression: rl; + display: block; } -box#NT_SATVHZ_landscape -{ - display: none; - text-align: center; - margin-left: auto; - margin-right: auto; - width: adaptive; - height: auto; - block-progression: rl; -} - -title#title_vhz_landscape -{ - display: none; -} - -title#title_sat_landscape -{ - display: none; -} - -image#SatIdleModeIcon_portrait -{ - display: none; -} - -image#SatIdleModeIcon_landscape +softkey#msk_rtl { display: none; } -/************ -Page switcher -************* -box#switcher{ - display: block; - visibility: visible; - block-progression: rl; - direction: ltr; - height: 4.5u; - background-color: "SKIN(268458534 9906)"; - background-size: 100%; - margin-top: 0.55u; -} - -box#switcher:focus { - background-color: "SKIN(268458534 5120 9)"; -} - -text#switchertext -{ - text-align: center; - margin-left: auto; - margin-right: auto; - width: adaptive; - height: 3.5u; - font-family: EAknLogicalFontPrimaryFont; - font-size: 3u; - color:"SKIN(268458534 13056 19)"; - color: white; - padding-top: 0.5u; - padding-bottom: 0.5u; -} - -image#switcherimage -{ - position: static; - height: 3.5u; - width: 3.5u; - margin-top: 0.5u; - margin-left: 2u; -} -*/ - -menuitem#webonlineitem -{ - display: block; -} - -menuitem#webonlineitem:edit -{ - display: none; -} - -menuitem#webofflineitem -{ - display: block; -} - -menuitem#webofflineitem:edit -{ - display: none; -} - -box#main_plugins{ - block-progression: tb; - display: block; - visibility: visible; - padding-left: 1.7u; - padding-right: 1.7u; -} - diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/94/view.css --- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/94/view.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/94/view.css Fri Sep 17 15:37:16 2010 +0100 @@ -1,543 +1,73 @@ -view { - display: block; - position: static; - width: 100%; - height: 100%; +view +{ direction: rtl; block-progression: tb; background-image: wallpaper; - nav-index: appearance; - _s60-focus-visibility: true; - _s60-status-pane-layout: widescreen-flat-3softkeys; - -} - -trigger.western{ - display: none; -} - - -/** Softkeys **/ -softkey.normal_mode_sk -{ - display: block; -} - -softkey.normal_mode_sk:edit -{ - display: none; -} + swipe: true; -softkey.edit_mode_sk -{ - display: none; -} - -softkey.edit_mode_sk:edit -{ - display: block; -} - -/** General **/ - -plugin.widget_full_width{ - /* every plug-in decides its own height */ - height: adaptive; - background-color: "SKIN(268458534 9906)"; - background-size: 100%; - width: 100%; -/* padding-left: 1.7u; - padding-right: 1.7u;*/ - margin-bottom: 0.55u; - nav-index: auto; -} - -plugin.widget_full_width:focus { - focus-background:"SKIN(268458534 9896)"; + _s60-status-pane-layout: widescreen-flat-3softkeys; } -plugin:edit { - background-color:"SKIN(270501603 8582)"; -} - -text{ - text-align: center; - font-family: tahoma; - font-size: 3.0u; - /*color:"SKIN(268458534 13056 19)";*/ - color: white; -} - -/************ -Page switcher -************* - -text#switchertext{ - position: static; - text-align: right; - margin-left: 6.0u; -} - -image#switcherimage{ - position: absolute; - top: 1.4u; - left: 2.5u; - height: 3.5u; - width: 3.0u; - _s60-aspect-ratio: preserve; -} -*/ - - -/****************** -container areas -******************/ -box#mainbox{ - width: 100%; - height: 100%; -} - -box.profile_date +box#plugins_container { - background-color: "SKIN(268458534 9916)"; - nav-index: appearance; - height: auto; -} - -box.profile_date:focus -{ - background-color: "SKIN(268458534 5120 9)"; + direction: rtl; + block-progression: tb; } - -/********************************************* -Clock Profiles - portrait specific containers -**********************************************/ +plugin.miniplugins +{ + height: 115px; + width: 176px; -box#clock_profiles_portrait{ - display: block; - visibility: visible; - direction: rtl; - block-progression: rl; - padding-left: 1.7u; - padding-right: 1.7u; - margin-bottom: 0.55u; - height:13.86u; - visualisationaware:true; -} + margin-top: 9px; + margin-right: 9px; + + _s60-longtap: true; -box#profiles_pages_portrait{ - block-progression: tb; - direction: rtl; - height: adaptive; -} - -box#clock_container_portrait{ - display: block; - visibility: visible; - position: static; nav-index: appearance; - block-progression: tb; - background-color: "SKIN(268458534 9906)"; - - margin-left: 0.7u; - visualisationaware:true; - _s60-initial-focus: 1; -} - -box#clock_container_portrait:focus{ - background-color: "SKIN(268458534 5120 9)"; -} - -clock#clock_portrait{ - display: block; - visibility: visible; - position: static; - width: auto; - /*height: 70%;*/ - height: auto; - direction: rtl; - block-progression: tb; - background: none; - nav-index: appearance; - _s60-format: locale; - _s60-ampm-font-size: 16px; - _s60-digital-font-size: 56px; - color: white; } -box#date_container_portrait -{ - width: auto; - direction: rtl; - block-progression: rl; - height: 4.05u; - margin-bottom: 0.55u; - padding-top: 3px; - visualisationaware:true; -} - -box#date_content_portrait +plugin.plugins { - width: adaptive; - height: adaptive; -} + height: 115px; + width: 436px; -text#datetext2_portrait -{ - text-align: center; - width: auto; - height: auto; - font-family: EAknLogicalFontPrimaryFont; - font-size: 3u; - color: white; + margin-top: 9px; + margin-right: 10px; + + _s60-longtap: true; + + nav-index: appearance; } -box#profile_softindicator_portrait -{ - width: auto; - direction: rtl; - block-progression: tb; - background-color: "SKIN(268458534 9906)"; - nav-index: appearance; - height: 9.0u; - visualisationaware:true; -} - -box#NT_CUGMCN_portrait -{ - text-align: center; - width: adaptive; - height: auto; - block-progression: rl; -} - - -box#NT_SATVHZ_portrait -{ - display: none; - text-align: center; - width: adaptive; - height: auto; - block-progression: rl; -} - -title#title_vhz_portrait -{ - display: none; -} - -title#title_sat_portrait +trigger#hs_popup_open_hold:edit { display: none; } -/********************************************* -Clock Profiles - landscape specific containers -**********************************************/ - -box#clock_profiles_landscape{ - display: block; - visibility: visible; - direction: rtl; - block-progression: tb; - width: 30%; - height: 100%; - padding-left: 5px; - padding-top: 5px; - visualisationaware:true; -} - -box#profiles_pages_landscape{ - block-progression: tb; - direction: rtl; - height: adaptive; -} - -box#clock_container_landscape{ - - display: block; - visibility: visible; - position: static; - nav-index: appearance; - block-progression: tb; - background-color: "SKIN(268458534 9906)"; - height: 10.74u; - width: auto; - margin-bottom: 0.55u; - visualisationaware:true; - _s60-initial-focus: 2; -} - -box#clock_container_landscape:focus{ - background-color: "SKIN(268458534 5120 9)"; -} - -box#date_container_landscape +trigger#hs_popup_open_up { - width: auto; - direction: rtl; - block-progression: rl; - height: 6.7u; - margin-bottom: 0.55u; - visualisationaware:true; -} - -box#profile_softindicator_landscape -{ - width: auto; - direction: rtl; - block-progression: tb; - background-color: "SKIN(268458534 9906)"; - nav-index: appearance; - height: 6.7u; - margin-bottom: 0.55u; - visualisationaware:true; -} - -clock#clock_landscape{ - display: block; - visibility: visible; - position: static; - width: 100%; - height: auto; - direction: rtl; - block-progression: tb; - background: none; - nav-index: appearance; - _s60-format: locale; - _s60-ampm-font-size: 16px; - _s60-digital-font-size: 56px; - color: white; + display: none; } -clock:focus{ - background-color: "SKIN(268458534 5120 9)"; -} -/* Date in the clock widget */ -text#datetext{ - nav-index: appearance; - text-align: center; - padding-top: 0.5u; - padding-bottom: 0.5u; - width: 100%; - height: 24%; - font-family: EAknLogicalFontPrimaryFont; - font-size: 3u; - color: white; -} -/* Date in the clock widget */ -text#datetext:focus{ - background-color: "SKIN(268458534 5120 9)"; -} - -/* Date in separate widget above profiles */ - -box#date_content_landscape -{ - width: inherit; - height: inherit; -} - -text#datetext2_landscape -{ - text-align: center; - width: auto; - height: auto; - font-family: EAknLogicalFontPrimaryFont; - font-size: 3u; - color: white; -} - -box#profile_softindicator:focus -{ - focus-background:"SKIN(268458534 5120 9)"; -} - -image#profileicon { - display: block; - visibility: hidden; - width: 18px; - height: 20px; - position: static; - margin-top: auto; - z-index: 2; -} - -image#SatIdleModeIcon -{ - display: block; - visibility: hidden; - width: 18px; - height: 20px; - position: static; - margin-top: auto; -} - -text#profiletext -{ - text-align: center; - margin-left: 2px; - margin-right: 2px; - width: adaptive; - height: adaptive; - font-family: EAknLogicalFontPrimaryFont; - font-size: 3u; - color:"SKIN(268458534 13056 19)"; -} - -/* Profiles dialog */ -listquerydialog#profiledialog -{ - /* Avkon dialog is not layout capable */ - display: none; -} - -/* Default system profiles */ -text.systemprofileitem +trigger#hs_popup_open_up:edit { display: block; } -/* Placeholders for profiles added by user */ -text.userprofileitem +softkey#rsk { - display: none; -} - -/****************** - SOFT INDICATOR WIDGET AREA -*******************/ - -newsticker.SIText { - text-align: center; - display: block; - visibility: visible; - width: auto; - margin-left: 2px; - margin-right: 2px; - font-family: EAknLogicalFontPrimaryFont; - font-size: 3u; - white-space-collapse: collapse; - _s60-scroll-behaviour: alternate; - /*_s60-scroll-behaviour: scroll;*/ - _s60-display-time: 2000; - _s60-scroll-loop: false; - _s60-start-delay: 0; - _s60-restart-after-update: true; - color: white; - /*color:"SKIN(268458534 13056 19)";*/ + _s60-longtap: true; + _s60-aspect-ratio: preserve; } -box#NT_CUGMCN_landscape +softkey#msk_ltr { - text-align: center; - margin-left: auto; - margin-right: auto; - width: adaptive; - height: auto; - block-progression: rl; + display: block; } -box#NT_SATVHZ_landscape -{ - display: none; - text-align: center; - margin-left: auto; - margin-right: auto; - width: adaptive; - height: auto; - block-progression: rl; -} - -title#title_vhz_landscape -{ - display: none; -} - -title#title_sat_landscape -{ - display: none; -} - -image#SatIdleModeIcon_portrait -{ - display: none; -} - -image#SatIdleModeIcon_landscape +softkey#msk_rtl { display: none; } -/************ -Page switcher -************* -box#switcher{ - display: block; - visibility: visible; - block-progression: rl; - direction: ltr; - height: 4.5u; - background-color: "SKIN(268458534 9906)"; - background-size: 100%; - margin-top: 0.55u; -} - -box#switcher:focus { - background-color: "SKIN(268458534 5120 9)"; -} - -text#switchertext -{ - text-align: center; - margin-left: auto; - margin-right: auto; - width: adaptive; - height: 3.5u; - font-family: EAknLogicalFontPrimaryFont; - font-size: 3u; - color:"SKIN(268458534 13056 19)"; - color: white; - padding-top: 0.5u; - padding-bottom: 0.5u; -} - -image#switcherimage -{ - position: static; - height: 3.5u; - width: 3.5u; - margin-top: 0.5u; - margin-left: 2u; -} -*/ - -menuitem#webonlineitem -{ - display: block; -} - -menuitem#webonlineitem:edit -{ - display: none; -} - -menuitem#webofflineitem -{ - display: block; -} - -menuitem#webofflineitem:edit -{ - display: none; -} - -box#main_plugins{ - block-progression: tb; - display: block; - visibility: visible; - padding-left: 1.7u; - padding-right: 1.7u; -} - diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286ea.confml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286ea.confml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,483 @@ + + + + + Maximum widget amount in Homescreen 2 page. Customizable + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Path of the Wallpaper resource. Customizable. + + + Not customizable! + + + Not customizable! + + + Widgets in the Homescreen 2 + + Widget name + + + Bundle identifier for the (C)WRT widgets. None for the native widgets + + + Templeate identifier for the (C)WRT widgets. None for the native widgets + + + Locking status for the widget 1 in Homescreen 2 page + + + Customize enabler for desktop/shortcut widget + + + Customize 1st item in desktop widget + + + Type of the item: Application, bookmark, or shortcut(param specific item) + + + Uid for the application, Menu content Uid for the bookmarks and shortcuts. + + + url for the bookmark based shortcut. for example http://www.google.com + + + Params for shortcut. For example: messaging:msg + + + Customize 2nd item in desktop widget + + + Type of the item: Application, bookmark, or shortcut(param specific item) + + + Uid for the application, Menu content Uid for the bookmarks and shortcuts + + + url for the bookmark based shortcut. for example http://www.google.com + + + Params for shortcut. messaging:msg + + + Customize 3rd item in desktop widget + + + Type of the item: Application, bookmark, or shortcut(param specific item) + + + Uid for the application,Menu content Uid for the bookmarks and shortcuts. + + + url for the bookmark based shortcut. for example http://www.google.com + + + Params for shortcut. messaging:msg + + + Customize 4th item in desktop widget + + + Type of the item: Application, bookmark, or shortcut(param specific item) + + + Uid for the application, Menu content ids for the bookmarks and shortcuts + + + url for the bookmark based shortcut. for example http://www.google.com + + + Params for shortcut. messaging:msg + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + + + + 6 + true + hs_vga_tch_view + use_empty_widget + wallpaper + path + + + 0x200286e6 + 0 + 0 + permanent + 0 + 0 + + + + + + + + + + + + + + + + + + + + first + Shortcut1 + second + Shortcut2 + third + Shortcut3 + fourth + Shortcut4 + type + uid + view + param + + + 0x200286e7 + 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 + 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 + 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 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286ea.gcfml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286ea.gcfml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eamanifest.confml Binary file idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eamanifest.confml has changed diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eamanifest.gcfml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eamanifest.gcfml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eaxuikon.confml Binary file idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eaxuikon.confml has changed diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eaxuikon.gcfml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eaxuikon.gcfml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view2_200286ea/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/group/bld.inf Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,86 @@ +/* +* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: The information required for building +* +*/ + + +#include + +PRJ_PLATFORMS +DEFAULT + +PRJ_EXPORTS +// Support for productization and Carbide.Ui customization +//******************************************************** +//../hsps/00/manifest.dat /epoc32/data/z/resource/homescreen/view2_200286ea/hsps/manifest.dat +//../hsps/00/viewconfiguration.xml /epoc32/data/z/resource/homescreen/view2_200286ea/hsps/viewconfiguration.xml +//../hsps/00/viewconfiguration.dtd /epoc32/data/z/resource/homescreen/view2_200286ea/hsps/viewconfiguration.dtd + +../xuikon/00/view.dat /epoc32/data/z/resource/homescreen/view2_200286ea/xuikon/view2_200286ea.dat +../xuikon/00/view.xml /epoc32/data/z/resource/homescreen/view2_200286ea/xuikon/view.xml +../xuikon/00/view.dtd /epoc32/data/z/resource/homescreen/view2_200286ea/xuikon/view.dtd +../xuikon/00/view.css /epoc32/data/z/resource/homescreen/view2_200286ea/xuikon/view.css + +// Arabic languages +//***************** +../xuikon/37/view.css /epoc32/data/z/resource/homescreen/view2_200286ea/xuikon/37/view.css +../xuikon/50/view.css /epoc32/data/z/resource/homescreen/view2_200286ea/xuikon/50/view.css +../xuikon/57/view.css /epoc32/data/z/resource/homescreen/view2_200286ea/xuikon/57/view.css +../xuikon/94/view.css /epoc32/data/z/resource/homescreen/view2_200286ea/xuikon/94/view.css + + +//Confml and cfgml files for the customization +// starting use confml it is need to remove root_configuration.xml direct exporting (view_200286e4_variant.iby) +//*********************************** +../conf/view200286ea.confml APP_LAYER_CONFML(view200286ea.confml) +../conf/view200286ea.gcfml APP_LAYER_GCFML(view200286ea.gcfml) +../conf/view200286eamanifest.confml APP_LAYER_CONFML(view200286eamanifest.confml) +../conf/view200286eamanifest.gcfml APP_LAYER_GCFML(view200286eamanifest.gcfml) +../conf/view200286eaxuikon.confml APP_LAYER_CONFML(view200286eaxuikon.confml) +../conf/view200286eaxuikon.gcfml APP_LAYER_GCFML(view200286eaxuikon.gcfml) +// Support for S60 localization +//***************************** +//#ifndef __VIEWCONFIGURATION_LOC__ +//#define __VIEWCONFIGURATION_LOC__ +//../loc/viewconfiguration.loc APP_LAYER_LOC_EXPORT_PATH(viewconfiguration.loc) +//#endif // __VIEWCONFIGURATION_LOC__ + +#ifndef __VIEW_LOC__ +#define __VIEW_LOC__ +../loc/view.loc APP_LAYER_LOC_EXPORT_PATH(view.loc) +#endif // __VIEW_LOC__ + +// Support for S60 builds +//*********************** +../rom/view_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(view2_200286ea_resources.iby) +../rom/view_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view2_200286ea_customer.iby) +../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view2_200286ea_variant.iby) +//../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view2_200286ea.iby) + + +// Dtd-localization +//***************** +PRJ_EXTENSIONS +START EXTENSION tools/dtd +OPTION SWITCH_LOC_FILE_NAME view2_200286ea +OPTION DTD_TYPE widget +END + + +PRJ_MMPFILES + +PRJ_TESTMMPFILES + +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view2_200286ea/hsps/00/manifest.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/hsps/00/manifest.dat Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,33 @@ + + + + vga_tch + + view + + + 0x2001f48a + + + 0x101fb657 + + + 0x200286ea + + + view2 + ai3_nokia + 1.0 + + + viewconfiguration.xml + + + + + + + view.o0000 + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view2_200286ea/hsps/00/viewconfiguration.dtd --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/hsps/00/viewconfiguration.dtd Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,27 @@ + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view2_200286ea/hsps/00/viewconfiguration.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/hsps/00/viewconfiguration.xml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view2_200286ea/loc/view.loc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/loc/view.loc Fri Sep 17 15:37:16 2010 +0100 @@ -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 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view2_200286ea/loc/viewconfiguration.loc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/loc/viewconfiguration.loc Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,27 @@ +/* +* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Localization strings for view2 plugin configuration (HSPS) +* +*/ + + + +// d: AI3 View +// l: ai_gene_pane_1_t1 +// w: +// r: TB9.2 +//#define qtn_view_configuration_name "AI3 View" + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view2_200286ea/rom/view.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/rom/view.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: View widget HSPS-plugin IBY file. +* +*/ + + +#ifndef __AI3VIEW_200286EA_IBY__ +#define __AI3VIEW_200286EA_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools +data=ZPRIVATE\200159c0\install\view2_200286ea\hsps\00\manifest.dat \private\200159c0\install\view2_200286ea\hsps\00\manifest.dat + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __AI3VIEW_200286EA_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view2_200286ea/rom/view_customer.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/rom/view_customer.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,30 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: View widget HSPS-plugin language specific IBY file. +* +*/ + + +#ifndef __AI3VIEW_200286EA_CUSTOMER_IBY__ +#define __AI3VIEW_200286EA_CUSTOMER_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools, language specific +data=ZPRIVATE\200159c0\install\view2_200286ea\xuikon\00\view.o0000 \private\200159c0\install\view2_200286ea\xuikon\00\view.o0000 +//data=ZPRIVATE\200159c0\install\view2_200286ea\hsps\00\viewconfiguration.dtd \private\200159c0\install\view2_200286ea\hsps\00\viewconfiguration.dtd + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __AI3VIEW_200286EA_CUSTOMER_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view2_200286ea/rom/view_resources.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/rom/view_resources.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,30 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: View widget HSPS-plugin language specific IBY file. +* +*/ + + +#ifndef __AI3VIEW_200286EA_RESOURCES_IBY__ +#define __AI3VIEW_200286EA_RESOURCES_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools, language specific +data=ZPRIVATE\200159c0\install\view2_200286ea\xuikon\00\view.o0000 \private\200159c0\install\view2_200286ea\xuikon\00\view.o0000 +//data=ZPRIVATE\200159c0\install\view2_200286ea\hsps\00\viewconfiguration.dtd \private\200159c0\install\view2_200286ea\hsps\00\viewconfiguration.dtd + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __AI3VIEW_200286EA_RESOURCES_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view2_200286ea/rom/view_variant.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/rom/view_variant.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: View widget HSPS-plugin variant specific IBY file. +* +*/ + + +#ifndef __AI3VIEW_200286EA_VARIANT_IBY__ +#define __AI3VIEW_200286EA_VARIANT_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by variation tools, variant specific +data=ZPRIVATE\200159c0\install\view2_200286ea\hsps\00\viewconfiguration.xml \private\200159c0\install\view2_200286ea\hsps\00\viewconfiguration.xml + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __AI3VIEW_200286EA_VARIANT_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view2_200286ea/xuikon/00/View.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/00/View.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,73 @@ +view +{ + direction: ltr; + block-progression: tb; + background-image: wallpaper; + swipe: true; + + _s60-status-pane-layout: widescreen-flat-3softkeys; +} + +box#plugins_container +{ + direction: ltr; + block-progression: tb; +} + +plugin.miniplugins +{ + height: 115px; + width: 176px; + + margin-top: 9px; + margin-left: 9px; + + _s60-longtap: true; + + nav-index: appearance; +} + +plugin.plugins +{ + height: 115px; + width: 436px; + + margin-top: 9px; + margin-left: 10px; + + _s60-longtap: true; + + nav-index: appearance; +} + +trigger#hs_popup_open_hold:edit +{ + display: none; +} + +trigger#hs_popup_open_up +{ + display: none; +} + +trigger#hs_popup_open_up:edit +{ + display: block; +} + +softkey#rsk +{ + _s60-longtap: true; + _s60-aspect-ratio: preserve; +} + +softkey#msk_ltr +{ + display: block; +} + +softkey#msk_rtl +{ + display: none; +} + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view2_200286ea/xuikon/00/View.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/00/View.xml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,289 @@ + + + + + + + + + > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view2_200286ea/xuikon/00/view.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/00/view.dat Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,13 @@ + + + E029CF57 + 101FB657 + 11001234 + Nokia + view + 1.0 + view.xml + view.css + view.dtd + + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view2_200286ea/xuikon/00/view.dtd --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/00/view.dtd Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,514 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view2_200286ea/xuikon/37/view.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/37/view.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,73 @@ +view +{ + direction: rtl; + block-progression: tb; + background-image: wallpaper; + swipe: true; + + _s60-status-pane-layout: widescreen-flat-3softkeys; +} + +box#plugins_container +{ + direction: rtl; + block-progression: tb; +} + +plugin.miniplugins +{ + height: 115px; + width: 176px; + + margin-top: 9px; + margin-right: 9px; + + _s60-longtap: true; + + nav-index: appearance; +} + +plugin.plugins +{ + height: 115px; + width: 436px; + + margin-top: 9px; + margin-right: 10px; + + _s60-longtap: true; + + nav-index: appearance; +} + +trigger#hs_popup_open_hold:edit +{ + display: none; +} + +trigger#hs_popup_open_up +{ + display: none; +} + +trigger#hs_popup_open_up:edit +{ + display: block; +} + +softkey#rsk +{ + _s60-longtap: true; + _s60-aspect-ratio: preserve; +} + +softkey#msk_ltr +{ + display: block; +} + +softkey#msk_rtl +{ + display: none; +} + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view2_200286ea/xuikon/50/view.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/50/view.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,73 @@ +view +{ + direction: rtl; + block-progression: tb; + background-image: wallpaper; + swipe: true; + + _s60-status-pane-layout: widescreen-flat-3softkeys; +} + +box#plugins_container +{ + direction: rtl; + block-progression: tb; +} + +plugin.miniplugins +{ + height: 115px; + width: 176px; + + margin-top: 9px; + margin-right: 9px; + + _s60-longtap: true; + + nav-index: appearance; +} + +plugin.plugins +{ + height: 115px; + width: 436px; + + margin-top: 9px; + margin-right: 10px; + + _s60-longtap: true; + + nav-index: appearance; +} + +trigger#hs_popup_open_hold:edit +{ + display: none; +} + +trigger#hs_popup_open_up +{ + display: none; +} + +trigger#hs_popup_open_up:edit +{ + display: block; +} + +softkey#rsk +{ + _s60-longtap: true; + _s60-aspect-ratio: preserve; +} + +softkey#msk_ltr +{ + display: block; +} + +softkey#msk_rtl +{ + display: none; +} + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view2_200286ea/xuikon/57/view.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/57/view.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,73 @@ +view +{ + direction: rtl; + block-progression: tb; + background-image: wallpaper; + swipe: true; + + _s60-status-pane-layout: widescreen-flat-3softkeys; +} + +box#plugins_container +{ + direction: rtl; + block-progression: tb; +} + +plugin.miniplugins +{ + height: 115px; + width: 176px; + + margin-top: 9px; + margin-right: 9px; + + _s60-longtap: true; + + nav-index: appearance; +} + +plugin.plugins +{ + height: 115px; + width: 436px; + + margin-top: 9px; + margin-right: 10px; + + _s60-longtap: true; + + nav-index: appearance; +} + +trigger#hs_popup_open_hold:edit +{ + display: none; +} + +trigger#hs_popup_open_up +{ + display: none; +} + +trigger#hs_popup_open_up:edit +{ + display: block; +} + +softkey#rsk +{ + _s60-longtap: true; + _s60-aspect-ratio: preserve; +} + +softkey#msk_ltr +{ + display: block; +} + +softkey#msk_rtl +{ + display: none; +} + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view2_200286ea/xuikon/94/view.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/94/view.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,73 @@ +view +{ + direction: rtl; + block-progression: tb; + background-image: wallpaper; + swipe: true; + + _s60-status-pane-layout: widescreen-flat-3softkeys; +} + +box#plugins_container +{ + direction: rtl; + block-progression: tb; +} + +plugin.miniplugins +{ + height: 115px; + width: 176px; + + margin-top: 9px; + margin-right: 9px; + + _s60-longtap: true; + + nav-index: appearance; +} + +plugin.plugins +{ + height: 115px; + width: 436px; + + margin-top: 9px; + margin-right: 10px; + + _s60-longtap: true; + + nav-index: appearance; +} + +trigger#hs_popup_open_hold:edit +{ + display: none; +} + +trigger#hs_popup_open_up +{ + display: none; +} + +trigger#hs_popup_open_up:edit +{ + display: block; +} + +softkey#rsk +{ + _s60-longtap: true; + _s60-aspect-ratio: preserve; +} + +softkey#msk_ltr +{ + display: block; +} + +softkey#msk_rtl +{ + display: none; +} + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286eb.confml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286eb.confml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,483 @@ + + + + + Maximum widget amount in Homescreen 3 page. Customizable + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Path of the Wallpaper resource. Customizable. + + + Not customizable! + + + Not customizable! + + + Widgets in the Homescreen 3 + + Widget name + + + Bundle identifier for the (C)WRT widgets. None for the native widgets + + + Templeate identifier for the (C)WRT widgets. None for the native widgets + + + Locking status for the widget 1 in Homescreen 3 page + + + Customize enabler for desktop/shortcut widget + + + Customize 1st item in desktop widget + + + Type of the item: Application, bookmark, or shortcut(param specific item) + + + Uid for the application, Menu content Uid for the bookmarks and shortcuts. + + + url for the bookmark based shortcut. for example http://www.google.com + + + Params for shortcut. For example: messaging:msg + + + Customize 2nd item in desktop widget + + + Type of the item: Application, bookmark, or shortcut(param specific item) + + + Uid for the application, Menu content Uid for the bookmarks and shortcuts + + + url for the bookmark based shortcut. for example http://www.google.com + + + Params for shortcut. messaging:msg + + + Customize 3rd item in desktop widget + + + Type of the item: Application, bookmark, or shortcut(param specific item) + + + Uid for the application,Menu content Uid for the bookmarks and shortcuts. + + + url for the bookmark based shortcut. for example http://www.google.com + + + Params for shortcut. messaging:msg + + + Customize 4th item in desktop widget + + + Type of the item: Application, bookmark, or shortcut(param specific item) + + + Uid for the application, Menu content ids for the bookmarks and shortcuts + + + url for the bookmark based shortcut. for example http://www.google.com + + + Params for shortcut. messaging:msg + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + Not customizable! + + + + + + 6 + true + hs_vga_tch_view + use_empty_widget + wallpaper + path + + + 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 + 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 + 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 + + + + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286eb.gcfml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286eb.gcfml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebmanifest.confml Binary file idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebmanifest.confml has changed diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebmanifest.gcfml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebmanifest.gcfml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebxuikon.confml Binary file idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebxuikon.confml has changed diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebxuikon.gcfml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebxuikon.gcfml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view3_200286eb/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/group/bld.inf Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,85 @@ +/* +* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: The information required for building +* +*/ + + +#include + +PRJ_PLATFORMS +DEFAULT + +PRJ_EXPORTS +// Support for productization and Carbide.Ui customization +//******************************************************** +//../hsps/00/manifest.dat /epoc32/data/z/resource/homescreen/view3_200286eb/hsps/manifest.dat +//../hsps/00/viewconfiguration.xml /epoc32/data/z/resource/homescreen/view3_200286eb/hsps/viewconfiguration.xml +//../hsps/00/viewconfiguration.dtd /epoc32/data/z/resource/homescreen/view3_200286eb/hsps/viewconfiguration.dtd + +../xuikon/00/view.dat /epoc32/data/z/resource/homescreen/view3_200286eb/xuikon/view3_200286eb.dat +../xuikon/00/view.xml /epoc32/data/z/resource/homescreen/view3_200286eb/xuikon/view.xml +../xuikon/00/view.dtd /epoc32/data/z/resource/homescreen/view3_200286eb/xuikon/view.dtd +../xuikon/00/view.css /epoc32/data/z/resource/homescreen/view3_200286eb/xuikon/view.css + +// Arabic languages +//***************** +../xuikon/37/view.css /epoc32/data/z/resource/homescreen/view3_200286eb/xuikon/37/view.css +../xuikon/50/view.css /epoc32/data/z/resource/homescreen/view3_200286eb/xuikon/50/view.css +../xuikon/57/view.css /epoc32/data/z/resource/homescreen/view3_200286eb/xuikon/57/view.css +../xuikon/94/view.css /epoc32/data/z/resource/homescreen/view3_200286eb/xuikon/94/view.css + + +//Confml and cfgml files for the customization +//*********************************** +../conf/view200286eb.confml APP_LAYER_CONFML(view200286eb.confml) +../conf/view200286eb.gcfml APP_LAYER_GCFML(view200286eb.gcfml) +../conf/view200286ebmanifest.confml APP_LAYER_CONFML(view200286ebmanifest.confml) +../conf/view200286ebmanifest.gcfml APP_LAYER_GCFML(view200286ebmanifest.gcfml) +../conf/view200286ebxuikon.confml APP_LAYER_CONFML(view200286ebxuikon.confml) +../conf/view200286ebxuikon.gcfml APP_LAYER_GCFML(view200286ebxuikon.gcfml) +// Support for S60 localization +//***************************** +//#ifndef __VIEWCONFIGURATION_LOC__ +//#define __VIEWCONFIGURATION_LOC__ +//../loc/viewconfiguration.loc APP_LAYER_LOC_EXPORT_PATH(viewconfiguration.loc) +//#endif // __VIEWCONFIGURATION_LOC__ + +#ifndef __VIEW_LOC__ +#define __VIEW_LOC__ +../loc/view.loc APP_LAYER_LOC_EXPORT_PATH(view.loc) +#endif // __VIEW_LOC__ + +// Support for S60 builds +//*********************** +../rom/view_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(view3_200286eb_resources.iby) +../rom/view_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view3_200286eb_customer.iby) +../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view3_200286eb_variant.iby) +//../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view3_200286eb.iby) + + +// Dtd-localization +//***************** +PRJ_EXTENSIONS +START EXTENSION tools/dtd +OPTION SWITCH_LOC_FILE_NAME view3_200286eb +OPTION DTD_TYPE widget +END + + +PRJ_MMPFILES + +PRJ_TESTMMPFILES + +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view3_200286eb/hsps/00/manifest.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/hsps/00/manifest.dat Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,33 @@ + + + + vga_tch + + view + + + 0x2001f48a + + + 0x101fb657 + + + 0x200286eb + + + view3 + ai3_nokia + 1.0 + + + viewconfiguration.xml + + + + + + + view.o0000 + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view3_200286eb/hsps/00/viewconfiguration.dtd --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/hsps/00/viewconfiguration.dtd Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,27 @@ + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view3_200286eb/hsps/00/viewconfiguration.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/hsps/00/viewconfiguration.xml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view3_200286eb/loc/view.loc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/loc/view.loc Fri Sep 17 15:37:16 2010 +0100 @@ -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 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view3_200286eb/loc/viewconfiguration.loc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/loc/viewconfiguration.loc Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,27 @@ +/* +* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Localization strings for view3 plugin configuration (HSPS) +* +*/ + + + +// d: AI3 View +// l: ai_gene_pane_1_t1 +// w: +// r: TB9.2 +//#define qtn_view_configuration_name "AI3 View" + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view3_200286eb/rom/view.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/rom/view.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: View widget HSPS-plugin IBY file. +* +*/ + + +#ifndef __AI3VIEW_200286EB_IBY__ +#define __AI3VIEW_200286EB_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools +data=ZPRIVATE\200159c0\install\view3_200286eb\hsps\00\manifest.dat \private\200159c0\install\view3_200286eb\hsps\00\manifest.dat + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __AI3VIEW_200286EB_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view3_200286eb/rom/view_customer.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/rom/view_customer.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,30 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: View widget HSPS-plugin language specific IBY file. +* +*/ + + +#ifndef __AI3VIEW_200286EB_CUSTOMER_IBY__ +#define __AI3VIEW_200286EB_CUSTOMER_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools, language specific +data=ZPRIVATE\200159c0\install\view3_200286eb\xuikon\00\view.o0000 \private\200159c0\install\view3_200286eb\xuikon\00\view.o0000 +//data=ZPRIVATE\200159c0\install\view3_200286eb\hsps\00\viewconfiguration.dtd \private\200159c0\install\view3_200286eb\hsps\00\viewconfiguration.dtd + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __AI3VIEW_200286EB_CUSTOMER_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view3_200286eb/rom/view_resources.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/rom/view_resources.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,30 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: View widget HSPS-plugin language specific IBY file. +* +*/ + + +#ifndef __AI3VIEW_200286EB_RESOURCES_IBY__ +#define __AI3VIEW_200286EB_RESOURCES_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by DTD-localization tools, language specific +data=ZPRIVATE\200159c0\install\view3_200286eb\xuikon\00\view.o0000 \private\200159c0\install\view3_200286eb\xuikon\00\view.o0000 +//data=ZPRIVATE\200159c0\install\view3_200286eb\hsps\00\viewconfiguration.dtd \private\200159c0\install\view3_200286eb\hsps\00\viewconfiguration.dtd + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __AI3VIEW_200286EB_RESOURCES_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view3_200286eb/rom/view_variant.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/rom/view_variant.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: View widget HSPS-plugin variant specific IBY file. +* +*/ + + +#ifndef __AI3VIEW_200286EB_VARIANT_IBY__ +#define __AI3VIEW_200286EB_VARIANT_IBY__ + +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) + +// Enabled by variation tools, variant specific +data=ZPRIVATE\200159c0\install\view3_200286eb\hsps\00\viewconfiguration.xml \private\200159c0\install\view3_200286eb\hsps\00\viewconfiguration.xml + +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 + +#endif // __AI3VIEW_200286EB_VARIANT_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view3_200286eb/xuikon/00/View.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/00/View.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,73 @@ +view +{ + direction: ltr; + block-progression: tb; + background-image: wallpaper; + swipe: true; + + _s60-status-pane-layout: widescreen-flat-3softkeys; +} + +box#plugins_container +{ + direction: ltr; + block-progression: tb; +} + +plugin.miniplugins +{ + height: 115px; + width: 176px; + + margin-top: 9px; + margin-left: 9px; + + _s60-longtap: true; + + nav-index: appearance; +} + +plugin.plugins +{ + height: 115px; + width: 436px; + + margin-top: 9px; + margin-left: 10px; + + _s60-longtap: true; + + nav-index: appearance; +} + +trigger#hs_popup_open_hold:edit +{ + display: none; +} + +trigger#hs_popup_open_up +{ + display: none; +} + +trigger#hs_popup_open_up:edit +{ + display: block; +} + +softkey#rsk +{ + _s60-longtap: true; + _s60-aspect-ratio: preserve; +} + +softkey#msk_ltr +{ + display: block; +} + +softkey#msk_rtl +{ + display: none; +} + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view3_200286eb/xuikon/00/View.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/00/View.xml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,289 @@ + + + + + + + + + > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view3_200286eb/xuikon/00/view.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/00/view.dat Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,13 @@ + + + E029CF57 + 101FB657 + 11001234 + Nokia + view + 1.0 + view.xml + view.css + view.dtd + + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view3_200286eb/xuikon/00/view.dtd --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/00/view.dtd Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,514 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view3_200286eb/xuikon/37/view.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/37/view.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,73 @@ +view +{ + direction: rtl; + block-progression: tb; + background-image: wallpaper; + swipe: true; + + _s60-status-pane-layout: widescreen-flat-3softkeys; +} + +box#plugins_container +{ + direction: rtl; + block-progression: tb; +} + +plugin.miniplugins +{ + height: 115px; + width: 176px; + + margin-top: 9px; + margin-right: 9px; + + _s60-longtap: true; + + nav-index: appearance; +} + +plugin.plugins +{ + height: 115px; + width: 436px; + + margin-top: 9px; + margin-right: 10px; + + _s60-longtap: true; + + nav-index: appearance; +} + +trigger#hs_popup_open_hold:edit +{ + display: none; +} + +trigger#hs_popup_open_up +{ + display: none; +} + +trigger#hs_popup_open_up:edit +{ + display: block; +} + +softkey#rsk +{ + _s60-longtap: true; + _s60-aspect-ratio: preserve; +} + +softkey#msk_ltr +{ + display: block; +} + +softkey#msk_rtl +{ + display: none; +} + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view3_200286eb/xuikon/50/view.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/50/view.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,73 @@ +view +{ + direction: rtl; + block-progression: tb; + background-image: wallpaper; + swipe: true; + + _s60-status-pane-layout: widescreen-flat-3softkeys; +} + +box#plugins_container +{ + direction: rtl; + block-progression: tb; +} + +plugin.miniplugins +{ + height: 115px; + width: 176px; + + margin-top: 9px; + margin-right: 9px; + + _s60-longtap: true; + + nav-index: appearance; +} + +plugin.plugins +{ + height: 115px; + width: 436px; + + margin-top: 9px; + margin-right: 10px; + + _s60-longtap: true; + + nav-index: appearance; +} + +trigger#hs_popup_open_hold:edit +{ + display: none; +} + +trigger#hs_popup_open_up +{ + display: none; +} + +trigger#hs_popup_open_up:edit +{ + display: block; +} + +softkey#rsk +{ + _s60-longtap: true; + _s60-aspect-ratio: preserve; +} + +softkey#msk_ltr +{ + display: block; +} + +softkey#msk_rtl +{ + display: none; +} + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view3_200286eb/xuikon/57/view.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/57/view.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,73 @@ +view +{ + direction: rtl; + block-progression: tb; + background-image: wallpaper; + swipe: true; + + _s60-status-pane-layout: widescreen-flat-3softkeys; +} + +box#plugins_container +{ + direction: rtl; + block-progression: tb; +} + +plugin.miniplugins +{ + height: 115px; + width: 176px; + + margin-top: 9px; + margin-right: 9px; + + _s60-longtap: true; + + nav-index: appearance; +} + +plugin.plugins +{ + height: 115px; + width: 436px; + + margin-top: 9px; + margin-right: 10px; + + _s60-longtap: true; + + nav-index: appearance; +} + +trigger#hs_popup_open_hold:edit +{ + display: none; +} + +trigger#hs_popup_open_up +{ + display: none; +} + +trigger#hs_popup_open_up:edit +{ + display: block; +} + +softkey#rsk +{ + _s60-longtap: true; + _s60-aspect-ratio: preserve; +} + +softkey#msk_ltr +{ + display: block; +} + +softkey#msk_rtl +{ + display: none; +} + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/view3_200286eb/xuikon/94/view.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/94/view.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,73 @@ +view +{ + direction: rtl; + block-progression: tb; + background-image: wallpaper; + swipe: true; + + _s60-status-pane-layout: widescreen-flat-3softkeys; +} + +box#plugins_container +{ + direction: rtl; + block-progression: tb; +} + +plugin.miniplugins +{ + height: 115px; + width: 176px; + + margin-top: 9px; + margin-right: 9px; + + _s60-longtap: true; + + nav-index: appearance; +} + +plugin.plugins +{ + height: 115px; + width: 436px; + + margin-top: 9px; + margin-right: 10px; + + _s60-longtap: true; + + nav-index: appearance; +} + +trigger#hs_popup_open_hold:edit +{ + display: none; +} + +trigger#hs_popup_open_up +{ + display: none; +} + +trigger#hs_popup_open_up:edit +{ + display: block; +} + +softkey#rsk +{ + _s60-longtap: true; + _s60-aspect-ratio: preserve; +} + +softkey#msk_ltr +{ + display: block; +} + +softkey#msk_rtl +{ + display: none; +} + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/wideimage_10009dff/group/bld.inf --- a/idlehomescreen/data/vga_tch/wideimage_10009dff/group/bld.inf Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/group/bld.inf Fri Sep 17 15:37:16 2010 +0100 @@ -11,11 +11,11 @@ * * Contributors: * -* Description: The information required for building +* Description: +* The information required for building * */ - #include PRJ_PLATFORMS @@ -24,28 +24,26 @@ PRJ_EXPORTS // Support for productization and Carbide.Ui customization //******************************************************** -../hsps/00/manifest.dat /epoc32/data/z/resource/homescreen/wideimage_10009dff/hsps/manifest.dat -../hsps/00/widgetconfiguration.xml /epoc32/data/z/resource/homescreen/wideimage_10009dff/hsps/widgetconfiguration.xml +../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/wideimage_10009dff/hsps/manifest.dat +../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/wideimage_10009dff/hsps/widgetconfiguration.xml +../xuikon/00/wideimage.dat /epoc32/data/Z/resource/homescreen/wideimage_10009dff/xuikon/wideimage_10009dff.dat +../xuikon/00/wideimage.css /epoc32/data/Z/resource/homescreen/wideimage_10009dff/xuikon/wideimage.css +../xuikon/00/wideimage.xml /epoc32/data/Z/resource/homescreen/wideimage_10009dff/xuikon/wideimage.xml -../xuikon/00/wideimage.dat /epoc32/data/z/resource/homescreen/wideimage_10009dff/xuikon/wideimage_10009dff.dat -../xuikon/00/wideimage.css /epoc32/data/z/resource/homescreen/wideimage_10009dff/xuikon/wideimage.css -../xuikon/00/wideimage.xml /epoc32/data/z/resource/homescreen/wideimage_10009dff/xuikon/wideimage.xml -../xuikon/00/wideimage.dtd /epoc32/data/z/resource/homescreen/wideimage_10009dff/xuikon/wideimage.dtd +// Arabic languages +//***************** +//../xuikon/37/wideimage.css /epoc32/data/Z/resource/homescreen/wideimage_10009dff/xuikon/37/wideimage.css +//../xuikon/50/wideimage.css /epoc32/data/Z/resource/homescreen/wideimage_10009dff/xuikon/50/wideimage.css +//../xuikon/57/wideimage.css /epoc32/data/Z/resource/homescreen/wideimage_10009dff/xuikon/57/wideimage.css +//../xuikon/94/wideimage.css /epoc32/data/Z/resource/homescreen/wideimage_10009dff/xuikon/94/wideimage.css // Support for S60 builds //*********************** ../rom/wideimage_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(wideimage_10009dff_resources.iby) ../rom/wideimage_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(wideimage_10009dff_customer.iby) -../rom/wideimage_variant.iby CUSTOMER_VARIANT_APP_LAYER_IBY_EXPORT_PATH(wideimage_10009dff_variant.iby) +../rom/wideimage_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(wideimage_10009dff_variant.iby) ../rom/wideimage.iby CORE_APP_LAYER_IBY_EXPORT_PATH(wideimage_10009dff.iby) -// Support for S60 localization -//***************************** -#ifndef __WIDEIMAGE_LOC__ -#define __WIDEIMAGE_LOC__ -../loc/wideimage.loc APP_LAYER_LOC_EXPORT_PATH(wideimage.loc) -#endif // __WIDEIMAGE_LOC__ - // Dtd-localization //***************** PRJ_EXTENSIONS @@ -61,7 +59,3 @@ PRJ_TESTMMPFILES // End of File - - - - diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/wideimage_10009dff/hsps/00/widgetconfiguration.xml --- a/idlehomescreen/data/vga_tch/wideimage_10009dff/hsps/00/widgetconfiguration.xml Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/hsps/00/widgetconfiguration.xml Fri Sep 17 15:37:16 2010 +0100 @@ -1,24 +1,9 @@ - - - - - - - - - - - - - - - - - - + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/wideimage_10009dff/loc/wideimage.loc --- a/idlehomescreen/data/vga_tch/wideimage_10009dff/loc/wideimage.loc Thu Sep 02 15:42:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -/* -* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Localization strings for WideImage widget (Xuikon) -* -*/ - -// d: Loading content -// l: ai_gene_pane_1_t1/opt4 -// w: -// r: TB9.2 -#define qtn_ai_loading_content "Loading content..." \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage.iby --- a/idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage.iby Fri Sep 17 15:37:16 2010 +0100 @@ -19,11 +19,11 @@ #ifndef __WIDEIMAGE_10009DFF_IBY__ #define __WIDEIMAGE_10009DFF_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools data=ZPRIVATE\200159c0\install\wideimage_10009dff\hsps\00\manifest.dat \private\200159c0\install\wideimage_10009dff\hsps\00\manifest.dat -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __WIDEIMAGE_10009DFF_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage_customer.iby --- a/idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage_customer.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage_customer.iby Fri Sep 17 15:37:16 2010 +0100 @@ -19,11 +19,11 @@ #ifndef __WIDEIMAGE_10009DFF_CUSTOMER_IBY__ #define __WIDEIMAGE_10009DFF_CUSTOMER_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools, language specific data=ZPRIVATE\200159c0\install\wideimage_10009dff\xuikon\00\wideimage.o0000 \private\200159c0\install\wideimage_10009dff\xuikon\00\wideimage.o0000 -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __WIDEIMAGE_10009DFF_CUSTOMER_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage_resources.iby --- a/idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage_resources.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage_resources.iby Fri Sep 17 15:37:16 2010 +0100 @@ -18,11 +18,11 @@ #ifndef __WIDEIMAGE_10009DFF_RESOURCES_IBY__ #define __WIDEIMAGE_10009DFF_RESOURCES_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by DTD-localization tools, language specific -data=ZPRIVATE\200159c0\install\wideimage_10009dff\xuikon\00\wideimage.o0000 \private\200159c0\install\wideimage_10009dff\xuikon\00\wideimage.o0000 +//data=ZPRIVATE\200159c0\install\wideimage_10009dff\xuikon\00\wideimage.o0000 \private\200159c0\install\wideimage_10009dff\xuikon\00\wideimage.o0000 -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __WIDEIMAGE_10009DFF_RESOURCES_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage_variant.iby --- a/idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage_variant.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage_variant.iby Fri Sep 17 15:37:16 2010 +0100 @@ -19,11 +19,11 @@ #ifndef __WIDEIMAGE_10009DFF_VARIANT_IBY__ #define __WIDEIMAGE_10009DFF_VARIANT_IBY__ -#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4) // Enabled by variation tools, variant specific data=ZPRIVATE\200159c0\install\wideimage_10009dff\hsps\00\widgetconfiguration.xml \private\200159c0\install\wideimage_10009dff\hsps\00\widgetconfiguration.xml -#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4 #endif // __WIDEIMAGE_10009DFF_VARIANT_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.css --- a/idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.css Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.css Fri Sep 17 15:37:16 2010 +0100 @@ -1,45 +1,53 @@ -widget{ - width:auto; - height:60px; - } - -box#image_container:focus { - background-image: "SKIN(268458534 24576)"; - background-color: "SKIN(268458534 5120 9)"; -} - -box#image_container:hold +widget#wideimage_template { - background-color: "SKIN(268458534 5120 9)"; + nav-index: appearance; + block-progression:rl; + direction: ltr; } box#image_container { - padding-top : 2px; - padding-bottom: 2px; - padding-left : 10px; - padding-right : 10px; - direction: ltr; - nav-index:appearance; + /* Will be updated by content policy */ + display: none; +} +box#default_container +{ + /* Will be updated by content policy */ + display: block; +} + +image#w_default_image +{ + padding-top:9px; + padding-bottom:9px; + padding-left:9px; + padding-right:9px; + height: 105px; + width: 105px; } -image#wide_image +text#w_default_text { - display: none; - width:auto; - height:auto; - /*_s60-aspect-ratio:preserve;*/ + padding-left:9px; + padding-right:9px; + height : 10u; + font-line-space: 15; + direction: ltr; + text-align:left; + text-overflow-mode: wrap; + font-family: EAknLogicalFontSecondaryFont; + font-size: 4u; + color: "SKIN(268458534 13056 74)"; } -text#wide_text +animation#loading { - display: block; - width:auto; - height:auto; - padding-left: 5px; - font-family: EAknLogicalFontSecondaryFont; - font-size:18px; - color:white; + position: absolute; + top: 9px; + left: 401px; + right:9px; + width:30px; + height:30px; + /* Will be updated by dataplugin */ + display: none; } - - diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.dat --- a/idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.dat Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.dat Fri Sep 17 15:37:16 2010 +0100 @@ -8,5 +8,4 @@ 1.0 wideimage.xml wideimage.css - wideimage.dtd \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.dtd --- a/idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.dtd Thu Sep 02 15:42:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ - - - - - - - - - - - diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.xml --- a/idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.xml Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.xml Fri Sep 17 15:37:16 2010 +0100 @@ -1,43 +1,62 @@ - - - + + + + - - - + - - - - - - - - - - - - - - - + + + - - - - - - - - - - &qtn_ai_loading_content; - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/group/bld.inf Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: Carousel widget for Symbian Homescreen + * + */ + + +#include + +PRJ_PLATFORMS +ARMV5 WINSCW + +#include "../widget/group/bld.inf" +#include "../renderer/group/bld.inf" +#include "../publisher/group/bld.inf" + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/publisher/data/carouselplugin.rss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/publisher/data/carouselplugin.rss Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,63 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Registry info + * +*/ + + +// INCLUDES +#include +#include +#include "carouselpluginuids.hrh" + + +// ----------------------------------------------------------------------------- +// +// registry_info +// Registry information required for identifying the ECOM component +// +// ----------------------------------------------------------------------------- +// + +RESOURCE REGISTRY_INFO registry_info +{ + resource_format_version = RESOURCE_FORMAT_VERSION_2; + + dll_uid = AI_UID_ECOM_DLL_CONTENTPUBLISHER_CAROUSELPLUGIN; + + // Declare array of interface info + interfaces = + { + INTERFACE_INFO + { + // UID of interface that is implemented + interface_uid = HS_UID_ECOM_INTERFACE_CONTENTPUBLISHER; + + implementations = + { + IMPLEMENTATION_INFO + { + implementation_uid = AI_UID_ECOM_IMPLEMENTATION_CONTENTPUBLISHER_CAROUSELPLUGIN; + version_no = 1; + display_name = "carpub"; + default_data = ""; + opaque_data = ""; + } + }; + } + }; +} + + +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/publisher/data/carouselpluginres.rss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/publisher/data/carouselpluginres.rss Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,90 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Resource definitions for carousel plug-in settings +* +*/ + + +#include +#include +#include +#include +#include + +#include + + +NAME MCPL + +RESOURCE RSS_SIGNATURE { } + +RESOURCE TBUF { buf="CCPL"; } + +//---------------------------------------------------- +// EIK_APP_INFO +// Contains application information. +//---------------------------------------------------- +// +RESOURCE EIK_APP_INFO +{ +} + +//---------------------------------------------------- +// R_MCS_DISABLE_OPEN_ITEM +// Dialog text: Item cannot be run because of backup +// state +//---------------------------------------------------- +// +RESOURCE TBUF r_mcs_disable_open_item +{ + buf = qtn_mcs_disable_open_item; +} + +//---------------------------------------------------- +// R_MCS_DISABLE_OPEN_ITEM_MISSING +// Dialog text: Item cannot be opened because of it is +// missing +//---------------------------------------------------- +// +RESOURCE TBUF r_mcs_disable_open_item_missing +{ + buf = qtn_mcs_disable_open_item_missing; +} + + +//---------------------------------------------------- +// R_MCS_DISABLE_OPEN_ITEM_DLG +// Contains application information. +//---------------------------------------------------- +// +RESOURCE DIALOG r_mcs_disable_open_item_dlg +{ + flags = EAknWarningNoteFlags | EEikDialogFlagWait; + buttons = R_AVKON_SOFTKEYS_OK_EMPTY; + items = + { + DLG_LINE + { + type = EAknCtNote; + id = EGeneralNote; + control = AVKON_NOTE + { + layout = EGeneralLayout; + animation = R_QGN_NOTE_INFO_ANIM; + }; + } + }; +} + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/publisher/data/carouselpluginuids.hrh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/publisher/data/carouselpluginuids.hrh Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,37 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: UIDs for the Active Idle subsystem components. +* +*/ + + +#ifndef CAROUSELPLUGINUIDS_HRH +#define CAROUSELPLUGINUIDS_HRH + +/** + * Ecom dll uid for MCS plug-in. + */ +#define AI_UID_ECOM_DLL_CONTENTPUBLISHER_CAROUSELPLUGIN 0xE001CB57 + +/** + * Ecom implementation uid for MCS plug-in. + */ +#define AI_UID_ECOM_IMPLEMENTATION_CONTENTPUBLISHER_CAROUSELPLUGIN 0xE001CB58 + +/** + * Ecom implementation uid for MCS settings plug-in. + */ +#define AI_UID_ECOM_IMPLEMENTATION_SETTINGS_MCSPLUGIN 0x20022FDD + +#endif //CAROUSELPLUGINUIDS_HRH diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/publisher/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/publisher/group/bld.inf Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,51 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: The build information file of carousel Plugin +* +*/ + + +#include + + +PRJ_PLATFORMS +DEFAULT + +PRJ_EXPORTS +../loc/carouselplugin.loc MW_LAYER_LOC_EXPORT_PATH(carouselplugin.loc) + + +../rom/carouselplugin_resources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(carouselplugin_resources.iby) +../rom/carouselplugin.iby CORE_MW_LAYER_IBY_EXPORT_PATH(carouselplugin.iby) + + + + +PRJ_EXTENSIONS + +START EXTENSION s60/mifconv +OPTION TARGETFILE carouselplugin.mif +OPTION HEADERFILE carouselplugin.mbg +OPTION SOURCES -c8,8 qgn_prop_ai_shortcut -c8,8 qgn_menu_url \ + -c8,8 qgn_menu_mce_sel_mes -c8,8 qgn_menu_mce_syncmail \ + -c8,8 qgn_menu_am -c8,8 qgn_prop_cp_conn_shortcut \ + -c8,8 qgn_prop_psln_ai_sub -c8,8 qgn_mcsplugin_log_out +END + + +PRJ_MMPFILES +carouselplugin.mmp + + +// End of File. diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/publisher/group/carouselplugin.mmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/publisher/group/carouselplugin.mmp Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,83 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Project definition file for project ProfilePlugin +* +*/ + +#include +#include + +#include "../data/carouselpluginuids.hrh" + +TARGET carouselplugin.dll +TARGETTYPE PLUGIN +UID 0x10009D8D AI_UID_ECOM_DLL_CONTENTPUBLISHER_CAROUSELPLUGIN + +CAPABILITY CAP_ECOM_PLUGIN +VENDORID VID_DEFAULT + +SOURCEPATH ../src +SOURCE carouselplugin.cpp +SOURCE carouselpluginengine.cpp +SOURCE carouselplugindata.cpp +SOURCE carouselpluginwatcher.cpp + +USERINCLUDE ../inc +USERINCLUDE ../loc +USERINCLUDE ../data + +APP_LAYER_SYSTEMINCLUDE + +SOURCEPATH ../data +START RESOURCE carouselplugin.rss +HEADER +TARGETPATH ECOM_RESOURCE_DIR +END + +START RESOURCE carouselpluginres.rss +HEADER +TARGET carouselpluginres.rsc +TARGETPATH RESOURCE_FILES_DIR +LANGUAGE_IDS +END +LIBRARY euser.lib +LIBRARY mcsmenu.lib +LIBRARY mcsextendedmenu.lib +LIBRARY egul.lib +LIBRARY cone.lib +LIBRARY ecom.lib +LIBRARY aiutils.lib +LIBRARY aknskins.lib +LIBRARY aknicon.lib +LIBRARY mcsmenuutils.lib +LIBRARY hspluginsettings.lib +LIBRARY msgs.lib +LIBRARY apgrfx.lib +LIBRARY apparc.lib + + +LIBRARY bafl.lib +LIBRARY avkon.lib +LIBRARY eikcoctl.lib +LIBRARY eikcore.lib +LIBRARY efsrv.lib +LIBRARY fbscli.lib +LIBRARY gslauncher.lib +LIBRARY eikdlg.lib +LIBRARY commonengine.lib +LIBRARY favouritesengine.lib +LIBRARY viewcli.lib +LIBRARY gfxtrans.lib + +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/publisher/inc/carouselplugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/publisher/inc/carouselplugin.h Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,158 @@ +/* +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Plug-in main class +* +*/ + + +#ifndef CMCSPLUGIN_H +#define CMCSPLUGIN_H + +// System includes + +// User includes +#include +#include + +// Forward declarations +class MAiContentObserver; +class MAiContentItemIterator; +class CCarouselPluginEngine; +class CCarouselData; + + +/** + * @ingroup group_mcsplugin + * + * MCS Plug-in main class + * + * @since S60 5.2 + */ +NONSHARABLE_CLASS( CCarouselPlugin ) : public CHsContentPublisher + { +public: + // constructor and destructor + + static CCarouselPlugin* NewL(); + + ~CCarouselPlugin(); + +private: + // constructors + + /** + * C++ default constructor + */ + CCarouselPlugin(); + + /** + * 2nd phase constructor + */ + void ConstructL(); + +public: + // from CHsContentPublisher + + /** + * @see CHsContentPublisher + */ + void Start( TStartReason aReason ); + + /** + * @see CHsContentPublisher + */ + void Stop( TStopReason aReason ); + + /** + * @see CHsContentPublisher + */ + void Resume( TResumeReason aReason ); + + /** + * @see CHsContentPublisher + */ + void Suspend( TSuspendReason aReason ); + + /** + * @see CHsContentPublisher + */ + void SubscribeL( MAiContentObserver& aObserver ); + + /** + * @see CHsContentPublisher + */ + void ConfigureL( RAiSettingsItemArray& aSettings ); + + /** + * @see CHsContentPublisher + */ + TAny* GetProperty( TProperty aProperty ); + + /** + * @see CHsContentPublisher + */ + void HandleEvent( const TDesC& aEventName, const TDesC& aParam ); + +public: + // new functions + + /** + * Publishes data + */ + void PublishL(); + +private: + // new functions + + /** + * CompareItems + */ + static TInt CompareItems( const MAiPluginSettings& aFirst, + const MAiPluginSettings& aSecond ); + + /** + * Publishes content for one menu item + */ + void PublishLItemL( MAiContentObserver& aObserver, CCarouselData& aDataItem, TInt aIndex ); + + void PublishEditorItemsL(); + + /** + * Delete content model + */ + void DeleteContentModel(); + + /** + * Determines if dirty items exists + */ + TBool PublishRequired() const; + +private: + // data + + /** Iterator for plugin content, owned */ + MAiContentItemIterator* iContent; + /** Number of data in the content model */ + TInt iDataCount; + /** Dynamic content model, owned */ + TAiContentItem* iContentModel; + /** Plugin engine, owned */ + CCarouselPluginEngine* iEngine; + /** Array of content observers, not owned */ + RPointerArray iObservers; + }; + +#endif // CMCSPLUGIN_H + +// End of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/publisher/inc/carouselplugindata.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/publisher/inc/carouselplugindata.h Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,274 @@ +/* +* Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Plug-in data class +* +*/ + + +#ifndef CMCSPLUGINDATA_H +#define CMCSPLUGINDATA_H + +// INCLUDE FILES +#include +#include +#include +#include +#include +#include + +class TMenuItem; +class CCarouselPluginEngine; + +/** + * @ingroup group_mcsplugin + * + * Stores the MCS Menu Items and keeps track whether + * item needs to be published or not. + * + * @since S60 v9.1 + */ +NONSHARABLE_CLASS( CCarouselData ) : public CBase + { +public: + CCarouselData(); + + ~CCarouselData(); + + /** + * SetMenuItem + * + * @param aMenuItem + */ + void SetMenuItem( TMenuItem& aMenuItem ); + + /** + * MenuItem + * + * @return TMenuItem + */ + TMenuItem& MenuItem(); + + /** + * Name of the item. + */ + TDesC& Name(); + + /** + * Set name of the item, + */ + void SetNameL( const TDesC& aName ); + + /** + * Value of the item. Used for bookmark url. + */ + TDesC& Value(); + + /* + * Set value of the item. + */ + void SetValueL( const TDesC& aValue ); + + /** + * SetDirty + * + * @param aDirty + * @return TBool + */ + void SetDirty( TBool aDirty ); + + /** + * IsDirty + * + * @return TBool + */ + TBool IsDirty() const; + +private: + /** + * iMenuItem + */ + TMenuItem iMenuItem; + + /** + * Item name, own + */ + HBufC* iName; + + /** + * Item value, own + */ + HBufC* iValue; + + /** + * iDirty + */ + TBool iDirty; + }; + +/** + * @ingroup group_mcsplugin + * + * Plug-in data class + * + * @since + */ +NONSHARABLE_CLASS( CCarouselPluginData ) : public CBase, + public HSPluginSettingsIf::MHomeScreenSettingsObserver + { + +public: + + /** + * Part of the two phased constuction + * + * @param aEngine + * @param aInstanceUid + * @return Pointer to the created CMCSPluginData object + */ + static CCarouselPluginData* NewL( CCarouselPluginEngine& aEngine, + const TDesC8& aInstanceUid ); + + /** + * Constructor + * + * @param aEngine + * @param aInstanceUid + * @return none + */ + CCarouselPluginData( CCarouselPluginEngine& aEngine, const TDesC8& aInstanceUid ); + + /** + * Destructor + * + * @param none + * @return none + */ + ~CCarouselPluginData(); + + /** + * DataItem + * + * @param aIndex + * @return TMCSData& + */ + CCarouselData& DataItemL( TInt aIndex ); + + /** + * Saves 'Undefined' menu item into settings when mailbox is deleted + * + * @param aIndex + * @param aMenuItem + */ + void SaveUndefinedItemL( const TInt& aIndex ); + + /** + * DataCount + * + * @return TInt + */ + TInt DataCount(){ return iData.Count();}; + + /** + * Gets the instance specific settings from HSPS and creates data items + */ + void UpdateDataL(); + + /** + * Removes data item from data list and saves new setting into HSPS + */ + void RemoveDataL( TInt aId ); + + // From MHomeScreenSettingsObserver + /** + * SettingsChangedL + * + * @param aEvent + * @param aPluginName + * @param aPluginUid + * @param aPluginId + */ + void SettingsChangedL( const TDesC8& aEvent, const TDesC8& aPluginName, + const TDesC8& aPluginUid, const TDesC8& aPluginId ); + +private: + + /** + * Part of the two phased construction + * + * @param void + * @return void + */ + void ConstructL(); + + /** + * GetMenuDataL + * @param aProperties + * @return TMenuItem + */ + CCarouselData* GetMenuDataL( + RPointerArray& aProperties ); + + /** + * Get bookmark data item + * @param aUid, used for bookmark uid + * @param aView, used for bookmark url + * @param aParam, used for bookmark name + * @param aData, is filled with appropriate values + */ + void GetBkmDataL( const TDesC8& aUid, const TDesC8& aView, const TDesC8& aParam, CCarouselData& aData ); + + /** + * Get folder data item + * @param aParam, is used for folder id (in MCS) + * @param aData, is filled with appropriate values + */ + void GetFolderData( const TDesC8& aParam, CCarouselData& aData ); + + /** + * Get mailbox data item + * @param aUid, uid of the mailbox in messaging application + * @param aParam, name of the mailbox + * @param aData, is filled with appropriate values + */ + void GetMailboxDataL( const TDesC8& aUid, const TDesC8& aParam, CCarouselData& aData ); + + /** + * Get MCS data item + * @param aProperties, Properties are used to filter correct item from MCS. + * @param aData, is filled with appropriate values + */ + void GetMCSDataL( + RPointerArray& aProperties, CCarouselData& aData ); + +private: // data + + // Menu items, which are defined in settings + // Own + RPointerArray iData; + + // Plugin settings. NOT OWNED! + HSPluginSettingsIf::CHomescreenSettings* iPluginSettings; + + // Reference to MCS plug-in engine + CCarouselPluginEngine& iEngine; + + // Reference to instance uid of HSPS widget + const TDesC8& iInstanceUid; + + // MCS resource handle, owned + RMenu iMenu; + + }; + +#endif // CMCSPLUGINDATA_H diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/publisher/inc/carouselpluginengine.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/publisher/inc/carouselpluginengine.h Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,250 @@ +/* +* Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef CMCSPLUGINENGINE_H +#define CMCSPLUGINENGINE_H + +// System includes +#include +#include +#include +#include +#include + +// User includes +#include "carouselpluginwatcher.h" + +// Forward declarations +class CGulIcon; +class CCarouselPluginData; +class CCarouselData; +class CCarouselPlugin; + + +/** + * @ingroup group_mcsplugin + * + * MCSPluginEngine class + * + * @since S60 5.2 + */ +NONSHARABLE_CLASS( CCarouselPluginEngine ) : public CBase, + public MCarouselPluginWatcherObserver, + public MMsvSessionObserver + { +public: + // constructor and destructor + + /** + * Part of the two phased constuction + * + * @param aPlugin + * @param aInstanceUid + * @return Pointer to the created CMCSPluginEngine object + */ + static CCarouselPluginEngine* NewL( CCarouselPlugin& aPlugin, + const TDesC8& aInstanceUid ); + + /** + * Destructor + * + * @param none + * @return none + */ + ~CCarouselPluginEngine(); + +private: + // constructors + + /** + * C++ default constructor + */ + CCarouselPluginEngine( CCarouselPlugin& aPlugin, const TDesC8& aInstanceUid ); + + /* + * 2nd phase constructor + */ + void ConstructL(); + +public: + // new functions + + /** + * Gets the menu data. + * + * @param aIndex + * @return TMCSData& + */ + CCarouselData& MenuDataL( const TInt& aIndex ); + + /** Gets the menu item count + * + * @return TInt + */ + TInt MenuItemCount(); + + /** + * Finds the menu item header for given filter. + * + * @param aFilter + * @return TMenuItem + */ + TMenuItem FindMenuItemL( CMenuFilter& aFilter ); + + /** + * Retrieves the menu item object from MCS. + * + * @param aMenuItem + * @return CMenuItem* + */ + CMenuItem* FetchMenuItemL( CCarouselData& aData); + + /** + * Returns icon for given menu item and given attribute + * + * @param aMenuItem + * @param aAttr + * @return CGulIcon* + */ + CGulIcon* ItemIconL( CMenuItem* aMenuItem, const TDesC& aAttr ); + + /** + * Returns text for given menu item and given attribute + * + * @param aMenuItem + * @param aAttr + */ + TPtrC ItemTextL( CMenuItem* aMenuItem, const TDesC& aAttr ); + + /** + * Launches menu item + * + * @param aIndex + */ + void LaunchItemL( const TInt& aIndex ); + + /** + * Set backup/restore state + * + * @param aBackupRestore ETrue if backup/restore is ongoing + * @return void + */ + void SetBackupRestore( TBool aBackupRestore ); + + /** + * ShowSettingsL + */ + void ShowSettingsL(); + +private: + // from MMCSPluginWatcherObserver + + /** + * @see MMCSPluginWatcherObserver + */ + void HandleNotifyL(); + +private: + // from MMsvSessionObserver + + /** + * @see MMsvSessionObserver + */ + void HandleSessionEventL( TMsvSessionEvent aEvent, TAny* aArg1, + TAny* aArg2, TAny* aArg3 ); + +private: + // new functions + + /** + * InitL + */ + void InitL(); + + /** + * Tells the settings container to start observing + * for changes in mailbox db and changes in MCS. + */ + void StartObservingL(); + + /** + * Tells the settings container to stop observing + * for changes in mailbox db. + */ + void StopObserving(); + + /** + * ConstructMenuItemForIconL + * + * @param aPath + * @param aMenuItem + * @return TBool + */ + TBool ConstructMenuItemForIconL( + const TDesC& aPath, CMenuItem& aMenuItem ); + + /** + * Creates bookmark specific MCS menu item. + */ + CMenuItem* CreateBkmItemL( CCarouselData& aData ); + + /** + * Creates mailbox specific MCS menu item. + */ + CMenuItem* CreateMailboxItemL( CCarouselData& aData ); + + void LaunchFolderItemL( CCarouselData& aData ); + + void LaunchBookmarkItemL( CCarouselData& aData ); + + void LaunchMailboxItemL( CCarouselData& aData ); + + void LaunchMCSItemL( CCarouselData& aData ); + +private: + // data + + /** Plugin data, owned */ + CCarouselPluginData* iPluginData; + /** MCS resource handle, owned */ + RMenu iMenu; + /** MCS change notifier handle, owned */ + RMenuNotifier iNotifier; + /** MCS asynchronous operation watcher, owned */ + CCarouselPluginWatcher* iWatcher; + /** MCS change notifier watcher, owned */ + CCarouselPluginWatcher* iNotifyWatcher; + /** MCS plugin, not owned */ + CCarouselPlugin& iPlugin; + /** Reference to plugin owned instanceUid */ + const TDesC8& iInstanceUid; + /** Flag Indicating that backup/restore is in progress */ + TBool iBackupRestore; + /** Offset of resource file */ + TInt iResourceOffset; + /** Message server session, owned */ + CMsvSession* iMsvSession; + /** "Undefined" menu item, owned */ + CMenuItem* iUndefinedItem; + /** "Undefined" menu item header */ + TMenuItem iUndefinedItemHeader; + }; + +#endif // CMCSPLUGINENGINE_H + +// End of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/publisher/inc/carouselpluginwatcher.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/publisher/inc/carouselpluginwatcher.h Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,152 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __MCSPLUGINWATCHER_H +#define __MCSPLUGINWATCHER_H + +#include + +class CMenuOperation; +class CCarouselPluginEngine; + +/** + * @ingroup group_mcsplugin + * + * MCS Plugin Watcher Observer + * + * @since S60 9.1 + */ +class MCarouselPluginWatcherObserver + { + public: + /** + * HandleNotifyL + */ + virtual void HandleNotifyL() = 0; + }; + +/** + * @ingroup group_mcsplugin + * + * This class implements MCS menu action watcher for async calls. + * + * @since S60 9.1 + */ +class CCarouselPluginWatcher: public CActive + { + public: + + /** + * enum Type + */ + enum Type + { + EOperation, + ENotify + }; + + /** + * Two-phased constructor. + * + * @param aType + */ + static CCarouselPluginWatcher* NewL( const Type& aType ); + + /** + * Destructor. + */ + virtual ~CCarouselPluginWatcher(); + + /** + * Watch menu operation or notification. + * + * @param aOperation + */ + void Watch( CMenuOperation* aOperation = NULL ); + + /** + * WatchNotify + * + * @param aObserver + */ + void WatchNotify( MCarouselPluginWatcherObserver* aObserver ); + + /** + * StopAndWatch + * + * @param aOperation + * @param aWaitScheduler + */ + void StopAndWatch( CMenuOperation* aOperation, + CActiveSchedulerWait* aWaitScheduler ); + + /** + * GetStatus + */ + TInt GetStatus(); + + private: + + /** + * Default constructor. + * + * @param aType + */ + CCarouselPluginWatcher( const Type& aType ); + + /** + * ConstructL + */ + void ConstructL(); + + /** + * Inherited from CActive class + */ + void RunL(); + + /** + * Inherited from CActive class + */ + void DoCancel(); + + private: + + /** + * Menu operation + * Owned + */ + CMenuOperation* iOperation; + + /** + * Wait scheduler + * Not owned + */ + CActiveSchedulerWait* iWaitScheduler; + + /** + * Observer reference + * Not owned + */ + MCarouselPluginWatcherObserver* iObserver; + + /** + * iType + */ + Type iType; + }; + +#endif /*__MCSPLUGINWATCHER_H*/ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/publisher/loc/carouselplugin.loc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/publisher/loc/carouselplugin.loc Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Localization strings for project carousel Plugin +* +*/ + +// d: A dialog which is shown to user when (s)he is trying to +// d: launch shortcut item during backup state. +// l: popup_note_window +// w: +// r: tb9.2 +// +#define qtn_mcs_disable_open_item "Application cannot be opened during backup" + +// d: A dialog which is shown to user when (s)he is trying to +// d: launch shortcut item which is missing from menu. +// l: popup_note_window +// w: +// r: tb9.2 +// +#define qtn_mcs_disable_open_item_missing "Shortcut cannot be opened because item is missing. Try to insert memory card which contains the item or reinstall the application." + +//End file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/publisher/rom/carouselplugin.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/publisher/rom/carouselplugin.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,28 @@ +/* +* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: IBY file for carousel plug-in +* +*/ + + +#ifndef CAROUSELPLUGIN_IBY +#define CAROUSELPLUGIN_IBY +#include + +data=DATAZ_\BITMAP_DIR\carouselplugin.mif BITMAP_DIR\carouselplugin.mif + +ECOM_PLUGIN(carouselplugin.dll, carouselplugin.rsc) + +#endif // CAROUSELPLUGIN_IBY + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/publisher/rom/carouselplugin_resources.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/publisher/rom/carouselplugin_resources.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,26 @@ +/* +* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: IBY file for Profile plug-in +* +*/ + + +#ifndef CAROUSELPLUGIN_RESOURCES_IBY +#define CAROUSELPLUGIN_RESOURCES_IBY + +#include + +data=DATAZ_\RESOURCE_FILES_DIR\carouselpluginres.rsc RESOURCE_FILES_DIR\carouselpluginres.rsc + +#endif // CAROUSELPLUGIN_RESOURCES_IBY diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/publisher/src/carouselplugin.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/publisher/src/carouselplugin.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,502 @@ +/* +* Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: MCS plugin publisher +* +*/ + +// System includes +#include +#include +#include +#include + +// User includes +#include +#include +#include +#include +#include "carouselpluginuids.hrh" +#include "carouselplugin.h" +#include "carouselplugindata.h" +#include "carouselpluginengine.h" + +// Constants +const TUint KPluginNameSeprator = '/'; + +const TInt KImplUidMCSPlugin = AI_UID_ECOM_IMPLEMENTATION_CONTENTPUBLISHER_CAROUSELPLUGIN; + +_LIT( KEventNameLaunchByIndex, "LaunchByIndex" ); +_LIT( KEventNameShowSettings, "ShowSettings" ); +_LIT( KContentItemTypeText, "text" ); +_LIT( KContentItemTypeImage, "image" ); +_LIT( KContentItemTypeData, "data" ); + +const TImplementationProxy KImplementationTable[] = + { + IMPLEMENTATION_PROXY_ENTRY( KImplUidMCSPlugin, CCarouselPlugin::NewL ) + }; + +class CPublishItem : public CBase + { +public: + ~CPublishItem(); + CPublishItem(); + + CGulIcon* icon; + HBufC* text; + TBool last; + }; + +CPublishItem::CPublishItem() + { + + } + +CPublishItem::~CPublishItem() + { + delete text; + } + +// ======== LOCAL FUNCTIONS ======== + +// ======== MEMBER FUNCTIONS ======== +// ---------------------------------------------------------------------------- +// CMCSPlugin::NewL +// +// ---------------------------------------------------------------------------- +// +CCarouselPlugin* CCarouselPlugin::NewL() + { + CCarouselPlugin* self = new ( ELeave ) CCarouselPlugin; + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + + return self; + } + +// ---------------------------------------------------------------------------- +// CMCSPlugin::CMCSPlugin +// +// ---------------------------------------------------------------------------- +// +CCarouselPlugin::CCarouselPlugin() + { + } + +// ---------------------------------------------------------------------------- +// CMCSPlugin::ConstructL +// +// ---------------------------------------------------------------------------- +// +void CCarouselPlugin::ConstructL() + { + } + +// ---------------------------------------------------------------------------- +// Destructor +// Deletes all data created to heap +// ---------------------------------------------------------------------------- +// +CCarouselPlugin::~CCarouselPlugin() + { + Release( iContent ); + + delete iEngine; + iObservers.Close(); + + DeleteContentModel(); + } + +// ---------------------------------------------------------------------------- +// CMCSPlugin::PublishL +// Publishes the all the items +// ---------------------------------------------------------------------------- +// +void CCarouselPlugin::PublishL() + { + TInt err( KErrNone ); + TInt observers( iObservers.Count() ); + TInt transactionId( reinterpret_cast( this ) ); + TInt menuItems ( iEngine->MenuItemCount() ); + + for ( TInt i = 0; i < observers; i++ ) + { + MAiContentObserver* observer( iObservers[ i ] ); + err = observer->StartTransaction( transactionId ); + + if ( err == KErrNotSupported ) + { + return; + } + + // Publish content to all items + for ( TInt j = 0; j < menuItems; j++ ) + { + // Index has to start from 1 ( j + 1 ) + PublishLItemL( *observer, iEngine->MenuDataL( j ), ( j + 1 ) ); + }// shortcut count + + if ( err == KErrNone ) + { + err = observer->Commit( transactionId ); + + if ( err == KErrNotSupported ) + { + return; + } + } + }//observers + + // Set all items not dirty. + for ( TInt j = 0; j < menuItems; j++ ) + { + iEngine->MenuDataL( j ).SetDirty( EFalse ); + } + } + +// ---------------------------------------------------------------------------- +// CMCSPlugin::PublishLItemL +// Publishes one item to given index +// ---------------------------------------------------------------------------- +// +void CCarouselPlugin::PublishLItemL( MAiContentObserver& aObserver, + CCarouselData& aData, TInt aIndex ) + { + if( !aData.IsDirty() ) + { + return; + } + + CMenuItem* item = iEngine->FetchMenuItemL( aData ); + CleanupStack::PushL( item ); + + if ( iContentModel[0].type == KAiContentTypeData ) + { + if(TPtrC16( ( const TText16* ) iContentModel[ 0 ].cid ) == _L("widget") ) + { + CGulIcon* icon( iEngine->ItemIconL( item, _L("icon"))); + icon->SetBitmapsOwnedExternally( ETrue ); + aObserver.Publish( *this, 0, TPckgC( icon ), aIndex - 1 ); + } + } + CleanupStack::PopAndDestroy( item ); + } + +// ---------------------------------------------------------------------------- +// PublishEditorItemsL +// +// ---------------------------------------------------------------------------- +// +void CCarouselPlugin::PublishEditorItemsL() + {/* + RArray items = iEngine->MenuItemsL(); + CleanupClosePushL( items ); + + TInt count( items.Count()); + for( TInt i = 0; i < count; i++ ) + { + CMenuItem* item( iEngine->FetchMenuItemL( items[i])); + CleanupStack::PushL( item ); + CGulIcon* icon( iEngine->ItemIconL( *item, _L("icon"))); + TPtrC name( iEngine->ItemTextL( *item, _L("long_name") )); + CPublishItem* pItem = new CPublishItem; + pItem->icon = icon; + pItem->text = name.AllocL(); + if( i < count - 1 ) + { + pItem->last = EFalse; + } + else + { + pItem->last = ETrue; + } + iObservers[0]->Publish( *this, 0, TPckgC( pItem), i ); + delete pItem; + CleanupStack::PopAndDestroy( item ); + } + CleanupStack::PopAndDestroy( &items ); + */ + } + +// ---------------------------------------------------------------------------- +// CMCSPlugin::Start +// +// ---------------------------------------------------------------------------- +// +void CCarouselPlugin::Start( TStartReason /*aReason*/ ) + { + + } + +// ---------------------------------------------------------------------------- +// CMCSPlugin::Stop +// +// ---------------------------------------------------------------------------- +// +void CCarouselPlugin::Stop( TStopReason /*aReason*/ ) + { + + } + +// ---------------------------------------------------------------------------- +// CMCSPlugin::Resume +// +// ---------------------------------------------------------------------------- +// +void CCarouselPlugin::Resume( TResumeReason aReason ) + { + if ( aReason == EForeground ) + { + iEngine->SetBackupRestore( EFalse ); + + if ( PublishRequired() ) + { + TRAP_IGNORE( PublishL() ); + } + } + } + +// ---------------------------------------------------------------------------- +// CMCSPlugin::Suspend +// +// ---------------------------------------------------------------------------- +// +void CCarouselPlugin::Suspend( TSuspendReason aReason ) + { + if ( aReason == EGeneralThemeChange ) + { + TInt dataCount( iEngine->MenuItemCount() ); + + for ( TInt i = 0; i < dataCount; i++ ) + { + TRAP_IGNORE( iEngine->MenuDataL( i ).SetDirty( ETrue ) ); + } + } + else if ( aReason == EBackupRestore ) + { + // Prevent item launching during backup / restore + iEngine->SetBackupRestore( ETrue ); + } + } + +// ---------------------------------------------------------------------------- +// CMCSPlugin::SubscribeL +// +// ---------------------------------------------------------------------------- +// +void CCarouselPlugin::SubscribeL( MAiContentObserver& aObserver ) + { + iObservers.AppendL( &aObserver ); + } + +// ---------------------------------------------------------------------------- +// CMCSPlugin::ConfigureL +// +// ---------------------------------------------------------------------------- +// +void CCarouselPlugin::ConfigureL( RAiSettingsItemArray& aSettings ) + { + iEngine = CCarouselPluginEngine::NewL( *this, PublisherInfo().Namespace() ); + + TLinearOrder sortMethod( CCarouselPlugin::CompareItems ); + RAiSettingsItemArray contentItemsArr; + + TInt count( aSettings.Count() ); + + for ( TInt i = 0; i < count; i++ ) + { + MAiPluginSettings* setting( aSettings[ i ] ); + + if( setting->AiPluginItemType() == EAiPluginContentItem ) + { + MAiPluginContentItem& contItem( setting->AiPluginContentItem() ); + TPtrC name( contItem.Name() ); + TPtrC type( contItem.Type() ); + + contentItemsArr.InsertInOrder( setting, sortMethod ); + } + } + + iDataCount = contentItemsArr.Count(); + + if ( iDataCount > 0 ) + { + // Create the dynamic content Model + DeleteContentModel(); + + iContentModel = new ( ELeave ) TAiContentItem[ iDataCount ]; + + for ( TInt i = 0; i < iDataCount; i++ ) + { + iContentModel[i].id = i; + + MAiPluginContentItem& contentItem( + contentItemsArr[ i ]->AiPluginContentItem() ); + + if( contentItem.Type() == KContentItemTypeText ) + { + // text + iContentModel[i].type = KAiContentTypeText; + } + if( contentItem.Type() == KContentItemTypeImage ) + { + // image + iContentModel[i].type = KAiContentTypeBitmap; + } + else if(contentItem.Type() == KContentItemTypeData ) + { + // data + iContentModel[i].type = KAiContentTypeData; + } + + TInt pos( contentItem.Name().Locate( KPluginNameSeprator ) ); + + HBufC* contentId = HBufC::NewL( contentItem.Name().Length() ); + CleanupStack::PushL( contentId ); + + TPtr ptr( contentId->Des() ); + ptr = contentItem.Name().Mid( pos + 1 ); + + TInt sizeOfContentId( ptr.Size() + sizeof( wchar_t ) ); + + iContentModel[i].cid = + static_cast( User::AllocL( sizeOfContentId ) ); + + Mem::Copy( ( TAny* )iContentModel[i].cid, + ptr.PtrZ(), sizeOfContentId ); + + CleanupStack::PopAndDestroy( contentId ); + } + + iContent = AiUtility::CreateContentItemArrayIteratorL( + iContentModel, iDataCount ); + } + + contentItemsArr.Reset(); + // We own the array so destroy it + aSettings.ResetAndDestroy(); + } + +// ---------------------------------------------------------------------------- +// CMCSPlugin::GetProperty +// +// ---------------------------------------------------------------------------- +// +TAny* CCarouselPlugin::GetProperty( TProperty aProperty ) + { + if( aProperty == EPublisherContent ) + { + return static_cast< MAiContentItemIterator* >( iContent ); + } + + return NULL; + } + +// ---------------------------------------------------------------------------- +// CMCSPlugin::HandleEvent +// +// ---------------------------------------------------------------------------- +// +void CCarouselPlugin::HandleEvent( const TDesC& aEventName, const TDesC& aParam ) + { + if( aEventName == KEventNameLaunchByIndex ) + { + TInt32 index; + AiUtility::ParseInt( index, aParam ); + + TRAP_IGNORE( iEngine->LaunchItemL( index - 1 ) ); + } + else if( aEventName == KEventNameShowSettings ) + { + TRAP_IGNORE( iEngine->ShowSettingsL() ); + } + else if( aEventName == _L("ShowEditor")) + { + TRAP_IGNORE( PublishEditorItemsL() ); + } + } + +// ---------------------------------------------------------------------------- +// CMCSPlugin::CompareItems +// +// ---------------------------------------------------------------------------- +// +TInt CCarouselPlugin::CompareItems( const MAiPluginSettings& aFirst, + const MAiPluginSettings& aSecond ) + { + MAiPluginSettings& first = const_cast(aFirst); + MAiPluginSettings& second = const_cast(aSecond); + return first.AiPluginContentItem().Name().CompareC(second.AiPluginContentItem().Name()); + } + +// ---------------------------------------------------------------------------- +// CMCSPlugin::DeleteContentModel +// +// ---------------------------------------------------------------------------- +// +void CCarouselPlugin::DeleteContentModel() + { + if( iContentModel ) + { + for ( TInt i = 0; i < iDataCount; i++ ) + { + if( iContentModel[i].cid ) + { + TAny* cell = static_cast( const_cast( iContentModel[i].cid ) ); + User::Free( cell ); // Originally allocated with User::Alloc, so delete + // with correlating method. + iContentModel[i].cid = NULL; + } + } + + delete iContentModel; + iContentModel = NULL; + } + } + +// ---------------------------------------------------------------------------- +// CMCSPlugin::PublishRequired +// +// ---------------------------------------------------------------------------- +// +TBool CCarouselPlugin::PublishRequired() const + { + TInt count( iEngine->MenuItemCount() ); + + TBool retval( EFalse ); + + for ( TInt i = 0; !retval && i < count; i++ ) + { + TRAP_IGNORE( retval = iEngine->MenuDataL( i ).IsDirty() ); + } + + + return retval; + } + +// ======== GLOBAL FUNCTIONS ======== +// ---------------------------------------------------------------------------- +// Constructs and returns an application object. +// ---------------------------------------------------------------------------- +// +EXPORT_C const TImplementationProxy* ImplementationGroupProxy( + TInt& aTableCount ) + { + aTableCount = sizeof( KImplementationTable ) / + sizeof( TImplementationProxy ); + return KImplementationTable; + } + +// End of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/publisher/src/carouselplugindata.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/publisher/src/carouselplugindata.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,580 @@ +/* +* Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#include +#include +#include +#include + +#include "carouselplugindata.h" +#include "carouselpluginengine.h" + +using namespace HSPluginSettingsIf; + +_LIT( KMenuAttrParam, "param" ); +_LIT( KMenuAttrLocked, "locked" ); +_LIT8( KProperNameType, "type" ); +_LIT8( KProperNameParam, "param" ); +_LIT8( KProperNameUid, "uid" ); +_LIT8( KProperNameView, "view" ); +_LIT8( KProperNameLocked, "locked" ); +_LIT8( KProperValueFolder, "folder" ); +_LIT8( KProperValueBookmark, "bookmark" ); +_LIT8( KProperValueAppl, "application" ); +_LIT8( KProperValueMailbox, "mailbox" ); +_LIT8( KMenuAttrUndefUid, "0x99999991" ); + +_LIT( KMyMenuData, "matrixmenudata" ); +_LIT( KMenuTypeMailbox, "menu:mailbox" ); + + +#define KMCSCmailMtmUidValue 0x2001F406 + +// ======== LOCAL FUNCTIONS ======== + +// ---------------------------------------------------------------------------- +// CleanupResetAndDestroy() +// ---------------------------------------------------------------------------- +// +template +static void CleanupResetAndDestroy( TAny* aObj ) + { + if( aObj ) + { + static_cast( aObj )->ResetAndDestroy(); + } + } + +// ---------------------------------------------------------------------------- +// CleanupResetAndDestroyPushL +// ---------------------------------------------------------------------------- +// +template +static void CleanupResetAndDestroyPushL(T& aArray) + { + CleanupStack::PushL( TCleanupItem( &CleanupResetAndDestroy, &aArray ) ); + } + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// Default constructor +// --------------------------------------------------------------------------- +// +CCarouselData::CCarouselData() + :iDirty( ETrue ) + { + } + +// --------------------------------------------------------------------------- +// Destructor +// --------------------------------------------------------------------------- +// +CCarouselData::~CCarouselData() + { + delete iName; + delete iValue; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void CCarouselData::SetMenuItem( TMenuItem& aMenuItem ) + { + iMenuItem = aMenuItem; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +TMenuItem& CCarouselData::MenuItem() + { + return iMenuItem; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +TDesC& CCarouselData::Name() + { + return *iName; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void CCarouselData::SetNameL( const TDesC& aName ) + { + delete iName; + iName = NULL; + iName = aName.AllocL(); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +TDesC& CCarouselData::Value() + { + return *iValue; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void CCarouselData::SetValueL( const TDesC& aValue ) + { + delete iValue; + iValue = NULL; + iValue = aValue.AllocL(); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void CCarouselData::SetDirty( TBool aDirty ) + { + iDirty = aDirty; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +TBool CCarouselData::IsDirty() const + { + return iDirty; + } + + +// --------------------------------------------------------------------------- +// Symbian 2nd phase constructor can leave +// --------------------------------------------------------------------------- +// +CCarouselPluginData* CCarouselPluginData::NewL( CCarouselPluginEngine& aEngine, const TDesC8& aInstanceUid ) + { + CCarouselPluginData* self = new (ELeave) CCarouselPluginData( aEngine, aInstanceUid ); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + + return self; + } + +// --------------------------------------------------------------------------- +// Default constructor +// --------------------------------------------------------------------------- +// +CCarouselPluginData::CCarouselPluginData( CCarouselPluginEngine& aEngine, const TDesC8& aInstanceUid ) + : iEngine( aEngine ), iInstanceUid( aInstanceUid ) + { + } + +// --------------------------------------------------------------------------- +// Symbian 2nd phase constructor can leave +// --------------------------------------------------------------------------- +// +void CCarouselPluginData::ConstructL() + { + iPluginSettings = CHomescreenSettings::Instance(); + if( iPluginSettings == NULL ) + { + User::Leave( KErrUnknown ); + } + iPluginSettings->AddObserverL( this ); + + iMenu.OpenL( KMyMenuData ); + + UpdateDataL(); + } + +// --------------------------------------------------------------------------- +// Destructor +// --------------------------------------------------------------------------- +// +CCarouselPluginData::~CCarouselPluginData() + { + if( iPluginSettings ) + { + iPluginSettings->RemoveObserver( this ); + } + iData.ResetAndDestroy(); + iMenu.Close(); + } + +// --------------------------------------------------------------------------- +// Gets the instance specific settings from HSPS and creates data items +// --------------------------------------------------------------------------- +// +void CCarouselPluginData::UpdateDataL() + { + RPointerArray settings; + CleanupResetAndDestroyPushL( settings ); + + User::LeaveIfError( iPluginSettings->GetSettingsL( iInstanceUid, settings ) ); + if ( settings.Count() <= 0 ) + { + User::Leave( KErrNotFound ); + } + + TBool wasEmpty = !iData.Count(); + + for ( TInt i = 0; i < settings.Count(); i++ ) + { + CItemMap* itemMap = settings[ i ]; + + // get properties + RPointerArray& properties + = itemMap->Properties(); + + CCarouselData* data = GetMenuDataL( properties ); + CleanupStack::PushL( data ); + if ( wasEmpty ) + { + // list of shortcut slot was empty + // we append the shortcut data slots one-by-one to the list + data->SetDirty( ETrue ); + iData.AppendL( data ); + CleanupStack::Pop( data ); + } + else + { + // check for updates in existing shortcut data slot + // if menuitem id has changed, replace the item and + // set as dirty + TInt id( iData[ i ]->MenuItem().Id() ); + + // id of all bookmarks is zero so name has to be check + // in case of bookmark has changed + if ( id >= 0 && ( data->MenuItem().Id() != id || + ( id == 0 && data->Name().CompareF( + iData[ i ]->Name() ) != 0 ) ) ) + { + data->SetDirty( ETrue ); + CCarouselData* oldData = iData[i]; + iData.Remove( i ); + delete oldData; + + iData.InsertL( data, i ); + CleanupStack::Pop( data ); + } + else + { + CleanupStack::PopAndDestroy( data ); + } + } + } + + // Leave if there isn't any data filled into array as there isn't + // anything shortcut to publish on homescreen. + if ( iData.Count() <= 0 ) + { + User::Leave( KErrNotFound ); + } + + // Cleanup. + CleanupStack::PopAndDestroy(); // settings + } + +// --------------------------------------------------------------------------- +// Removes obsolete data and saves 'Undefined' item to HSPS +// Used when active mailbox is deleted from system. +// --------------------------------------------------------------------------- +// +void CCarouselPluginData::RemoveDataL( TInt aId ) + { + TInt count = iData.Count(); + for( TInt i = 0; i < count; i++ ) + { + CCarouselData* data = iData[i]; + if( data->MenuItem().Type() == KMenuTypeMailbox && + data->MenuItem().Id() == aId ) + { + iData[i]->MenuItem().SetId( KErrNotFound ); + iData[i]->SetDirty( ETrue ); + SaveUndefinedItemL( i ); + } + } + } + +// --------------------------------------------------------------------------- +// Call back from Homescreen settings +// --------------------------------------------------------------------------- +// +void CCarouselPluginData::SettingsChangedL( const TDesC8& /*aEvent*/, const TDesC8& /*aPluginName*/, + const TDesC8& /*aPluginUid*/, const TDesC8& aPluginId ) + { + if( aPluginId.CompareF( iInstanceUid ) == 0 ) + { + UpdateDataL(); + } + } + +// --------------------------------------------------------------------------- +// Gets the menu item from engine using the setting properties as filter +// --------------------------------------------------------------------------- +// +CCarouselData* CCarouselPluginData::GetMenuDataL( + RPointerArray& aProperties ) + { + if ( aProperties.Count() <= 0 ) + { + User::Leave( KErrArgument ); + } + + TPtrC8 type; + TPtrC8 uid; + TPtrC8 view; + TPtrC8 param; + + // first we need to check the item type + for ( TInt i = 0; i < aProperties.Count(); i++ ) + { + if ( aProperties[i]->Name() == KProperNameType ) + { + type.Set( aProperties[i]->Value()); + } + else if( aProperties[i]->Name() == KProperNameUid) + { + uid.Set( aProperties[i]->Value()); + } + else if( aProperties[i]->Name() == KProperNameView) + { + view.Set( aProperties[i]->Value()); + } + else if( aProperties[i]->Name() == KProperNameParam ) + { + param.Set( aProperties[i]->Value()); + } + } + CCarouselData* data = new ( ELeave ) CCarouselData(); + CleanupStack::PushL( data ); + if( type == KProperValueBookmark ) + { + GetBkmDataL( uid, view, param, *data ); + } + else if( type == KProperValueFolder ) + { + GetFolderData( param, *data ); + } + else if( type == KProperValueMailbox ) + { + GetMailboxDataL( uid, param, *data ); + } + else + { + GetMCSDataL( aProperties, *data ); + } + CleanupStack::Pop( data ); + return data; + } + +// --------------------------------------------------------------------------- +// Creates bookmark data item. +// --------------------------------------------------------------------------- +// +void CCarouselPluginData::GetBkmDataL( const TDesC8& aUid, const TDesC8& aView, const TDesC8& aParam, CCarouselData& aData ) + { + TMenuItem item; + + if( aUid.Length() > 0 ) + { + CMenuFilter* filter = CMenuFilter::NewLC(); + HBufC* name( NULL ); + HBufC* value( NULL ); + name = AiUtility::CopyToBufferL( name, KProperNameUid ); + CleanupStack::PushL( name ); + value = AiUtility::CopyToBufferL( value, aUid ); + CleanupStack::PushL( value ); + filter->HaveAttributeL( *name, *value ); + CleanupStack::PopAndDestroy( value ); + CleanupStack::PopAndDestroy( name ); + item = iEngine.FindMenuItemL( *filter ); + CleanupStack::PopAndDestroy( filter ); + } + + item.SetType( KMenuTypeUrl ); + aData.SetMenuItem( item ); + + HBufC* view( NULL ); + view = AiUtility::CopyToBufferL( view, aView ); + CleanupStack::PushL( view ); + aData.SetValueL( *view ); + CleanupStack::PopAndDestroy( view ); + + HBufC* param( NULL ); + param = AiUtility::CopyToBufferL( param, aParam ); + CleanupStack::PushL( param ); + aData.SetNameL( *param ); + CleanupStack::PopAndDestroy( param ); + } + +// --------------------------------------------------------------------------- +// Creates folder data item. +// --------------------------------------------------------------------------- +// +void CCarouselPluginData::GetFolderData( const TDesC8& aParam, CCarouselData& aData ) + { + // In folder case, we have to extract id from + // param attribute and return item with this id + // convert id to integer + TInt id; + TLex8 lextmp( aParam); + lextmp.Val( id ); + + TMenuItem item; + item.SetType( KMenuTypeFolder ); + item.SetId( id ); + aData.SetMenuItem( item ); + } + +// --------------------------------------------------------------------------- +// Creates mailbox data item. +// --------------------------------------------------------------------------- +// +void CCarouselPluginData::GetMailboxDataL( const TDesC8& aUid, const TDesC8& aParam, CCarouselData& aData ) + { + TInt id( KErrNotFound ); + TLex8 lextmp( aUid); + lextmp.Val( id ); + + TMenuItem item; + item.SetType( KMenuTypeMailbox ); + item.SetId( id ); + aData.SetMenuItem( item ); + + HBufC* param( NULL ); + param = AiUtility::CopyToBufferL( param, aParam ); + CleanupStack::PushL( param ); + + aData.SetNameL( *param ); + + CleanupStack::PopAndDestroy( param ); + } + +// --------------------------------------------------------------------------- +// Gets data item from MCS +// --------------------------------------------------------------------------- +// +void CCarouselPluginData::GetMCSDataL( RPointerArray& aProperties, + CCarouselData& aData) + { + CMenuFilter* filter = CMenuFilter::NewLC(); + + // Exclude 'view' and 'param' attributes from search criteria by default + // Criterias will be added to filter if setting defines them + filter->DoNotHaveAttributeL( KMenuAttrView ); + filter->DoNotHaveAttributeL( KMenuAttrParam ); + + // then add all property/value pairs to the filter + for ( TInt i = 0; i < aProperties.Count(); i++ ) + { + // skip the type property + if( aProperties[i]->Name() == KProperNameType ) + { + continue; + } + + HBufC* name( NULL ); + HBufC* value( NULL ); + name = AiUtility::CopyToBufferL( name, aProperties[i]->Name() ); + CleanupStack::PushL( name ); + value = AiUtility::CopyToBufferL( value, aProperties[i]->Value() ); + CleanupStack::PushL( value ); + + if ( value->Length() != 0 ) + { + filter->HaveAttributeL( *name, *value ); + } + CleanupStack::PopAndDestroy( value ); + CleanupStack::PopAndDestroy( name ); + } + + // locked property excluded from search pattern + filter->DoNotHaveAttributeL( KMenuAttrLocked ); + + TMenuItem item = iEngine.FindMenuItemL( *filter ); + CleanupStack::PopAndDestroy( filter ); + aData.SetMenuItem( item ); + } + +// --------------------------------------------------------------------------- +// Returns menu item for given index +// --------------------------------------------------------------------------- +// +CCarouselData& CCarouselPluginData::DataItemL( TInt aIndex ) + { + if( aIndex < 0 || aIndex >= iData.Count()) + { + User::Leave( KErrArgument ); + } + return *iData[aIndex]; + } + +// --------------------------------------------------------------------------- +// Save the undefined item. +// --------------------------------------------------------------------------- +// +void CCarouselPluginData::SaveUndefinedItemL( const TInt& aIndex ) + { + RPointerArray settingItems; + CleanupResetAndDestroyPushL( settingItems ); + + iPluginSettings->GetSettingsL( iInstanceUid, settingItems ); + if ( aIndex >= 0 && aIndex < settingItems.Count() ) + { + CItemMap* itemMap = settingItems[ aIndex ]; + + // get properties + RPointerArray& properties + = itemMap->Properties(); + + for ( TInt i = 0; i < properties.Count(); i++ ) + { + if ( properties[ i ]->Name() == KProperNameType ) + { + properties[ i ]->SetValueL( KProperValueAppl ); + } + else if ( properties[ i ]->Name() == KProperNameUid ) + { + properties[ i ]->SetValueL( KMenuAttrUndefUid ); + } + else if ( properties[ i ]->Name() == KProperNameView ) + { + properties[ i ]->SetValueL( KNullDesC8 ); + } + else if ( properties[ i ]->Name() == KProperNameParam ) + { + properties[ i ]->SetValueL( KNullDesC8 ); + } + else if ( properties[ i ]->Name() == KProperNameLocked ) + { + properties[i]->SetValueL( KNullDesC8 ); + } + } + } + // ETrue tells that modified settings are stored also to plugin reference + iPluginSettings->SetSettingsL( iInstanceUid, settingItems, ETrue ); + CleanupStack::PopAndDestroy(); // settingItems + } + +// End of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/publisher/src/carouselpluginengine.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/publisher/src/carouselpluginengine.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,841 @@ +/* +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: The engine class of MCS plugin. +* +*/ + +// System includes +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include // For CVwsSessionWrapper +#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS +#include +#endif +#include + +// User includes +#include "carouselpluginengine.h" +#include "carouselplugin.h" +#include "carouselplugindata.h" +#include "carouselpluginuids.hrh" + +// Constants +_LIT( KMyMenuData, "matrixmenudata" ); +_LIT( KSkin, "skin" ); +_LIT( KMif, "mif" ); +_LIT( KResourceDrive, "Z:" ); +_LIT( KResourceFile, "mcspluginres.rsc" ); +_LIT( KResPath, "\\resource\\" ); +_LIT( KMMApplication, "mm://" ); +_LIT( KHideExit2, "&exit=hide" ); +_LIT( KSetFocusString, "!setfocus?applicationgroup_name=" ); +_LIT( KApplicationGroupName, "applicationgroup_name" ); +_LIT( KIcon, "icon" ); +_LIT( KMenuAttrUndefUid, "0x99999991" ); +_LIT( KMenuIconFile, "aimcsplugin.mif" ); +_LIT( KMenuBookmarkIconId, "16386" ); +_LIT( KMenuBookmarkMaskId, "16387" ); +_LIT( KMenuMailboxIconId, "16388" ); +_LIT( KMenuMailboxMaskId, "16389" ); +_LIT( KMenuTypeMailbox, "menu:mailbox" ); +_LIT( KPrefix, "0x" ); + +const TUid KHomescreenUid = { AI_UID3_AIFW_COMMON }; +const TUid KMMUid = { 0x101F4CD2 }; +const TUid KMCSCmailUidValue = { 0x2001E277 }; +const TUid KMCSCmailMailboxViewIdValue = { 0x2 }; +const TUid KBrowserUid = { 0x10008D39 }; + +// ======== LOCAL FUNCTIONS ======== +// ---------------------------------------------------------------------------- +// NextIdToken +// ---------------------------------------------------------------------------- +// +static TPtrC NextIdToken( TLex& aLexer ) + { + aLexer.SkipSpace(); + aLexer.Mark(); + + while( !aLexer.Eos() && !aLexer.Peek().IsSpace() && aLexer.Peek() != ')' ) + { + aLexer.Inc(); + } + + return aLexer.MarkedToken(); + } + +// ---------------------------------------------------------------------------- +// Shows note dailog, with the given resource. +// ---------------------------------------------------------------------------- +// +static void ShowNoteDlgL( TInt aResource ) + { + HBufC* temp = StringLoader::LoadLC( aResource ); + + CAknNoteDialog* dialog = new (ELeave) CAknNoteDialog( + CAknNoteDialog::EConfirmationTone, + CAknNoteDialog::ENoTimeout ); + CleanupStack::PushL( dialog ); + dialog->SetTextL( temp->Des() ); + dialog->ExecuteDlgLD( R_MCS_DISABLE_OPEN_ITEM_DLG ); + CleanupStack::Pop( dialog ); + CleanupStack::PopAndDestroy( temp ); + } + +// ---------------------------------------------------------------------------- +// Parses uid in Hexadecimal format from the given string. +// ---------------------------------------------------------------------------- +// +TUid ParseHexUidFromString(const TDesC& aUidString ) + { + TUid uid( KNullUid ); + const TInt pos( aUidString.FindF( KPrefix ) ); + + if ( pos != KErrNotFound ) + { + TLex lex( aUidString.Mid( pos + KPrefix().Length() ) ); + + // Hex parsing needs unsigned int + TUint32 value( 0 ); + const TInt parseResult( lex.Val( value, EHex ) ); + + if ( parseResult == KErrNone ) + { + TInt32 value32( value ); + uid.iUid = value32; + } + } + return uid; + } + +// ---------------------------------------------------------------------------- +// Start transition effect. User has launched the application with the given uid. +// ---------------------------------------------------------------------------- +// +void StartEffect( TUid aUid ) + { + //start a full screen effect + GfxTransEffect::BeginFullScreen( + AknTransEffect::EApplicationStart, + TRect(), + AknTransEffect::EParameterType, + AknTransEffect::GfxTransParam( aUid, + AknTransEffect::TParameter::EActivateExplicitContinue )); + } + +// ============================ MEMBER FUNCTIONS =============================== +// ---------------------------------------------------------------------------- +// CMCSPluginEngine::CMCSPluginEngine +// +// ---------------------------------------------------------------------------- +// +CCarouselPluginEngine::CCarouselPluginEngine( CCarouselPlugin& aPlugin, + const TDesC8& aInstanceUid ) + : iPlugin( aPlugin ), iInstanceUid( aInstanceUid ) + { + } + +// ---------------------------------------------------------------------------- +// CMCSPluginEngine::NewL +// +// ---------------------------------------------------------------------------- +// +CCarouselPluginEngine* CCarouselPluginEngine::NewL( CCarouselPlugin& aPlugin, + const TDesC8& aInstanceUid ) + { + CCarouselPluginEngine* self = + new( ELeave ) CCarouselPluginEngine( aPlugin, aInstanceUid ); + + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + + return self; + } + +// ---------------------------------------------------------------------------- +// CMCSPluginEngine::ConstructL +// +// ---------------------------------------------------------------------------- +// +void CCarouselPluginEngine::ConstructL() + { + TFullName resourceFile( KResourceDrive ); + resourceFile.Append( KResPath ); + resourceFile.Append( KResourceFile ); + BaflUtils::NearestLanguageFile( + CCoeEnv::Static()->FsSession(), + resourceFile ); + iResourceOffset = + CCoeEnv::Static()->AddResourceFileL( resourceFile ); + InitL(); + StartObservingL(); + + // Get "Undefined" item + CMenuFilter* filter = CMenuFilter::NewL(); + CleanupStack::PushL( filter ); + filter->HaveAttributeL( KMenuAttrUid, KMenuAttrUndefUid ); + iUndefinedItemHeader = FindMenuItemL( *filter ); + CleanupStack::PopAndDestroy( filter ); + iUndefinedItem = CMenuItem::OpenL( iMenu, iUndefinedItemHeader ); + } + +// ---------------------------------------------------------------------------- +// CMCSPluginEngine::~CMCSPluginEngine +// +// ---------------------------------------------------------------------------- +// +CCarouselPluginEngine::~CCarouselPluginEngine() + { + StopObserving(); + + delete iPluginData; + + // Notifier close has to be before iMenu close + iNotifier.Close(); + iMenu.Close(); + delete iWatcher; + delete iNotifyWatcher; + + CCoeEnv::Static()->DeleteResourceFile( iResourceOffset ); + + delete iUndefinedItem; + } + +// --------------------------------------------------------------------------- +// CMCSPluginEngine::InitL +// +// --------------------------------------------------------------------------- +// +void CCarouselPluginEngine::InitL() + { + iMenu.OpenL( KMyMenuData ); + iPluginData = CCarouselPluginData::NewL( *this, iInstanceUid ); + iWatcher = CCarouselPluginWatcher::NewL( CCarouselPluginWatcher::EOperation ); + + TInt err( iNotifier.Open( iMenu ) ); + + if ( err == KErrNone ) + { + iNotifyWatcher = CCarouselPluginWatcher::NewL( CCarouselPluginWatcher::ENotify ); + + iNotifier.Notify( 0, + RMenuNotifier::EItemsAddedRemoved, + iNotifyWatcher->iStatus ); + iNotifyWatcher->WatchNotify( this ); + } + } + +// --------------------------------------------------------------------------- +// CMCSPluginEngine::StartObservingL +// +// --------------------------------------------------------------------------- +// +void CCarouselPluginEngine::StartObservingL() + { + // registering to mailbox db. changes observing + iMsvSession = CMsvSession::OpenAsObserverL( *this ); + } + +// --------------------------------------------------------------------------- +// CMCSPluginEngine::StopObserving +// +// --------------------------------------------------------------------------- +// +void CCarouselPluginEngine::StopObserving() + { + delete iMsvSession; + iMsvSession = NULL; + } + +// --------------------------------------------------------------------------- +// CMCSPluginEngine::MenuDataL +// +// --------------------------------------------------------------------------- +// +CCarouselData& CCarouselPluginEngine::MenuDataL( const TInt& aIndex ) + { + return iPluginData->DataItemL( aIndex ); + } + +// --------------------------------------------------------------------------- +// CMCSPluginEngine::MenuItemCount +// +// --------------------------------------------------------------------------- +// +TInt CCarouselPluginEngine::MenuItemCount() + { + return iPluginData->DataCount(); + } + +// --------------------------------------------------------------------------- +// CMCSPluginEngine::FindMenuItemL +// Returns the menu item header, which matches the given filter. +// --------------------------------------------------------------------------- +// +TMenuItem CCarouselPluginEngine::FindMenuItemL( CMenuFilter& aFilter ) + { + TMenuItem item; + const TInt root( iMenu.RootFolderL() ); + + RArray items; + CleanupClosePushL( items ); + + iMenu.GetItemsL( items, root, &aFilter, ETrue ); + + if ( items.Count() > 0 ) + { + item = items[0]; + } + + CleanupStack::PopAndDestroy( &items ); + + return item; + } + +// --------------------------------------------------------------------------- +// CMCSPluginEngine::FetchMenuItemL +// Returns the actual menu item for the given header. +// --------------------------------------------------------------------------- +// +CMenuItem* CCarouselPluginEngine::FetchMenuItemL( CCarouselData& aData ) + { + CMenuItem* item = NULL; + + TRAP_IGNORE( item = CMenuItem::OpenL( iMenu, aData.MenuItem().Id() ) ); + + if( item ) + { + return item; + } + + if( aData.MenuItem().Type() == KMenuTypeUrl ) + { + item = CreateBkmItemL( aData ); + } + else if( aData.MenuItem().Type() == KMenuTypeMailbox ) + { + item = CreateMailboxItemL( aData); + } + + return item; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +CMenuItem* CCarouselPluginEngine::CreateBkmItemL( CCarouselData& aData ) + { + CMenuItem* item( NULL ); + if( aData.MenuItem().Id() != KErrNotFound ) + { + item = CMenuItem::CreateL( iMenu, KMenuTypeUrl, 0, 0 ); + CleanupStack::PushL( item ); + item->SetAttributeL( KMenuAttrLongName, aData.Name() ); + item->SetAttributeL( KMenuAttrIconFile, KMenuIconFile ); + item->SetAttributeL( KMenuAttrIconId, KMenuBookmarkIconId ); + item->SetAttributeL( KMenuAttrMaskId, KMenuBookmarkMaskId ); + CleanupStack::Pop( item ); + } + return item; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +CMenuItem* CCarouselPluginEngine::CreateMailboxItemL( CCarouselData& aData ) + { + CMenuItem* item( NULL ); + if( aData.MenuItem().Id() != KErrNotFound ) + { + item = CMenuItem::CreateL( iMenu, KMenuTypeMailbox, 0, 0 ); + CleanupStack::PushL( item ); + item->SetAttributeL( KMenuAttrLongName, aData.Name() ); + item->SetAttributeL( KMenuAttrIconFile, KMenuIconFile ); + item->SetAttributeL( KMenuAttrIconId, KMenuMailboxIconId ); + item->SetAttributeL( KMenuAttrMaskId, KMenuMailboxMaskId ); + CleanupStack::Pop( item ); + } + return item; + } + +// --------------------------------------------------------------------------- +// CMCSPluginEngine::ItemIconL +// Returns MCS default icon if attribute is 'icon' else parses the +// skin definition from attribute and sets attributes to aMenuItem. +// --------------------------------------------------------------------------- +// +CGulIcon* CCarouselPluginEngine::ItemIconL( CMenuItem* aMenuItem, + const TDesC& aAttr ) + { + + CMenuItem* menuItem; + + // check if item exists in MCS + if ( aMenuItem ) + { + TUint32 flags = aMenuItem->Flags(); + TUint32 isHidden = flags & TMenuItem::EHidden; + TUint32 isMissing = flags & TMenuItem::EMissing; + + if ( iUndefinedItem && ( isHidden || isMissing ) ) + { + menuItem = iUndefinedItem; + } + else + { + menuItem = aMenuItem; + } + } + else + { + // item not found in MCS. Use Undefined Icon + menuItem = iUndefinedItem; + } + + CAknIcon* icon( NULL ); + CGulIcon* gIcon( NULL ); + TBool exists( ETrue ); + + if ( aAttr != KIcon ) + { + // Resolve secondary icon definition from attribute + TPtrC iconDef( menuItem->GetAttributeL( aAttr, exists ) ); + + if ( exists ) + { + exists = ConstructMenuItemForIconL( iconDef, *menuItem ); + } + } + + if ( exists ) + { + icon = MenuIconUtility::GetItemIconL( *menuItem ); + + if ( icon ) + { + CleanupStack::PushL( icon ); + + gIcon = CGulIcon::NewL( icon->Bitmap(), icon->Mask() ); + + // Detach and delete + icon->SetBitmap( NULL ); + icon->SetMask( NULL ); + + CleanupStack::PopAndDestroy( icon ); + } + } + + return gIcon; + } + +// --------------------------------------------------------------------------- +// CMCSPluginEngine::ItemTextL +// Returns text string for the given attribute +// --------------------------------------------------------------------------- +// +TPtrC CCarouselPluginEngine::ItemTextL( CMenuItem* aMenuItem, const TDesC& aAttr ) + { + + CMenuItem* menuItem; + + // check if item exists in MCS + if ( aMenuItem ) + { + TUint32 flags = aMenuItem->Flags(); + TUint32 isHidden = flags & TMenuItem::EHidden; + TUint32 isMissing = flags & TMenuItem::EMissing; + + // if item is hidden or missing (mmc card removed) + // use "Undefined" text instead + if ( iUndefinedItem && ( isHidden || isMissing ) ) + { + menuItem = iUndefinedItem; + } + else + { + menuItem = aMenuItem; + } + } + else + { + // item not found in MCS. Use "Undefined" text + menuItem = iUndefinedItem; + } + + TBool exists( KErrNotFound ); + + TPtrC name( menuItem->GetAttributeL( aAttr, exists ) ); + + if ( exists ) + { + return name; + } + + return KNullDesC(); + } + +// --------------------------------------------------------------------------- +// CMCSPluginEngine::LaunchItemL +// Calls the open command for the given menu item header +// --------------------------------------------------------------------------- +// +void CCarouselPluginEngine::LaunchItemL( const TInt& aIndex ) + { + if ( iBackupRestore ) + { + ShowNoteDlgL( R_MCS_DISABLE_OPEN_ITEM ); + return; + } + + CCarouselData& dataItem( iPluginData->DataItemL( aIndex ) ); + // run item based on its type + TPtrC type( dataItem.MenuItem().Type()); + + // run folder + if ( type == KMenuTypeFolder ) + { + LaunchFolderItemL( dataItem ); + } + else if( type == KMenuTypeUrl ) + { + LaunchBookmarkItemL( dataItem ); + } + else if( type == KMenuTypeMailbox ) + { + LaunchMailboxItemL( dataItem ); + } + else + { + LaunchMCSItemL( dataItem ); + } + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void CCarouselPluginEngine::LaunchFolderItemL( CCarouselData& aData ) + { + CMenuItem* item = NULL; + TRAP_IGNORE( item = CMenuItem::OpenL( iMenu, aData.MenuItem().Id() ) ); + + // item does not exist at all in MCS + if ( item == NULL ) + { + ShowNoteDlgL( R_MCS_DISABLE_OPEN_ITEM_MISSING ); + return; + } + + CleanupStack::PushL( item ); + + StartEffect( KMMUid ); + + // message for MM application + HBufC8* message; + + // prepare message for launching folder + TBool hasApplicationGroupName( EFalse ); + + TPtrC applicationGroupName( item->GetAttributeL( + KApplicationGroupName, hasApplicationGroupName ) ); + + if ( !hasApplicationGroupName ) + { + return; + } + + message = HBufC8::NewLC( KMMApplication().Length() + + KSetFocusString().Length() + + applicationGroupName.Length() + + KHideExit2().Length() ); + + message->Des().Copy( KMMApplication ); + message->Des().Append( KSetFocusString ); + message->Des().Append( applicationGroupName ); + message->Des().Append( KHideExit2 ); + + // find MM application + TApaTaskList taskList( CCoeEnv::Static()->WsSession() ); + TApaTask task( taskList.FindApp( KMMUid ) ); + + if ( task.Exists() ) + { + // MM is already running in background - send APA Message + task.SendMessage( + TUid::Uid( KUidApaMessageSwitchOpenFileValue ), *message ); + } + else + { + // MM not running yet - use Command Line Tail + RApaLsSession appArcSession; + CleanupClosePushL( appArcSession ); + + User::LeaveIfError( appArcSession.Connect() ); + + TApaAppInfo appInfo; + TInt err( appArcSession.GetAppInfo( appInfo, KMMUid ) ); + + if ( err == KErrNone ) + { + CApaCommandLine* cmdLine = CApaCommandLine::NewLC(); + cmdLine->SetExecutableNameL( appInfo.iFullName ); + cmdLine->SetCommandL( EApaCommandRun ); + cmdLine->SetTailEndL( *message ); + appArcSession.StartApp( *cmdLine ); + CleanupStack::PopAndDestroy( cmdLine ); + } + CleanupStack::PopAndDestroy( &appArcSession ); + } + CleanupStack::PopAndDestroy( message ); + CleanupStack::PopAndDestroy( item ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void CCarouselPluginEngine::LaunchBookmarkItemL( CCarouselData& aData ) + { + StartEffect( KBrowserUid ); + + CSchemeHandler* urlHandler = CSchemeHandler::NewL( aData.Value()); + CleanupStack::PushL( urlHandler ); + urlHandler->HandleUrlStandaloneL(); + CleanupStack::PopAndDestroy( urlHandler ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void CCarouselPluginEngine::LaunchMailboxItemL( CCarouselData& aData ) + { + TInt id( aData.MenuItem().Id()); + if ( id == KErrNotFound ) + { + ShowNoteDlgL( R_MCS_DISABLE_OPEN_ITEM_MISSING ); + return; + } + + StartEffect( KMCSCmailUidValue ); + + TUid uId = TUid::Uid( id ); + const TVwsViewId viewId( KMCSCmailUidValue, KMCSCmailMailboxViewIdValue ); + CVwsSessionWrapper* vwsSession = CVwsSessionWrapper::NewL(); + vwsSession->CreateActivateViewEvent( viewId, uId, KNullDesC8() ); + delete vwsSession; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void CCarouselPluginEngine::LaunchMCSItemL( CCarouselData& aData ) + { + if( iWatcher->IsActive()) + { + return; + } + CMenuItem* item = NULL; + TRAP_IGNORE( item = CMenuItem::OpenL( iMenu, aData.MenuItem().Id() ) ); + + // item does not exist at all in MCS + if ( item == NULL ) + { + ShowNoteDlgL( R_MCS_DISABLE_OPEN_ITEM_MISSING ); + return; + } + + CleanupStack::PushL( item ); + + TBool attrExists = ETrue; + TPtrC uid = item->GetAttributeL( KMenuAttrUid, attrExists ); + + // trying to run hidden or missing application (e.g. unistalled app + // or app on MMC which was removed ) + // -> We display a note for a user that this is not possible + TUint32 isHidden = item->Flags() & TMenuItem::EHidden; + TUint32 isMissing = item->Flags() & TMenuItem::EMissing; + + if ( ( attrExists && uid == KMenuAttrUndefUid ) || isHidden || isMissing ) + { + CleanupStack::PopAndDestroy( item ); + ShowNoteDlgL( R_MCS_DISABLE_OPEN_ITEM_MISSING ); + return; + } + + if ( attrExists ) + { + StartEffect( ParseHexUidFromString( uid )); + } + + // run application/shortcut + CMenuOperation* operation( item->HandleCommandL( + KMenuCmdOpen, KNullDesC8, iWatcher->iStatus ) ); + iWatcher->Watch( operation ); + CleanupStack::PopAndDestroy( item ); + } + +// --------------------------------------------------------------------------- +// CMCSPluginEngine::HandleNotifyL +// Handle the change in Menu Content +// --------------------------------------------------------------------------- +// +void CCarouselPluginEngine::HandleNotifyL() + { + TInt count( iPluginData->DataCount() ); + + for ( TInt i = 0; i < count; i++ ) + { + CCarouselData& data( iPluginData->DataItemL( i ) ); + data.SetDirty( ETrue ); + } + + iPlugin.PublishL(); + + // Notification must be activated again + iNotifyWatcher->Cancel(); + iNotifier.Notify( 0, + RMenuNotifier::EItemsAddedRemoved, + iNotifyWatcher->iStatus ); + + iNotifyWatcher->WatchNotify( this ); + } + +// --------------------------------------------------------------------------- +// CMCSPluginEngine::HandleSessionEventL +// Handles an event from the message server. +// --------------------------------------------------------------------------- +// +void CCarouselPluginEngine::HandleSessionEventL( TMsvSessionEvent aEvent, + TAny* aArg1, TAny* /*aArg2*/, TAny* /*aArg3*/) + { + switch ( aEvent ) + { + case EMsvEntriesDeleted: + { + CMsvEntrySelection* sel = static_cast( aArg1 ); + TInt count( sel->Count()); + for( TInt i = 0; i < count; i++ ) + { + iPluginData->RemoveDataL( sel->At( i ) ); + } + } + break; + default: + break; + } + } + +// --------------------------------------------------------------------------- +// CMCSPluginEngine::SetBackupRestore +// +// --------------------------------------------------------------------------- +// +void CCarouselPluginEngine::SetBackupRestore( TBool aBackupRestore ) + { + iBackupRestore = aBackupRestore; + } + +// --------------------------------------------------------------------------- +// CMCSPluginEngine::ShowSettingsL +// Launch General Settings plugin +// --------------------------------------------------------------------------- +// +void CCarouselPluginEngine::ShowSettingsL() + { + TUid uid = {AI_UID_ECOM_IMPLEMENTATION_SETTINGS_MCSPLUGIN}; + + CGSLauncher* launcher = CGSLauncher::NewLC(); + launcher->LaunchGSViewL ( uid, KHomescreenUid, iInstanceUid ); + CleanupStack::PopAndDestroy( launcher ); + } + +// --------------------------------------------------------------------------- +// CMCSPluginEngine::ConstructMenuItemForIconL +// Syntax: skin(major minor):mif(filename bimapId maskId) +// --------------------------------------------------------------------------- +// +TBool CCarouselPluginEngine::ConstructMenuItemForIconL( const TDesC& aPath, + CMenuItem& aMenuItem ) + { + TInt pos( aPath.Locate( ':' ) ); + if ( pos == KErrNotFound ) + { + pos = aPath.Length(); + } + TPtrC skin( aPath.Left( pos ) ); + TInt sf( skin.FindF( KSkin ) ); + + if ( sf == KErrNotFound ) + { + return EFalse; + } + + TPtrC temp( skin.Mid( sf + KSkin().Length() ) ); + TLex input( temp ); + input.SkipSpace(); + + if ( !input.Eos() && input.Peek() == '(' ) + { + input.Inc(); + } + TPtrC majorId( NextIdToken( input ) ); + TPtrC minorId( NextIdToken( input ) ); + + aMenuItem.SetAttributeL( KMenuAttrIconSkinMajorId, majorId ); + aMenuItem.SetAttributeL( KMenuAttrIconSkinMinorId, minorId ); + + if ( aPath.Length() > pos && + ( aPath.Mid( pos + 1 ).FindF( KMif ) != KErrNotFound ) ) + { + TPtrC mif( aPath.Mid( pos + 1 ) ); + TInt mf( mif.FindF( KMif ) ); + + TLex input1( mif.Mid( mf + KMif().Length() ) ); + input1.SkipSpace(); + + if ( !input1.Eos() && input1.Peek() == '(' ) + { + input1.Inc(); + } + + TPtrC file( NextIdToken( input1 ) ); + TPtrC bitmapId( NextIdToken( input1 ) ); + TPtrC maskId( NextIdToken( input1 ) ); + + aMenuItem.SetAttributeL( KMenuAttrIconFile, file ); + aMenuItem.SetAttributeL( KMenuAttrIconId, bitmapId ); + aMenuItem.SetAttributeL( KMenuAttrMaskId, maskId ); + } + + return ETrue; + } + +// End of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/publisher/src/carouselpluginwatcher.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/publisher/src/carouselpluginwatcher.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,124 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Menu item operation watcher. +* +*/ + +#include +#include "carouselpluginwatcher.h" +#include "carouselpluginengine.h" + +// --------------------------------------------------------------------------- +// two-phased constructor +// --------------------------------------------------------------------------- +CCarouselPluginWatcher* CCarouselPluginWatcher::NewL( const Type& aType ) + { + CCarouselPluginWatcher* self = new (ELeave) CCarouselPluginWatcher( aType ); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------------------------- +// default constructor +// --------------------------------------------------------------------------- +CCarouselPluginWatcher::CCarouselPluginWatcher( const Type& aType ) + : CActive( CActive::EPriorityStandard ), + iType( aType ) + { + CActiveScheduler::Add( this ); + } + +// --------------------------------------------------------------------------- +// destructor +// --------------------------------------------------------------------------- +CCarouselPluginWatcher::~CCarouselPluginWatcher() + { + Cancel(); + } + +// --------------------------------------------------------------------------- +// second phase constructor +// --------------------------------------------------------------------------- +void CCarouselPluginWatcher::ConstructL() + { + + } + +// --------------------------------------------------------------------------- +// Watch Async +// --------------------------------------------------------------------------- +void CCarouselPluginWatcher::Watch( CMenuOperation* aOperation) + { + __ASSERT_DEBUG( KRequestPending == iStatus.Int(), User::Invariant() ); + //__ASSERT_DEBUG( !iOperation, User::Invariant() ); + iOperation = aOperation; + SetActive(); + } + +// --------------------------------------------------------------------------- +// Watch Async +// --------------------------------------------------------------------------- +void CCarouselPluginWatcher::WatchNotify( MCarouselPluginWatcherObserver* aObserver ) + { + __ASSERT_DEBUG( KRequestPending == iStatus.Int(), User::Invariant() ); + //__ASSERT_DEBUG( !iOperation, User::Invariant() ); + iObserver = aObserver; + SetActive(); + } + +void CCarouselPluginWatcher::StopAndWatch( CMenuOperation* aOperation, + CActiveSchedulerWait* aWaitScheduler ) + { + __ASSERT_DEBUG( KRequestPending == iStatus.Int(), User::Invariant() ); + iWaitScheduler = aWaitScheduler; + iOperation = aOperation; + SetActive(); + } + +// --------------------------------------------------------------------------- +// Inherited from CActive class +// --------------------------------------------------------------------------- +void CCarouselPluginWatcher::RunL() + { + delete iOperation; + iOperation = NULL; + + if( iType == ENotify ) + { + iObserver->HandleNotifyL(); + } + if ( iWaitScheduler && iWaitScheduler->IsStarted() ) + { + Cancel(); + iWaitScheduler->AsyncStop(); + } + //CActiveScheduler::Stop(); + } + +// --------------------------------------------------------------------------- +// Inherited from CActive class +// --------------------------------------------------------------------------- +void CCarouselPluginWatcher::DoCancel() + { + delete iOperation; + iOperation = NULL; + } + +TInt CCarouselPluginWatcher::GetStatus() + { + return iStatus.Int(); + } + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/renderer/data/carouselwidget.rss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/renderer/data/carouselwidget.rss Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: Carousel widget for Symbian Homescreen + * + */ + +#include + +RESOURCE REGISTRY_INFO theInfo +{ +dll_uid = 0xEabba432; +interfaces = + { + INTERFACE_INFO + { + interface_uid = 0x200286DF; + implementations = + { + IMPLEMENTATION_INFO + { + implementation_uid = 0xEabba433; + version_no = 1; + display_name = "CarouselWidget"; + default_data = "carousel"; + opaque_data = ""; + } + }; + } + }; +} diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/renderer/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/renderer/group/bld.inf Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: Carousel widget for Symbian Homescreen + * + */ + + +#include + +PRJ_PLATFORMS +ARMV5 WINSCW + +PRJ_EXPORTS + +../rom/carouselwidget.iby CORE_MW_LAYER_IBY_EXPORT_PATH(carouselwidget.iby) + +PRJ_MMPFILES + +carouselwidget.mmp diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/renderer/group/carouselwidget.mmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/renderer/group/carouselwidget.mmp Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: Carousel widget for Symbian Homescreen + * + */ + +#include +#include + +TARGET carouselwidget.dll +TARGETTYPE PLUGIN +UID 0x10009d8d 0xEabba432 + +CAPABILITY CAP_ECOM_PLUGIN + +EPOCALLOWDLLDATA + +SOURCEPATH ../src +SOURCE carouselwidget.cpp + +USERINCLUDE ../inc + +MW_LAYER_SYSTEMINCLUDE +APP_LAYER_SYSTEMINCLUDE + +SOURCEPATH ../data +START RESOURCE carouselwidget.rss +HEADER +TARGETPATH ECOM_RESOURCE_DIR +END + +LIBRARY extrenderingplugin.lib +LIBRARY euser.lib +LIBRARY eikcore.lib +LIBRARY cone.lib +LIBRARY xn3layoutengine.lib +LIBRARY xn3utils.lib +LIBRARY xn3domdocument.lib +LIBRARY avkon.lib +LIBRARY ws32.lib +LIBRARY fbscli.lib +LIBRARY bitgdi.lib +LIBRARY egul.lib +LIBRARY bafl.lib +LIBRARY eikcoctl.lib +LIBRARY eikctl.lib +LIBRARY gdi.lib +LIBRARY aknicon.lib +LIBRARY aknphysics.lib +LIBRARY AknSkins.lib diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/renderer/inc/carouselwidget.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/renderer/inc/carouselwidget.h Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,253 @@ +/* + * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: Carousel widget for Symbian Homescreen + * + */ + +#ifndef _CCAROUSELWIDGET_H +#define _CCAROUSELWIDGET_H + +// INCLUDES +#include +#include + +class MXnExtEventHandler; +class CCarouselItem; +class CAknPhysics; + +// Class declaration +NONSHARABLE_CLASS( CCarouselItem ) : public CBase + { +public: + + // Constructors + + /** + * C++ default constructor. + */ +CCarouselItem(/* CCarouselEditor& aEditor,*/ CFbsBitmap* aBitmap, CFbsBitmap* aMask); + + /** + * Destructor. + */ + ~CCarouselItem(); + + void SetTextL( const TDesC& aText ); + + CFbsBitmap* iBitmap; + CFbsBitmap* iMask; +private: + + HBufC* iText; + }; + +// CLASS DECLARATION + +/** +* +*/ +class CCarouselWidget : public CXnExtRenderingPluginAdapter, + public MAknPhysicsObserver + { + +public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CCarouselWidget* NewL(); + + /** + * Destructor. + */ + virtual ~CCarouselWidget(); + +public: // from base classes + + /** + * From CCoeControl Handles key events. + * @since Series 60 3.1 + * @param aKeyEvent Key event. + * @param aType Event type. + * @return Key response + */ + TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, + TEventCode aType ); + + /** + * From CCoeControl + */ + void SetContainerWindowL( const CCoeControl &aContainer ); + + /** + * See CCoeControl documentation + */ + void HandlePointerEventL( const TPointerEvent& aPointerEvent ); + + /** + * From CCoeControl, CountComponentControls + * @return Number of component controls + */ + TInt CountComponentControls() const; + + /** + * From CCoeControl, ComponentControl + * @param aIndex index of component control + * @return pointer to the specified control + */ + CCoeControl* ComponentControl( TInt aIndex ) const; + + /** + * Skin change notification. + * See CXnControlAdapter documentation + * @since Series 60 3.1 + */ + void SkinChanged(); + + /** + * See CXnControlAdapter documentation + */ + void EnterPowerSaveModeL(); + + /** + * See CXnControlAdapter documentation + */ + void ExitPowerSaveModeL(); + + // From MAknPhysicsObserver + /** + * Physics emulation has moved the view. + */ + void ViewPositionChanged( const TPoint& aNewPosition, + TBool aDrawNow, TUint aFlags ); + + /** + * Called when emulation ended. + */ + void PhysicEmulationEnded(); + + /** + * Returns the observer view position. + * + * @return Physics observer view position. + */ + TPoint ViewPosition() const; + +protected: // from base classes + + /** + * From CCoeControl + * Called if focus changes + */ + void FocusChanged( TDrawNow aDrawNow ); + + /** + * From CCoeControl + * Called if position or size changes + */ + void SizeChanged(); + + /** + * Sets the external event handler interface. + * + * @since Series 60 5.2 + * @param aEventHandler Event handler interface. + */ + void SetEventHandler( MXnExtEventHandler* aEventHandler ); + + /** + * Routes the data stream for the external rendering plugin. + * + * @since Series 60 5.2 + * @param aData Data stream. + * @param aType Type of the stream. + * @param aIndex Index of the data. + */ + void SetDataL( const TDesC8& aData, const TDesC& aType, TInt aIndex ); + +private: // from base classes + + /** + * From CCoeControl, Draw + * See CCoeControl documentation + */ + void Draw( const TRect& aRect ) const; + +public: + + /** + * C++ default constructor. + */ + CCarouselWidget(); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + TRect ViewPort() {return iViewPort; }; + +private: + void InitPhysicEngineL(); + + TInt ItemIndex( TPoint& aPoint ); + + void LaunchItemL( TPoint& aPosition ); + +private: // Member data + /** + * Physics. + * Own. + */ + CAknPhysics* iPhysics; + + MXnExtEventHandler* iEventHandler; // not own + + /** + * Pointer down start time. + */ + TTime iStartTime; + + /** + * Start (pointer down) position. + */ + TPoint iStartPosition; + + /** + * Current pointer position. + */ + TPoint iStylusPosition; + + /** + * Current view position. + */ + TPoint iCurrentPosition; + + /** + * Adjusted view position + */ + TPoint iViewPosition; + + /** + * Visible area, i.e. area of the scollable control that is to be drawn. + */ + TRect iViewPort; + + RPointerArray iStripeItems; + + TBool iDrawHighlight; + }; + +#endif // _CCAROUSELWIDGET_H +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/renderer/rom/carouselwidget.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/renderer/rom/carouselwidget.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,25 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* IBY file for Carousel Widget +* +*/ + +#ifndef CAROUSELWIDGET_IBY +#define CAROUSELWIDGET_IBY + +ECOM_PLUGIN(carouselwidget.dll, carouselwidget.rsc) + +#endif // CAROUSELWIDGET_IBY + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/renderer/src/carouselwidget.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/renderer/src/carouselwidget.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,443 @@ +/* + * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: Carousel widget for Symbian Homescreen + * + */ + +#include +#include +#include +#include +#include +#include +#include "carouselwidget.h" + +const TSize KIconSize(70,70); +const TInt KItemPadding( 6 ); + +_LIT( KLaunchByIndex, "LaunchByIndex("); + +template< class PtrT > inline PtrT* UnpackPtr( + const TDesC8& aBuf ) + { + TAny* result( NULL ); + + if ( aBuf.Size() == sizeof( TAny* ) ) + { + // Effectively writes aBuf contents to result + TPckg< TAny* >( result ).Copy( aBuf ); + } + + return static_cast< PtrT* >( result ); + } +// ============================ MEMBER FUNCTIONS =============================== +CCarouselItem::CCarouselItem( CFbsBitmap* aBitmap, CFbsBitmap* aMask) + :iBitmap( aBitmap ), iMask( aMask ) + { + } + +CCarouselItem::~CCarouselItem() + { + delete iBitmap; + delete iMask; + delete iText; + } + +void CCarouselItem::SetTextL( const TDesC& aText ) + { + delete iText; + iText = NULL; + iText = aText.AllocL(); + } + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// Symbian static 1st phase constructor +// ----------------------------------------------------------------------------- +// +CCarouselWidget* CCarouselWidget::NewL() + { + CCarouselWidget* self = new( ELeave ) CCarouselWidget(); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +// ----------------------------------------------------------------------------- +// C++ destructor +// ----------------------------------------------------------------------------- +// +CCarouselWidget::~CCarouselWidget() + { + delete iPhysics; + iStripeItems.ResetAndDestroy(); + //delete iCover; + } + +// ----------------------------------------------------------------------------- +// Symbian 2nd phase constructor can leave. +// ----------------------------------------------------------------------------- +// +void CCarouselWidget::ConstructL() + { + + } + +// ----------------------------------------------------------------------------- +// Handles key events. +// ----------------------------------------------------------------------------- +// +TKeyResponse CCarouselWidget::OfferKeyEventL( const TKeyEvent& /*aKeyEvent*/, + TEventCode /*aType*/ ) + { + return EKeyWasConsumed; + } + +// ----------------------------------------------------------------------------- +// Set window for this control +// ----------------------------------------------------------------------------- +// +void CCarouselWidget::SetContainerWindowL( const CCoeControl &aContainer ) + { + CCoeControl::SetContainerWindowL( aContainer ); + } + +// ----------------------------------------------------------------------------- +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +void CCarouselWidget::HandlePointerEventL( const TPointerEvent& aPointerEvent ) + { + if( !iPhysics ) + { + return; + } + TPoint stylusPos( aPointerEvent.iPosition ); + switch( aPointerEvent.iType ) + { + case TPointerEvent::EButton1Down: + { + iPhysics->StopPhysics(); + iPhysics->ResetFriction(); + iStartPosition = stylusPos; + iStartTime.HomeTime(); + iStylusPosition = stylusPos; + iDrawHighlight = ETrue; + } + break; + + case TPointerEvent::EButton1Up: + { + iDrawHighlight = EFalse; + TInt distance = iStartPosition.iX - stylusPos.iX; + if( Abs(distance) <= iPhysics->DragThreshold() ) + { + LaunchItemL( stylusPos ); + } + else + { + TPoint drag( distance, 0 ); + iPhysics->StartPhysics( drag, iStartTime ); + } } + break; + case TPointerEvent::EDrag: + case TPointerEvent::EMove: + { + TPoint dragTh( iStartPosition - stylusPos ); + if( Abs(dragTh.iX) > iPhysics->DragThreshold() || + Abs(dragTh.iY) > iPhysics->DragThreshold()) + { + iDrawHighlight = EFalse; + } + TInt deltaX( iStylusPosition.iX - stylusPos.iX ); + iStylusPosition = stylusPos; + TPoint deltaPoint( deltaX, 0 ); + iPhysics->RegisterPanningPosition( deltaPoint ); + } + break; + default: + break; + } + + CCoeControl::HandlePointerEventL( aPointerEvent ); + } + +// ----------------------------------------------------------------------------- +// Returns the number of component controls +// ----------------------------------------------------------------------------- +// +TInt CCarouselWidget::CountComponentControls() const + { + return 0; + } + +// ----------------------------------------------------------------------------- +// Returns the specified control +// ----------------------------------------------------------------------------- +// +CCoeControl* CCarouselWidget::ComponentControl( TInt /*aIndex*/ ) const + { + return NULL; + } + +// ----------------------------------------------------------------------------- +// Skin change notification. +// ----------------------------------------------------------------------------- +// +void CCarouselWidget::SkinChanged() + { + } + +// ----------------------------------------------------------------------------- +// CCarouselWidget::EnterPowerSaveModeL +// +// ----------------------------------------------------------------------------- +// +void CCarouselWidget::EnterPowerSaveModeL() + { + } + +// ----------------------------------------------------------------------------- +// CCarouselWidget::ExitPowerSaveModeL +// +// ----------------------------------------------------------------------------- +// +void CCarouselWidget::ExitPowerSaveModeL() + { + } + +// ----------------------------------------------------------------------------- +// Called if focus changes +// ----------------------------------------------------------------------------- +// +void CCarouselWidget::FocusChanged( TDrawNow /*aDrawNow*/ ) + { + } + +// ----------------------------------------------------------------------------- +// Called if position or size changes +// ----------------------------------------------------------------------------- +// +void CCarouselWidget::SizeChanged() + { + iViewPort = Rect(); + TRAP_IGNORE( InitPhysicEngineL() ); + DrawNow(); + } + +// ----------------------------------------------------------------------------- +// Sets the external event handler interface. +// ----------------------------------------------------------------------------- +// +void CCarouselWidget::SetEventHandler( MXnExtEventHandler* aEventHandler ) + { + iEventHandler = aEventHandler; + } + +// ----------------------------------------------------------------------------- +// Data stream from the publisher +// ----------------------------------------------------------------------------- +// +void CCarouselWidget::SetDataL( const TDesC8& aData, const TDesC& aType, TInt aIndex ) + { + /// Unpack the data stream, works because publisher is in same process. + CGulIcon* icon( UnpackPtr( aData ) ); + CleanupStack::PushL( icon ); + AknIconUtils::SetSize( icon->Bitmap(), KIconSize); + + CCarouselItem* item = new ( ELeave ) CCarouselItem(/* *iEditor,*/ icon->Bitmap(), icon->Mask() ); + CleanupStack::PopAndDestroy( icon ); + + if( aType == _L("Appstripe/widget")) + { + if( iStripeItems.Count() <= aIndex ) + { + iStripeItems.AppendL( item ); + InitPhysicEngineL(); + } + else + { + CCarouselItem* citem = iStripeItems[ aIndex ]; + delete citem; + iStripeItems.Remove( aIndex ); + iStripeItems.Insert( item, aIndex ); + } + DrawNow(); + } + } + +// ----------------------------------------------------------------------------- +// Draws the carousel component +// ----------------------------------------------------------------------------- +// +void CCarouselWidget::Draw( const TRect& /*aRect*/ ) const + { + CWindowGc& gc( SystemGc() ); + gc.SetClippingRect( iViewPort ); + TRect bitmapRect( TPoint(0,0), KIconSize ); + TPoint point( iViewPort.iTl ); + point.iX -= iViewPosition.iX; + + TInt count = iStripeItems.Count(); + for( TInt i = 0; i < count; i++ ) + { + CFbsBitmap* bitmap = iStripeItems[i]->iBitmap; + CFbsBitmap* mask = iStripeItems[i]->iMask; + + TRect drawRect( point, KIconSize ); + if( iDrawHighlight && drawRect.Contains( iStylusPosition )) + { + TRect innerRect( drawRect ); + innerRect.Shrink( 5, 5 ); + + MAknsSkinInstance* skin( AknsUtils::SkinInstance() ); + AknsDrawUtils::DrawFrame( skin, gc, drawRect, innerRect, + KAknsIIDQsnFrHomePressed, KAknsIIDDefault ); + } + if( iViewPort.Contains( drawRect.iBr )|| + iViewPort.Contains( drawRect.iTl )) + { + gc.BitBltMasked( point, bitmap, bitmapRect, mask, EFalse); + } + point.iX += KIconSize.iWidth + KItemPadding; + } + } + +// --------------------------------------------------------------------------- +// ViewPositionChanged +// --------------------------------------------------------------------------- +// +void CCarouselWidget::ViewPositionChanged( + const TPoint& aNewPosition, TBool aDrawNow, TUint /*aFlags*/ ) + { + iCurrentPosition = aNewPosition; + iViewPosition.iX = aNewPosition.iX - iViewPort.Width()/2; + if( aDrawNow ) + { + DrawNow( iViewPort ); + } + } + +// --------------------------------------------------------------------------- +// PhysicEmulationEnded +// --------------------------------------------------------------------------- +// +void CCarouselWidget::PhysicEmulationEnded() + { + } + +// --------------------------------------------------------------------------- +// ViewPosition +// --------------------------------------------------------------------------- +// +TPoint CCarouselWidget::ViewPosition() const + { + return iCurrentPosition; + } + +// --------------------------------------------------------------------------- +// InitPhysicEngineL +// --------------------------------------------------------------------------- +// +void CCarouselWidget::InitPhysicEngineL() + { + // Init physic engine + if ( !iPhysics && CAknPhysics::FeatureEnabled() ) + { + iPhysics = CAknPhysics::NewL( *this, this ); + } + if( !iPhysics ) + { + return; + } + TSize viewPortSize = iViewPort.Size(); + TInt totalWidth( iStripeItems.Count() * (KIconSize.iWidth + KItemPadding )); + TSize totalSize( totalWidth, viewPortSize.iHeight ); + iPhysics->InitPhysicsL( totalSize, viewPortSize, ETrue ); + iCurrentPosition = TPoint( viewPortSize.iWidth / 2, viewPortSize.iHeight / 2 ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +TInt CCarouselWidget::ItemIndex( TPoint& aPoint ) + { + TPoint itemStartPoint( iViewPort.iTl ); + itemStartPoint.iX -= iViewPosition.iX; + + TRect dropRect( itemStartPoint, KIconSize ); + dropRect.Resize( KItemPadding, 0 ); + TInt index( 0 ); + do + { + if( dropRect.Contains( aPoint )) + { + return index; + } + dropRect.Move( KIconSize.iWidth+KItemPadding, 0); + index++; + } + while( index < iStripeItems.Count() ); + return KErrNotFound; + } + +// ----------------------------------------------------------------------------- +// Launches the item, which is in aPosition +// ----------------------------------------------------------------------------- +// +void CCarouselWidget::LaunchItemL( TPoint& aPosition ) + { + TInt index = ItemIndex( aPosition ); + // carousel plugin expects indexes to start from 1 + index++; + TInt len( KLaunchByIndex().Length()+3 ); + TBuf<17> event; + event.Append( KLaunchByIndex ); + event.AppendNum( index ); + event.Append( _L(")")); + iEventHandler->HandleEventL( event, _L8("Appstripe")); + } + +// ----------------------------------------------------------------------------- +// C++ default constructor +// ----------------------------------------------------------------------------- +// +CCarouselWidget::CCarouselWidget() + { + } + +// ============================ PUBLIC FUNCTIONS =============================== +const TImplementationProxy KImplementationTable[] = + { +#ifdef __EABI__ + IMPLEMENTATION_PROXY_ENTRY( 0xEabba433, CCarouselWidget::NewL ) +#else + { { 0xEabba433 }, CCarouselWidget::NewL } +#endif + }; + +// ----------------------------------------------------------------------------- +// Returns the list of implementations provided by the plugin +// ----------------------------------------------------------------------------- +// +EXPORT_C const TImplementationProxy* ImplementationGroupProxy( + TInt& aTableCount ) + { + aTableCount = sizeof( KImplementationTable ) / sizeof( TImplementationProxy ); + return KImplementationTable; + } + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/sis/carousel.pkg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/sis/carousel.pkg Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,33 @@ +; Installation file for carousel widget +; +; +; UID is the dll's UID +; +#{"Carousel Shortcut"},(0xE001CB57),1,0,0 + + +;Localised Vendor name +%{"HSExample"} + +;Unique Vendor name +:"HSExample" + +;Supports Series 60 v 5.0 +[0x1028315F], 1, 0, 0, {"S60ProductID"} + +;Publisher plug-in +"/epoc32/release/armv5/urel/carouselplugin.dll" -"c:/sys/bin/carouselplugin.dll" +"/epoc32/data/z/resource/plugins/carouselplugin.rsc" -"c:/resource/plugins/carouselplugin.rsc" + +;Renderer plug-in +"/epoc32/release/armv5/urel/carouselwidget.dll" -"c:/sys/bin/carouselwidget.dll" +"/epoc32/data/z/resource/plugins/carouselwidget.rsc" -"c:/resource/plugins/carouselwidget.rsc" + +;Widget declaration +"../widget/hsps/00/widgetconfiguration.xml" - "c:/private/200159c0/import/2001f48a/101fb657/1725ad3d/1.0/widgetconfiguration.xml" +"../widget/hsps/00/manifest.dat" - "c:/private/200159c0/import/2001f48a/101fb657/1725ad3d/1.0/manifest.dat" +"/epoc32/data/z/private/200159c0/install/appstripe/xuikon/00/appstripe.o0000" - "c:/private/200159c0/import/2001f48a/101fb657/1725ad3d/1.0/00/appstripe.o0000" +"../widget/xuikon/00/appstripe.dat" - "c:/private/200159c0/import/plugin_2001f48a_101fb657_1725ad3d_1.0.dat" + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/widget/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/widget/group/bld.inf Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,60 @@ +/* +* Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Editor for carousel widget. +* +*/ + +#include + +PRJ_PLATFORMS +DEFAULT + +PRJ_EXPORTS +// Support for productization and Carbide.Ui customization +//******************************************************** +../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/appstripe/hsps/manifest.dat +../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/appstripe/hsps/widgetconfiguration.xml +../xuikon/00/appstripe.dat /epoc32/data/Z/resource/homescreen/appstripe/xuikon/appstripe.dat +../xuikon/00/appstripe.css /epoc32/data/Z/resource/homescreen/appstripe/xuikon/appstripe.css +../xuikon/00/appstripe.xml /epoc32/data/Z/resource/homescreen/appstripe/xuikon/appstripe.xml +//../xuikon/00/appstripe.dtd /epoc32/data/Z/resource/homescreen/appstripe/xuikon/appstripe.dtd + +// Support for S60 builds +//*********************** +// export iby files +../rom/appstripe_resources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(appstripe_resources.iby) +../rom/appstripe_customer.iby CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(appstripe_customer.iby) +../rom/appstripe_variant.iby CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(appstripe_variant.iby) +../rom/appstripe.iby CORE_MW_LAYER_IBY_EXPORT_PATH(appstripe.iby) + + +// Dtd-localization +//***************** +PRJ_EXTENSIONS +START EXTENSION tools/dtd +OPTION SWITCH_LOC_FILE_NAME appstripe +OPTION DTD_TYPE widget +END + +PRJ_MMPFILES + +// build icons + +// build application + +PRJ_TESTMMPFILES + +//#endif + +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/widget/hsps/00/manifest.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/widget/hsps/00/manifest.dat Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,30 @@ + + + + qhd_tch + + widget + + + 0x2001f48a + + + 0x101fb657 + + + 0x1725ad3d + + + App Stripe + appstripe + 1.0 + + + widgetconfiguration.xml + + + + appstripe.o0000 + + + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/widget/hsps/00/widgetconfiguration.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/widget/hsps/00/widgetconfiguration.xml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/widget/rom/appstripe.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/widget/rom/appstripe.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,25 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __APPSTRIPE_IBY__ +#define __APPSTRIPE_IBY__ + +// Enabled by DTD-localization tools +data=ZPRIVATE\200159c0\install\appstripe\hsps\00\manifest.dat \private\200159c0\install\appstripe\hsps\00\manifest.dat +data=ZPRIVATE\200159c0\install\appstripe\xuikon\00\appstripe.o0000 \private\200159c0\install\appstripe\xuikon\00\appstripe.o0000 + +#endif // __APPSTRIPE_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/widget/rom/appstripe_customer.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/widget/rom/appstripe_customer.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,21 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __APPSTRIPE_CUSTOMER_IBY__ +#define __APPSTRIPE_CUSTOMER_IBY__ + +#endif // __APPSTRIPE_CUSTOMER_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/widget/rom/appstripe_resources.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/widget/rom/appstripe_resources.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,23 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __APPSTRIPE_RESOURCES_IBY__ +#define __APPSTRIPE_RESOURCES_IBY__ + +// Enabled by DTD-localization tools, language specific + +#endif // __APPSTRIPE_RESOURCES_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/widget/rom/appstripe_variant.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/widget/rom/appstripe_variant.iby Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,24 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __APPSTRIPE_VARIANT_IBY__ +#define __APPSTRIPE_VARIANT_IBY__ + +// Enabled by variation tools, variant specific +data=ZPRIVATE\200159c0\install\appstripe\hsps\00\widgetconfiguration.xml \private\200159c0\install\appstripe\hsps\00\widgetconfiguration.xml + +#endif // __APPSTRIPE_VARIANT_IBY__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/widget/xuikon/00/appstripe.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/widget/xuikon/00/appstripe.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,10 @@ +widget +{ + width:auto; + height:auto; + padding-top: 5px; + padding-bottom: 5px; + padding-left: 3px; + background-color: none; +} + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/widget/xuikon/00/appstripe.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/widget/xuikon/00/appstripe.dat Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,11 @@ + + + 2001CB4F + 101FB657 + 11001240 + AppStripeWidget + appstripe + 1.0 + appstripe.xml + appstripe.css + \ No newline at end of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/widget/xuikon/00/appstripe.dtd diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/carouselwidgetexample/widget/xuikon/00/appstripe.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/carouselwidgetexample/widget/xuikon/00/appstripe.xml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample.l01 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample.l01 Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,23 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Content Control example +* +*/ + +// localized strings for language: UK English (01) +#define STR_HsContentControlApplication_1 "" +#define STR_HsContentControlApplication_2 "" +#define STR_HsContentControlApplication_3 "" +#define STR_HsContentControlApplication_4 "HS Content Control" +#define STR_HsContentControlApplication_5 "HS Content Control" diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample.loc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample.loc Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,20 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Content Control example +* +*/ + +#ifdef LANGUAGE_01 +#include "hscontentcontrolexample.l01" +#endif diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample.rss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample.rss Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,107 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Content Control example +* +*/ + +NAME HSCO + +#include +#include +#include +#include +#include "hscontentcontrolexample.loc" + +RESOURCE RSS_SIGNATURE + { + } + +RESOURCE TBUF + { + buf = "HsContentControl"; + } + +RESOURCE EIK_APP_INFO r_application_hs_content_control_app_ui + { + cba = R_AVKON_SOFTKEYS_EXIT; + status_pane = r_application_status_pane; + menubar = r_application_options_menu; + } + +RESOURCE STATUS_PANE_APP_MODEL r_application_status_pane + { + panes = + { + SPANE_PANE + { + id = EEikStatusPaneUidNavi; + type = EAknCtNaviPane; + resource = r_navi_decorator; + } + + }; + } + +RESOURCE NAVI_DECORATOR r_navi_decorator + { + type = ENaviDecoratorControlTabGroup; + + control = TAB_GROUP + { + tab_width = EAknTabWidthWithOneTab; + + active = 0; + + tabs = + { + TAB + { + id = 0; + txt = "Active configuration"; + }, + TAB + { + id = 1; + txt = "Configurations"; + }, + TAB + { + id = 2; + txt = "Views"; + }, + TAB + { + id = 3; + txt = "Widgets"; + } + }; + + }; + } + + +RESOURCE MENU_BAR r_application_options_menu + { + } + +RESOURCE LOCALISABLE_APP_INFO r_localisable_app_info + { + short_caption = STR_HsContentControlApplication_5; + caption_and_icon = CAPTION_AND_ICON_INFO + { + caption = STR_HsContentControlApplication_4; + number_of_icons = 0; + }; + } + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample_reg.loc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample_reg.loc Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,28 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Content Control example +* +*/ + +// LOCALISATION STRINGS + +// Caption string for app. +#define qtn_caption_string "hscontentcontrolexample" + +// Short caption string for app. +#define qtn_short_caption_string "HW" + +#define qtn_loc_resource_file_1 "\\resource\\apps\\hscontentcontrolexample" + +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample_reg.rss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample_reg.rss Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,37 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Content Control example +* +*/ + +#include +#include +#include +#include +#include "hscontentcontrolexample_reg.loc" +#include + +UID2 KUidAppRegistrationResourceFile +UID3 0xE88D7143 + +RESOURCE APP_REGISTRATION_INFO + { + app_file="hscontentcontrolexample"; + localisable_resource_file = qtn_loc_resource_file_1; + localisable_resource_id = R_LOCALISABLE_APP_INFO; + + embeddability=KAppNotEmbeddable; + newfile=KAppDoesNotSupportNewFile; + } + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/gfx/list_icon.bmp Binary file idlehomescreen/examples/hscontentcontrolexample/gfx/list_icon.bmp has changed diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/gfx/list_icon_mask.bmp Binary file idlehomescreen/examples/hscontentcontrolexample/gfx/list_icon_mask.bmp has changed diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/gfx/mark_icon.bmp Binary file idlehomescreen/examples/hscontentcontrolexample/gfx/mark_icon.bmp has changed diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/gfx/mark_icon_mask.bmp Binary file idlehomescreen/examples/hscontentcontrolexample/gfx/mark_icon_mask.bmp has changed diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/gfx/qgn_menu_hscontentcontrolexample.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/gfx/qgn_menu_hscontentcontrolexample.svg Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/group/Icons_aif_scalable_dc.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/group/Icons_aif_scalable_dc.mk Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,83 @@ +# +# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of "Eclipse Public License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.eclipse.org/legal/epl-v10.html". +# +# Initial Contributors: +# Nokia Corporation - initial contribution. +# +# Contributors: +# +# Description: Content Control example +# +# + +ifeq (WINS,$(findstring WINS, $(PLATFORM))) +ZDIR=$(EPOCROOT)epoc32\release\$(PLATFORM)\$(CFG)\Z +else +ZDIR=$(EPOCROOT)epoc32\data\z +endif + + +# ---------------------------------------------------------------------------- +# TODO: Configure these +# ---------------------------------------------------------------------------- + +TARGETDIR=$(ZDIR)\resource\apps +ICONTARGETFILENAME=$(TARGETDIR)\hscontentcontrolexample_aif.mif +HEADERDIR=$(EPOCROOT)epoc32\include +HEADERFILENAME=$(HEADERDIR)\hscontentcontrolexample_aif.mbg + +ICONDIR=..\gfx + +do_nothing : + @rem do_nothing + +MAKMAKE : do_nothing + +BLD : do_nothing + +CLEAN : + @echo ...Deleting $(ICONTARGETFILENAME) + del /q /f $(ICONTARGETFILENAME) + +LIB : do_nothing + +CLEANLIB : do_nothing + +# ---------------------------------------------------------------------------- +# TODO: Configure these. +# +# NOTE 1: DO NOT DEFINE MASK FILE NAMES! They are included automatically by +# MifConv if the mask detph is defined. +# +# NOTE 2: Usually, source paths should not be included in the bitmap +# definitions. MifConv searches for the icons in all icon directories in a +# predefined order, which is currently \s60\icons, \s60\bitmaps2. +# The directory \s60\icons is included in the search only if the feature flag +# __SCALABLE_ICONS is defined. +# ---------------------------------------------------------------------------- +# NOTE: if you have JUSTINTIME enabled for your S60 3rd FP1 or newer SDK +# and this command crashes, consider adding "/X" to the command line. +# See +# ---------------------------------------------------------------------------- + +RESOURCE : $(ICONTARGETFILENAME) + +$(ICONTARGETFILENAME) : $(ICONDIR)\qgn_menu_hscontentcontrolexample.svg + mifconv $(ICONTARGETFILENAME) \ + /H$(HEADERFILENAME) \ + /c32,8 $(ICONDIR)\qgn_menu_hscontentcontrolexample.svg + +FREEZE : do_nothing + +SAVESPACE : do_nothing + +RELEASABLES : + @echo $(ICONTARGETFILENAME) + +FINAL : do_nothing + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/group/bld.inf Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,30 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Content Control example +* +*/ + +PRJ_PLATFORMS +WINSCW ARMV5 GCCE + +PRJ_EXPORTS + +PRJ_MMPFILES + +gnumakefile icons_aif_scalable_dc.mk + +hscontentcontrolexample.mmp + + +// End of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/group/hscontentcontrolexample.mmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/group/hscontentcontrolexample.mmp Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,71 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Content Control example +* +*/ + +#include +#include +APP_LAYER_SYSTEMINCLUDE +TARGET hscontentcontrolexample.exe +UID 0x100039CE 0xE88D7143 +VENDORID 0 +TARGETTYPE exe +EPOCSTACKSIZE 0x5000 + +CAPABILITY WriteDeviceData ReadDeviceData + +SYSTEMINCLUDE /epoc32/include /epoc32/include/variant /epoc32/include/ecom +USERINCLUDE ../inc ../data + +SOURCEPATH ../data +START RESOURCE hscontentcontrolexample.rss +HEADER +TARGETPATH resource/apps +END //RESOURCE + +START RESOURCE hscontentcontrolexample_reg.rss +TARGETPATH /private/10003a3f/apps +END //RESOURCE + +LIBRARY euser.lib apparc.lib cone.lib eikcore.lib avkon.lib +LIBRARY commonengine.lib efsrv.lib estor.lib eikcoctl.lib eikdlg.lib +LIBRARY eikctl.lib bafl.lib fbscli.lib aknnotify.lib aknicon.lib +LIBRARY etext.lib gdi.lib egul.lib insock.lib +LIBRARY ecom.lib InetProtUtil.lib http.lib esock.lib aknhlist.lib +LIBRARY aknskins.lib +LIBRARY hsccapiclient.lib +LIBRARY hscontentinfo.lib + +LANG 01 + +START BITMAP hscontentcontrolexample.mbm +HEADER +TARGETPATH /resource/apps +SOURCEPATH ../gfx +SOURCE c12,1 list_icon.bmp list_icon_mask.bmp +END + +SOURCEPATH ../src + +#ifdef ENABLE_ABIV2_MODE +DEBUGGABLE_UDEBONLY +#endif + +SOURCE HsContentControlListBox.cpp +SOURCE HsContentControlApplication.cpp +SOURCE HsContentControlAppUi.cpp +SOURCE HsContentControlDocument.cpp + +// End of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/inc/HsContentControlAppUi.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/inc/HsContentControlAppUi.h Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,72 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Content Control example +* +*/ + + +#ifndef HSCONTENTCONTROLAPPUI_H +#define HSCONTENTCONTROLAPPUI_H + +// [[[ begin generated region: do not modify [Generated Includes] +#include +#include +// ]]] end generated region [Generated Includes] + +// [[[ begin generated region: do not modify [Generated Forward Declarations] +class CHsContentControlListBox; +// ]]] end generated region [Generated Forward Declarations] + +/** + * @class CHsContentControlAppUi HsContentControlAppUi.h + * @brief The AppUi class handles application-wide aspects of the user interface, including + * container management and the default menu, control pane, and status pane. + */ +class CHsContentControlAppUi : public CAknAppUi + { +public: + // constructor and destructor + CHsContentControlAppUi(); + void ConstructL(); + virtual ~CHsContentControlAppUi(); + +public: + // from CEikAppUi + void HandleCommandL( TInt aCommand ); + void HandleResourceChangeL( TInt aType ); + +private: + void InitializeContainersL(); + // [[[ begin generated region: do not modify [Generated Methods] +public: + // ]]] end generated region [Generated Methods] + + // [[[ begin generated region: do not modify [Generated Instance Variables] +private: + CHsContentControlListBox* iHsContentControlListBox; + // ]]] end generated region [Generated Instance Variables] + + + // [[[ begin [Overridden Methods] +protected: + // ]]] end [Overridden Methods] + + + // [[[ begin [User Handlers] +protected: + // ]]] end [User Handlers] + + }; + +#endif // HSCONTENTCONTROLAPPUI_H diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/inc/HsContentControlApplication.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/inc/HsContentControlApplication.h Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,45 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Content Control example +* +*/ + + +#ifndef HSCONTENTCONTROLAPPLICATION_H +#define HSCONTENTCONTROLAPPLICATION_H + +// [[[ begin generated region: do not modify [Generated Includes] +#include +// ]]] end generated region [Generated Includes] + +// [[[ begin generated region: do not modify [Generated Constants] +const TUid KUidHsContentControlApplication = { 0xE88D7143 }; +// ]]] end generated region [Generated Constants] + +/** + * + * @class CHsContentControlApplication HsContentControlApplication.h + * @brief A CAknApplication-derived class is required by the S60 application + * framework. It is subclassed to create the application's document + * object. + */ +class CHsContentControlApplication : public CAknApplication + { +private: + TUid AppDllUid() const; + CApaDocument* CreateDocumentL(); + + }; + +#endif // HSCONTENTCONTROLAPPLICATION_H diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/inc/HsContentControlDocument.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/inc/HsContentControlDocument.h Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,46 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Content Control example +* +*/ + + +#ifndef HSCONTENTCONTROLDOCUMENT_H +#define HSCONTENTCONTROLDOCUMENT_H + +#include + +class CEikAppUi; + +/** +* @class CHsContentControlDocument HsContentControlDocument.h +* @brief A CAknDocument-derived class is required by the S60 application +* framework. It is responsible for creating the AppUi object. +*/ +class CHsContentControlDocument : public CAknDocument + { +public: + // constructor + static CHsContentControlDocument* NewL( CEikApplication& aApp ); + +private: + // constructors + CHsContentControlDocument( CEikApplication& aApp ); + void ConstructL(); + +public: + // from base class CEikDocument + CEikAppUi* CreateAppUiL(); + }; +#endif // HSCONTENTCONTROLDOCUMENT_H diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/inc/HsContentControlListBox.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/inc/HsContentControlListBox.h Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,206 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Content Control example +* +*/ + + +#ifndef __HSCONTENTCONTROLLISTBOX_H__ +#define __HSCONTENTCONTROLLISTBOX_H__ + +// Includes +#include +#include +#include +#include + +// Forward declarations +class MEikCommandObserver; +class CAknSingleStyleTreeList; +class CAknsBasicBackgroundControlContext; +class CAknNavigationDecorator; +class CAknTabGroup; +class CAknStylusPopUpMenu; +class CHsCcApiClient; +class CHsContentInfoArray; + +/** + * Container class for HsContentControlListBox + * + * @class CHsContentControlListBox HsContentControlListBox.h + */ +class CHsContentControlListBox : public CCoeControl, + public MAknTreeListObserver, + public MAknTabObserver, + public MEikMenuObserver, + public MHsContentControl + { +public: + // constructors and destructor + + /** + * Two-phased constructor. + */ + static CHsContentControlListBox* NewL( + const TRect& aRect, + const CCoeControl* aParent, + MEikCommandObserver* aCommandObserver ); + + /** + * Two-phased constructor. + */ + static CHsContentControlListBox* NewLC( + const TRect& aRect, + const CCoeControl* aParent, + MEikCommandObserver* aCommandObserver ); + + /** + * Destructor + */ + ~CHsContentControlListBox(); + +public: + // from CCoeControl + + /** + * @see CCoeControl + */ + TInt CountComponentControls() const; + + /** + * @see CCoeControl + */ + CCoeControl* ComponentControl( TInt aIndex ) const; + + /** + * @see CCoeControl + */ + TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType ); + + /** + * @see CCoeControl + */ + void HandleResourceChange( TInt aType ); + + /** + * @see CCoeControl + */ + void SizeChanged(); + + /** + * @see CCoeControl + */ + TTypeUid::Ptr MopSupplyObject( TTypeUid aId ); + +private: + // from MAknTreeListObserver + + /** + * @see MAknTreeListObserver + */ + TInt HandleTreeListEvent( + CAknTreeList& aList, + TAknTreeItemID aItem, + TEvent aEvent ); + +private: + // From MEikMenuObserver + + /** + * @see MEikMenuObserver + */ + void ProcessCommandL( TInt aCommandId ); + + /** + * @see MEikMenuObserver + */ + void SetEmphasis( CCoeControl* aMenuControl, TBool aEmphasis ); + +private: + // from MAknTabObserver + + /** + * @see MAknTabObserver + */ + void TabChangedL( TInt aIndex ); + +private: + // from MHsContentControl + + /** + * @see MHsContentControl + */ + void NotifyWidgetListChanged(); + + /** + * @see MHsContentControl + */ + void NotifyViewListChanged(); + + /** + * @see MHsContentControl + */ + void NotifyAppListChanged(); + +private: + // new functions + + void InitializeControlsL(); + void LayoutControls(); + void PopulateListL(); + + static TInt PopulateList( TAny* aAny ); + +private: + // constructors + + /** + * C++ default constructor + */ + CHsContentControlListBox(); + + /** + * 2nd phase constructor + */ + void ConstructL( + const TRect& aRect, + const CCoeControl* aParent, + MEikCommandObserver* aCommandObserver ); + +private: + // data + + /** Homescreen content control client, owned */ + CHsCcApiClient* iHsCcApiClient; + /** Callback, owned */ + CAsyncCallBack* iCallback; + /** Popup menu, owned */ + CAknStylusPopUpMenu* iPopup; + /** List box, owned */ + CAknSingleStyleTreeList* iListBox; + /** Bg context, owned */ + CAknsBasicBackgroundControlContext* iBgContext; + /** Content info array, owned */ + CHsContentInfoArray* iArray; + /** Navigation decorator, owned */ + CAknNavigationDecorator* iDecorator; + /** Tab group, not owned */ + CAknTabGroup* iTabGroup; + /** Selected tree item */ + TAknTreeItemID iSelectedItem; + /** Active tab index */ + TInt iTabIndex; + }; + +#endif // __HSCONTENTCONTROLLISTBOX_H__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/group/bld.inf Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,38 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Content Control example +* +*/ + +#include + +PRJ_PLATFORMS +DEFAULT + +PRJ_EXPORTS +// Support for productization and Carbide.Ui customization +../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/root2/hsps/manifest.dat +../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/root2/hsps/widgetconfiguration.xml +../xuikon/00/root2.dat /epoc32/data/Z/resource/homescreen/root2/xuikon/root2.dat +../xuikon/00/root2.css /epoc32/data/Z/resource/homescreen/root2/xuikon/root2.css +../xuikon/00/root2.xml /epoc32/data/Z/resource/homescreen/root2/xuikon/root2.xml +//../xuikon/00/root2.dtd /epoc32/data/Z/resource/homescreen/root2/xuikon/root2.dtd + + +PRJ_EXTENSIONS +START EXTENSION tools/dtd +OPTION SWITCH_LOC_FILE_NAME root2 +OPTION DTD_TYPE widget +END +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/hsps/00/manifest.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/hsps/00/manifest.dat Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,19 @@ + + + qhd_tch + application + + 0x102750F0 + 0x101fb657 + 0x20102020 + + HS Configuration + root2 + 1.0 + + widgetconfiguration.xml + + + root2.o0000 + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/hsps/00/widgetconfiguration.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/hsps/00/widgetconfiguration.xml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/sis/hs_configuration_urel.pkg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/sis/hs_configuration_urel.pkg Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,33 @@ +; Installation file for recentcallswidget dll +; +; This is an auto-generated PKG file by Carbide. +; This file uses variables specific to Carbide builds that will not work +; on command-line builds. If you want to use this generated PKG file from the +; command-line tools you will need to modify the variables with the appropriate +; values: $(EPOCROOT), $(PLATFORM), $(TARGET) + +; +; UID is the dll's UID +; +#{"HS 6 pages configuration"},(0x20102020),1,0,0 + + +;Localised Vendor name +%{"Nokia"} + +;Unique Vendor name +:"Nokia" + +;Supports Series 60 v 5.0 +[0x1028315F], 0, 0, 0, {"S60ProductID"} + + +"../hsps/00/widgetconfiguration.xml" - "c:/private/200159C0/import/102750F0/101FB657/20102020/1.0/widgetconfiguration.xml" +"../hsps/00/manifest.dat" - "c:/private/200159C0/import/102750F0/101FB657/20102020/1.0/manifest.dat" + +"/epoc32/data/z/private/200159c0/install/root2/xuikon/00/root2.o0000" - "c:/private/200159C0/import/102750F0/101FB657/20102020/1.0/00/root2.o0000" + +"../xuikon/00/root2.dat" - "c:/private/200159C0/import/plugin_102750F0_101FB657_20102020_1.0.dat" + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/xuikon/00/root2.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/xuikon/00/root2.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,3 @@ +views +{ +} diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/xuikon/00/root2.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/xuikon/00/root2.dat Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,12 @@ + + + + 2001CB4F + 101FB657 + 11001241 + Anything + root2 + 1.0 + root2.xml + root2.css + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/xuikon/00/root2.dtd diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/xuikon/00/root2.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/xuikon/00/root2.xml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,4 @@ + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/group/bld.inf Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,38 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Content Control example +* +*/ + +#include + +PRJ_PLATFORMS +DEFAULT + +PRJ_EXPORTS +// Support for productization and Carbide.Ui customization +../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/root2/hsps/manifest.dat +../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/root2/hsps/widgetconfiguration.xml +../xuikon/00/root2.dat /epoc32/data/Z/resource/homescreen/root2/xuikon/root2.dat +../xuikon/00/root2.css /epoc32/data/Z/resource/homescreen/root2/xuikon/root2.css +../xuikon/00/root2.xml /epoc32/data/Z/resource/homescreen/root2/xuikon/root2.xml +//../xuikon/00/root2.dtd /epoc32/data/Z/resource/homescreen/root2/xuikon/root2.dtd + + +PRJ_EXTENSIONS +START EXTENSION tools/dtd +OPTION SWITCH_LOC_FILE_NAME root2 +OPTION DTD_TYPE widget +END +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/hsps/00/manifest.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/hsps/00/manifest.dat Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,19 @@ + + + vga_tch + application + + 0x102750F0 + 0x101fb657 + 0x20102020 + + HS Configuration + root2 + 1.0 + + widgetconfiguration.xml + + + root2.o0000 + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/hsps/00/widgetconfiguration.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/hsps/00/widgetconfiguration.xml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/sis/hs_configuration_urel.pkg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/sis/hs_configuration_urel.pkg Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,33 @@ +; Installation file for recentcallswidget dll +; +; This is an auto-generated PKG file by Carbide. +; This file uses variables specific to Carbide builds that will not work +; on command-line builds. If you want to use this generated PKG file from the +; command-line tools you will need to modify the variables with the appropriate +; values: $(EPOCROOT), $(PLATFORM), $(TARGET) + +; +; UID is the dll's UID +; +#{"HS 6 pages configuration"},(0x20102020),1,0,0 + + +;Localised Vendor name +%{"Nokia"} + +;Unique Vendor name +:"Nokia" + +;Supports Series 60 v 5.0 +[0x1028315F], 0, 0, 0, {"S60ProductID"} + + +"../hsps/00/widgetconfiguration.xml" - "c:/private/200159C0/import/102750F0/101FB657/20102020/1.0/widgetconfiguration.xml" +"../hsps/00/manifest.dat" - "c:/private/200159C0/import/102750F0/101FB657/20102020/1.0/manifest.dat" + +"/epoc32/data/z/private/200159c0/install/root2/xuikon/00/root2.o0000" - "c:/private/200159C0/import/102750F0/101FB657/20102020/1.0/00/root2.o0000" + +"../xuikon/00/root2.dat" - "c:/private/200159C0/import/plugin_102750F0_101FB657_20102020_1.0.dat" + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/xuikon/00/root2.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/xuikon/00/root2.css Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,3 @@ +views +{ +} diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/xuikon/00/root2.dat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/xuikon/00/root2.dat Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,12 @@ + + + + 2001CB4F + 101FB657 + 11001241 + Anything + root2 + 1.0 + root2.xml + root2.css + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/xuikon/00/root2.dtd diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/xuikon/00/root2.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/xuikon/00/root2.xml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,4 @@ + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/sis/hscontentcontrolexample_urel.pkg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/sis/hscontentcontrolexample_urel.pkg Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,36 @@ +; hscontentcontrolexample.pkg +; This is an auto-generated PKG file by Carbide. +; This file uses variables specific to Carbide builds that will not work +; on command-line builds. If you want to use this generated PKG file from the +; command-line tools you will need to modify the variables with the appropriate +; values: $(EPOCROOT), $(PLATFORM), $(TARGET) +; Also, the resource file entries should be changed to match the language +; used in the build. For example, if building for LANGUAGE_01, change the file +; extensions .rsc to .r01. +; +;Language - standard language definitions +&EN + +; standard SIS file header +#{"HS ContentControl"},(0xE88D7143),1,0,0 + +;Localised Vendor name +%{"Vendor-EN"} + +;Unique Vendor name +:"Vendor" + +;Supports Series 60 v 3.0 +[0x101F7961], 0, 0, 0, {"Series60ProductID"} + +;Files to install +;You should change the source paths to match that of your environment +; +"\epoc32\release\armv5\urel\hscontentcontrolexample.exe" -"!:\sys\bin\hscontentcontrolexample.exe" +"\epoc32\data\z\resource\apps\hscontentcontrolexample.r01" -"!:\resource\apps\hscontentcontrolexample.r01" +"\epoc32\data\z\private\10003a3f\apps\hscontentcontrolexample_reg.r01" -"!:\private\10003a3f\import\apps\hscontentcontrolexample_reg.r01" +"\epoc32\data\z\resource\apps\hscontentcontrolexample_aif.mif" -"!:\resource\apps\hscontentcontrolexample_aif.mif" +"\epoc32\data\z\resource\apps\hscontentcontrolexample.mbm" -"!:\resource\apps\hscontentcontrolexample.mbm" +; Add any installation notes if applicable +;"hscontentcontrolexample.txt" -"!:\private\0xE88D7143\hscontentcontrolexample.txt" + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/src/HsContentControlAppUi.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/src/HsContentControlAppUi.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,125 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Content Control example +* +*/ + + +// [[[ begin generated region: do not modify [Generated System Includes] +#include +#include +// ]]] end generated region [Generated System Includes] + +// [[[ begin generated region: do not modify [Generated User Includes] +#include "HsContentControlAppUi.h" +#include "HsContentControlListBox.h" +// ]]] end generated region [Generated User Includes] + +// [[[ begin generated region: do not modify [Generated Constants] +// ]]] end generated region [Generated Constants] + +/** + * Construct the CHsContentControlAppUi instance + */ +CHsContentControlAppUi::CHsContentControlAppUi() + { + // [[[ begin generated region: do not modify [Generated Contents] + iHsContentControlListBox = NULL; + // ]]] end generated region [Generated Contents] + + } + +/** + * The appui's destructor removes the container from the control + * stack and destroys it. + */ +CHsContentControlAppUi::~CHsContentControlAppUi() + { + // [[[ begin generated region: do not modify [Generated Contents] + if ( iHsContentControlListBox != NULL ) + { + RemoveFromStack( iHsContentControlListBox ); + delete iHsContentControlListBox; + iHsContentControlListBox = NULL; + } + // ]]] end generated region [Generated Contents] + + } + +/** + * @brief Completes the second phase of Symbian object construction. + * Put initialization code that could leave here. + */ +void CHsContentControlAppUi::ConstructL() + { + // [[[ begin generated region: do not modify [Generated Contents] + + BaseConstructL( EAknEnableSkin | EAknEnableMSK | + EAknTouchCompatible | EAknSingleClickCompatible ); + + InitializeContainersL(); + // ]]] end generated region [Generated Contents] + + } + +// [[[ begin generated function: do not modify +void CHsContentControlAppUi::InitializeContainersL() + { + iHsContentControlListBox = CHsContentControlListBox::NewL( ClientRect(), NULL, this ); + iHsContentControlListBox->SetMopParent( this ); + AddToStackL( iHsContentControlListBox ); + + iHsContentControlListBox->DrawNow(); + } +// ]]] end generated function + +/** + * Handle a command for this appui (override) + * @param aCommand command id to be handled + */ +void CHsContentControlAppUi::HandleCommandL( TInt aCommand ) + { + // [[[ begin generated region: do not modify [Generated Code] + TBool commandHandled = EFalse; + switch ( aCommand ) + { // code to dispatch to the AppUi's menu and CBA commands is generated here + default: + break; + } + + + if ( !commandHandled ) + { + if ( aCommand == EAknSoftkeyExit || + aCommand == EAknSoftkeyBack || + aCommand == EEikCmdExit ) + { + Exit(); + } + } + // ]]] end generated region [Generated Code] + + } + +/** + * Override of the HandleResourceChangeL virtual function + */ +void CHsContentControlAppUi::HandleResourceChangeL( TInt aType ) + { + CAknAppUi::HandleResourceChangeL( aType ); + // [[[ begin generated region: do not modify [Generated Code] + // ]]] end generated region [Generated Code] + + } + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/src/HsContentControlApplication.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/src/HsContentControlApplication.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,88 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Content Control example +* +*/ + + +// [[[ begin generated region: do not modify [Generated System Includes] +// ]]] end generated region [Generated System Includes] + +// [[[ begin generated region: do not modify [Generated Includes] +#include "HsContentControlApplication.h" +#include "HsContentControlDocument.h" +#ifdef EKA2 +#include +#endif +// ]]] end generated region [Generated Includes] + +/** + * @brief Returns the application's UID (override from CApaApplication::AppDllUid()) + * @return UID for this application (KUidHsContentControlApplication) + */ +TUid CHsContentControlApplication::AppDllUid() const + { + return KUidHsContentControlApplication; + } + +/** + * @brief Creates the application's document (override from CApaApplication::CreateDocumentL()) + * @return Pointer to the created document object (CHsContentControlDocument) + */ +CApaDocument* CHsContentControlApplication::CreateDocumentL() + { + return CHsContentControlDocument::NewL( *this ); + } + +#ifdef EKA2 + +/** + * @brief Called by the application framework to construct the application object + * @return The application (CHsContentControlApplication) + */ +LOCAL_C CApaApplication* NewApplication() + { + return new CHsContentControlApplication; + } + +/** +* @brief This standard export is the entry point for all Series 60 applications +* @return error code + */ +GLDEF_C TInt E32Main() + { + return EikStart::RunApplication( NewApplication ); + } + +#else // Series 60 2.x main DLL program code + +/** +* @brief This standard export constructs the application object. +* @return The application (CHsContentControlApplication) +*/ +EXPORT_C CApaApplication* NewApplication() + { + return new CHsContentControlApplication; + } + +/** +* @brief This standard export is the entry point for all Series 60 applications +* @return error code +*/ +GLDEF_C TInt E32Dll(TDllReason /*reason*/) + { + return KErrNone; + } + +#endif // EKA2 diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/src/HsContentControlDocument.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/src/HsContentControlDocument.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,67 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Content Control example +* +*/ + + +// [[[ begin generated region: do not modify [Generated User Includes] +#include "HsContentControlDocument.h" +#include "HsContentControlAppUi.h" +// ]]] end generated region [Generated User Includes] + +/** + * @brief Constructs the document class for the application. + * @param anApplication the application instance + */ +CHsContentControlDocument::CHsContentControlDocument( CEikApplication& anApplication ) + : CAknDocument( anApplication ) + { + } + +/** + * @brief Completes the second phase of Symbian object construction. + * Put initialization code that could leave here. + */ +void CHsContentControlDocument::ConstructL() + { + } + +/** + * Symbian OS two-phase constructor. + * + * Creates an instance of CHsContentControlDocument, constructs it, and + * returns it. + * + * @param aApp the application instance + * @return the new CHsContentControlDocument + */ +CHsContentControlDocument* CHsContentControlDocument::NewL( CEikApplication& aApp ) + { + CHsContentControlDocument* self = new ( ELeave ) CHsContentControlDocument( aApp ); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +/** + * @brief Creates the application UI object for this document. + * @return the new instance + */ +CEikAppUi* CHsContentControlDocument::CreateAppUiL() + { + return new ( ELeave ) CHsContentControlAppUi; + } + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/hscontentcontrolexample/src/HsContentControlListBox.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/src/HsContentControlListBox.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,598 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Content Control example +* +*/ + + +// Includes +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include + +#include "HsContentControlListBox.h" + +// Constants +const TInt KFlags( CAknSingleStyleTreeList::EPersistent | + CAknSingleStyleTreeList::EExpanded ); + +_LIT( KActivate, "Activate" ); + +enum TTabs + { + ETabFirst = 0, + ETabActiveConfiguration = ETabFirst, + ETabConfigurations, + ETabViews, + ETabWidgets, + ETabLast = ETabWidgets + }; + +// ============================ LOCAL FUNCTIONS ================================ + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CHsContentControlListBox::CHsContentControlListBox +// +// ----------------------------------------------------------------------------- +// +CHsContentControlListBox::CHsContentControlListBox() + { + } + +// ----------------------------------------------------------------------------- +// CHsContentControlListBox::~CHsContentControlListBox +// +// ----------------------------------------------------------------------------- +// +CHsContentControlListBox::~CHsContentControlListBox() + { + delete iHsCcApiClient; + delete iCallback; + delete iPopup; + delete iListBox; + delete iBgContext; + delete iArray; + delete iDecorator; + } + +// ----------------------------------------------------------------------------- +// CHsContentControlListBox::NewL +// +// ----------------------------------------------------------------------------- +// +CHsContentControlListBox* CHsContentControlListBox::NewL( const TRect& aRect, + const CCoeControl* aParent, MEikCommandObserver* aCommandObserver ) + { + CHsContentControlListBox* self = + CHsContentControlListBox::NewLC( aRect, aParent, aCommandObserver ); + CleanupStack::Pop( self ); + + return self; + } + +// ----------------------------------------------------------------------------- +// CHsContentControlListBox::NewLC +// +// ----------------------------------------------------------------------------- +// +CHsContentControlListBox* CHsContentControlListBox::NewLC( const TRect& aRect, + const CCoeControl* aParent, MEikCommandObserver* aCommandObserver ) + { + CHsContentControlListBox* self = new ( ELeave ) CHsContentControlListBox(); + CleanupStack::PushL( self ); + + self->ConstructL( aRect, aParent, aCommandObserver ); + + return self; + } + +// ----------------------------------------------------------------------------- +// CHsContentControlListBox::ConstructL +// +// ----------------------------------------------------------------------------- +// +void CHsContentControlListBox::ConstructL( const TRect& aRect, + const CCoeControl* aParent, MEikCommandObserver* /*aCommandObserver*/ ) + { + iHsCcApiClient = CHsCcApiClient::NewL( this ); + + TCallBack cb( PopulateList, this ); + + iCallback = new ( ELeave ) CAsyncCallBack( cb, CActive::EPriorityStandard ); + + if ( !aParent ) + { + CreateWindowL(); + } + else + { + SetContainerWindowL( *aParent ); + } + + InitializeControlsL(); + + SetRect( aRect ); + + ActivateL(); + + PopulateListL(); + } + +// ----------------------------------------------------------------------------- +// CHsContentControlListBox::CountComponentControls +// +// ----------------------------------------------------------------------------- +// +TInt CHsContentControlListBox::CountComponentControls() const + { + return 1; + } + +// ----------------------------------------------------------------------------- +// CHsContentControlListBox::CHsContentControlListBox +// +// ----------------------------------------------------------------------------- +// +CCoeControl* CHsContentControlListBox::ComponentControl( TInt aIndex ) const + { + if ( aIndex == 0 ) + { + return iListBox; + } + + return NULL; + } + +// ----------------------------------------------------------------------------- +// CHsContentControlListBox::OfferKeyEventL +// +// ----------------------------------------------------------------------------- +// +TKeyResponse CHsContentControlListBox::OfferKeyEventL( + const TKeyEvent& aKeyEvent, TEventCode aType ) + { + if ( iListBox->OfferKeyEventL( aKeyEvent, aType ) == EKeyWasConsumed ) + { + return EKeyWasConsumed; + } + + return CCoeControl::OfferKeyEventL( aKeyEvent, aType ); + } + +// ----------------------------------------------------------------------------- +// CHsContentControlListBox::HandleResourceChange +// +// ----------------------------------------------------------------------------- +// +void CHsContentControlListBox::HandleResourceChange( TInt aType ) + { + CCoeControl::HandleResourceChange( aType ); + + SetRect( iAvkonAppUi->ClientRect() ); + } + +// ----------------------------------------------------------------------------- +// CHsContentControlListBox::SizeChanged +// +// ----------------------------------------------------------------------------- +// +void CHsContentControlListBox::SizeChanged() + { + CCoeControl::SizeChanged(); + + LayoutControls(); + } + +// ----------------------------------------------------------------------------- +// CHsContentControlListBox::MopSupplyObject +// +// ----------------------------------------------------------------------------- +// +TTypeUid::Ptr CHsContentControlListBox::MopSupplyObject( TTypeUid aId ) + { + if ( aId.iUid == MAknsControlContext::ETypeId && iBgContext ) + { + return MAknsControlContext::SupplyMopObject( aId, iBgContext ); + } + + return CCoeControl::MopSupplyObject( aId ); + } + +// ----------------------------------------------------------------------------- +// CHsContentControlListBox::HandleTreeListEvent +// +// ----------------------------------------------------------------------------- +// +TInt CHsContentControlListBox::HandleTreeListEvent( + CAknTreeList& /*aList*/, + TAknTreeItemID aItem, + TEvent aEvent ) + { + if ( aEvent == EItemSelected ) + { + if ( !iListBox->IsLeaf( aItem ) && !iListBox->IsMarked( aItem ) ) + { + return KErrNone; + } + + const TWsEvent& event( iCoeEnv->LastEvent() ); + + if ( event.Type() == EEventPointer ) + { + TInt x, y; + + TPointerEvent& pointer( *event.Pointer() ); + + x = pointer.iParentPosition.iX; + y = pointer.iParentPosition.iY; + + delete iPopup; + iPopup = NULL; + + iPopup = CAknStylusPopUpMenu::NewL( this, TPoint( x, y ) ); + + if ( iTabIndex == ETabConfigurations ) + { + iSelectedItem = aItem; + + iPopup->AddMenuItemL( KActivate, 1 ); + + iPopup->SetPosition( TPoint( x, y ), + CAknStylusPopUpMenu::EPositionTypeRightBottom ); + + iPopup->ShowMenu(); + } + } + } + + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CHsContentControlListBox::ProcessCommandL +// +// ----------------------------------------------------------------------------- +// +void CHsContentControlListBox::ProcessCommandL( TInt aCommandId ) + { + TAknTreeItemID item( iSelectedItem ); + + iSelectedItem = KAknTreeIIDNone; + + if ( item == KAknTreeIIDNone || aCommandId == KErrCancel ) + { + return; + } + + // Resolve selected item + if ( iTabIndex == ETabConfigurations ) + { + TAknTreeItemID id = iListBox->Child( KAknTreeIIDRoot, 0 ); + + TInt count( iListBox->ChildCount( id ) ); + + for ( TInt i = 0; i < count; i++ ) + { + if ( iListBox->Child( id, i ) == item ) + { + CHsContentInfo* info( iArray->Array()[i] ); + + TRAP_IGNORE( iHsCcApiClient->ActivateAppL( *info ) ); + + break; + } + } + } + } + +// ----------------------------------------------------------------------------- +// CHsContentControlListBox::SetEmphasis +// +// ----------------------------------------------------------------------------- +// +void CHsContentControlListBox::SetEmphasis( CCoeControl* /*aMenuControl*/, + TBool /*aEmphasis*/ ) + { + } + +// ----------------------------------------------------------------------------- +// CHsContentControlListBox::TabChangedL +// +// ----------------------------------------------------------------------------- +// +void CHsContentControlListBox::TabChangedL( TInt aIndex ) + { + if ( aIndex != iTabIndex ) + { + iTabIndex = aIndex; + + iDecorator->SetScrollButtonDimmed( + CAknNavigationDecorator::ERightButton, EFalse ); + + iDecorator->SetScrollButtonDimmed( + CAknNavigationDecorator::ELeftButton, EFalse ); + + if ( iTabIndex == ETabFirst ) + { + iDecorator->SetScrollButtonDimmed( + CAknNavigationDecorator::ELeftButton, ETrue ); + } + else if ( iTabIndex == ETabLast ) + { + iDecorator->SetScrollButtonDimmed( + CAknNavigationDecorator::ERightButton, ETrue ); + } + + iCallback->Cancel(); + iCallback->CallBack(); + } + } + +// ----------------------------------------------------------------------------- +// CHsContentControlListBox::NotifyWidgetListChanged +// +// ----------------------------------------------------------------------------- +// +void CHsContentControlListBox::NotifyWidgetListChanged() + { + iCallback->Cancel(); + iCallback->CallBack(); + } + +// ----------------------------------------------------------------------------- +// CHsContentControlListBox::NotifyViewListChanged +// +// ----------------------------------------------------------------------------- +// +void CHsContentControlListBox::NotifyViewListChanged() + { + iCallback->Cancel(); + iCallback->CallBack(); + } + +// ----------------------------------------------------------------------------- +// CHsContentControlListBox::NotifyAppListChanged +// +// ----------------------------------------------------------------------------- +// +void CHsContentControlListBox::NotifyAppListChanged() + { + iCallback->Cancel(); + iCallback->CallBack(); + } + +// ----------------------------------------------------------------------------- +// CHsContentControlListBox::InitializeControlsL +// +// ----------------------------------------------------------------------------- +// +void CHsContentControlListBox::InitializeControlsL() + { + iListBox = CAknSingleStyleTreeList::NewL( *this ); + iListBox->SetContainerWindowL( *this ); + iListBox->AddObserverL( this ); + iListBox->SetFocus( ETrue ); + + iBgContext = CAknsBasicBackgroundControlContext::NewL( + KAknsIIDQsnBgScreen, TRect(), ETrue ); + + CEikStatusPane* sp( iAvkonAppUi->StatusPane() ); + + TUid naviPaneUid( TUid::Uid( EEikStatusPaneUidNavi ) ); + + CAknNavigationControlContainer* naviPane = + static_cast< CAknNavigationControlContainer* >( sp->ControlL( naviPaneUid ) ); + + iDecorator = naviPane->ResourceDecorator(); + + iDecorator->MakeScrollButtonVisible( ETrue ); + + iDecorator->SetScrollButtonDimmed( + CAknNavigationDecorator::ELeftButton, ETrue ); + + iDecorator->SetScrollButtonDimmed( + CAknNavigationDecorator::ERightButton, EFalse ); + + iTabGroup = static_cast< CAknTabGroup* > ( iDecorator->DecoratedControl() ); + iTabGroup->SetObserver( this ); + } + +// ----------------------------------------------------------------------------- +// CHsContentControlListBox::LayoutControls +// +// ----------------------------------------------------------------------------- +// +void CHsContentControlListBox::LayoutControls() + { + iListBox->SetRect( Rect() ); + + TRect rect; + + AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen, rect ); + + iBgContext->SetRect( rect ); + } + +// ----------------------------------------------------------------------------- +// CHsContentControlListBox::PopulateListL +// +// ----------------------------------------------------------------------------- +// +void CHsContentControlListBox::PopulateListL() + { + if ( !iListBox->IsEmpty( KAknTreeIIDRoot ) ) + { + // Remove all + iListBox->RemoveItem( KAknTreeIIDRoot, EFalse ); + } + + delete iArray; + iArray = NULL; + + if ( iTabIndex == ETabActiveConfiguration ) + { + CHsContentInfo* activeApp = CHsContentInfo::NewL(); + CleanupStack::PushL( activeApp ); + + // Get active homescreen configuration + iHsCcApiClient->ActiveAppL( *activeApp ); + + _LIT( KActiveConfiguration, "Active configuration" ); + + TAknTreeItemID root = iListBox->AddNodeL( + KAknTreeIIDRoot, KActiveConfiguration, KFlags, EFalse ); + + CHsContentInfoArray* viewList = CHsContentInfoArray::NewL(); + CleanupStack::PushL( viewList ); + + // Get view list from the active configuration + iHsCcApiClient->ViewListL( *activeApp, *viewList ); + + _LIT( KView, "View " ); + + for ( TInt j = 0; j < viewList->Array().Count(); j++ ) + { + TBuf< 32 > viewname; + viewname = KView(); + viewname.AppendNum( j + 1 ); + + CHsContentInfo* view( viewList->Array()[j] ); + + TAknTreeItemID parent = iListBox->AddNodeL( + root, viewname, KFlags, EFalse ); + + CHsContentInfoArray* widgetList = CHsContentInfoArray::NewL(); + CleanupStack::PushL( widgetList ); + + // Get widget list from the view + iHsCcApiClient->WidgetListL( *view, *widgetList ); + + for ( TInt k = 0; k < widgetList->Array().Count(); k++ ) + { + CHsContentInfo* widget( widgetList->Array()[k] ); + + iListBox->AddLeafL( parent, widget->Name(), KFlags, EFalse ); + } + + CleanupStack::PopAndDestroy( widgetList ); + } + + CleanupStack::PopAndDestroy( viewList ); + + CleanupStack::PopAndDestroy( activeApp ); + } + else if ( iTabIndex == ETabConfigurations ) + { + _LIT( KConfigurations, "Configurations" ); + + TAknTreeItemID root = iListBox->AddNodeL( + KAknTreeIIDRoot, KConfigurations, KFlags, EFalse ); + + iArray = CHsContentInfoArray::NewL(); + + // Get all homescreen configurations + iHsCcApiClient->AppListL( *iArray ); + + _LIT( KConfiguration, "Configuration " ); + + for ( TInt i = 0; i < iArray->Array().Count(); i++ ) + { + TBuf< 32 > confname; + confname = KConfiguration(); + confname.AppendNum( i + 1 ); + + CHsContentInfo* app( iArray->Array()[i] ); + + iListBox->AddLeafL( root, confname, KFlags, EFalse ); + } + } + + else if ( iTabIndex == ETabViews ) + { + _LIT( KViews, "Views" ); + + TAknTreeItemID root = iListBox->AddNodeL( + KAknTreeIIDRoot, KViews, KFlags, EFalse ); + + iArray = CHsContentInfoArray::NewL(); + + // Get all homescreen views + iHsCcApiClient->ViewListL( *iArray ); + + _LIT( KView, "View " ); + + for ( TInt i = 0; i < iArray->Array().Count(); i++ ) + { + TBuf< 32 > viewname; + viewname = KView(); + viewname.AppendNum( i + 1 ); + + CHsContentInfo* view( iArray->Array()[i] ); + + iListBox->AddLeafL( root, viewname, KFlags, EFalse ); + } + } + + else if ( iTabIndex == ETabWidgets ) + { + _LIT( KWidgets, "Widgets" ); + + TAknTreeItemID root = iListBox->AddNodeL( + KAknTreeIIDRoot, KWidgets, KFlags, EFalse ); + + iArray = CHsContentInfoArray::NewL(); + + // Get all homescreen widgets + iHsCcApiClient->WidgetListL( *iArray ); + + for ( TInt i = 0; i < iArray->Array().Count(); i++ ) + { + CHsContentInfo* widget( iArray->Array()[i] ); + + iListBox->AddLeafL( root, widget->Name(), KFlags, EFalse ); + } + } + + DrawNow(); + } + +// ----------------------------------------------------------------------------- +// CHsContentControlListBox::PopulateList +// +// ----------------------------------------------------------------------------- +// +/*static*/ TInt CHsContentControlListBox::PopulateList( TAny* aAny ) + { + CHsContentControlListBox* self = + static_cast< CHsContentControlListBox* >( aAny ); + + TRAP_IGNORE( self->PopulateListL() ); + + return KErrNone; + } + +// End of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/mcsexample/data/MCSExample.rls --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/mcsexample/data/MCSExample.rls Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,45 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +// LOCALISATION STRINGS + +// Caption string for app. +#define qtn_caption_string "MCSExample" + +// First item in "Options" menu pane +#define qtn_command1 "Message" + +// Second item in "Options" menu pane +#define qtn_command2 "List all items" + +#define qtn_help "Help" + +#define qtn_about "About" + +// Third item in "Options" menu pane +#define qtn_exit "Exit" + +// When user requests ECommand1 event, text below is shown. +#define qtn_command1_text "MCS example application." + +#define qtn_loc_resource_file_1 "\\resource\\apps\\MCSExample_0xEB753B18" + +#define qtn_about_dialog_title "About" + +#define qtn_about_dialog_text "MCSExample Version 1.0.0\n\nAuthor: Jaakko Haukipuro\n\nSupport: \n\n(c) " + +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/mcsexample/data/MCSExample.rss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/mcsexample/data/MCSExample.rss Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,310 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +// RESOURCE IDENTIFIER +NAME MCSE // 4 letter ID + + +// INCLUDES +#include +#include +#include +#include +#include "MCSExample.hrh" +#include "MCSExample.rls" + +// RESOURCE DEFINITIONS +// ----------------------------------------------------------------------------- +// +// Define the resource file signature +// This resource should be empty. +// +// ----------------------------------------------------------------------------- +// +RESOURCE RSS_SIGNATURE + { + } + +// ----------------------------------------------------------------------------- +// +// Default Document Name +// +// ----------------------------------------------------------------------------- +// +RESOURCE TBUF r_default_document_name + { + buf="MCSE"; + } + +// ----------------------------------------------------------------------------- +// +// Define default menu and CBA key. +// +// ----------------------------------------------------------------------------- +// +RESOURCE EIK_APP_INFO + { + menubar = r_menubar; + cba = R_AVKON_SOFTKEYS_OPTIONS_EXIT; + } + + +// ----------------------------------------------------------------------------- +// +// r_menubar +// Main menubar +// +// ----------------------------------------------------------------------------- +// +RESOURCE MENU_BAR r_menubar + { + titles = + { + MENU_TITLE { menu_pane = r_menu; } + }; + } + + +// ----------------------------------------------------------------------------- +// +// r_menu +// Menu for "Options" +// +// ----------------------------------------------------------------------------- +// +RESOURCE MENU_PANE r_menu + { + items = + { + // added the new Options menu command here + MENU_ITEM + { + command = ECommand1; + txt = qtn_command1; + }, + MENU_ITEM + { + command = ECommand2; + txt = qtn_command2; + }, + MENU_ITEM + { + command = EHelp; + txt = qtn_help; + }, + MENU_ITEM + { + command = EAbout; + txt = qtn_about; + }, + MENU_ITEM + { + command = EAknSoftkeyExit; + txt = qtn_exit; + } + }; + } + +// ----------------------------------------------------------------------------- +// +// About dialog resource. +// +// ----------------------------------------------------------------------------- +// +RESOURCE DIALOG r_about_query_dialog + { + flags = EEikDialogFlagNoBorder | EEikDialogFlagNoShadow; + buttons = R_AVKON_SOFTKEYS_OK_EMPTY; + items= + { + DLG_LINE + { + type = EAknCtPopupHeadingPane; + id = EAknMessageQueryHeaderId; + itemflags = EEikDlgItemNonFocusing; + control = AVKON_HEADING + { + }; + }, + DLG_LINE + { + type = EAknCtMessageQuery; + id = EAknMessageQueryContentId; + control = AVKON_MESSAGE_QUERY + { + }; + } + }; + } + +RESOURCE DIALOG r_icon_query_dialog + { + flags = EGeneralQueryFlags; + buttons = R_AVKON_SOFTKEYS_OK_CANCEL; + form = r_icon_form; + } + +RESOURCE FORM r_icon_form + { + flags = EEikFormUseDoubleSpacedFormat|EEikFormEditModeOnly; + items = + { + DLG_LINE + { + type = EEikCtEdwin; + prompt = "Major skin ID"; + id = EMyFirstLine; + control = EDWIN + { + flags = EEikEdwinNoHorizScrolling | EEikEdwinResizable; + width = 30; + maxlength = 30; + // added to limit expanding in forms. + // If you want full screen use 6 here + max_view_height_in_lines = 1; + // if you have the line above, you must have this. + // It's calculable from LAF + base_line_delta = 21; + }; + }, + DLG_LINE + { + type = EEikCtEdwin; + prompt = "Minor skin ID"; + id = EMySecondLine; + control = EDWIN + { + flags = EEikEdwinNoHorizScrolling | EEikEdwinResizable; + width = 30; + maxlength = 30; + // added to limit expanding in forms. + // If you want full screen use 6 here + max_view_height_in_lines = 1; + // if you have the line above, you must have this. + // It's calculable from LAF + base_line_delta = 21; + }; + }, + DLG_LINE + { + type = EEikCtEdwin; + prompt = "MIF/MBM file name"; + id = EMyThirdLine; + control = EDWIN + { + flags = EEikEdwinNoHorizScrolling | EEikEdwinResizable; + width = 30; + maxlength = 30; + // added to limit expanding in forms. + // If you want full screen use 6 here + max_view_height_in_lines = 1; + // if you have the line above, you must have this. + // It's calculable from LAF + base_line_delta = 21; + }; + }, + DLG_LINE + { + type = EEikCtEdwin; + prompt = "MIF/MBM bitmap ID"; + id = EMyFourthLine; + control = EDWIN + { + flags = EEikEdwinNoHorizScrolling | EEikEdwinResizable; + width = 30; + maxlength = 30; + // added to limit expanding in forms. + // If you want full screen use 6 here + max_view_height_in_lines = 1; + // if you have the line above, you must have this. + // It's calculable from LAF + base_line_delta = 21; + }; + }, + DLG_LINE + { + type = EEikCtEdwin; + prompt = "MIF/MBM mask ID"; + id = EMyFifthLine; + control = EDWIN + { + flags = EEikEdwinNoHorizScrolling | EEikEdwinResizable; + width = 30; + maxlength = 30; + // added to limit expanding in forms. + // If you want full screen use 6 here + max_view_height_in_lines = 1; + // if you have the line above, you must have this. + // It's calculable from LAF + base_line_delta = 21; + }; + }, + DLG_LINE + { + type = EEikCtEdwin; + prompt = "Presenceicon"; + id = EMySixthLine; + control = EDWIN + { + flags = EEikEdwinNoHorizScrolling | EEikEdwinResizable; + width = 30; + maxlength = 30; + // added to limit expanding in forms. + // If you want full screen use 6 here + max_view_height_in_lines = 1; + // if you have the line above, you must have this. + // It's calculable from LAF + base_line_delta = 21; + }; + } + }; + } + + + +// ----------------------------------------------------------------------------- +// +// Resources for messages. +// +// ----------------------------------------------------------------------------- +// +RESOURCE TBUF32 r_caption_string { buf=qtn_caption_string; } +RESOURCE TBUF32 r_about_dialog_title { buf=qtn_about_dialog_title; } +RESOURCE TBUF r_about_dialog_text { buf=qtn_about_dialog_text; } +RESOURCE TBUF r_command1_text { buf=qtn_command1_text; } + + +// ---------------------------------------------------------------------------- +// +// r_localisable_app_info +// +// ---------------------------------------------------------------------------- +// +RESOURCE LOCALISABLE_APP_INFO r_localisable_app_info + { + short_caption = qtn_caption_string; + caption_and_icon = + CAPTION_AND_ICON_INFO + { + caption = qtn_caption_string; + + number_of_icons = 1; + icon_file = "\\resource\\apps\\MCSExample_0xEB753B18.mif"; + }; + } + +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/mcsexample/data/MCSExample_reg.rss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/mcsexample/data/MCSExample_reg.rss Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,35 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#include "MCSExample.hrh" +#include "MCSExample.rls" +#include +#include + +UID2 KUidAppRegistrationResourceFile +UID3 _UID3 + +RESOURCE APP_REGISTRATION_INFO + { + app_file="MCSExample_0xEB753B18"; + localisable_resource_file = qtn_loc_resource_file_1; + localisable_resource_id = R_LOCALISABLE_APP_INFO; + + embeddability=KAppNotEmbeddable; + newfile=KAppDoesNotSupportNewFile; + } + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/mcsexample/gfx/qgn_menu_MCSExample.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/mcsexample/gfx/qgn_menu_MCSExample.svg Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/mcsexample/group/Icons_scalable_dc.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/mcsexample/group/Icons_scalable_dc.mk Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,64 @@ +# +# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of "Eclipse Public License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.eclipse.org/legal/epl-v10.html". +# +# Initial Contributors: +# Nokia Corporation - initial contribution. +# +# Contributors: +# +# Description: +# + + +ifeq (WINS,$(findstring WINS, $(PLATFORM))) +ZDIR=$(EPOCROOT)epoc32\release\$(PLATFORM)\$(CFG)\Z +else +ZDIR=$(EPOCROOT)epoc32\data\z +endif + +TARGETDIR=$(ZDIR)\resource\apps +ICONTARGETFILENAME=$(TARGETDIR)\MCSExample_0xEB753B18.mif + +ICONDIR=..\gfx + +do_nothing : + @rem do_nothing + +MAKMAKE : do_nothing + +BLD : do_nothing + +CLEAN : + @echo ...Deleting $(ICONTARGETFILENAME) + del /q /f $(ICONTARGETFILENAME) + +LIB : do_nothing + +CLEANLIB : do_nothing + +# ---------------------------------------------------------------------------- +# NOTE: if you have JUSTINTIME enabled for your S60 3rd FP1 or newer SDK +# and this command crashes, consider adding "/X" to the command line. +# See +# ---------------------------------------------------------------------------- + +RESOURCE : $(ICONTARGETFILENAME) + +$(ICONTARGETFILENAME) : $(ICONDIR)\qgn_menu_MCSExample.svg + mifconv $(ICONTARGETFILENAME) \ + /c32 $(ICONDIR)\qgn_menu_MCSExample.svg + +FREEZE : do_nothing + +SAVESPACE : do_nothing + +RELEASABLES : + @echo $(ICONTARGETFILENAME) + +FINAL : do_nothing + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/mcsexample/group/MCSExample.mmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/mcsexample/group/MCSExample.mmp Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,81 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#include +#include +APP_LAYER_SYSTEMINCLUDE + + +TARGET MCSExample_0xEB753B18.exe +TARGETTYPE exe +UID 0x100039CE 0xEB753B18 + +SOURCEPATH ..\src +SOURCE MCSExample.cpp +SOURCE MCSExampleApplication.cpp +SOURCE MCSExampleAppView.cpp +SOURCE MCSExampleAppUi.cpp +SOURCE MCSExampleDocument.cpp +SOURCE mcspluginwatcher.cpp + +SOURCEPATH ..\data + +START RESOURCE MCSExample.rss +HEADER +TARGET MCSExample_0xEB753B18 +TARGETPATH resource\apps +END //RESOURCE + +START RESOURCE MCSExample_reg.rss +TARGET MCSExample_0xEB753B18_reg +TARGETPATH \private\10003a3f\apps +END //RESOURCE + + + +USERINCLUDE ..\inc + +SYSTEMINCLUDE \epoc32\include + +LIBRARY euser.lib +LIBRARY apparc.lib +LIBRARY cone.lib +LIBRARY eikcore.lib +LIBRARY eikcoctl.lib +LIBRARY eikctl.lib +LIBRARY avkon.lib +LIBRARY aknicon.lib +LIBRARY bafl.lib +LIBRARY commonengine.lib +LIBRARY aknnotify.lib +LIBRARY fbscli.lib +LIBRARY egul.lib +LIBRARY mcsmenu.lib +LIBRARY mcsextendedmenu.lib +LIBRARY eikdlg.lib + + +LANG SC + +VENDORID 0 +SECUREID 0xEB753B18 +CAPABILITY ReadUserData ReadDeviceData WriteDeviceData + +#ifdef ENABLE_ABIV2_MODE + DEBUGGABLE_UDEBONLY +#endif +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/mcsexample/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/mcsexample/group/bld.inf Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,27 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +PRJ_PLATFORMS +WINSCW ARMV5 GCCE + +PRJ_MMPFILES + +gnumakefile icons_scalable_dc.mk + +MCSExample.mmp + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/mcsexample/inc/MCSExample.hrh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/mcsexample/inc/MCSExample.hrh Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,42 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __MCSEXAMPLE_HRH__ +#define __MCSEXAMPLE_HRH__ + +#define _UID3 0xEB753B18 + +// MCSExample enumerate command codes +enum TMCSExampleIds + { + ECommand1 = 0x6001, // start value must not be 0 + ECommand2, + EHelp, + EAbout + }; + +enum TMyControlIds + { + EMyFirstLine = 100, + EMySecondLine, + EMyThirdLine, + EMyFourthLine, + EMyFifthLine, + EMySixthLine + }; + +#endif // __MCSEXAMPLE_HRH__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/mcsexample/inc/MCSExample.pan --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/mcsexample/inc/MCSExample.pan Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __MCSEXAMPLE_PAN__ +#define __MCSEXAMPLE_PAN__ + +/** MCSExample application panic codes */ +enum TMCSExamplePanics + { + EMCSExampleUi = 1 + // add further panics here + }; + +inline void Panic(TMCSExamplePanics aReason) + { + _LIT(applicationName, "MCSExample"); + User::Panic(applicationName, aReason); + } + +#endif // __MCSEXAMPLE_PAN__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/mcsexample/inc/MCSExampleAppUi.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/mcsexample/inc/MCSExampleAppUi.h Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,93 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __MCSEXAMPLEAPPUI_h__ +#define __MCSEXAMPLEAPPUI_h__ + +// INCLUDES +#include + +// FORWARD DECLARATIONS +class CMCSExampleAppView; + +// CLASS DECLARATION +/** + * CMCSExampleAppUi application UI class. + * Interacts with the user through the UI and request message processing + * from the handler class + */ +class CMCSExampleAppUi : public CAknAppUi + { +public: + // Constructors and destructor + + /** + * ConstructL. + * 2nd phase constructor. + */ + void ConstructL(); + + /** + * CMCSExampleAppUi. + * C++ default constructor. This needs to be public due to + * the way the framework constructs the AppUi + */ + CMCSExampleAppUi(); + + /** + * ~CMCSExampleAppUi. + * Virtual Destructor. + */ + virtual ~CMCSExampleAppUi(); + +private: + // Functions from base classes + + /** + * From CEikAppUi, HandleCommandL. + * Takes care of command handling. + * @param aCommand Command to be handled. + */ + void HandleCommandL(TInt aCommand); + + /** + * HandleStatusPaneSizeChange. + * Called by the framework when the application status pane + * size is changed. + */ + void HandleStatusPaneSizeChange(); + + /** + * From CCoeAppUi, HelpContextL. + * Provides help context for the application. + * size is changed. + */ + CArrayFix* HelpContextL() const; + +private: + // Data + + /** + * The application view + * Owned by CMCSExampleAppUi + */ + CMCSExampleAppView* iAppView; + + }; + +#endif // __MCSEXAMPLEAPPUI_h__ +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/mcsexample/inc/MCSExampleAppView.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/mcsexample/inc/MCSExampleAppView.h Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,163 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __MCSEXAMPLEAPPVIEW_h__ +#define __MCSEXAMPLEAPPVIEW_h__ + +// INCLUDES +#include +#include +#include +#include +#include // MEikListBoxObserver +#include + +class CMCSExampleWatcher; + +struct TMyData + { +public: // data + TBuf<256> majorID; + TBuf<256> minorID; + TBuf<256> iconFile; + TBuf<256> iconID; + TBuf<256> maskID; + TBuf<256> statusIcon; + TBool updated; + }; + +class CMyForm : public CAknForm + { +public: // construction + CMyForm( TMyData& aData ); + virtual ~CMyForm(); +public: // from CAknForm + //void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); + //void ProcessCommandL( TInt aCommandId ); + TBool SaveFormDataL(); + void DoNotSaveFormDataL(); + //void AddItemL() ; + void PreLayoutDynInitL(); + //MEikDialogPageObserver::TFormControlTypes + // ConvertCustomControlTypeToBaseControlType( TInt aControlType ) const; +protected: + TBool OkToExitL( TInt aButtonId ); + +private: + void LoadFormDataL(); +private: // data + TMyData& iData; + }; + + + +// CLASS DECLARATION +class CMCSExampleAppView : public CCoeControl, public MEikListBoxObserver + { +public: + // New methods + + /** + * NewL. + * Two-phased constructor. + * Create a CMCSExampleAppView object, which will draw itself to aRect. + * @param aRect The rectangle this view will be drawn to. + * @return a pointer to the created instance of CMCSExampleAppView. + */ + static CMCSExampleAppView* NewL(const TRect& aRect); + + /** + * NewLC. + * Two-phased constructor. + * Create a CMCSExampleAppView object, which will draw itself + * to aRect. + * @param aRect Rectangle this view will be drawn to. + * @return A pointer to the created instance of CMCSExampleAppView. + */ + static CMCSExampleAppView* NewLC(const TRect& aRect); + + /** + * ~CMCSExampleAppView + * Virtual Destructor. + */ + virtual ~CMCSExampleAppView(); + + void ListAllItemsL(); + +public: + // Functions from base classes + + /** + * From CCoeControl, Draw + * Draw this CMCSExampleAppView to the screen. + * @param aRect the rectangle of this view that needs updating + */ + void Draw(const TRect& aRect) const; + + /** + * From CoeControl, SizeChanged. + * Called by framework when the view size is changed. + */ + virtual void SizeChanged(); + + /** + * From CoeControl, HandlePointerEventL. + * Called by framework when a pointer touch event occurs. + * Note: although this method is compatible with earlier SDKs, + * it will not be called in SDKs without Touch support. + * @param aPointerEvent the information about this event + */ + virtual void HandlePointerEventL(const TPointerEvent& aPointerEvent); + + CCoeControl* ComponentControl( TInt aIndex) const; + + TInt CountComponentControls() const; + + void HandleListBoxEventL( CEikListBox* aListBox, TListBoxEvent aEventType ); + +private: + // Constructors + + /** + * ConstructL + * 2nd phase constructor. + * Perform the second phase construction of a + * CMCSExampleAppView object. + * @param aRect The rectangle this view will be drawn to. + */ + void ConstructL(const TRect& aRect); + + /** + * CMCSExampleAppView. + * C++ default constructor. + */ + CMCSExampleAppView(); + + CDesCArray* GetArrayL(CArrayPtr* aIcons); + void MakeListBoxL(void); + void UpdateScrollBar(CEikListBox* aListBox); + void ShowFormL( TInt aItemIndex); + + RMenu iMCSMenu; + CAknSingleLargeStyleListBox* iListBox; + RArray iItemArray; + /** MCS asynchronous operation watcher, owned */ + CMCSExampleWatcher* iWatcher; + }; + +#endif // __MCSEXAMPLEAPPVIEW_h__ +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/mcsexample/inc/MCSExampleApplication.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/mcsexample/inc/MCSExampleApplication.h Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,64 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __MCSEXAMPLEAPPLICATION_H__ +#define __MCSEXAMPLEAPPLICATION_H__ + +// INCLUDES +#include +#include "MCSExample.hrh" + +// UID for the application; +// this should correspond to the uid defined in the mmp file +const TUid KUidMCSExampleApp = + { + _UID3 + }; + +// CLASS DECLARATION + +/** + * CMCSExampleApplication application class. + * Provides factory to create concrete document object. + * An instance of CMCSExampleApplication is the application part of the + * AVKON application framework for the MCSExample example application. + */ +class CMCSExampleApplication : public CAknApplication + { +public: + // Functions from base classes + + /** + * From CApaApplication, AppDllUid. + * @return Application's UID (KUidMCSExampleApp). + */ + TUid AppDllUid() const; + +protected: + // Functions from base classes + + /** + * From CApaApplication, CreateDocumentL. + * Creates CMCSExampleDocument document object. The returned + * pointer in not owned by the CMCSExampleApplication object. + * @return A pointer to the created document object. + */ + CApaDocument* CreateDocumentL(); + }; + +#endif // __MCSEXAMPLEAPPLICATION_H__ +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/mcsexample/inc/MCSExampleDocument.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/mcsexample/inc/MCSExampleDocument.h Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,99 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __MCSEXAMPLEDOCUMENT_h__ +#define __MCSEXAMPLEDOCUMENT_h__ + +// INCLUDES +#include + +// FORWARD DECLARATIONS +class CMCSExampleAppUi; +class CEikApplication; + +// CLASS DECLARATION + +/** + * CMCSExampleDocument application class. + * An instance of class CMCSExampleDocument is the Document part of the + * AVKON application framework for the MCSExample example application. + */ +class CMCSExampleDocument : public CAknDocument + { +public: + // Constructors and destructor + + /** + * NewL. + * Two-phased constructor. + * Construct a CMCSExampleDocument for the AVKON application aApp + * using two phase construction, and return a pointer + * to the created object. + * @param aApp Application creating this document. + * @return A pointer to the created instance of CMCSExampleDocument. + */ + static CMCSExampleDocument* NewL(CEikApplication& aApp); + + /** + * NewLC. + * Two-phased constructor. + * Construct a CMCSExampleDocument for the AVKON application aApp + * using two phase construction, and return a pointer + * to the created object. + * @param aApp Application creating this document. + * @return A pointer to the created instance of CMCSExampleDocument. + */ + static CMCSExampleDocument* NewLC(CEikApplication& aApp); + + /** + * ~CMCSExampleDocument + * Virtual Destructor. + */ + virtual ~CMCSExampleDocument(); + +public: + // Functions from base classes + + /** + * CreateAppUiL + * From CEikDocument, CreateAppUiL. + * Create a CMCSExampleAppUi object and return a pointer to it. + * The object returned is owned by the Uikon framework. + * @return Pointer to created instance of AppUi. + */ + CEikAppUi* CreateAppUiL(); + +private: + // Constructors + + /** + * ConstructL + * 2nd phase constructor. + */ + void ConstructL(); + + /** + * CMCSExampleDocument. + * C++ default constructor. + * @param aApp Application creating this document. + */ + CMCSExampleDocument(CEikApplication& aApp); + + }; + +#endif // __MCSEXAMPLEDOCUMENT_h__ +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/mcsexample/inc/mcspluginwatcher.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/mcsexample/inc/mcspluginwatcher.h Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,97 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __MCSPLUGINWATCHER_H +#define __MCSPLUGINWATCHER_H + +#include + +class CMenuOperation; +class CMCSPluginEngine; +class CMCSExampleAppView; + + +/** + * + * This class implements MCS menu action watcher for async calls. + * + */ +class CMCSExampleWatcher: public CActive + { + public: + + + /** + * Two-phased constructor. + * + * @param aType + */ + static CMCSExampleWatcher* NewL( ); + + /** + * Destructor. + */ + virtual ~CMCSExampleWatcher(); + + /** + * Watch menu operation or notification. + * + * @param aOperation + */ + void Watch( CMenuOperation* aOperation, CMCSExampleAppView* aObserver ); + + + /** + * GetStatus + */ + TInt GetStatus(); + + private: + + /** + * Default constructor. + * + * @param aType + */ + CMCSExampleWatcher(); + + /** + * ConstructL + */ + void ConstructL(); + + /** + * Inherited from CActive class + */ + void RunL(); + + /** + * Inherited from CActive class + */ + void DoCancel(); + + private: + + /** + * Menu operation + * Owned + */ + CMenuOperation* iOperation; + CMCSExampleAppView* iObserver; + }; + +#endif /*__MCSPLUGINWATCHER_H*/ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/mcsexample/sis/MCSExample_S60_3_X_v_1_0_0.pkg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/mcsexample/sis/MCSExample_S60_3_X_v_1_0_0.pkg Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,37 @@ +; Installation file for MCSExample application +; +; This is an auto-generated PKG file by Carbide. +; This file uses variables specific to Carbide builds that will not work +; on command-line builds. If you want to use this generated PKG file from the +; command-line tools you will need to modify the variables with the appropriate +; values: $(EPOCROOT), $(PLATFORM), $(TARGET) +; +;Language - standard language definitions +&EN + +; standard SIS file header +#{"MCSExample"},(0xEB753B18),1,0,0 + +;Localised Vendor name +%{"Vendor-EN"} + +;Unique Vendor name +:"Vendor" + +;Supports Series 60 v 3.0 +[0x101F7961], 0, 0, 0, {"Series60ProductID"} + +;Files to install +;You should change the source paths to match that of your environment +; +"$(EPOCROOT)Epoc32\release\$(PLATFORM)\$(TARGET)\MCSExample_0xEB753B18.exe" -"!:\sys\bin\MCSExample_0xEB753B18.exe" +"$(EPOCROOT)Epoc32\data\z\resource\apps\MCSExample_0xEB753B18.rsc" -"!:\resource\apps\MCSExample_0xEB753B18.rsc" +"$(EPOCROOT)Epoc32\data\z\private\10003a3f\apps\MCSExample_0xEB753B18_reg.rsc" -"!:\private\10003a3f\import\apps\MCSExample_0xEB753B18_reg.rsc" +"$(EPOCROOT)Epoc32\data\z\resource\apps\MCSExample_0xEB753B18.mif" -"!:\resource\apps\MCSExample_0xEB753B18.mif" +;"..\help\MCSExample_0xEB753B18.hlp" -"!:\resource\help\MCSExample_0xEB753B18.hlp" + +; Add any installation notes if applicable +;"MCSExample.txt" -"!:\private\EB753B18\MCSExample.txt" + +;required for application to be covered by backup/restore facility +"..\sis\backup_registration.xml" -"!:\private\EB753B18\backup_registration.xml" diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/mcsexample/sis/backup_registration.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/mcsexample/sis/backup_registration.xml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,5 @@ + + + + + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/mcsexample/src/MCSExample.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/mcsexample/src/MCSExample.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,31 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +// INCLUDE FILES +#include +#include "MCSExampleApplication.h" + +LOCAL_C CApaApplication* NewApplication() + { + return new CMCSExampleApplication; + } + +GLDEF_C TInt E32Main() + { + return EikStart::RunApplication(NewApplication); + } + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/mcsexample/src/MCSExampleAppUi.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/mcsexample/src/MCSExampleAppUi.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,169 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +// INCLUDE FILES +#include +#include +#include +#include + +#include +#include "MCSExample.hrh" +#include "MCSExample.pan" +#include "MCSExampleApplication.h" +#include "MCSExampleAppUi.h" +#include "MCSExampleAppView.h" + + +// ============================ MEMBER FUNCTIONS =============================== + + +// ----------------------------------------------------------------------------- +// CMCSExampleAppUi::ConstructL() +// Symbian 2nd phase constructor can leave. +// ----------------------------------------------------------------------------- +// +void CMCSExampleAppUi::ConstructL() + { + // Initialise app UI with standard value. + BaseConstructL(CAknAppUi::EAknEnableSkin|CAknAppUi::EAknSingleClickCompatible); + + // Create view object + iAppView = CMCSExampleAppView::NewL(ClientRect()); + } +// ----------------------------------------------------------------------------- +// CMCSExampleAppUi::CMCSExampleAppUi() +// C++ default constructor can NOT contain any code, that might leave. +// ----------------------------------------------------------------------------- +// +CMCSExampleAppUi::CMCSExampleAppUi() + { + // No implementation required + } + +// ----------------------------------------------------------------------------- +// CMCSExampleAppUi::~CMCSExampleAppUi() +// Destructor. +// ----------------------------------------------------------------------------- +// +CMCSExampleAppUi::~CMCSExampleAppUi() + { + if (iAppView) + { + delete iAppView; + iAppView = NULL; + } + + } + +// ----------------------------------------------------------------------------- +// CMCSExampleAppUi::HandleCommandL() +// Takes care of command handling. +// ----------------------------------------------------------------------------- +// +void CMCSExampleAppUi::HandleCommandL(TInt aCommand) + { + switch (aCommand) + { + case EEikCmdExit: + case EAknSoftkeyExit: + Exit(); + break; + + case ECommand1: + { + + // Load a string from the resource file and display it + HBufC* textResource = StringLoader::LoadLC(R_COMMAND1_TEXT); + CAknInformationNote* informationNote; + + informationNote = new (ELeave) CAknInformationNote; + + // Show the information Note with + // textResource loaded with StringLoader. + informationNote->ExecuteLD(*textResource); + + // Pop HBuf from CleanUpStack and Destroy it. + CleanupStack::PopAndDestroy(textResource); + } + break; + case ECommand2: + { + iAppView->ListAllItemsL(); + } + break; + case EHelp: + { + + } + break; + case EAbout: + { + + CAknMessageQueryDialog* dlg = + new (ELeave) CAknMessageQueryDialog(); + dlg->PrepareLC(R_ABOUT_QUERY_DIALOG); + HBufC* title = iEikonEnv->AllocReadResourceLC( + R_ABOUT_DIALOG_TITLE); + dlg->QueryHeading()->SetTextL(*title); + CleanupStack::PopAndDestroy(); //title + HBufC* msg = iEikonEnv->AllocReadResourceLC(R_ABOUT_DIALOG_TEXT); + dlg->SetMessageTextL(*msg); + CleanupStack::PopAndDestroy(); //msg + dlg->RunLD(); + } + break; + default: + Panic( EMCSExampleUi); + break; + } + } +// ----------------------------------------------------------------------------- +// Called by the framework when the application status pane +// size is changed. Passes the new client rectangle to the +// AppView +// ----------------------------------------------------------------------------- +// +void CMCSExampleAppUi::HandleStatusPaneSizeChange() + { + iAppView->SetRect(ClientRect()); + } + +CArrayFix* CMCSExampleAppUi::HelpContextL() const + { +#warning "Please see comment about help and UID3..." + // Note: Help will not work if the application uid3 is not in the + // protected range. The default uid3 range for projects created + // from this template (0xE0000000 - 0xEFFFFFFF) are not in the protected range so that they + // can be self signed and installed on the device during testing. + // Once you get your official uid3 from Symbian Ltd. and find/replace + // all occurrences of uid3 in your project, the context help will + // work. Alternatively, a patch now exists for the versions of + // HTML help compiler in SDKs and can be found here along with an FAQ: + // http://www3.symbian.com/faq.nsf/AllByDate/E9DF3257FD565A658025733900805EA2?OpenDocument +#ifdef _HELP_AVAILABLE_ + CArrayFixFlat* array = new(ELeave)CArrayFixFlat(1); + CleanupStack::PushL(array); + array->AppendL(TCoeHelpContext(KUidMCSExampleApp, KGeneral_Information)); + CleanupStack::Pop(array); + return array; +#else + return NULL; +#endif + } + +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/mcsexample/src/MCSExampleAppView.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/mcsexample/src/MCSExampleAppView.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,462 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +// INCLUDE FILES +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include "MCSExampleAppView.h" +#include "mcspluginwatcher.h" +#include "MCSExample.hrh" + +_LIT( KMenuData, "matrixmenudata" ); + +CMyForm::CMyForm( TMyData& aData ) : iData( aData ) + { + } + +CMyForm::~CMyForm() + { + } + +void CMyForm::PreLayoutDynInitL() + { + CAknForm::PreLayoutDynInitL(); + LoadFormDataL(); + } + +void CMyForm::LoadFormDataL() + { + CEikEdwin* textEd1 = + (CEikEdwin*)Control( EMyFirstLine ); + textEd1->SetTextL( &iData.majorID ); + + CEikEdwin* textEd2 = + (CEikEdwin*)Control( EMySecondLine ); + textEd2->SetTextL( &iData.minorID ); + + CEikEdwin* textEd3 = + (CEikEdwin*)Control( EMyThirdLine ); + textEd3->SetTextL( &iData.iconFile ); + + CEikEdwin* textEd4 = + (CEikEdwin*)Control( EMyFourthLine ); + textEd4->SetTextL( &iData.iconID ); + + CEikEdwin* textEd5 = + (CEikEdwin*)Control( EMyFifthLine ); + textEd5->SetTextL( &iData.maskID ); + + CEikEdwin* textEd6 = + (CEikEdwin*)Control( EMySixthLine ); + textEd6->SetTextL( &iData.statusIcon ); + } + +TBool CMyForm::SaveFormDataL() + { + CEikEdwin* textEd1 = + (CEikEdwin*)Control( EMyFirstLine ); + textEd1->GetText( iData.majorID ); + + CEikEdwin* textEd2 = + (CEikEdwin*)Control( EMySecondLine ); + textEd2->GetText( iData.minorID ); + + CEikEdwin* textEd3 = + (CEikEdwin*)Control( EMyThirdLine ); + textEd3->GetText( iData.iconFile ); + + CEikEdwin* textEd4 = + (CEikEdwin*)Control( EMyFourthLine ); + textEd4->GetText( iData.iconID ); + + CEikEdwin* textEd5 = + (CEikEdwin*)Control( EMyFifthLine ); + textEd5->GetText( iData.maskID ); + + CEikEdwin* textEd6 = + (CEikEdwin*)Control( EMySixthLine ); + textEd6->GetText( iData.statusIcon ); + return ETrue; + } + +void CMyForm::DoNotSaveFormDataL() + { + LoadFormDataL(); + } + +TBool CMyForm::OkToExitL( TInt aButtonId ) + { + if ( aButtonId == EAknSoftkeyOk) + { + SaveFormDataL(); + iData.updated = ETrue; + } + else if( aButtonId == EAknSoftkeyCancel ) + { + iData.updated = EFalse; + } + return ETrue; + } + +CGulIcon* ConvertToGulIconLC( CAknIcon* aIcon ) + { + CGulIcon* icon = CGulIcon::NewL( aIcon->Bitmap(), aIcon->Mask() ); + CleanupStack::PushL( icon ); + // Detach bitmap and mask + aIcon->SetBitmap( NULL ); + aIcon->SetMask( NULL ); + return icon; + } + + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CMCSExampleAppView::NewL() +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +CMCSExampleAppView* CMCSExampleAppView::NewL(const TRect& aRect) + { + CMCSExampleAppView* self = CMCSExampleAppView::NewLC(aRect); + CleanupStack::Pop(self); + return self; + } + +// ----------------------------------------------------------------------------- +// CMCSExampleAppView::NewLC() +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +CMCSExampleAppView* CMCSExampleAppView::NewLC(const TRect& aRect) + { + CMCSExampleAppView* self = new (ELeave) CMCSExampleAppView; + CleanupStack::PushL(self); + self->ConstructL(aRect); + return self; + } + +// ----------------------------------------------------------------------------- +// CMCSExampleAppView::ConstructL() +// Symbian 2nd phase constructor can leave. +// ----------------------------------------------------------------------------- +// +void CMCSExampleAppView::ConstructL(const TRect& aRect) + { + // Create a window for this application view + CreateWindowL(); + + // Set the windows size + SetRect(aRect); + + // Activate the window, which makes it ready to be drawn + ActivateL(); + + iMCSMenu.OpenL( KMenuData ); + iWatcher = CMCSExampleWatcher::NewL(); + } + +// ----------------------------------------------------------------------------- +// CMCSExampleAppView::CMCSExampleAppView() +// C++ default constructor can NOT contain any code, that might leave. +// ----------------------------------------------------------------------------- +// +CMCSExampleAppView::CMCSExampleAppView() + { + // No implementation required + } + +// ----------------------------------------------------------------------------- +// CMCSExampleAppView::~CMCSExampleAppView() +// Destructor. +// ----------------------------------------------------------------------------- +// +CMCSExampleAppView::~CMCSExampleAppView() + { + iMCSMenu.Close(); + delete iListBox; + iItemArray.Close(); + delete iWatcher; + } + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void CMCSExampleAppView::ListAllItemsL() + { + + + CArrayPtr* icons =new( ELeave ) CAknIconArray(1); + CleanupStack::PushL(icons); + + iListBox->Model()->SetItemTextArray(GetArrayL(icons)); + iListBox->Model()->SetOwnershipType(ELbmOwnsItemArray); + // + // Inform the listbox of item additions. + // This should be done if you want your items displayed correctly + iListBox ->HandleItemAdditionL(); + + CleanupStack::Pop(icons); + CArrayPtr* oldArray = iListBox->ItemDrawer()->ColumnData()->IconArray(); + delete oldArray; + iListBox->ItemDrawer()->ColumnData()->SetIconArray(icons); + } + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void CMCSExampleAppView::MakeListBoxL() + { + TInt MySetIndex(0); + + if(iListBox) + { + MySetIndex = iListBox->CurrentItemIndex(); + } + + delete iListBox; + iListBox = NULL; + + iListBox = new( ELeave ) CAknSingleLargeStyleListBox(); + iListBox->ConstructL(this,EAknListBoxSelectionList); + iListBox->SetListBoxObserver( this ); + + iListBox->CreateScrollBarFrameL( ETrue ); + iListBox->ScrollBarFrame()->SetScrollBarVisibilityL( + CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto); + + iListBox->SetRect(Rect()); + + iListBox->View()->SetListEmptyTextL(_L("No data")); + + iListBox->ActivateL(); + + TInt ItemsCount = iListBox->Model()->ItemTextArray()->MdcaCount(); + + if(ItemsCount > MySetIndex && MySetIndex >= 0) + iListBox->SetCurrentItemIndex(MySetIndex); + else if(ItemsCount > 0) + iListBox->SetCurrentItemIndex(0); + + UpdateScrollBar(iListBox); + iListBox->DrawNow(); + } + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +CDesCArray* CMCSExampleAppView::GetArrayL(CArrayPtr* aIcons) +{ + TBuf<256> listString; + CDesCArrayFlat* myArray = new(ELeave)CDesCArrayFlat(1); + CleanupStack::PushL(myArray); + + const TInt rootId = iMCSMenu. RootFolderL(); + iItemArray.Reset(); + //CleanupClosePushL( itemArray ); + // Get all the items from MCS + iMCSMenu.GetItemsL( iItemArray, rootId, NULL, ETrue ); + + for( TInt i = 0; i < iItemArray.Count(); i++ ) + { + // Open the actual item + CMenuItem* menuItem = CMenuItem::OpenL( iMCSMenu, iItemArray[i] ); + CleanupStack::PushL( menuItem ); + + // Get the name of the item + TBool attrExists( EFalse ); + TPtrC attr = menuItem->GetAttributeL(_L("short_name" ), attrExists ); + + //Create listbox string + listString.Delete(0, 256); + listString.AppendNum( i ); + listString.Append( _L("\t")); + listString.Append( attr ); + myArray->AppendL( listString ); + + //Fetch the item icon from MCS + CAknIcon* icon = MenuIconUtility::GetItemIconL( *menuItem ); + CleanupStack::PushL( icon ); + if ( icon ) + { + CGulIcon* gIcon = ConvertToGulIconLC( icon ); + aIcons->AppendL( gIcon ); + CleanupStack::Pop( gIcon ); + } + CleanupStack::PopAndDestroy( icon ); + CleanupStack::PopAndDestroy( menuItem ); + } + CleanupStack::Pop(myArray); + return myArray; +} + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void CMCSExampleAppView::UpdateScrollBar(CEikListBox* aListBox) + { + if (aListBox) + { + TInt pos(aListBox->View()->CurrentItemIndex()); + if (aListBox->ScrollBarFrame()) + { + aListBox->ScrollBarFrame()->MoveVertThumbTo(pos); + } + } + } + +// ----------------------------------------------------------------------------- +// CMCSExampleAppView::Draw() +// Draws the display. +// ----------------------------------------------------------------------------- +// +void CMCSExampleAppView::Draw(const TRect& /*aRect*/) const + { + // Get the standard graphics context + CWindowGc& gc = SystemGc(); + + // Gets the control's extent + TRect drawRect(Rect()); + + // Clears the screen + gc.Clear(drawRect); + + } + +// ----------------------------------------------------------------------------- +// CMCSExampleAppView::SizeChanged() +// Called by framework when the view size is changed. +// ----------------------------------------------------------------------------- +// +void CMCSExampleAppView::SizeChanged() + { + TRAP_IGNORE( MakeListBoxL() ); + DrawNow(); + } + +// ----------------------------------------------------------------------------- +// CMCSExampleAppView::HandlePointerEventL() +// Called by framework to handle pointer touch events. +// Note: although this method is compatible with earlier SDKs, +// it will not be called in SDKs without Touch support. +// ----------------------------------------------------------------------------- +// +void CMCSExampleAppView::HandlePointerEventL( + const TPointerEvent& aPointerEvent) + { + + // Call base class HandlePointerEventL() + CCoeControl::HandlePointerEventL(aPointerEvent); + } + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +void CMCSExampleAppView::HandleListBoxEventL( CEikListBox* /*aListBox*/, TListBoxEvent aEventType ) + { + if( iListBox && aEventType == EEventItemSingleClicked ) + { + TInt index = iListBox->CurrentItemIndex(); + if( index < iItemArray.Count()) + { + ShowFormL( index ); + } + } + } + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +void CMCSExampleAppView::ShowFormL( TInt aItemIndex) + { + CMenuItem* menuItem = CMenuItem::OpenL( iMCSMenu, iItemArray[aItemIndex] ); + CleanupStack::PushL( menuItem ); + TBool attrExists( EFalse ); + TPtrC attr = menuItem->GetAttributeL(_L("short_name" ), attrExists ); + // Initialize form data. + TBool exists( EFalse );; + TMyData myData; + myData.majorID = menuItem->GetAttributeL( KMenuAttrIconSkinMajorId, exists ); + myData.minorID = menuItem->GetAttributeL( KMenuAttrIconSkinMinorId, exists ); + myData.iconFile = menuItem->GetAttributeL( KMenuAttrIconFile, exists ); + myData.iconID = menuItem->GetAttributeL( KMenuAttrIconId, exists ); + myData.maskID = menuItem->GetAttributeL( KMenuAttrMaskId, exists ); + // e.g. skin(0x101F86E3 0x1ee2) + myData.statusIcon = menuItem->GetAttributeL( _L("presenceicon"), exists ); + myData.updated = EFalse; + + // Launch the dialog to view/edit data + CAknForm* dlg = new ( ELeave ) CMyForm( myData ); + CleanupStack::PushL( dlg ); + dlg->ConstructL( 0 ); // default menu items only + CleanupStack::Pop( dlg ); + dlg->ExecuteLD( R_ICON_QUERY_DIALOG ); + // myData now contains the edited values. + + if( myData.updated ) + { + // Changes the main icon, if all values are empty then application icon is used. + // Piority 0 + menuItem->SetAttributeL(KMenuAttrIconSkinMajorId, myData.majorID ); + menuItem->SetAttributeL(KMenuAttrIconSkinMinorId, myData.minorID ); + // Pririty 1 + menuItem->SetAttributeL(KMenuAttrIconFile, myData.iconFile ); + menuItem->SetAttributeL(KMenuAttrIconId, myData.iconID ); + menuItem->SetAttributeL(KMenuAttrMaskId, myData.maskID ); + //Changes the presence icon + menuItem->SetAttributeL( _L("presenceicon"), myData.statusIcon ); + + CMenuOperation* operation = menuItem->SaveL( iWatcher->iStatus ); + // Deletes the operation after its completion + iWatcher->Watch( operation, this ); + } + CleanupStack::PopAndDestroy( menuItem ); + } + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +CCoeControl* CMCSExampleAppView::ComponentControl( TInt /*aIndex*/) const +{ + return iListBox; +} + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +TInt CMCSExampleAppView::CountComponentControls() const +{ + if(iListBox) + return 1; + else + return 0; +} +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/mcsexample/src/MCSExampleApplication.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/mcsexample/src/MCSExampleApplication.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,47 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +// INCLUDE FILES +#include "MCSExample.hrh" +#include "MCSExampleDocument.h" +#include "MCSExampleApplication.h" + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CMCSExampleApplication::CreateDocumentL() +// Creates CApaDocument object +// ----------------------------------------------------------------------------- +// +CApaDocument* CMCSExampleApplication::CreateDocumentL() + { + // Create an MCSExample document, and return a pointer to it + return CMCSExampleDocument::NewL(*this); + } + +// ----------------------------------------------------------------------------- +// CMCSExampleApplication::AppDllUid() +// Returns application UID +// ----------------------------------------------------------------------------- +// +TUid CMCSExampleApplication::AppDllUid() const + { + // Return the UID for the MCSExample application + return KUidMCSExampleApp; + } + +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/mcsexample/src/MCSExampleDocument.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/mcsexample/src/MCSExampleDocument.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,93 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +// INCLUDE FILES +#include "MCSExampleAppUi.h" +#include "MCSExampleDocument.h" + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CMCSExampleDocument::NewL() +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +CMCSExampleDocument* CMCSExampleDocument::NewL(CEikApplication& aApp) + { + CMCSExampleDocument* self = NewLC(aApp); + CleanupStack::Pop(self); + return self; + } + +// ----------------------------------------------------------------------------- +// CMCSExampleDocument::NewLC() +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +CMCSExampleDocument* CMCSExampleDocument::NewLC(CEikApplication& aApp) + { + CMCSExampleDocument* self = new (ELeave) CMCSExampleDocument(aApp); + + CleanupStack::PushL(self); + self->ConstructL(); + return self; + } + +// ----------------------------------------------------------------------------- +// CMCSExampleDocument::ConstructL() +// Symbian 2nd phase constructor can leave. +// ----------------------------------------------------------------------------- +// +void CMCSExampleDocument::ConstructL() + { + // No implementation required + } + +// ----------------------------------------------------------------------------- +// CMCSExampleDocument::CMCSExampleDocument() +// C++ default constructor can NOT contain any code, that might leave. +// ----------------------------------------------------------------------------- +// +CMCSExampleDocument::CMCSExampleDocument(CEikApplication& aApp) : + CAknDocument(aApp) + { + // No implementation required + } + +// --------------------------------------------------------------------------- +// CMCSExampleDocument::~CMCSExampleDocument() +// Destructor. +// --------------------------------------------------------------------------- +// +CMCSExampleDocument::~CMCSExampleDocument() + { + // No implementation required + } + +// --------------------------------------------------------------------------- +// CMCSExampleDocument::CreateAppUiL() +// Constructs CreateAppUi. +// --------------------------------------------------------------------------- +// +CEikAppUi* CMCSExampleDocument::CreateAppUiL() + { + // Create the application user interface, and return a pointer to it; + // the framework takes ownership of this object + return new (ELeave) CMCSExampleAppUi; + } + +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/examples/mcsexample/src/mcspluginwatcher.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/mcsexample/src/mcspluginwatcher.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,94 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Menu item operation watcher. +* +*/ + +#include +#include "mcspluginwatcher.h" +#include "MCSExampleAppView.h" + +// --------------------------------------------------------------------------- +// two-phased constructor +// --------------------------------------------------------------------------- +CMCSExampleWatcher* CMCSExampleWatcher::NewL( ) + { + CMCSExampleWatcher* self = new (ELeave) CMCSExampleWatcher( ); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------------------------- +// default constructor +// --------------------------------------------------------------------------- +CMCSExampleWatcher::CMCSExampleWatcher( ) + : CActive( CActive::EPriorityStandard ) + { + CActiveScheduler::Add( this ); + } + +// --------------------------------------------------------------------------- +// destructor +// --------------------------------------------------------------------------- +CMCSExampleWatcher::~CMCSExampleWatcher() + { + Cancel(); + } + +// --------------------------------------------------------------------------- +// second phase constructor +// --------------------------------------------------------------------------- +void CMCSExampleWatcher::ConstructL() + { + + } + +// --------------------------------------------------------------------------- +// Watch Async +// --------------------------------------------------------------------------- +void CMCSExampleWatcher::Watch( CMenuOperation* aOperation, CMCSExampleAppView* aObserver ) + { + iObserver = aObserver; + __ASSERT_DEBUG( KRequestPending == iStatus.Int(), User::Invariant() ); + //__ASSERT_DEBUG( !iOperation, User::Invariant() ); + iOperation = aOperation; + SetActive(); + } + +// --------------------------------------------------------------------------- +// Inherited from CActive class +// --------------------------------------------------------------------------- +void CMCSExampleWatcher::RunL() + { + iObserver->ListAllItemsL(); + delete iOperation; + iOperation = NULL; + } + +// --------------------------------------------------------------------------- +// Inherited from CActive class +// --------------------------------------------------------------------------- +void CMCSExampleWatcher::DoCancel() + { + delete iOperation; + iOperation = NULL; + } + +TInt CMCSExampleWatcher::GetStatus() + { + return iStatus.Int(); + } + diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/inc/xnappuiadapter.h --- a/idlehomescreen/inc/xnappuiadapter.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/inc/xnappuiadapter.h Fri Sep 17 15:37:16 2010 +0100 @@ -40,6 +40,7 @@ class CXnEffectManager; class MHsContentControl; class CXnItemActivator; +class CXnViewSwitcher; // Class declaration /** @@ -317,6 +318,13 @@ */ void ShowFocus(); + /** + * View switcher helper. + * + * @since S60 5.0 + */ + CXnViewSwitcher* ViewSwitcher(); + private: // Data @@ -341,6 +349,12 @@ * Own. */ TXnUiEngineAppIf* iUiEngineAppIf; + + /** + * View switcher scrolls view when finger follow is used. + * Own. + */ + CXnViewSwitcher* iViewSwitcher; }; #endif diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/inc/xncontroladapter.h --- a/idlehomescreen/inc/xncontroladapter.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/inc/xncontroladapter.h Fri Sep 17 15:37:16 2010 +0100 @@ -352,6 +352,13 @@ */ IMPORT_C void DrawContentImage() const; + /* + * Checks if widget is Gesture destination node. + * + * @return ETrue if widget is Gesture destination. + */ + TBool IsWidgetGestureDest(); + protected: /** * From CCoeControl. @@ -430,11 +437,6 @@ * Get child adapter list i.e which are not window owning controls */ RPointerArray< CXnControlAdapter >& ChildAdapters(); - - /** - * Determines wheter control refuses focus loss - */ - virtual TBool RefusesFocusLoss() const { return EFalse; }; /** * Routes the data stream for the external rendering plugin. diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/inc/xnnodeimpl.h --- a/idlehomescreen/inc/xnnodeimpl.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/inc/xnnodeimpl.h Fri Sep 17 15:37:16 2010 +0100 @@ -893,10 +893,6 @@ /** * Find next node located aDirection from aNode. */ - CXnNode* FindNextNodeL( - RPointerArray< CXnNode >& aArray, - CXnNode& aNode, - TInt aDirection ); /** * Gets namespace of node diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/inc/xnnodepluginif.h --- a/idlehomescreen/inc/xnnodepluginif.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/inc/xnnodepluginif.h Fri Sep 17 15:37:16 2010 +0100 @@ -183,7 +183,15 @@ * @return ETrue if node is focused. */ IMPORT_C TBool IsFocusedState(); - + + /** + * Is the node in edit state + * + * @since Series 60 3.1 + * @return ETrue if node is in edit state. + */ + IMPORT_C TBool IsEditState(); + /** * Get node type * diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/inc/xnproperty.h --- a/idlehomescreen/inc/xnproperty.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/inc/xnproperty.h Fri Sep 17 15:37:16 2010 +0100 @@ -166,16 +166,22 @@ } namespace clock { - _LIT8(KS60Format, "_s60-format"); + _LIT8( KS60Format, "_s60-format" ); namespace format { - _LIT8(KDigital, "digital"); - _LIT8(KAnalog, "analog"); + _LIT8( KDigital, "digital" ); + _LIT8( KAnalog, "analog" ); } - - _LIT8(KS60AmPmFontSize, "_s60-ampm-font-size" ); - _LIT8(KS60DigitalFontSize, "_s60-digital-font-size"); + _LIT8( KS60AmPmFontSize, "_s60-ampm-font-size" ); + _LIT8( KS60DigitalFontSize, "_s60-digital-font-size" ); _LIT8( KS60DateFontSize, "_s60-date-font-size" ); + _LIT8( KS60FontSize, "_s60-font-size" ); + _LIT8( KFace, "face" ); + _LIT8( KFace12, "face12" ); + _LIT8( KFace24, "face24" ); + _LIT8( KDate, "date" ); + _LIT8( KDay, "day" ); + _LIT8( KAmpm, "ampm" ); } namespace volumecontrol { diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/inc/xntexteditor.h --- a/idlehomescreen/inc/xntexteditor.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/inc/xntexteditor.h Fri Sep 17 15:37:16 2010 +0100 @@ -43,26 +43,16 @@ public: // New functions /** - * Sets the new text to the underlying CEikEdvin + * Sets the new text to the underlying CEikEdwin * @param aText The new content */ virtual void SetTextL(const TDesC& aText) = 0; /** - * Returns the text contained in the underlying CEikEdvin + * Returns the text contained in the underlying CEikEdwin * @return HBufC* The text */ virtual const HBufC* Text() = 0; - - /** - * Handles editor events - * - * @since S60 5.2 - * @param aReason, editor event - */ - virtual void HandleEditorEvent( TInt aReason ) = 0; - - private: }; } @@ -75,18 +65,6 @@ { public: -/** - * Editor events - */ - enum TEditorEvent - { - KActivateTextEditor, - KDeactivateTextEditor, - KRemoveSplitInputFromStack, - KKeepSplitInputInStack - }; -public: - /** * 2 phase construction. */ @@ -100,25 +78,17 @@ public: // New functions /** - * Sets the new content to the underlying CEikEdvin + * Sets the new content to the underlying CEikEdwin * @param aText The new content */ void SetTextL(const TDesC& aText); /** - * Returns the text contained in the underlying CEikEdvin + * Returns the text contained in the underlying CEikEdwin * @return HBufC* The text */ const HBufC* Text(); - /** - * Handles editor events - * - * @since S60 5.2 - * @param aReason, editor event - */ - void HandleEditorEvent( TInt aReason ); - public: // from CCoeControl /** diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/inc/xnuiengine.h --- a/idlehomescreen/inc/xnuiengine.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/inc/xnuiengine.h Fri Sep 17 15:37:16 2010 +0100 @@ -82,6 +82,18 @@ void RenderUIL( CXnNode* aNode = NULL ); /** + * Calculates the layout of the UI and renders it. + * This generates full re-layout starting from the given node, + * regardless of the current dirty set or the active view. + * I.e. this can be used to layout an inactive view. + * + * @since Series 60 5.2 + * @param aNode Starting point for the layout + * @exception KXnErrLoadLayoutFileFailed Loading the layout file failed. + */ + void RenderFromNodeL( CXnNode& aNode ); + + /** * Calculates the layout of the UI. * * @since Series 60 3.1 @@ -90,6 +102,17 @@ void LayoutUIL( CXnNode* aNode = NULL ); /** + * Calculates the layout of the UI. + * This generates full re-layout starting from the given node, + * regardless of the current dirty set or the active view. + * I.e. this can be used to layout an inactive view. + * + * @since Series 60 5.2 + * @param aNode Starting point for the layout + */ + void LayoutFromNodeL( CXnNode& aNode ); + + /** * Gets the root node of the UI. Ownership is not transferred. * * @since Series 60 3.1 @@ -444,7 +467,7 @@ * @param aNode Editor Node * @param TBool True if partial input is open */ - void EnablePartialTouchInput( CXnNode& aNode, TBool aEnable ); + void EnablePartialTouchInput( CXnNode* aNode, TBool aEnable ); /** * Is partial input active diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/inc/xnuienginepluginif.h --- a/idlehomescreen/inc/xnuienginepluginif.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/inc/xnuienginepluginif.h Fri Sep 17 15:37:16 2010 +0100 @@ -256,24 +256,15 @@ * @since Series 60 5.0 */ IMPORT_C void DisableRenderUiLC(); - - /** - * Enables partial touch input - * - * @since Series 60 5.2 - * @param aNode Editor Node - * @param TBool True if partial input is open - */ - IMPORT_C void EnablePartialTouchInput( CXnNodePluginIf& aNode, TBool aEnable ); - + /** * Checks if text editor is focused or partioal touch input open. * - * @since Series 60 5.2 + * @since S60 5.2 * @return TBool True if partial input is open or editor focused */ IMPORT_C TBool IsTextEditorActive(); - + private: // Data diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/inc/xnviewmanager.h --- a/idlehomescreen/inc/xnviewmanager.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/inc/xnviewmanager.h Fri Sep 17 15:37:16 2010 +0100 @@ -62,6 +62,8 @@ // new functions virtual void NotifyViewActivatedL( const CXnViewData& aViewData ) = 0; + virtual void NotifyViewLoadedL( const CXnViewData& aViewData ) = 0; + virtual void NotifyViewDeactivatedL( const CXnViewData& aViewData ) = 0; virtual void NotifyConfigureWidgetL( @@ -72,9 +74,9 @@ virtual void NotifyWidgetRemovalL( const CXnPluginData& aPluginData ) = 0; - virtual void NotifyViewAdditionL( const CXnPluginData& aPluginData ) = 0; + virtual void NotifyViewAdditionL( const CXnViewData& aViewData ) = 0; - virtual void NotifyViewRemovalL( const CXnPluginData& aPluginData ) = 0; + virtual void NotifyViewRemovalL( const CXnViewData& aViewData ) = 0; virtual void NotifyAllViewsLoadedL() = 0; @@ -173,10 +175,12 @@ const CHsContentInfo& aContentInfo, CXnPluginData& aPluginData ); - void ActivateNextViewL( TInt aEffectId = 0 ); + void ActivateNextViewL(); - void ActivatePreviousViewL( TInt aEffectId = 0 ); + void ActivatePreviousViewL(); + void ActivateViewL( CXnViewData& aViewData, TUid aEffect, TBool aUpdateBg = ETrue ); + TInt AddViewL( const CHsContentInfo& aInfo ); void AddViewL( TInt aEffectId = 0 ); @@ -213,7 +217,9 @@ void HandleErrorNotes( const TInt aError ) const; void PublishersReadyL( CXnViewData& aViewData, TInt aResult ); - + + void NotifyViewLoadedL( const CXnViewData& aViewData ); + void NotifyAllViewsLoadedL(); private: @@ -241,10 +247,11 @@ CXnViewData* ViewData( CXnNode& aNode ) const; +public: CXnViewData& PreviousViewData() const; - CXnViewData& NextViewData() const; - + +private: void UpdateCachesL(); void ReportWidgetAmountL( const CXnViewData& aViewData ); diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/inc/xnviewswitcher.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/inc/xnviewswitcher.h Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,279 @@ +/* +* Copyright (c) 2002-2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: View switcher. +* +*/ + +#ifndef _XNVIEWSWITCHER_H +#define _XNVIEWSWITCHER_H + +// System includes +#include +#include + +// User includes +#include "xnviewmanager.h" + +class CXnViewControlAdapter; + +using namespace AknTouchGestureFw; + +// Class declaration + +/** + * This class handles view swithing when "finger follow" feature is used. + * The windows of current, next and previous views are moved along with the finger. + * Final view switch animation has been handled here as well. + * +* @ingroup group_xnlayoutengine +* @lib xn3layoutengine.lib +* @since S60 5.2 +*/ +NONSHARABLE_CLASS( CXnViewSwitcher ) : public CBase + { + + /** + * Important information of a view to be dragged. + */ + struct TViewInformation + { + CXnControlAdapter* iAdapter; + CXnViewData* iViewData; + TBool iReadyToDraw; + TBool iBgDrawn; + }; + + /** + * States for the view swithcing using "finger follow". + */ + enum TViewSwitchState + { + KViewSwitchIdle, + KViewSwitchBegin, + KViewSwitchDragOngoing, + KViewSwitchScroll + }; + +public: + // Constructors and destructor + + /** + * 2 phase construction. + */ + static CXnViewSwitcher* NewL(); + + /** + * Destructor. + */ + ~CXnViewSwitcher(); + + /** + * Is finger follow feature activated + */ + TBool FingerFollowSupported() const; + + /** + * Try to handle and consume pointer event + */ + TBool ProcessPointerEventL( const TPointerEvent& aPointerEvent ); + + /** + * Check if flick or some gesture occured during drag + */ + void TouchGesture( TAknTouchGestureFwType& aTouchGesture ); + + /** + * Updates the client rect + */ + void SizeChanged( TRect aRect ); + + +private: // constructors + + /** + * C++ default constructor + */ + CXnViewSwitcher(); + + /** + * 2nd phase constructor + */ + void ConstructL(); + + /** + * View scroll timer callback + */ + static TInt TimerCallback( TAny *aPtr ); + + /** + * Gets value of finger follow support from AI repository + */ + TBool IsFingerFollowSupportedL() const; + + /** + * Adjusts current view position. Used in final animation. + */ + void Scroll(); + + /** + * Moves windows according to the current view position. + */ + void DoScroll(); + + /** + * Start view dragging by setting up view control adapters + */ + TBool SetupViewsL(); + + /** + * Layouts and renders the given view out of sight. + */ + void PrepareViewL( CXnViewSwitcher::TViewInformation& aView ); + + /** + * Removes focused node and sends the up event in order to prevent activate triggers and long tapping. + */ + void StartViewDraggingL(); + + /** + * Stop view dragging and start view scroll + */ + void StartViewScrolling(); + + /** + * View scrolling ended. + */ + void ViewSwitchEndedL(); + + /** + * Get view data + */ + CXnViewData* ViewData( CXnViewData& aCurrentViewData, TInt aView ); + + /** + * Clear view information of current, next and previous views. + */ + void ClearViews(); + + /** + * Sets whether next, current or previous view is to be activeted. + * Updated also background if needed. + */ + void UpdateViewToBeActivated( TInt aOffset ); + + /** + * Changes background image and runs NGA effect. + */ + void ChangeBackground( CXnViewData& aCurrent, CXnViewData& aNext ); + +private: // data + + /** + * AppUi + */ + CXnAppUiAdapter& iAppUi; + + /** + * Client rect set by UI Engine + */ + TRect iRect; + + /** + * Whether the feature is supported or not. ETrue when finger follow is supported + */ + TBool iFingerFollowSupported; + + /** + * Timer for animating view switch. + * Own. + */ + CPeriodic* iTimer; + + /** + * Important information of the current view. + */ + TViewInformation iCurrentView; + + /** + * Important information of the view coming from the right side. + */ + TViewInformation iNextView; + + /** + * Important information of the view coming from the left side. + */ + TViewInformation iPreviousView; + + /** + * Flick gesture type. + */ + //TAknTouchGestureFwType iTouchGesture; + + /** + * The state of view switch. + */ + TViewSwitchState iViewSwitchState; + + /** + * Scroll speed in pixels. + */ + TInt iScrollSpeed; + + /** + * Total scroll distance from the beginning in mode KViewSwitchDragOngoing. + * Remaining distance to be scrolled in mode KViewSwitchScroll. + */ + TInt iScrollDistance; + + /** + * Measures the scroll distance in current direction. I.e. if direction changes, + * this is set to 0. + */ + TInt iScrollDirectionDistance; + + /** + * Position of the current view in the beginning. + */ + TPoint iViewStartPosition; + + /** + * Position in the beginning. + */ + TPoint iStartPosition; + + /** + * Current view position from the beginning. + */ + TPoint iViewPosition; + + /** + * View to be activated. + */ + TInt iActivateView; + + /** + * Tick amount to be used when calculating drag speed. + */ + TInt iTickAmount; + + /** + * Scroll direction. + */ + TInt iDirection; + + }; + +#endif // _XNVIEWSWITCHER_H + +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/nativeuicontroller/group/ainatiui.mmp --- a/idlehomescreen/nativeuicontroller/group/ainatiui.mmp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/nativeuicontroller/group/ainatiui.mmp Fri Sep 17 15:37:16 2010 +0100 @@ -20,7 +20,7 @@ #include #include -TARGET Ai3NatiUi.dll +TARGET ai3natiui.dll TARGETTYPE PLUGIN UID 0x10009D8D AI_UID_ECOM_DLL_UICONTROLLER_NATIVE VENDORID VID_DEFAULT @@ -45,12 +45,12 @@ START RESOURCE ai3natiui.rss -TARGET Ai3NatiUi.rsc +TARGET ai3natiui.rsc END START RESOURCE ai3nativeui.rss HEADER -TARGET AiNativeUi.rsc +TARGET ainativeui.rsc TARGETPATH APP_RESOURCE_DIR LANGUAGE_IDS END diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/nativeuicontroller/src/aidialogrenderer.cpp --- a/idlehomescreen/nativeuicontroller/src/aidialogrenderer.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/nativeuicontroller/src/aidialogrenderer.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -25,7 +25,7 @@ #include #include #include -#include +#include #include "aidialogrenderer.h" #include "ainativeuiplugins.h" #ifdef __COVER_DISPLAY @@ -48,7 +48,7 @@ #include // for CPsetSAObserver #include // for GSM-specific error messages -#include // for resource IDs +#include // for resource IDs #include // for KCRUidCoreApplicationUIs, TCoreAppUIsNetworkConnectionAllowed #include diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/nativeuicontroller/src/ainotifierrenderer.cpp --- a/idlehomescreen/nativeuicontroller/src/ainotifierrenderer.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/nativeuicontroller/src/ainotifierrenderer.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -22,7 +22,7 @@ #include #include #include -#include +#include #include "ainotifierrenderer.h" #include "ainativeuiplugins.h" diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/nativeuicontroller/src/aisoftkeyrenderer.cpp --- a/idlehomescreen/nativeuicontroller/src/aisoftkeyrenderer.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/nativeuicontroller/src/aisoftkeyrenderer.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -33,7 +33,7 @@ #include #include -#include +#include #include "ainativeui.hrh" #include "aisoftkeyrenderer.h" diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/nativeuicontroller/src/aistatuspanel.cpp --- a/idlehomescreen/nativeuicontroller/src/aistatuspanel.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/nativeuicontroller/src/aistatuspanel.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -355,6 +355,8 @@ void CAiStatusPanel::SetNaviPaneTextL( const TDesC& aText ) { + __PRINT(__DBG_FORMAT("XAI: CAiStatusPanel::SetNaviPaneTextL aText = %S"), + &aText ); delete iNaviPaneText; iNaviPaneText = NULL; if ( !AknStatuspaneUtils::FlatLayoutActive() ) @@ -368,6 +370,9 @@ void CAiStatusPanel::SetTitlePaneTextL( const TDesC& aText ) { + __PRINT(__DBG_FORMAT("XAI: CAiStatusPanel::SetTitlePaneTextL aText = %S"), + &aText ); + HBufC* temp = aText.AllocL(); delete iTitlePaneText; iTitlePaneText = temp; @@ -395,18 +400,22 @@ void CAiStatusPanel::StopTitlePaneScrollingL() { + __PRINTS("XAI: CAiStatusPanel::StopTitlePaneScrollingL"); // stop scrolling if( iTextInTitlePane && iTitlePane->Text() ) { + __PRINTS("XAI: stop scrolling"); iTitlePane->SetTextL( *iTitlePane->Text(), EFalse ); } } void CAiStatusPanel::ScrollTitlePaneTextL() { + __PRINTS("XAI: CAiStatusPanel::ScrollTitlePaneTextL"); // start scrolling if ( iTextInTitlePane && iTitlePane->Text() ) { + __PRINTS("XAI: start scrolling"); iTitlePane->SetTextL( *iTitlePane->Text(), ETrue ); } } diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/nativeuicontroller/src/aistatuspanetouchui.cpp --- a/idlehomescreen/nativeuicontroller/src/aistatuspanetouchui.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/nativeuicontroller/src/aistatuspanetouchui.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -30,7 +30,7 @@ #include #include #include -#include +#include // User includes #include "aistrcnv.h" @@ -334,8 +334,9 @@ iProfileNamePointerArray.Remove( aIndex - 1); } - HBufC* name = aText.AllocL(); - iProfileNamePointerArray.Insert( name, aIndex - 1 ); + HBufC* name = aText.AllocLC(); + iProfileNamePointerArray.InsertL( name, aIndex - 1 ); + CleanupStack::Pop( name ); break; } default: diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/nativeuicontroller/src/aistyluspopupmenucontent.cpp --- a/idlehomescreen/nativeuicontroller/src/aistyluspopupmenucontent.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/nativeuicontroller/src/aistyluspopupmenucontent.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -108,14 +108,15 @@ flags = KAknButtonTextLeft | KAknButtonSizeFitText | KAknButtonNoFrame; CAknButton* item = CAknButton::NewL( NULL, NULL, NULL, NULL, aItem, KNullDesC, flags, 0 ); - + CleanupStack::PushL( item ); item->SetTextFont( AknLayoutUtils::FontFromId( AknLayoutScalable_Avkon:: list_single_popup_submenu_pane_t1( 0 ).LayoutLine().FontId() ) ); item->SetBackground( Background() ); item->SetObserver( &aObserver ); - iItems.Append( item ); - iCommands.Append( aCommandId ); + iItems.AppendL( item ); + CleanupStatck::Pop( item ); + iCommands.AppendL( aCommandId ); SizeChanged(); } diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/nativeuicontroller/src/aititlepanerenderer.cpp --- a/idlehomescreen/nativeuicontroller/src/aititlepanerenderer.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/nativeuicontroller/src/aititlepanerenderer.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -17,7 +17,7 @@ // System includes #include -#include +#include #include // User includes @@ -105,6 +105,7 @@ } default: { + __PRINTS( "XAI: Rendering title pane > different content - leave"); User::Leave( KErrNotFound ); break; } @@ -112,6 +113,7 @@ } else { + __PRINTS( "XAI: Rendering title pane > Uid mismatch - leave"); User::Leave( KErrNotFound ); } } @@ -150,12 +152,13 @@ // We're publishing bitmap -> set text as invalid iStatusPanel.SetTitlePaneTextL( KNullDesC ); iStatusPanel.RenderTitlePaneL(); - __PRINTS("XAI: Rendering title pane - done"); + __PRINTS("XAI: Rendering title pane - done"); } break; } default: { + __PRINTS( "XAI: Rendering title pane > different content - leave"); User::Leave( KErrNotFound ); break; } @@ -163,6 +166,7 @@ } else { + __PRINTS( "XAI: Rendering title pane > Uid mismatch - leave"); User::Leave( KErrNotFound ); } } @@ -175,6 +179,8 @@ void CAiTitlePaneRenderer::DoPublishL( CHsContentPublisher& aPlugin, TInt aContent, TInt aResource, TInt /*aIndex*/ ) { + __PRINT(__DBG_FORMAT("XAI: CAiTitlePaneRenderer::DoPublishL - aContent %d"), aContent ); + const THsPublisherInfo& info( aPlugin.PublisherInfo() ); if( info.Uid() == KDeviceStatusPluginUid ) @@ -190,10 +196,12 @@ iStatusPanel.RenderTitlePaneL(); CleanupStack::PopAndDestroy(text); //text + __PRINTS("XAI: Rendering title pane - done"); break; } default: { + __PRINTS( "XAI: Rendering title pane > different content - leave"); User::Leave( KErrNotFound ); break; } @@ -201,6 +209,7 @@ } else { + __PRINTS( "XAI: Rendering title pane > Uid mismatch - leave"); User::Leave( KErrNotFound ); } } @@ -213,7 +222,7 @@ void CAiTitlePaneRenderer::DoCleanL( CHsContentPublisher& aPlugin, TInt aContent ) { - __PRINT(__DBG_FORMAT("XAI: Clean title pane - %d"), aContent ); + __PRINT(__DBG_FORMAT("XAI: Clean title pane - aContent %d"), aContent ); const THsPublisherInfo& info( aPlugin.PublisherInfo() ); @@ -233,13 +242,15 @@ default: { - User::Leave( KErrNotFound ); + __PRINTS( "XAI: clean > different content - leave"); + User::Leave( KErrNotFound ); break; } }; } else { + __PRINTS( "XAI: clean > Uid mismatch - leave"); User::Leave( KErrNotFound ); } } diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/nativeuicontroller/src/aitoolbarrenderer.cpp --- a/idlehomescreen/nativeuicontroller/src/aitoolbarrenderer.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/nativeuicontroller/src/aitoolbarrenderer.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -36,7 +36,7 @@ #include "ainativeuiplugins.h" -#include +#include #include "debug.h" using namespace AiNativeUiController; @@ -337,8 +337,10 @@ if ( index >= iButtons.Count() ) { button = CAiToolbarButton::NewL(); + CleanupStack::PushL( button ); button->SetShortcutId( aShortcutId ); - iButtons.Append( button ); + iButtons.AppendL( button ); + CleanupStatck::Pop( button ); } // Use the old button diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/nativeuicontroller/src/appui.cpp --- a/idlehomescreen/nativeuicontroller/src/appui.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/nativeuicontroller/src/appui.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -44,7 +44,7 @@ #include "application.h" #include "nativeuicontroller.h" #include "aifweventhandler.h" -#include +#include #include "aicontentmodel.h" #include "aiuiidleintegration.h" diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/nativeuicontroller/src/nativeuicontroller.cpp --- a/idlehomescreen/nativeuicontroller/src/nativeuicontroller.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/nativeuicontroller/src/nativeuicontroller.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -447,7 +447,7 @@ THsPublisherInfo deviceStatus( KDeviceStatusPluginUid, KDeviceStatusPluginName, KNativeUiNamespace ); - iPlugins.Append( deviceStatus ); + iPlugins.AppendL( deviceStatus ); TAiFwPublisherInfo devstatInfo( deviceStatus, TAiFwCallback(), EAiFwSystemStartup ); @@ -457,7 +457,7 @@ THsPublisherInfo profile( KProfilePluginUid, KProfilePluginName, KNativeUiNamespace ); - iPlugins.Append( profile ); + iPlugins.AppendL( profile ); TAiFwPublisherInfo profileInfo( profile, TAiFwCallback(), EAiFwSystemStartup ); diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/widgetmanager/src/wmeffectmanager.cpp --- a/idlehomescreen/widgetmanager/src/wmeffectmanager.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/widgetmanager/src/wmeffectmanager.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -91,7 +91,7 @@ effect->iId = aId; effect->iType = KEffectTypeFullscreen; effect->iState = KWaitForLayout; - iEffects.Append( effect ); + iEffects.AppendL( effect ); CleanupStack::Pop( effect ); diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/widgetmanager/src/wmmaincontainer.cpp --- a/idlehomescreen/widgetmanager/src/wmmaincontainer.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/widgetmanager/src/wmmaincontainer.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -935,8 +935,7 @@ CAknSearchField::EAdaptiveSearch, 0, KTextLimit ); AddControlL( iFindbox, EFindBox ); - iFindbox->AddAdaptiveSearchTextObserverL(this); - + UpdateFocusMode(); StartLoadingWidgetsL(); } diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/widgetmanager/src/wmwidgetdata.cpp --- a/idlehomescreen/widgetmanager/src/wmwidgetdata.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/widgetmanager/src/wmwidgetdata.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -132,13 +132,21 @@ // get publisher uid from widget registry FetchPublisherUidL( aHsContentInfo->PublisherId(), aRegistryClientSession ); - + + // delete the old list box item + delete iMdcaPoint; + iMdcaPoint = NULL; + // create iMdcaPoint for listbox _LIT( KFormatStr, "0\t%S"); iMdcaPoint = HBufC::NewL( aHsContentInfo->Name().Length() + KFormatStr().Length() ); iMdcaPoint->Des().Format( KFormatStr(), &aHsContentInfo->Name() ); + // delete the old content info + delete iHsContentInfo; + iHsContentInfo = NULL; + // take ownership of the content info iHsContentInfo = aHsContentInfo; } @@ -423,10 +431,6 @@ TBool sameLogo = ( iHsContentInfo->IconPath() == aHsContentInfo->IconPath() ); - // delete the old content info - delete iHsContentInfo; - iHsContentInfo = NULL; - // re-init the object, take care about leave. TRAPD( err, InitL( aHsContentInfo, NULL ); ); if ( KErrNone != err ) diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluicontroller/inc/mtransaction.h --- a/idlehomescreen/xmluicontroller/inc/mtransaction.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluicontroller/inc/mtransaction.h Fri Sep 17 15:37:16 2010 +0100 @@ -21,6 +21,7 @@ #include +#include "aipolicyelement.h" inline TUint32 NodeHash(const TAny* aPtr) { @@ -87,7 +88,8 @@ * * @param [out] aLayoutChanged true if UI layout changes */ - virtual void CommitL( TBool& aLayoutChanged, RPropertyHashMap& aPropertyHashMap ) = 0; + virtual void CommitL( RAiPolicyElementArray& aPolicyArray, + RPropertyHashMap& aPropertyHashMap ) = 0; /** * Resets this transaction for reuse. diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluicontroller/inc/mtransactionelement.h --- a/idlehomescreen/xmluicontroller/inc/mtransactionelement.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluicontroller/inc/mtransactionelement.h Fri Sep 17 15:37:16 2010 +0100 @@ -41,11 +41,11 @@ /** * Commits the publish operation and actually updates the UI control/element. * - * @param [out] aLayoutChanged true if UI layout changes * @see UpdateDataL() * @see ApplyPublishingPolicy() */ - void CommitL( TBool& aLayoutChanged, RPropertyHashMap& aPropertyHashMap ); + void CommitL( RAiPolicyElementArray& aPolicyArray, + RPropertyHashMap& aPropertyHashMap ); /** * Resets the transaction element and clears the references to content @@ -55,12 +55,6 @@ virtual void Reset() = 0; /** - * Returns the array of associated content policy elements. - * - */ - virtual RAiPolicyElementArray& PolicyArray() = 0; - - /** * Return the target UI element for this transaction element */ virtual CXnNodeAppIf& Target() const = 0 ; @@ -79,7 +73,7 @@ * * @param [out] aLayoutChanged true if UI layout changes */ - virtual void ApplyPublishingPolicy( TBool& aLayoutChanged, + virtual void ApplyPublishingPolicy( RAiPolicyElementArray& aPolicyArray, RPropertyHashMap& aPropertyHashMap ) = 0; protected: // Constructors and destructor diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluicontroller/inc/transaction.h --- a/idlehomescreen/xmluicontroller/inc/transaction.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluicontroller/inc/transaction.h Fri Sep 17 15:37:16 2010 +0100 @@ -57,7 +57,7 @@ void Append(MTransactionElement& aElement); - void CommitL(TBool& aLayoutChanged, RPropertyHashMap& aPropertyHashMap); + void CommitL(RAiPolicyElementArray& aPolicyArray, RPropertyHashMap& aPropertyHashMap); void Reset(MTransactionFactory& aFactory); diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluicontroller/inc/transactionelement.h --- a/idlehomescreen/xmluicontroller/inc/transactionelement.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluicontroller/inc/transactionelement.h Fri Sep 17 15:37:16 2010 +0100 @@ -59,8 +59,6 @@ void Reset(); - RAiPolicyElementArray& PolicyArray(); - /** * Sets current content priority value. * @@ -106,10 +104,10 @@ * The policy is applied by modifying CSS property defined * by non-empty content. */ - void ApplyPublishingPolicy( TBool& aLayoutChanged, + void ApplyPublishingPolicy( RAiPolicyElementArray& aPolicyArray, RPropertyHashMap& aPropertyHashMap ); - void DoApplyPublishingPolicyL( TBool& aLayoutChanged, + void DoApplyPublishingPolicyL( RAiPolicyElementArray& aPolicyArray, RPropertyHashMap& aPropertyHashMap ); /** @@ -127,11 +125,6 @@ private: /** - * Array of policy elements - */ - RAiPolicyElementArray iPolicyArray; - - /** * Content priority map */ AiUtility::CContentPriorityMap& iContentPriorityMap; diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluicontroller/inc/transactionfactoryimpl.h --- a/idlehomescreen/xmluicontroller/inc/transactionfactoryimpl.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluicontroller/inc/transactionfactoryimpl.h Fri Sep 17 15:37:16 2010 +0100 @@ -22,6 +22,7 @@ #include #include "transactionfactory.h" +#include "aipolicyelement.h" namespace AiUtility { @@ -85,6 +86,10 @@ void ReleaseTransactionElement( MTransactionElement* aElement ); TBool IsSupported( CXnNodeAppIf& aTarget, const TDesC8& aContentType ); + + RAiPolicyElementArray& CTransactionFactoryImpl::PolicyArray(); + + void CTransactionFactoryImpl::ResetPolicyArray(); private: // Construction @@ -133,6 +138,11 @@ * UI controller's CSS property map. Not own. */ CCssPropertyMap& iPropertyMap; + + /** + * Array of policy elements + */ + RAiPolicyElementArray iPolicyArray; }; } // namespace AiXmlUiController diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluicontroller/src/contentrenderer.cpp --- a/idlehomescreen/xmluicontroller/src/contentrenderer.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluicontroller/src/contentrenderer.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -442,7 +442,7 @@ TBool layoutChanged( EFalse ); - TRAPD( error, tr->CommitL( layoutChanged, propertyHashMap ) ); + TRAPD( error, tr->CommitL( iFactory->PolicyArray(), propertyHashMap ) ); if( error == KErrNone ) { @@ -464,7 +464,8 @@ ); - iFactory->ReleaseTransaction( tr ); + iFactory->ReleaseTransaction( tr ); + iFactory->ResetPolicyArray(); return error; } @@ -1014,10 +1015,10 @@ } iPolicyEvaluator->EvaluateContentPolicyL( - *target, element->PolicyArray() ); + *target, iFactory->PolicyArray() ); iPolicyEvaluator->EvaluateVisibilityPolicyL( - *target, element->PolicyArray() ); + *target, iFactory->PolicyArray() ); ProcessTransactionElementL( element ); } @@ -1131,10 +1132,10 @@ *target, aFile, priority ); iPolicyEvaluator->EvaluateContentPolicyL( - *target, element->PolicyArray() ); + *target, iFactory->PolicyArray() ); iPolicyEvaluator->EvaluateVisibilityPolicyL( - *target, element->PolicyArray() ); + *target, iFactory->PolicyArray() ); ProcessTransactionElementL( element ); } @@ -1214,10 +1215,10 @@ *target, aIndex ); iPolicyEvaluator->EvaluateEmptyContentPolicyL( - *target, element->PolicyArray() ); + *target, iFactory->PolicyArray() ); iPolicyEvaluator->EvaluateVisibilityPolicyL( - *target, element->PolicyArray() ); + *target, iFactory->PolicyArray() ); ProcessTransactionElementL( element ); @@ -1275,7 +1276,7 @@ RPropertyHashMap propertyHashMap; CleanupClosePushL( propertyHashMap ); - aElement->CommitL( layoutChanged, propertyHashMap ); + aElement->CommitL( iFactory->PolicyArray(), propertyHashMap ); SetPropertyArraysL( propertyHashMap ); CleanupStack::PopAndDestroy( &propertyHashMap ); @@ -1444,22 +1445,22 @@ if ( aResource ) { iPolicyEvaluator->EvaluateResourcePolicyL( - *target, *aResource, element->PolicyArray() ); + *target, *aResource, iFactory->PolicyArray() ); iPolicyEvaluator->EvaluateContentPolicyL( - *target, element->PolicyArray() ); + *target, iFactory->PolicyArray() ); iPolicyEvaluator->EvaluateVisibilityPolicyL( - *target, element->PolicyArray() ); + *target, iFactory->PolicyArray() ); } else { iPolicyEvaluator->EvaluateContentPolicyL( - *target, element->PolicyArray() ); + *target, iFactory->PolicyArray() ); iPolicyEvaluator->EvaluateVisibilityPolicyL( - *target, element->PolicyArray() ); + *target, iFactory->PolicyArray() ); } ProcessTransactionElementL( element ); @@ -1522,21 +1523,21 @@ if ( aResource ) { iPolicyEvaluator->EvaluateResourcePolicyL( - *target, *aResource, element->PolicyArray() ); + *target, *aResource, iFactory->PolicyArray() ); iPolicyEvaluator->EvaluateContentPolicyL( - *target, element->PolicyArray() ); + *target, iFactory->PolicyArray() ); iPolicyEvaluator->EvaluateVisibilityPolicyL( - *target, element->PolicyArray() ); + *target, iFactory->PolicyArray() ); } else { iPolicyEvaluator->EvaluateContentPolicyL( - *target, element->PolicyArray() ); + *target, iFactory->PolicyArray() ); iPolicyEvaluator->EvaluateVisibilityPolicyL( - *target, element->PolicyArray() ); + *target, iFactory->PolicyArray() ); } ProcessTransactionElementL( element ); diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluicontroller/src/transaction.cpp --- a/idlehomescreen/xmluicontroller/src/transaction.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluicontroller/src/transaction.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -57,10 +57,8 @@ iTransactionElements.AddLast(dynamic_cast(aElement)); } -void CTransaction::CommitL( TBool& aLayoutChanged, RPropertyHashMap& aPropertyHashMap ) +void CTransaction::CommitL( RAiPolicyElementArray& aPolicyArray, RPropertyHashMap& aPropertyHashMap ) { - aLayoutChanged = EFalse; - if ( iTransactionElements.IsEmpty() ) { // Nothing to do @@ -75,7 +73,7 @@ while ( iter ) { // Commit element and advance iterator - (iter++)->CommitL( aLayoutChanged, aPropertyHashMap ); + (iter++)->CommitL( aPolicyArray, aPropertyHashMap ); } } diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluicontroller/src/transactionelement.cpp --- a/idlehomescreen/xmluicontroller/src/transactionelement.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluicontroller/src/transactionelement.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -24,6 +24,7 @@ #include "xmluicontrollerpanic.h" #include "aixmluiutils.h" #include "aixmluiconstants.h" +#include "aipolicyelement.h" #include "contentprioritymap.h" @@ -35,13 +36,14 @@ /** * Template method implementation */ -void MTransactionElement::CommitL( TBool& aLayoutChanged, RPropertyHashMap& aPropertyHashMap ) +void MTransactionElement::CommitL( RAiPolicyElementArray& aPolicyArray, + RPropertyHashMap& aPropertyHashMap ) { // Update UI element data UpdateDataL(); // Update CSS properties - ApplyPublishingPolicy( aLayoutChanged, aPropertyHashMap ); + ApplyPublishingPolicy( aPolicyArray, aPropertyHashMap ); } CTransactionElement::CTransactionElement( AiUtility::CContentPriorityMap& aContentPriorityMap ) @@ -61,13 +63,6 @@ iContentPriority = KErrNotFound; iElementLink.Deque(); - - iPolicyArray.Reset(); - } - -RAiPolicyElementArray& CTransactionElement::PolicyArray() - { - return iPolicyArray; } void CTransactionElement::SetContentPriority( TInt aPriority ) @@ -86,20 +81,22 @@ iTarget = &aTarget; } -void CTransactionElement::ApplyPublishingPolicy( TBool& aLayoutChanged, RPropertyHashMap& aPropertyHashMap ) +void CTransactionElement::ApplyPublishingPolicy( RAiPolicyElementArray& aPolicyArray, + RPropertyHashMap& aPropertyHashMap ) { // Ignore errors if CSS property could not be modified - TRAP_IGNORE( DoApplyPublishingPolicyL( aLayoutChanged, aPropertyHashMap ) ); + TRAP_IGNORE( DoApplyPublishingPolicyL( aPolicyArray, aPropertyHashMap ) ); } -void CTransactionElement::DoApplyPublishingPolicyL( TBool& aLayoutChanged, RPropertyHashMap& aPropertyHashMap ) +void CTransactionElement::DoApplyPublishingPolicyL( RAiPolicyElementArray& aPolicyArray, + RPropertyHashMap& aPropertyHashMap ) { RArray targetArray; CleanupClosePushL( targetArray ); - for ( TInt i = 0; i < iPolicyArray.Count() && iPropertyMap; ++i ) + for ( TInt i = 0; i < aPolicyArray.Count() && iPropertyMap; ++i ) { - TAiPolicyElement& element = iPolicyArray[ i ]; + TAiPolicyElement& element = aPolicyArray[ i ]; RArray elementArray; CleanupClosePushL( elementArray ); @@ -118,15 +115,15 @@ if( !found ) { // Mark this target to be processed - targetArray.Append( &(element.Target()) ); + targetArray.AppendL( &(element.Target()) ); - for( TInt i3 = 0; i3 < iPolicyArray.Count(); ++i3 ) + for( TInt i3 = 0; i3 < aPolicyArray.Count(); ++i3 ) { - TAiPolicyElement& element2 = iPolicyArray[ i3 ]; + TAiPolicyElement& element2 = aPolicyArray[ i3 ]; // find form target array if( &(element.Target()) == &(element2.Target()) ) { - elementArray.Append( element2 ); + elementArray.AppendL( element2 ); } } @@ -144,10 +141,6 @@ CleanupStack::PopAndDestroy(); // targetArray - if ( iPolicyArray.Count() > 0 ) - { - aLayoutChanged |= ETrue; - } } CXnNodeAppIf& CTransactionElement::Target() const diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluicontroller/src/transactionfactoryimpl.cpp --- a/idlehomescreen/xmluicontroller/src/transactionfactoryimpl.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluicontroller/src/transactionfactoryimpl.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -49,9 +49,18 @@ CTransactionFactoryImpl* self = new( ELeave ) CTransactionFactoryImpl( aContentPriorityMap, aPropertyMap ); - return self; } + +RAiPolicyElementArray& CTransactionFactoryImpl::PolicyArray() + { + return iPolicyArray; + } + +void CTransactionFactoryImpl::ResetPolicyArray() + { + iPolicyArray.Reset(); + } CTransactionFactoryImpl::~CTransactionFactoryImpl() { @@ -62,6 +71,8 @@ // Delete transaction elements DeleteElementList( iAvailableElements ); DeleteElementList( iReservedElements ); + + ResetPolicyArray(); } MTransaction* CTransactionFactoryImpl::CreateTransactionL( TInt aTxId ) diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/group/xnclockfactory.mmp --- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/group/xnclockfactory.mmp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/group/xnclockfactory.mmp Fri Sep 17 15:37:16 2010 +0100 @@ -31,6 +31,7 @@ SOURCE xnclock.cpp SOURCE xnclockadapter.cpp SOURCE xnclockcontrol.cpp +SOURCE xndatecontrol.cpp SOURCE xnclockface.cpp USERINCLUDE ../inc @@ -51,6 +52,8 @@ LIBRARY fbscli.lib LIBRARY gdi.lib LIBRARY hwrmlightclient.lib +LIBRARY commonengine.lib +LIBRARY bafl.lib LANG SC diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockadapter.h --- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockadapter.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockadapter.h Fri Sep 17 15:37:16 2010 +0100 @@ -30,6 +30,7 @@ // Forward declarations class CXnNodePluginIf; class CXnClockControl; +class CXnDateControl; class CAknLayoutFont; class CFont; class TRgb; @@ -42,22 +43,20 @@ */ NONSHARABLE_CLASS( CXnClockAdapter ) : public CXnControlAdapter, public MCoeMessageMonitorObserver, public MHWRMLightObserver - { -public: - enum TClockFont - { - EDigitalFont, - EAmPmFont, - EDateFont - }; - + { public: // constructor and destructor /** * 2 phase construction. + * + * @param aParent Parent control + * @param aNode clock node + * + * @return Newly constructed object */ - static CXnClockAdapter* NewL( CXnControlAdapter* aParent, CXnNodePluginIf& aNode ); + static CXnClockAdapter* NewL( CXnControlAdapter* aParent, + CXnNodePluginIf& aNode ); /** * Destructor. @@ -66,39 +65,46 @@ public: // New functions - - /** - * Gets font based on type - * - * @return Font based on aType, NULL if not found - */ - const CAknLayoutFont* FontL( const TInt aType ); - - /** - * Gets text color - * - * @return Text color - */ - const TRgb& TextColorL(); - - /** - * Gets date information - * - * @return A node which holds date information - */ - CXnNodePluginIf* Date() const; - - /** - * Gets day information - * - * @return A node which holds day information - */ - CXnNodePluginIf* Day() const; + + /* + * Create font + * + * @param aNode Node which contains info of font + * @param aFontName Font name + * @param aFont On return points to a created font + */ + void CreateFontL( CXnNodePluginIf& aNode, + const TDesC& aFontName, + CFont*& aFont ); + + /* + * Create color + * + * @param aNode Node which contains color info + * @param aColor On return points to a created color + */ + void CreateColorL( CXnNodePluginIf& aNode, TRgb& aColor ); /** * Calls DrawNow, if node is laidout */ void UpdateDisplay() const; + + /** + * Sets clock format + * + * @param aFormat format of clock to set + */ + void SetClockFormatL( TClockFormat aFormat ); + + /** + * Gets text align from text-align property + * + * @param aNode Node which contains property + * + * @return Text align or CGraphicsContext::ECenter if property is not set + */ + CGraphicsContext::TTextAlign GetTextAlignL( CXnNodePluginIf& aNode ); public: // from base classes @@ -164,16 +170,6 @@ void ConstructL(); private: // New functions - - /* - * Create font - */ - void CreateFontL( const TInt aType ); - - /* - * Create color - */ - void CreateColorL(); /** * Starts clock @@ -185,29 +181,47 @@ */ void StopClock(); + /** + * Sets display property of node to block or none + * + * @param aNode Node which display property is set + * @param aBlock Value of display property to set + */ + void SetDisplayToBlockL( CXnNodePluginIf& aNode, TBool aBlock ); + private: // Parent control, not owned CXnControlAdapter* iParent; // UI node, not owned CXnNodePluginIf& iNode; - // Digital clock date information, not owned + // Digital clock element, not owned + CXnNodePluginIf* iDigital; + // Analog clock element, not owned + CXnNodePluginIf* iAnalog; + // Day number element, not owned + CXnNodePluginIf* iDay; + // Am\Pm element, not owned + CXnNodePluginIf* iAmpm; + // Digital face 12h element, not owned + CXnNodePluginIf* iDigitalFace12; + // Digital face 24h element, not owned + CXnNodePluginIf* iDigitalFace24; + // Analog face element, not owned + CXnNodePluginIf* iAnalogFace; + // Date element, not owned CXnNodePluginIf* iDate; - // Analog clock day information, not owned - CXnNodePluginIf* iDay; + // Digital clock date element, not owned + CXnNodePluginIf* iDigitalDate; + // Analog clock date element, not owned + CXnNodePluginIf* iAnalogDate; // Light observer, owned CHWRMLight* iLightObserver; - // Clock control, owned - CXnClockControl* iClockControl; - // Digital clock font, not owned - CFont* iDigitalFont; - // AmPm font, not owned - CFont* iAmPmFont; - // Date font, not owned - CFont* iDateFont; - // Font color - TRgb iColor; - // Flag for initializing font color - TBool iColorSet; + // Clock control, owned + CXnClockControl* iClockControl; + // Date control, owned + CXnDateControl* iDateControl; + // Day number control, owned + CXnDateControl* iDayControl; // Flag indicating foreground state TBool iForeground; // Flag indicating lights status diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockcontrol.h --- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockcontrol.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockcontrol.h Fri Sep 17 15:37:16 2010 +0100 @@ -28,6 +28,7 @@ class CWindowGc; class CXnClockAdapter; class CXnClockFace; +class CXnNodePluginIf; // Class declaration /** @@ -44,17 +45,15 @@ * * @since S60 5.1 * - * @param aContainerWindow Container window for the clock component. - * + * @param aAdapter Reference to clockadapter. * @param aFormatFromLocale Boolean flag to indicate whether the clock * format should be updated from the locale. - * - * @param aContextPaneClock Boolean flag that indicates whether the - * clock is in the context pane. + * @param aFormat Boolean flag that indicates whether the + * clock is digital or analog. * * @return Newly constructed object. */ - static CXnClockControl* NewL( CXnClockAdapter* aAdapter, + static CXnClockControl* NewL( CXnClockAdapter& aAdapter, const TBool aFormatFromLocale, const TClockFormat aFormat ); @@ -91,9 +90,10 @@ * Draws the clock * * @param aGc Context where to draw - * @param aRect Rect Clock rect + * @param aNode Node to draw + * @param aAmpm Possible am/pm text to draw */ - void Draw( CWindowGc& aGc, const TRect& aRect ); + void Draw( CWindowGc& aGc, CXnNodePluginIf* aNode, CXnNodePluginIf* aAmpm ); /** * Starts the clock timer. @@ -106,6 +106,16 @@ * Used when the clock loses visibility. */ void StopTimer(); + + /** + * Checks if clock format has changed + */ + void CheckClockFormatL(); + + /** + * Reset font and color + */ + void ResetFont(); private: // New functions @@ -123,7 +133,7 @@ /** * C++ default constructor. */ - CXnClockControl( CXnClockAdapter* aAdapter, + CXnClockControl( CXnClockAdapter& aAdapter, const TBool aFormatFromLocale, const TClockFormat aFormat ); @@ -139,11 +149,13 @@ // Clock face, owned CXnClockFace* iFace; // Clock adapter, not owned - CXnClockAdapter* iAdapter; + CXnClockAdapter& iAdapter; // Clock format - TClockFormat iClockFormat; - // Flag indicating whetger format clock from locale - TBool iFormatFromLocale; + TClockFormat iClockFormat; + // Time format + TTimeFormat iTimeFormat; + // Flag indicating whether format clock from locale + TBool iFormatFromLocale; }; #endif // _XNCLOCKCONTROL_H diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockface.h --- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockface.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockface.h Fri Sep 17 15:37:16 2010 +0100 @@ -24,6 +24,7 @@ // FORWARD DECLARATIONS class CXnClockAdapter; +class CXnNodePluginIf; class CWindowGc; // CLASS DECLARATIONS @@ -49,22 +50,35 @@ * @since S60 5.1 * * @param aAdapter Clock adapter - * * @param aGc Graphics context that can be used to draw to - * the clock - * - * @param aRect Rect where to scale the clock - * + * the clock + * @param aNode Node which contains drawing info * @param aTime Time to be used for drawing. + * @param aAmpm Possible am\pm text to draw */ virtual void DrawL( CXnClockAdapter& aAdapter, CWindowGc& aGc, - const TRect& aRect, - const TTime& aTime ) = 0; + CXnNodePluginIf& aNode, + const TTime& aTime, + CXnNodePluginIf* aAmpm ) = 0; + + /** + * Reset font + */ + virtual void ResetFont() = 0; }; class CXnClockFaceDigital : public CXnClockFace { + public: + /** + * Type of font, digital or for am/pm text + */ + enum TXnClockFontType { + EClock, + EAmpm + }; + public: // Constructors and destructor /** @@ -84,8 +98,14 @@ */ void DrawL( CXnClockAdapter& aAdapter, CWindowGc& aGc, - const TRect& aRect, - const TTime& aTime ); + CXnNodePluginIf& aNode, + const TTime& aTime, + CXnNodePluginIf* aAmpm ); + + /** + * @see CXnClockFace::ResetFont + */ + void ResetFont(); private: @@ -98,8 +118,60 @@ * By default Symbian 2nd phase constructor is private. */ void ConstructL(); + + /** + * Draws am/pm text + * + * @param aAdapter Clock adapter + * @param aGc Graphics context that can be used to draw to + * the clock + * @param aTime Time to be used for drawing. + * @param aAmpm Contains info for drawing + */ + void DrawAmpmL( CXnClockAdapter& aAdapter, + CWindowGc& aGc, + const TTime& aTime, + CXnNodePluginIf& aAmpm ); + + /** + * Creates font + * + * @param aAdapter Clock adapter + * @param aNode Contains info to create font + * @param aFontType Digital clock font or am/pm font + * + * @return CAknLayoutFont + */ + const CAknLayoutFont* CreateFontL( CXnClockAdapter& aAdapter, + CXnNodePluginIf& aNode, + TXnClockFontType aFontType ); + + /** + * Creates font color + * + * @param aAdapter Clock adapter + * @param aNode Contains info to create color + * @param aFontType Digital clock font color or am/pm font color + * + * @return Color + */ + const TRgb& CreateColorL( CXnClockAdapter& aAdapter, + CXnNodePluginIf& aNode, + TXnClockFontType aFontType); private: // Data + // Date font, not owned + CFont* iClockFont; + // Date font, not owned + CFont* iAmpmFont; + // Digital clock font color + TRgb iFaceColor; + // Indicates whether digital clock color should be created + TBool iIsFaceColorSet; + // Am/pm text font color + TRgb iAmpmColor; + // Indicates whether am/pm font color should be created + TBool iIsAmpmColorSet; }; class CXnClockFaceAnalog : public CXnClockFace @@ -123,8 +195,14 @@ */ void DrawL( CXnClockAdapter& aAdapter, CWindowGc& aGc, - const TRect& aRect, - const TTime& aTime ); + CXnNodePluginIf& aNode, + const TTime& aTime, + CXnNodePluginIf* aAmpm ); + + /** + * @see CXnClockFace::ResetFont + */ + void ResetFont(); private: // New functions @@ -132,10 +210,8 @@ * Draws the hands of the clock. * * @param aGc Graphics context that can be used to draw to the - * clock - * + * clock * @param aRect Rectangle defining the size of the clock. - * * @param aDateTime Time to be used for drawing. */ void DrawHandsL( CWindowGc& aGc, const TRect& aRect, diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xndatecontrol.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xndatecontrol.h Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,161 @@ +/* +* Copyright (c) 2006-2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Date control +* +*/ + + +#ifndef _XNDATECONTROL_H +#define _XNDATECONTROL_H + +// System includes +#include + +// User includes + +// Forward declarations +class CWindowGc; +class CXnClockAdapter; +class CXnNodePluginIf; +class CEnvironmentChangeNotifier; + +enum TXnDateType { + EDate, + EDay + }; + +// Class declaration +/** +* @ingroup group_xnclockfactory +* @lib xnclockfactory.lib +* @since S60 5.0 +*/ +NONSHARABLE_CLASS( CXnDateControl ) : public CBase + { +public: // Constructors and destructor + + /** + * Two-phased constructor. + * + * @since S60 5.1 + * + * @param aAdapter Clock adapter + * @param aType Type of date. Could be date or day number + * + * @return Newly constructed object. + */ + static CXnDateControl* NewL( CXnClockAdapter& aAdapter, + TXnDateType aType ); + + + /** + * Destructor. + */ + virtual ~CXnDateControl(); + +public: // New functions + + /** + * Draws the clock + * + * @param aGc Context where to draw + * @param aNode Contains drawing info + */ + void DrawL( CWindowGc& aGc, CXnNodePluginIf* aNode ); + + /** + * Resets font and color values + */ + void ResetFont(); + +private: // New functions + + /** + * Constructs date string + * + * @return pointer to date string. + */ + HBufC* ConstructDateStringL(); + + /** + * Constructs day number string + * + * @return pointer to day number string. + */ + HBufC* ConstructDayStringL(); + +private: + + /** + * C++ default constructor. + */ + CXnDateControl( CXnClockAdapter& aAdapter, + TXnDateType aType ); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + /** + * Creates font + * + * @param aNode Contains info of font + * + * @return CAknLayoutFont + */ + const CAknLayoutFont* CreateFontL( CXnNodePluginIf& aNode ); + + /** + * Creates font color + * + * @param aNode Contains info of color + */ + const TRgb& CreateColorL( CXnNodePluginIf& aNode ); + + /** + * Callback when enviroment changed. + * + * @param aPtr Pointer to self + * + * @return KErrNone + */ + static TInt HandleCallBackL( TAny *aPtr ); + + /** + * Updated date/day string + */ + void RefreshDateL(); + +private: // data + + // Holds date/day text, owned + HBufC* iDateText; + // Clock adapter + CXnClockAdapter& iAdapter; + // Date font, not owned + CFont* iDateFont; + // Font color + TRgb iDateColor; + // Indicates whether color should be created + TBool iIsColorSet; + // Environment notifier, owned + CEnvironmentChangeNotifier* iEnvNotifier; + // Type of date. Could be date or day number + TXnDateType iDateType; + }; + +#endif // _XNDATECONTROL_H + +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockadapter.cpp --- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockadapter.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockadapter.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -31,15 +31,13 @@ #include "xncontroladapter.h" #include "xnclockcontrol.h" #include "xnclockadapter.h" +#include "xndatecontrol.h" #include "c_xnutils.h" // Constants -_LIT8( KDateInformation, "Clock/DateInformation" ); -_LIT8( KDayInformation, "Clock/DayInformation" ); - -_LIT( KDigitalFont, "EAknLogicalFontSecondaryFont" ); -_LIT( KAmPmFont, "EAknLogicalFontSecondaryFont" ); -_LIT( KDateFont, "EAknLogicalFontSecondaryFont" ); +_LIT8( KDisplay, "display" ); +_LIT8( KNone, "none" ); +_LIT8( KBlock, "block" ); // ============================ LOCAL FUNCTIONS =============================== @@ -120,6 +118,8 @@ delete iLightObserver; delete iClockControl; + delete iDateControl; + delete iDayControl; } // ----------------------------------------------------------------------------- @@ -135,45 +135,177 @@ iLightObserver = CHWRMLight::NewL( this ); + TBool useLocale; + CXnProperty* prop( + iNode.GetPropertyL( XnPropertyNames::clock::KS60Format ) ); + TClockFormat format( ClockFormat( prop, useLocale ) ); + RPointerArray< CXnNodePluginIf > children( iNode.ChildrenL() ); CleanupClosePushL( children ); - for( TInt i = 0; i < children.Count(); i++ ) + for ( TInt i = 0; i < children.Count(); i++ ) { CXnNodePluginIf* child( children[i] ); - - CXnProperty* id( child->IdL() ); + const TDesC8& clocktype = child->Type()->Type(); - if( id ) + if ( clocktype == XnPropertyNames::clock::format::KDigital ) + { + iDigital = child; + } + else if ( clocktype == XnPropertyNames::clock::format::KAnalog ) + { + iAnalog = child; + } + else if ( clocktype == XnPropertyNames::clock::KDate ) { - if( id->StringValue() == KDateInformation ) + if ( !iDateControl ) + { + iDateControl = CXnDateControl::NewL( *this, EDate ); + } + iDate = child; + } + + RPointerArray< CXnNodePluginIf > clockChildren( child->ChildrenL() ); + CleanupClosePushL( clockChildren ); + for ( TInt j = 0; j < clockChildren.Count(); j++ ) + { + CXnNodePluginIf* clockChild( clockChildren[j] ); + const TDesC8& childType = clockChild->Type()->Type(); + + if ( childType == XnPropertyNames::clock::KFace12 ) + { + if ( !iClockControl ) + { + iClockControl = CXnClockControl::NewL( *this, useLocale, format ); + } + iDigitalFace12 = clockChild; + } + else if ( childType == XnPropertyNames::clock::KFace24 ) { - iDate = child; + if ( !iClockControl ) + { + iClockControl = CXnClockControl::NewL( *this, useLocale, format ); + } + iDigitalFace24 = clockChild; } - else if( id->StringValue() == KDayInformation ) + else if ( childType == XnPropertyNames::clock::KFace ) + { + if ( !iClockControl ) + { + iClockControl = CXnClockControl::NewL( *this, useLocale, format ); + } + iAnalogFace = clockChild; + } + else if ( childType == XnPropertyNames::clock::KDate && + clocktype == XnPropertyNames::clock::format::KDigital ) { - iDay = child; + if ( !iDateControl ) + { + iDateControl = CXnDateControl::NewL( *this, EDate ); + } + iDigitalDate = clockChild; + } + else if ( childType == XnPropertyNames::clock::KDate && + clocktype == XnPropertyNames::clock::format::KAnalog ) + { + if ( !iDateControl ) + { + iDateControl = CXnDateControl::NewL( *this, EDate ); + } + iAnalogDate = clockChild; } + else if ( childType == XnPropertyNames::clock::KDay ) + { + if ( !iDayControl ) + { + iDayControl = CXnDateControl::NewL( *this, EDay ); + } + iDay = clockChild; + } + else if ( childType == XnPropertyNames::clock::KAmpm ) + { + iAmpm = clockChild; + } } + CleanupStack::PopAndDestroy( &clockChildren ); } CleanupStack::PopAndDestroy( &children ); - TBool useLocale; - - CXnProperty* prop( - iNode.GetPropertyL( XnPropertyNames::clock::KS60Format ) ); - - TClockFormat format( ClockFormat( prop, useLocale ) ); - - iClockControl = CXnClockControl::NewL( this, useLocale, format ); + SetClockFormatL( format ); iCoeEnv->AddMessageMonitorObserverL( *this ); } + +// ----------------------------------------------------------------------------- +// CXnClockAdapter::SetDisplayToBlockL +// ----------------------------------------------------------------------------- +// +void CXnClockAdapter::SetDisplayToBlockL( CXnNodePluginIf& aNode, TBool aBlock ) + { + CXnDomStringPool& sp = aNode.UiEngineL()->StringPool(); + CXnProperty* prop; + if ( aBlock ) + { + prop = CXnProperty::NewL( + KDisplay, KBlock, CXnDomPropertyValue::EString, sp ); + } + else + { + prop = CXnProperty::NewL( + KDisplay, KNone, CXnDomPropertyValue::EString, sp ); + } + CleanupStack::PushL( prop ); + aNode.SetPropertyL( prop ); + CleanupStack::Pop( prop ); + } + +// ----------------------------------------------------------------------------- +// CXnClockAdapter::SetClockFormatL +// ----------------------------------------------------------------------------- +// +void CXnClockAdapter::SetClockFormatL( TClockFormat aFormat ) + { + if ( iAnalog && iDigital ) + { + if ( aFormat == EClockAnalog ) + { + SetDisplayToBlockL( *iAnalog, ETrue ); + SetDisplayToBlockL( *iDigital, EFalse ); + } + else + { + SetDisplayToBlockL( *iDigital, ETrue ); + SetDisplayToBlockL( *iAnalog, EFalse ); + // check whether time format is 12 or 24 + if ( iDigitalFace12 && iDigitalFace24 ) + { + if ( TLocale().TimeFormat() == ETime12 ) + { + SetDisplayToBlockL( *iDigitalFace12, ETrue ); + if ( iAmpm ) + { + SetDisplayToBlockL( *iAmpm, ETrue ); + } + SetDisplayToBlockL( *iDigitalFace24, EFalse ); + } + else + { + SetDisplayToBlockL( *iDigitalFace24, ETrue ); + SetDisplayToBlockL( *iDigitalFace12, EFalse ); + if ( iAmpm ) + { + SetDisplayToBlockL( *iAmpm, EFalse ); + } + } + } + } + iNode.UiEngineL()->LayoutUIL( &iNode ); + } + } // ----------------------------------------------------------------------------- // CXnClockAdapter::DoHandlePropertyChangeL -// // ----------------------------------------------------------------------------- // void CXnClockAdapter::DoHandlePropertyChangeL( CXnProperty* aProperty ) @@ -182,7 +314,7 @@ { const TDesC8& name( aProperty->Property()->Name() ); - if( name == XnPropertyNames::clock::KS60Format ) + if( iClockControl && name == XnPropertyNames::clock::KS60Format ) { TBool useLocale; @@ -190,28 +322,11 @@ iClockControl->SetFormatL( useLocale, format ); } - else if( name == XnPropertyNames::clock::KS60DigitalFontSize ) - { - iDigitalFont = NULL; - } - else if( name == XnPropertyNames::clock::KS60AmPmFontSize ) - { - iAmPmFont = NULL; - } - else if( name == XnPropertyNames::clock::KS60DateFontSize ) - { - iDateFont = NULL; - } - else if( name == XnPropertyNames::appearance::common::KColor ) - { - iColorSet = EFalse; - } } } // ----------------------------------------------------------------------------- // CXnClockAdapter::UpdateDisplay -// Draws the clock component // ----------------------------------------------------------------------------- // void CXnClockAdapter::UpdateDisplay() const @@ -224,7 +339,6 @@ // ----------------------------------------------------------------------------- // CXnClockAdapter::Draw -// Draws the clock component // ----------------------------------------------------------------------------- // void CXnClockAdapter::Draw( const TRect& aRect ) const @@ -232,13 +346,51 @@ CXnControlAdapter::Draw( aRect ); CWindowGc& gc( SystemGc() ); - - iClockControl->Draw( gc, iNode.Rect() ); + + if ( iClockControl ) + { + TClockFormat format = iClockControl->Format(); + if ( format == EClockAnalog ) + { + iClockControl->Draw( gc, iAnalogFace, NULL ); + } + else + { + if ( TLocale().TimeFormat() == ETime12 ) + { + iClockControl->Draw( gc, iDigitalFace12, iAmpm ); + } + else + { + iClockControl->Draw( gc, iDigitalFace24, NULL ); + } + } + } + + if ( iDateControl ) + { + if ( iClockControl && iClockControl->Format() == EClockAnalog && iAnalogDate ) + { + TRAP_IGNORE( iDateControl->DrawL( gc, iAnalogDate ) ); + } + else if ( iClockControl && iClockControl->Format() == EClockDigital && iDigitalDate ) + { + TRAP_IGNORE( iDateControl->DrawL( gc, iDigitalDate ) ); + } + else + { + TRAP_IGNORE( iDateControl->DrawL( gc, iDate ) ); + } + } + + if ( iDayControl ) + { + TRAP_IGNORE( iDayControl->DrawL( gc, iDay ) ); + } } // ----------------------------------------------------------------------------- // CXnClockAdapter::MakeVisible -// // ----------------------------------------------------------------------------- // void CXnClockAdapter::MakeVisible( TBool aVisible ) @@ -263,7 +415,6 @@ // ----------------------------------------------------------------------------- // CXnClockAdapter::MonitorWsMessage -// // ----------------------------------------------------------------------------- // void CXnClockAdapter::MonitorWsMessage( const TWsEvent& aEvent ) @@ -284,9 +435,13 @@ if( foreground != iForeground ) { if( iForeground ) - { + { + // check if clock format has changed + if ( iClockControl ) + { + TRAP_IGNORE( iClockControl->CheckClockFormatL() ); + } UpdateDisplay(); - // Start clock ensures UI state StartClock(); } @@ -299,7 +454,6 @@ // ----------------------------------------------------------------------------- // CXnClockAdapter::LightStatusChanged -// // ----------------------------------------------------------------------------- // void CXnClockAdapter::LightStatusChanged( TInt aTarget, @@ -328,185 +482,101 @@ } } - // ----------------------------------------------------------------------------- -// CXnClockAdapter::FontL -// +// CXnClockAdapter::GetTextAlignL // ----------------------------------------------------------------------------- -// -const CAknLayoutFont* CXnClockAdapter::FontL( const TInt aType ) +// +CGraphicsContext::TTextAlign CXnClockAdapter::GetTextAlignL( CXnNodePluginIf& aNode ) { - CFont* font( NULL ); + CGraphicsContext::TTextAlign ret = CGraphicsContext::ECenter; + CXnProperty* prop( aNode.GetPropertyL( + XnPropertyNames::appearance::common::KTextAlign ) ); - if( aType == EDigitalFont ) - { - if( !iDigitalFont ) - { - CreateFontL( aType ); - } - - font = iDigitalFont; - } - else if( aType == EAmPmFont ) - { - if( !iAmPmFont ) - { - CreateFontL( aType ); - } - - font = iAmPmFont; - } - else if( aType == EDateFont ) - { - if( !iDateFont ) - { - CreateFontL( aType ); - } - - font = iDateFont; - } - - if( font ) + if( prop ) { - return CAknLayoutFont::AsCAknLayoutFontOrNull( font ); - } - - return NULL; - } - -// ----------------------------------------------------------------------------- -// CXnClockAdapter::TextColorL -// -// ----------------------------------------------------------------------------- -// -const TRgb& CXnClockAdapter::TextColorL() - { - if( !iColorSet ) - { - CreateColorL(); + if ( prop->StringValue() == + XnPropertyNames::appearance::common::textalign::KAlignLeft ) + { + ret = CGraphicsContext::ELeft; + } + else if ( prop->StringValue() == + XnPropertyNames::appearance::common::textalign::KAlignRight ) + { + ret = CGraphicsContext::ERight; + } + else if ( prop->StringValue() == + XnPropertyNames::appearance::common::textalign::KAlignCenter ) + { + ret = CGraphicsContext::ECenter; + } } - - return iColor; - } - -// ----------------------------------------------------------------------------- -// CXnClockAdapter::Date -// -// ----------------------------------------------------------------------------- -// -CXnNodePluginIf* CXnClockAdapter::Date() const - { - return iDate; - } - -// ----------------------------------------------------------------------------- -// CXnClockAdapter::Day -// -// ----------------------------------------------------------------------------- -// -CXnNodePluginIf* CXnClockAdapter::Day() const - { - return iDay; + return ret; } // ----------------------------------------------------------------------------- // CXnClockAdapter::CreateFontL -// // ----------------------------------------------------------------------------- // -void CXnClockAdapter::CreateFontL( const TInt aType ) +void CXnClockAdapter::CreateFontL( CXnNodePluginIf& aNode, + const TDesC& aFontName, + CFont*& aFont ) { TFontSpec spec; TInt dummy; + + CXnProperty* prop( aNode.GetPropertyL( + XnPropertyNames::clock::KS60FontSize ) ); - if( aType == EDigitalFont ) + // default + TInt height( ( aNode.Rect().Height() / 5 ) ); + + if ( prop ) { - iDigitalFont = NULL; - - CXnProperty* prop( iNode.GetPropertyL( - XnPropertyNames::clock::KS60DigitalFontSize ) ); - - // default - TInt height( ( iNode.Rect().Height() / 3 ) * 2 ); - + height = aNode.UiEngineL()->VerticalPixelValueL( + prop, aNode.Rect().Height() ); + } + else + { + // check if fontsize is defined in clock element + prop = iNode.GetPropertyL( + XnPropertyNames::clock::KS60FontSize ); if ( prop ) { height = iNode.UiEngineL()->VerticalPixelValueL( prop, iNode.Rect().Height() ); } - - // No need to relase avkon font - CXnUtils::CreateFontL( KDigitalFont, - height, - spec.iFontStyle, - iDigitalFont, - dummy ); } - else if( aType == EAmPmFont ) - { - iAmPmFont = NULL; - - CXnProperty* prop( iNode.GetPropertyL( - XnPropertyNames::clock::KS60AmPmFontSize ) ); - - // default - TInt height( ( iNode.Rect().Height() / 5 ) ); - - if ( prop ) - { - height = iNode.UiEngineL()->VerticalPixelValueL( - prop, iNode.Rect().Height() ); - } - - // No need to relase avkon font - CXnUtils::CreateFontL( KAmPmFont, - height, - spec.iFontStyle, - iAmPmFont, - dummy ); - } - else if( aType == EDateFont ) - { - iDateFont = NULL; - - CXnProperty* prop( iNode.GetPropertyL( - XnPropertyNames::clock::KS60DateFontSize ) ); - - // default - TInt height( ( iNode.Rect().Height() / 5 ) ); - - if ( prop ) - { - height = iNode.UiEngineL()->VerticalPixelValueL( - prop, iNode.Rect().Height() ); - } - - // No need to relase avkon font - CXnUtils::CreateFontL( KDateFont, - height, - spec.iFontStyle, - iDateFont, - dummy ); - } + + // No need to relase avkon font + CXnUtils::CreateFontL( aFontName, + height, + spec.iFontStyle, + aFont, + dummy ); } // ----------------------------------------------------------------------------- // CXnClockAdapter::CreateColorL -// // ----------------------------------------------------------------------------- // -void CXnClockAdapter::CreateColorL() +void CXnClockAdapter::CreateColorL( CXnNodePluginIf& aNode, TRgb& aColor ) { TRgb color; TInt result( KErrNone ); - CXnProperty* prop( iNode.GetPropertyL( + CXnProperty* prop( aNode.GetPropertyL( XnPropertyNames::appearance::common::KColor ) ); if( !prop ) { - return; + // check if color is defined in clock element + prop = iNode.GetPropertyL( + XnPropertyNames::appearance::common::KColor ); + if ( !prop ) + { + return; + } } CXnDomProperty* domProp( prop->Property() ); @@ -554,53 +624,78 @@ if( result == KErrNone ) { - iColorSet = ETrue; - iColor = color; + aColor = color; } } // ----------------------------------------------------------------------------- // CXnClockAdapter::SkinChanged -// Skin change notification // ----------------------------------------------------------------------------- // void CXnClockAdapter::SkinChanged() { - iAmPmFont = iDigitalFont = iDateFont = NULL; - iColorSet = EFalse; + if ( iClockControl ) + { + iClockControl->ResetFont(); + } + if ( iDateControl ) + { + iDateControl->ResetFont(); + } + if ( iDayControl ) + { + iDayControl->ResetFont(); + } CXnControlAdapter::SkinChanged(); } // ----------------------------------------------------------------------------- // CXnClockAdapter::HandleScreenDeviceChangedL -// Screen device change notification // ----------------------------------------------------------------------------- // void CXnClockAdapter::HandleScreenDeviceChangedL() { - iAmPmFont = iDigitalFont = iDateFont = NULL; - iColorSet = EFalse; + if ( iClockControl ) + { + iClockControl->ResetFont(); + } + if ( iDateControl ) + { + iDateControl->ResetFont(); + } + if ( iDayControl ) + { + iDayControl->ResetFont(); + } CXnControlAdapter::HandleScreenDeviceChangedL(); } // ----------------------------------------------------------------------------- // CXnClockAdapter::SizeChanged -// Size changed notification // ----------------------------------------------------------------------------- // void CXnClockAdapter::SizeChanged() { - iAmPmFont = iDigitalFont = iDateFont = NULL; - iColorSet = EFalse; + if ( iClockControl ) + { + iClockControl->ResetFont(); + } + if ( iDateControl ) + { + iDateControl->ResetFont(); + } + if ( iDayControl ) + { + iDayControl->ResetFont(); + } CXnControlAdapter::SizeChanged(); } // ----------------------------------------------------------------------------- // CXnClockAdapter::StartClock -// // ----------------------------------------------------------------------------- // void CXnClockAdapter::StartClock() @@ -620,7 +715,6 @@ // ----------------------------------------------------------------------------- // CXnClockAdapter::StopClock -// // ----------------------------------------------------------------------------- // void CXnClockAdapter::StopClock() @@ -628,7 +722,7 @@ if ( iClockControl ) { iClockControl->StopTimer(); - } + } } // End of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockcontrol.cpp --- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockcontrol.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockcontrol.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -24,7 +24,7 @@ #include "xncontroladapter.h" #include "xnclockadapter.h" #include "xnclockface.h" - +#include "xnnodepluginif.h" #include "xnclockcontrol.h" // Constants @@ -39,12 +39,12 @@ // might leave. // ----------------------------------------------------------------------------- // -CXnClockControl::CXnClockControl( CXnClockAdapter* aAdapter, +CXnClockControl::CXnClockControl( CXnClockAdapter& aAdapter, const TBool aFormatFromLocale, const TClockFormat aFormat ) : iAdapter( aAdapter ), iClockFormat( aFormat ), - iFormatFromLocale ( aFormatFromLocale ) + iFormatFromLocale ( aFormatFromLocale ) { } @@ -56,7 +56,7 @@ void CXnClockControl::ConstructL() { iTimer = CPeriodic::NewL( CActive::EPriorityHigh ); - + iTimeFormat = TLocale().TimeFormat(); SetFormatL( iFormatFromLocale, iClockFormat ); } @@ -65,24 +65,20 @@ // Two-phased constructor. // ----------------------------------------------------------------------------- // -CXnClockControl* CXnClockControl::NewL( CXnClockAdapter* aAdapter, +CXnClockControl* CXnClockControl::NewL( CXnClockAdapter& aAdapter, const TBool aFormatFromLocale, const TClockFormat aFormat ) { CXnClockControl* self = new (ELeave) CXnClockControl( aAdapter, aFormatFromLocale, aFormat ); - CleanupStack::PushL( self ); self->ConstructL(); - CleanupStack::Pop( self ); - return self; } // ----------------------------------------------------------------------------- // Destructor -// // ----------------------------------------------------------------------------- // CXnClockControl::~CXnClockControl() @@ -93,7 +89,6 @@ // ----------------------------------------------------------------------------- // CXnClockControl::UpdateDisplay -// (other items were commented in a header). // ----------------------------------------------------------------------------- // void CXnClockControl::UpdateDisplay() @@ -103,12 +98,11 @@ return; } - iAdapter->UpdateDisplay(); + iAdapter.UpdateDisplay(); } // ----------------------------------------------------------------------------- // CXnClockControl::SetFormatL -// (other items were commented in a header). // ----------------------------------------------------------------------------- // void CXnClockControl::SetFormatL( const TBool aFormatFromLocale, @@ -122,14 +116,17 @@ } iFormatFromLocale = aFormatFromLocale; + + TTimeFormat timeFormat = TLocale().TimeFormat(); - if( format == iClockFormat && iFace ) + if( format == iClockFormat && iFace && timeFormat == iTimeFormat ) { // Already correct face return; } iClockFormat = format; + iTimeFormat = timeFormat; delete iFace; iFace = NULL; @@ -141,12 +138,22 @@ else if( format == EClockDigital ) { iFace = CXnClockFaceDigital::NewL(); - } + } + + iAdapter.SetClockFormatL( format ); + } + +// ----------------------------------------------------------------------------- +// CXnClockControl::CheckClockFormatL +// ----------------------------------------------------------------------------- +// +void CXnClockControl::CheckClockFormatL() + { + SetFormatL( iFormatFromLocale, iClockFormat ); } // ----------------------------------------------------------------------------- // CXnClockControl::Format -// (other items were commented in a header). // ----------------------------------------------------------------------------- // TClockFormat CXnClockControl::Format() const @@ -156,28 +163,38 @@ // ----------------------------------------------------------------------------- // CXnClockControl::Draw -// (other items were commented in a header). // ----------------------------------------------------------------------------- // -void CXnClockControl::Draw( CWindowGc& aGc, const TRect& aRect ) +void CXnClockControl::Draw( CWindowGc& aGc, CXnNodePluginIf* aNode, + CXnNodePluginIf* aAmpm ) { - // Ensure correct appearance - TRAP_IGNORE( SetFormatL( iFormatFromLocale, iClockFormat ) ); + if ( !aNode ) + { + return; + } - if( iFace && !aRect.IsEmpty() ) + if( iFace && !aNode->Rect().IsEmpty() ) { __PRINT( __DBG_FORMAT( "CXnClockControl::Draw: 0x%X" ), this ); TTime homeTime; homeTime.HomeTime(); - TRAP_IGNORE( iFace->DrawL( *iAdapter, aGc, aRect, homeTime ) ); + TRAP_IGNORE( iFace->DrawL( iAdapter, aGc, *aNode, homeTime, aAmpm ) ); } } // ----------------------------------------------------------------------------- +// CXnClockControl::ResetFont +// ----------------------------------------------------------------------------- +// +void CXnClockControl::ResetFont() + { + iFace->ResetFont(); + } + +// ----------------------------------------------------------------------------- // CXnClockControl::TimerCallback -// (other items were commented in a header). // ----------------------------------------------------------------------------- // TInt CXnClockControl::TimerCallback( TAny* aThis ) @@ -206,7 +223,6 @@ // ----------------------------------------------------------------------------- // CXnClockControl::StartTimer -// (other items were commented in a header). // ----------------------------------------------------------------------------- // void CXnClockControl::StartTimer() @@ -230,7 +246,6 @@ // ----------------------------------------------------------------------------- // CXnClockControl::StopTimer -// (other items were commented in a header). // ----------------------------------------------------------------------------- // void CXnClockControl::StopTimer() diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockface.cpp --- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockface.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockface.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -38,6 +38,9 @@ _LIT( KAmPmFormat, "%B" ); _LIT( KTimeFormat, "%J%:1%T" ); +_LIT( KClockFont, "EAknLogicalFontSecondaryFont" ); +_LIT( KAmpmFont, "EAknLogicalFontSecondaryFont" ); + // ============================ MEMBER FUNCTIONS =============================== // ----------------------------------------------------------------------------- @@ -86,123 +89,134 @@ // ----------------------------------------------------------------------------- // CXnClockFaceDigital::DrawL -// (other items were commented in a header). // ----------------------------------------------------------------------------- // void CXnClockFaceDigital::DrawL( CXnClockAdapter& aAdapter, CWindowGc& aGc, - const TRect& aRect, const TTime& aTime ) - { + CXnNodePluginIf& aNode, const TTime& aTime, CXnNodePluginIf* aAmpm ) + { TBuf< KMaxTimeFormatSpec > time; aTime.FormatL( time, KTimeFormat() ); - TBuf< KMaxTimeFormatSpec > ampm; - aTime.FormatL( ampm, KAmPmFormat() ); - AknTextUtils::LanguageSpecificNumberConversion( time ); - const CAknLayoutFont* clockFont( - aAdapter.FontL( CXnClockAdapter::EDigitalFont ) ); - - const CAknLayoutFont* ampmFont( - aAdapter.FontL( CXnClockAdapter::EAmPmFont ) ); - - const CAknLayoutFont* dateFont( - aAdapter.FontL( CXnClockAdapter::EDateFont ) ); - - const TRgb& color( aAdapter.TextColorL() ); - - CXnNodePluginIf* date( aAdapter.Date() ); - - const TInt deltaHeight( aRect.Height() - clockFont->TextPaneHeight() ); - TInt offset( clockFont->TextPaneTopToBaseline() + deltaHeight / 2 ); - - if( date ) + const CAknLayoutFont* clockFont( CreateFontL( aAdapter, aNode, EClock ) ); + if ( !clockFont ) { - // When date string is shown, time string must be lifted up - offset -= ( dateFont->TextPaneHeight() / 2 ); + return; } - // Measure the full width of the time string - TInt textWidth( AknBidiTextUtils::MeasureTextBoundsWidth( *clockFont, time, - CFont::TMeasureTextInput::EFVisualOrder ) ); + const TRgb& color( CreateColorL( aAdapter, aNode, EClock) ); - TInt extraWidth( aRect.Width() - textWidth ); - - TInt margin( extraWidth / 2 ); + const TInt deltaHeight( aNode.Rect().Height() - clockFont->TextPaneHeight() ); + TInt offset( clockFont->TextPaneTopToBaseline() + deltaHeight / 2 ); + + CGraphicsContext::TTextAlign align = aAdapter.GetTextAlignL( aNode ); aGc.SetPenColor( color ); + aGc.UseFont( clockFont ); + aGc.DrawText( time, aNode.Rect(), offset, align ); + aGc.DiscardFont(); - aGc.UseFont( clockFont ); - - CGraphicsContext::TTextAlign align; + if( TLocale().TimeFormat() == ETime12 && aAmpm ) + { + DrawAmpmL( aAdapter, aGc, aTime, *aAmpm ); + } + } - TBool mirrored( AknLayoutUtils::LayoutMirrored() ); +// ----------------------------------------------------------------------------- +// CXnClockFaceDigital::DrawAmpmL +// ----------------------------------------------------------------------------- +// +void CXnClockFaceDigital::DrawAmpmL( CXnClockAdapter& aAdapter, + CWindowGc& aGc, + const TTime& aTime, + CXnNodePluginIf& aAmpm ) + { + TBuf< KMaxTimeFormatSpec > ampm; + aTime.FormatL( ampm, KAmPmFormat() ); + ampm.Trim(); + + const CAknLayoutFont* ampmFont( CreateFontL( aAdapter, aAmpm, EAmpm ) ); + if ( !ampmFont ) + { + return; + } + + const TRgb& color( CreateColorL( aAdapter, aAmpm, EAmpm) ); + + const TInt deltaHeight( aAmpm.Rect().Height() - ampmFont->TextPaneHeight() ); + TInt offset( ampmFont->TextPaneTopToBaseline() + deltaHeight / 2 ); + + CGraphicsContext::TTextAlign align = aAdapter.GetTextAlignL( aAmpm ); - if( mirrored ) + aGc.SetPenColor( color ); + aGc.UseFont( ampmFont ); + aGc.DrawText( ampm, aAmpm.Rect(), offset, align ); + aGc.DiscardFont(); + } + +// ----------------------------------------------------------------------------- +// CXnClockFaceDigital::CreateFontL +// ----------------------------------------------------------------------------- +// +const CAknLayoutFont* CXnClockFaceDigital::CreateFontL( CXnClockAdapter& aAdapter, + CXnNodePluginIf& aNode, + TXnClockFontType aFontType) + { + if ( aFontType == EClock ) { - align = CGraphicsContext::ERight; + if ( !iClockFont ) + { + aAdapter.CreateFontL( aNode, KClockFont, iClockFont ); + } + return CAknLayoutFont::AsCAknLayoutFontOrNull( iClockFont ); } else { - align = CGraphicsContext::ELeft; - } - - aGc.DrawText( time, aRect, offset, align, margin ); - - aGc.DiscardFont(); - - if( TLocale().TimeFormat() == ETime12 ) - { - TRect ampmRect( aRect ); - TInt ampmHeight( ampmFont->TextPaneHeight() ); - - if( mirrored ) + if ( !iAmpmFont ) { - align = CGraphicsContext::ELeft; - } - else - { - align = CGraphicsContext::ERight; + aAdapter.CreateFontL( aNode, KAmpmFont, iAmpmFont ); } - - ampmRect.iTl.iY += ampmHeight; - - aGc.UseFont( ampmFont ); - - aGc.DrawText( ampm, ampmRect, offset, align, margin ); - - aGc.DiscardFont(); + return CAknLayoutFont::AsCAknLayoutFontOrNull( iAmpmFont ); } + } - if( date ) +// ----------------------------------------------------------------------------- +// CXnClockFaceDigital::CreateColorL +// ----------------------------------------------------------------------------- +// +const TRgb& CXnClockFaceDigital::CreateColorL( CXnClockAdapter& aAdapter, + CXnNodePluginIf& aNode, + TXnClockFontType aFontType ) + { + if ( aFontType == EClock ) { - const TDesC* dateStr( &KNullDesC() ); - - CXnText* textIf( NULL ); - - XnComponentInterface::MakeInterfaceL( textIf, date->AppIfL() ); - - if( textIf ) + if ( !iIsFaceColorSet ) { - dateStr = textIf->Text(); + aAdapter.CreateColorL( aNode, iFaceColor ); + iIsFaceColorSet = ETrue; } + return iFaceColor; + } + else + { + if ( !iIsAmpmColorSet ) + { + aAdapter.CreateColorL( aNode, iAmpmColor ); + iIsAmpmColorSet = ETrue; + } + return iAmpmColor; + } + } - // Measure the full width of the time string - TInt dateWidth( AknBidiTextUtils::MeasureTextBoundsWidth( *dateFont, *dateStr, - CFont::TMeasureTextInput::EFVisualOrder ) ); - - TInt width( aRect.Width() - dateWidth ); - TInt margin( width / 2 ); - - // Move date string down by text pane height and 5% of rect height - offset += dateFont->TextPaneHeight() + ( aRect.Height() / 20 ); - - aGc.UseFont( dateFont ); - - aGc.DrawText( *dateStr, aRect, offset, align, margin ); - - aGc.DiscardFont(); - } +// ----------------------------------------------------------------------------- +// CXnClockFaceDigital::ResetFont +// ----------------------------------------------------------------------------- +// +void CXnClockFaceDigital::ResetFont() + { + iClockFont = iAmpmFont = NULL; + iIsFaceColorSet = iIsAmpmColorSet = EFalse; } // ============================ MEMBER FUNCTIONS =============================== @@ -253,13 +267,12 @@ // ----------------------------------------------------------------------------- // CXnClockFaceAnalog::DrawL -// (other items were commented in a header). // ----------------------------------------------------------------------------- // void CXnClockFaceAnalog::DrawL( CXnClockAdapter& /*aAdapter*/, CWindowGc& aGc, - const TRect& aRect, const TTime& aTime ) - { - TSize faceSize( aRect.Size() ); + CXnNodePluginIf& aNode, const TTime& aTime, CXnNodePluginIf* /*aAmpm*/ ) + { + TSize faceSize( aNode.Rect().Size() ); TDateTime dateTime( aTime.DateTime() ); @@ -286,7 +299,7 @@ { User::LeaveIfError( AknIconUtils::SetSize( skinMask, faceSize ) ); - aGc.BitBltMasked( aRect.iTl, + aGc.BitBltMasked( aNode.Rect().iTl, skinBmp, TRect( TPoint( 0, 0 ), skinBmp->SizeInPixels() ), skinMask, @@ -294,18 +307,17 @@ } else { - aGc.BitBlt( aRect.iTl, skinBmp ); + aGc.BitBlt( aNode.Rect().iTl, skinBmp ); } aGc.SetBrushStyle( CGraphicsContext::ENullBrush ); aGc.SetPenStyle( CGraphicsContext::ESolidPen ); - DrawHandsL( aGc, aRect, dateTime ); + DrawHandsL( aGc, aNode.Rect(), dateTime ); } // ----------------------------------------------------------------------------- // CXnClockFaceAnalog::DrawHands -// (other items were commented in a header). // ----------------------------------------------------------------------------- // void CXnClockFaceAnalog::DrawHandsL( CWindowGc& aGc, @@ -355,5 +367,13 @@ minmask, EFalse ); } + +// ----------------------------------------------------------------------------- +// CXnClockFaceAnalog::ResetFont +// ----------------------------------------------------------------------------- +// +void CXnClockFaceAnalog::ResetFont() + { + } // End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xndatecontrol.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xndatecontrol.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,282 @@ +/* +* Copyright (c) 2006-2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Clock control +* +*/ + + +// System includes +#include +#include +#include +#include +#include +#include +#include + +// User includes +#include "xndatecontrol.h" +#include "xncontroladapter.h" +#include "xnclockadapter.h" +#include "xnnodepluginif.h" +#include "xnproperty.h" +#include "xnuienginepluginif.h" +#include "c_xnutils.h" + +// Constants +const TInt KMaxDateStringLength = 100; +const TInt KMaxDayNumberStringLength = 10; + +_LIT( KDateFont, "EAknLogicalFontSecondaryFont" ); +_LIT( KTimeFormat, "%0U %1U" ); + + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CXnDateControl::CXnDateControl +// C++ default constructor can NOT contain any code, that +// might leave. +// ----------------------------------------------------------------------------- +// +CXnDateControl::CXnDateControl( CXnClockAdapter& aAdapter, + TXnDateType aType ) + : iAdapter( aAdapter ), iDateType( aType ) + { + } + +// ----------------------------------------------------------------------------- +// CXnDateControl::ConstructL +// Symbian 2nd phase constructor can leave. +// ----------------------------------------------------------------------------- +// +void CXnDateControl::ConstructL() + { + // Create enviroment notifier + iEnvNotifier = CEnvironmentChangeNotifier::NewL( + CActive::EPriorityStandard, TCallBack( HandleCallBackL, this ) ); + // Start listening notifications + iEnvNotifier->Start(); + } + +// ----------------------------------------------------------------------------- +// CXnDateControl::NewL +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +CXnDateControl* CXnDateControl::NewL( CXnClockAdapter& aAdapter, + TXnDateType aType ) + { + CXnDateControl* self = new (ELeave) CXnDateControl( aAdapter, aType ); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +// ----------------------------------------------------------------------------- +// Destructor +// ----------------------------------------------------------------------------- +// +CXnDateControl::~CXnDateControl() + { + delete iDateText; + delete iEnvNotifier; + } + +// ----------------------------------------------------------------------------- +// CXnDateControl::DrawL +// ----------------------------------------------------------------------------- +// +void CXnDateControl::DrawL( CWindowGc& aGc, CXnNodePluginIf* aNode ) + { + if ( !aNode || + !iDateText || + ( aNode && aNode->Rect().IsEmpty() ) ) + { + return; + } + + const CAknLayoutFont* dateFont( CreateFontL( *aNode ) ); + if ( !dateFont ) + { + return; + } + + const TRgb& color( CreateColorL( *aNode ) ); + + CGraphicsContext::TTextAlign align = iAdapter.GetTextAlignL( *aNode ); + + const TInt deltaHeight( aNode->Rect().Height() - dateFont->TextPaneHeight() ); + TInt offset( dateFont->TextPaneTopToBaseline() + deltaHeight / 2 ); + + aGc.SetPenColor( color ); + aGc.UseFont( dateFont ); + aGc.DrawText( *iDateText, aNode->Rect(), offset, align ); + aGc.DiscardFont(); + } + +// ----------------------------------------------------------------------------- +// CXnDateControl::ConstructDateStringL +// ----------------------------------------------------------------------------- +// +HBufC* CXnDateControl::ConstructDateStringL() + { + // Construct date string using date format from resource file + CCoeEnv* coeEnv = CCoeEnv::Static(); + + if( !coeEnv ) + { + User::Leave( KErrNotReady ); + } + + TTime time; + time.HomeTime(); + + HBufC* aiDateString = HBufC::NewLC( KMaxDateStringLength ); + HBufC* aiDateFormatString = HBufC::NewLC( KMaxDateStringLength ); + aiDateFormatString->Des().Copy( KTimeFormat() ); + // TODO: when localisation is ready read format string from resource + //HBufC* aiDateFormatString = StringLoader::LoadLC( R_ACTIVEIDLE_TIME_FORMAT, + // coeEnv ); + HBufC* dateStringBuf = HBufC::NewLC( KMaxDateStringLength ); + HBufC* dateFormatString = StringLoader::LoadLC( R_QTN_DATE_SHORT_WITH_ZERO, + coeEnv ); + TPtr dateString( dateStringBuf->Des() ); + time.FormatL( dateString, *dateFormatString ); + CleanupStack::PopAndDestroy( dateFormatString ); + + //now dateString contains string which is formatted using + //R_QTN_DATE_USUAL_WITH_ZERO + + // To arabic + AknTextUtils::DisplayTextLanguageSpecificNumberConversion( dateString ); + + TPtr aiDateStringPtr = aiDateString->Des(); + + TDayNameAbb wkDayAbb = TDayNameAbb(); + wkDayAbb.Set(time.DayNoInWeek()); + + //add date to string + StringLoader::Format( aiDateStringPtr, *aiDateFormatString, 1,dateString ); + + //reuse dateString + dateString.Copy( aiDateStringPtr ); + + //add weekday to string + StringLoader::Format( aiDateStringPtr, dateString, 0, wkDayAbb ); + + CleanupStack::PopAndDestroy( dateStringBuf );//dateStringBuf, aiDateFormatString + CleanupStack::PopAndDestroy( aiDateFormatString ); + + CleanupStack::Pop( aiDateString ); + return aiDateString; + } + +// ----------------------------------------------------------------------------- +// CXnDateControl::ConstructDayStringL +// ----------------------------------------------------------------------------- +// +HBufC* CXnDateControl::ConstructDayStringL() + { + TTime time; + time.HomeTime(); + + HBufC* aiDayString = HBufC::NewLC( KMaxDayNumberStringLength ); + aiDayString->Des().Num( time.DayNoInMonth() + 1 ); + // To arabic + TPtr dayStringPtr = aiDayString->Des(); + AknTextUtils::DisplayTextLanguageSpecificNumberConversion( dayStringPtr ); + CleanupStack::Pop( aiDayString ); + return aiDayString; + } + +// ----------------------------------------------------------------------------- +// CXnDateControl::CreateFontL +// ----------------------------------------------------------------------------- +// +const CAknLayoutFont* CXnDateControl::CreateFontL( CXnNodePluginIf& aNode ) + { + if ( !iDateFont ) + { + iAdapter.CreateFontL( aNode, KDateFont, iDateFont ); + } + return CAknLayoutFont::AsCAknLayoutFontOrNull( iDateFont ); + } + +// ----------------------------------------------------------------------------- +// CXnDateControl::CreateColorL +// ----------------------------------------------------------------------------- +// +const TRgb& CXnDateControl::CreateColorL( CXnNodePluginIf& aNode ) + { + if ( !iIsColorSet ) + { + iAdapter.CreateColorL( aNode, iDateColor ); + iIsColorSet = ETrue; + } + return iDateColor; + } + +// ----------------------------------------------------------------------------- +// CXnDateControl::ResetFont +// ----------------------------------------------------------------------------- +// +void CXnDateControl::ResetFont() + { + iDateFont = NULL; + iIsColorSet = EFalse; + } + +// ----------------------------------------------------------------------------- +// CXnDateControl::RefreshDateL +// ----------------------------------------------------------------------------- +// +void CXnDateControl::RefreshDateL() + { + delete iDateText; + iDateText = NULL; + if ( iDateType == EDate ) + { + iDateText = ConstructDateStringL(); + } + else if ( iDateType == EDay ) + { + iDateText = ConstructDayStringL(); + } + } + +// ----------------------------------------------------------------------------- +// CXnDateControl::HandleCallBackL +// ----------------------------------------------------------------------------- +// +TInt CXnDateControl::HandleCallBackL( TAny *aPtr ) + { + CXnDateControl* self = static_cast( aPtr ); + + if( self ) + { + TInt changes( self->iEnvNotifier->Change() ); + + if ( changes & + ( EChangesLocale | EChangesMidnightCrossover | EChangesSystemTime ) ) + { + self->RefreshDateL(); + } + } + + return KErrNone; + } + +// End of File diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewstickercontrol.cpp --- a/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewstickercontrol.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewstickercontrol.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -154,6 +154,11 @@ } UpdateTitleL( KNullDesC, aIndex ); + + if( aIndex == iCurrentTitleIndex ) + { + iCurrentTitleIndex = GetNextTitleWithContent( aIndex ); + } } } diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/inc/xntexteditoradapter.h --- a/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/inc/xntexteditoradapter.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/inc/xntexteditoradapter.h Fri Sep 17 15:37:16 2010 +0100 @@ -20,6 +20,7 @@ // System includes #include +#include // User includes #include "xncontroladapter.h" @@ -49,7 +50,7 @@ ~CXnTextEditorAdapter(); public: - // New functions + // new functions /** * Gets editor @@ -57,7 +58,7 @@ * @since S60 5.0 * @return Editor, ownership is not transfered */ - CEikEdwin* Editor() const { return iEditor; }; + CEikEdwin* Editor() const; /** * Set text to the text field @@ -68,6 +69,14 @@ void SetTextL( const TDesC& aText ); /** + * Queries wheter text content change is caused by call to SetTextL + * + * @since S60 5.2 + * @return ETrue if set text, EFalse otherwise + */ + TBool IsSetText() const; + + /** * Return the text of the text field * * @since S60 5.0 @@ -75,15 +84,8 @@ */ HBufC* Text() const; - /** - * Handles editor events - * - * @since S60 5.2 - * @param aReason, editor event - */ - void HandleEditorEvent( TInt aReason ); - -public: // from base classes +public: + // from base classes /** * See CCoeControl documentation @@ -104,12 +106,7 @@ * See CCoeControl documentation */ TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType); - - /** - * See CXnControlAdapter documentation - */ - TBool RefusesFocusLoss() const; - + /** * See CCoeControl documentation */ @@ -122,23 +119,14 @@ /** * See CCoeControl documentation - */ - void HandleResourceChange( TInt aType ); - - /** - * See CCoeControl documentation */ void HandlePointerEventL(const TPointerEvent& aPointerEvent); - /** - * See CCoeAppUiBase. - */ - void HandleScreenDeviceChangedL(); - -private: // from base classes +private: + // from MCoeControlBackground /** - * See MCoeControlBackground documentation + * @see MCoeControlBackground */ void Draw( CWindowGc& aGc, const CCoeControl& aControl, const TRect& aRect ) const; @@ -146,8 +134,14 @@ private: // private constrcutors + /** + * C++ constructor + */ CXnTextEditorAdapter( CXnControlAdapter* aParent, CXnNodePluginIf& aNode ); + /** + * 2nd phase constructor + */ void ConstructL(); private: @@ -156,9 +150,10 @@ void SetPropertiesL(); void SetEditorMarginPropertiesL(); - + private: // data + /** Parent control, not owned */ CXnControlAdapter* iParent; /** UI node, not owned */ @@ -176,11 +171,9 @@ /** Flag to indicate whether the font needs to be released or not */ TBool iReleaseFont; /** Max line amount */ - TInt iMaxLines; - /** Flag to indicate whether focus loss is refused */ - TBool iRefusesFocusLoss; - /** Split input states*/ - TInt iSplitInputFlags; + TInt iMaxLines; + /** Flags */ + TBitFlags32 iFlags; }; #endif // _XNTEXTEDITORADAPTER_H diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/inc/xntexteditorpublisher.h --- a/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/inc/xntexteditorpublisher.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/inc/xntexteditorpublisher.h Fri Sep 17 15:37:16 2010 +0100 @@ -19,53 +19,85 @@ #define XNTEXTEDITORPUBLISHER_H #include -#include +#include // FORWARD DECLARATIONS class CLiwServiceHandler; class MLiwInterface; class CXnTextEditorAdapter; -class CXnTextEditorPublisher : public CBase, public MEikEdwinObserver +class CXnTextEditorPublisher : public CBase, public CTextView::MObserver { - public: - /** - * Two-phased constructor. - */ - static CXnTextEditorPublisher* NewL( CXnTextEditorAdapter& aAdapter, - const TDesC8& aNodeId ); +public: + /** + * Two-phased constructor. + */ + static CXnTextEditorPublisher* NewL( CXnTextEditorAdapter& aAdapter, + const TDesC8& aNodeId ); - /** - * Destructor. - */ - virtual ~CXnTextEditorPublisher(); - - private: - CXnTextEditorPublisher( CXnTextEditorAdapter& aAdapter ); - void ConstructL( const TDesC8& aNodeId ); + /** + * Destructor. + */ + virtual ~CXnTextEditorPublisher(); + +private: + // constructors + + /** + * C++ constructor + */ + CXnTextEditorPublisher( CXnTextEditorAdapter& aAdapter ); + + /** + * 2nd phase constructor + */ + void ConstructL( const TDesC8& aNodeId ); - public: // From MEikEdwinObserver - /** - * @see MEikEdwinObserver. - */ - void HandleEdwinEventL(CEikEdwin* aEdwin,TEdwinEvent aEventType); - - void PublishTextL( const TDesC& aText ); +public: + // from CTextView::MObserver + + /** + * @see CTextView::MObserver + */ + void OnReformatL( const CTextView* aTextView ); + +public: + // new functions + + /** + * Publishes given text to CPS + * + * @since S60 5.2 + * @param aText Text to publish + */ + void PublishTextL( const TDesC& aText ); - private: // New functions - void InitCpsInterfaceL(); - void AddDataToCpsL( const TDesC& aPublisherId, const TDesC& aContentType, - const TDesC& aContentId, const TDesC8& aDataKey, const TDesC& aData ); - void RemoveDataFromCpsL( const TDesC& aPublisherId, const TDesC& aContentType, - const TDesC& aContentId ); +private: + // new functions + + void InitCpsInterfaceL(); + + void AddDataToCpsL( const TDesC& aPublisherId, const TDesC& aContentType, + const TDesC& aContentId, const TDesC8& aDataKey, const TDesC& aData ); + + void RemoveDataFromCpsL( const TDesC& aPublisherId, const TDesC& aContentType, + const TDesC& aContentId ); - - private: - CXnTextEditorAdapter& iAdapter; - HBufC* iNodeId; // Own - MLiwInterface* iCpsInterface; // Not own - CLiwServiceHandler* iServiceHandler; // Own - HBufC* iTextBuffer; // Own +private: + // data + + /** Text editor adapter, not owned */ + CXnTextEditorAdapter& iAdapter; + /** element node id, owned */ + HBufC* iNodeId; + /** CPS intertace, owned */ + MLiwInterface* iCpsInterface; + /** Service handler, owned */ + CLiwServiceHandler* iServiceHandler; + /** Text publish buffer, owned */ + HBufC* iTextBuffer; + /** Text publish temp buffer, owned */ + HBufC* iTempBuffer; }; #endif //XNTEXTEDITORPUBLISHER_H diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditor.cpp --- a/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditor.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditor.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -87,16 +87,6 @@ } // --------------------------------------------------------- -// CXnTextEditor::HandleEditorEvent -// --------------------------------------------------------- -// -void CXnTextEditor::HandleEditorEvent( TInt aReason ) - { - static_cast(ControlAdapter())-> - HandleEditorEvent( aReason ); - } - -// --------------------------------------------------------- // --------------------------------------------------------- XnComponentInterface::MXnComponentInterface* CXnTextEditor::MakeInterfaceL(const TDesC8& aType) { diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditoradapter.cpp --- a/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditoradapter.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditoradapter.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -50,58 +50,32 @@ #include "c_xnutils.h" #include "xntexteditor.h" -const TInt KMaxLength = 100; - -enum TSplitInputState +// Constants +enum EFlags { - ESplitInputEnabled = 1, - ESplitInputOpen = 2, - ESplitInputEditorInStack = 4, - EScreenDeviceChanged = 8 + EUsePartialScreenInput = 1, + EIsAlreadyFocused, + EIsFocused, + ESetText }; +const TInt KDefaultLength( 100 ); + _LIT8( KCpsPublishing, "cpspublishing" ); _LIT8( KMaxLineAmount, "max-line-amount" ); _LIT8( KMaxCharAmount, "max-char-amount" ); _LIT8( KEnablePartialInput, "splitinputenabled" ); -_LIT8( KSplitScreenEnabledTrigger , "splitscreenenabled" ); -_LIT8( KSplitScreenDisabledTrigger, "splitscreendisabled" ); _LIT( KEnterChar, "\x2029" ); -// Local macros +// Macros #define IS_ARROW_KEY( k ) \ ( k == EStdKeyLeftArrow || k == EStdKeyRightArrow || \ k == EStdKeyUpArrow || k == EStdKeyDownArrow ) // ============================ LOCAL FUNCTIONS ================================ -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// -TBool IsFlagSet( TInt aFlags, TInt aFlag ) - { - return aFlags & aFlag; - } - -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// -void SetFlag( TInt& aFlags, TInt aFlag ) - { - aFlags |= aFlag; - } - -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// -void ClearFlag( TInt& aFlags, TInt aFlag ) - { - aFlags &= ~aFlag; - } - // ============================ MEMBER FUNCTIONS =============================== - // ----------------------------------------------------------------------------- // CXnTextEditorAdapter::NewL // Symbian static 1st phase constructor @@ -138,17 +112,16 @@ // CXnTextEditorAdapter::~CXnTextEditorAdapter() { - if( IsFlagSet( iSplitInputFlags, ESplitInputOpen ) ) + if ( iAppui ) { - if( iUiEngine ) - { - iUiEngine->EnablePartialTouchInput( iNode, EFalse ); - } + iAppui->RemoveFromStack( iEditor ); } - - if ( iAvkonAppUi ) + + if ( iFlags.IsSet( EIsFocused ) ) { - iAvkonAppUi->RemoveFromStack( iEditor ); + RProperty::Set( KPSUidAiInformation, + KActiveIdleForwardNumericKeysToPhone, + EPSAiForwardNumericKeysToPhone ); } if( iFont && iReleaseFont ) @@ -157,8 +130,9 @@ dev->ReleaseFont( iFont ); } - delete iEditorPublisher; - delete iEditor; + delete iEditor; + + delete iEditorPublisher; } // ----------------------------------------------------------------------------- @@ -169,6 +143,7 @@ void CXnTextEditorAdapter::ConstructL() { CXnControlAdapter::ConstructL( iNode ); + iUiEngine = iNode.UiEngineL(); iAppui = static_cast< CXnAppUiAdapter* >( iAvkonAppUi ); @@ -183,8 +158,8 @@ iMaxLines = maxlinesProp->FloatValueL(); } - // Max char amount - TInt maxChars( KMaxLength ); + // Default char amount + TInt maxChars( KDefaultLength ); CXnProperty* maxcharsProp( iNode.GetPropertyL( KMaxCharAmount ) ); @@ -196,7 +171,11 @@ iEditor = new ( ELeave ) CEikEdwin; iEditor->SetContainerWindowL( *iParent ); - iEditor->ConstructL( 0, maxChars, maxChars, iMaxLines ); + + TInt flags( CEikEdwin::ENoAutoSelection | CEikEdwin::EJustAutoCurEnd | + CEikEdwin::EAllowUndo | CEikEdwin::EAvkonEditor ); + + iEditor->ConstructL( flags, maxChars, maxChars, iMaxLines ); iEditor->SetBackground( this ); // Set allowed input modes @@ -211,35 +190,25 @@ // Set the default case mode iEditor->SetAknEditorCase( EAknEditorTextCase ); - - iEditor->AddFlagToUserFlags( - CEikEdwin::ENoAutoSelection | CEikEdwin::EAllowUndo ); - + // Set numeric keymap iEditor->SetAknEditorNumericKeymap( EAknEditorPlainNumberModeKeymap ); // Enable partial Screen - CXnProperty* enablepartialinput( iNode.GetPropertyL( KEnablePartialInput ) ); - iSplitInputFlags = 0; - - if ( enablepartialinput && - enablepartialinput->StringValue() == XnPropertyNames::KTrue ) + CXnProperty* prop( iNode.GetPropertyL( KEnablePartialInput ) ); + + if ( prop && prop->StringValue() == XnPropertyNames::KTrue ) { iEditor->SetAknEditorFlags( EAknEditorFlagEnablePartialScreen ); - SetFlag( iSplitInputFlags, ESplitInputEnabled ); + + iFlags.Set( EUsePartialScreenInput ); } - - // for RTL languages - iEditor->SetAknEditorLocalLanguage( User::Language() ); - ( AknLayoutUtils::LayoutMirrored() ? - iEditor->SetAlignment( EAknEditorAlignRight ) : - iEditor->SetAlignment( EAknEditorAlignLeft ) ); - - iEditor->SetObserver( this ); - - // Default not focused - iEditor->SetFocus( EFalse ); + iEditor->SetAlignment( AknLayoutUtils::LayoutMirrored() ? + EAknEditorAlignRight : EAknEditorAlignLeft ); + + iEditor->CreateTextViewL(); + SetPropertiesL(); } @@ -303,9 +272,7 @@ if ( IS_ARROW_KEY( aKeyEvent.iScanCode ) ) { if ( ret == EKeyWasNotConsumed && aType == EEventKey ) - { - iRefusesFocusLoss = EFalse; - + { ret = CXnControlAdapter::OfferKeyEventL( aKeyEvent, aType ); } } @@ -331,72 +298,42 @@ return ret; } - -// ----------------------------------------------------------------------------- -// CXnTextEditorAdapter::RefusesFocusLoss -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CXnTextEditorAdapter::RefusesFocusLoss() const - { - return iRefusesFocusLoss; - } // ----------------------------------------------------------------------------- // CXnTextEditorAdapter::FocusChanged // (other items were commented in a header). // ----------------------------------------------------------------------------- // -void CXnTextEditorAdapter::FocusChanged( TDrawNow aDrawNow ) +void CXnTextEditorAdapter::FocusChanged( TDrawNow /*aDrawNow*/ ) { TBool isFocused( IsFocused() ? ETrue : EFalse ); - TInt value; - - if ( isFocused ) - { - value = EPSAiDontForwardNumericKeysToPhone; - - if( !IsFlagSet( iSplitInputFlags, ESplitInputEnabled ) ) - { - TRAP_IGNORE( iAppui->AddToStackL( iAppui->View(), iEditor ) ); - // AddToStackL calls iEditor->SetFocus( ETrue ); + TBool wasFocused( iFlags.IsSet( EIsFocused ) ? ETrue : EFalse ); + + if ( isFocused != wasFocused ) + { + TInt value; + + if ( isFocused ) + { + value = EPSAiDontForwardNumericKeysToPhone; + + iFlags.Set( EIsFocused ); + + TRAP_IGNORE( iAppui->AddToStackL( iAppui->View(), iEditor ) ); } - else if( !IsFlagSet( iSplitInputFlags, ESplitInputOpen ) ) + else { - TRAP_IGNORE( iAppui->AddToStackL( iAppui->View(), iEditor ) ); - SetFlag( iSplitInputFlags, ESplitInputEditorInStack ); - } - } - else - { - value = EPSAiForwardNumericKeysToPhone; - - if( !IsFlagSet( iSplitInputFlags, ESplitInputEnabled ) ) - { + value = EPSAiForwardNumericKeysToPhone; + + iFlags.Clear( EIsFocused ); + iAppui->RemoveFromStack( iEditor ); - iEditor->SetFocus( EFalse, aDrawNow ); - } + iEditor->SetFocus( EFalse ); + } - // Remove editor from stack if it has not beed removed AND split screen has been closed - else if( IsFlagSet( iSplitInputFlags, ESplitInputEditorInStack ) && - !IsFlagSet( iSplitInputFlags, ESplitInputOpen ) ) - { - iAppui->RemoveFromStack( iEditor ); - iEditor->SetFocus( EFalse, aDrawNow ); - ClearFlag( iSplitInputFlags, ESplitInputEditorInStack ); - } - } - - if( IsFlagSet( iSplitInputFlags, ESplitInputOpen ) ) - { - value = EPSAiDontForwardNumericKeysToPhone; - } - - iRefusesFocusLoss = isFocused; - - RProperty::Set( KPSUidAiInformation, - KActiveIdleForwardNumericKeysToPhone, - value ); + RProperty::Set( KPSUidAiInformation, + KActiveIdleForwardNumericKeysToPhone, value ); + } } // ----------------------------------------------------------------------------- @@ -411,113 +348,57 @@ } // ----------------------------------------------------------------------------- -// CXnTextEditorAdapter::HandleResourceChange -// -// ----------------------------------------------------------------------------- -// -void CXnTextEditorAdapter::HandleResourceChange( TInt aType ) - { - if ( aType == KAknSplitInputEnabled ) - { - if( IsFlagSet( iSplitInputFlags, ESplitInputEditorInStack ) && - !IsFlagSet( iSplitInputFlags, ESplitInputOpen ) ) - { - iUiEngine->EnablePartialTouchInput( iNode, ETrue ); - SetFlag( iSplitInputFlags, ESplitInputOpen ); - if ( !IsFlagSet( iSplitInputFlags, EScreenDeviceChanged ) ) - { - TRAP_IGNORE( iNode.ReportTriggerEventL( KSplitScreenEnabledTrigger, - KNullDesC8, KNullDesC8) ); - } - else - { - ClearFlag( iSplitInputFlags, EScreenDeviceChanged ); - } - } - } - - if ( aType == KAknSplitInputDisabled ) - { - if( IsFlagSet( iSplitInputFlags, ESplitInputOpen ) ) - { - iUiEngine->EnablePartialTouchInput( iNode, EFalse ); - ClearFlag( iSplitInputFlags, ESplitInputOpen ); - - // Note that after orientation switch, split screen is first closed and - // then opened again. Therefore these must be discarded - if ( !IsFlagSet( iSplitInputFlags, EScreenDeviceChanged ) ) - { - TRAP_IGNORE( iNode.ReportTriggerEventL( KSplitScreenDisabledTrigger, - KNullDesC8, KNullDesC8) ); - - // If editor is not focused anymore, remove if from stack - CXnNodePluginIf* focusedNode( NULL ); - TRAP_IGNORE( focusedNode = iUiEngine->FocusedNodeL() ); - if( focusedNode != &iNode && - IsFlagSet( iSplitInputFlags, ESplitInputEditorInStack ) ) - { - iAppui->RemoveFromStack( iEditor ); - iEditor->SetFocus( EFalse ); - ClearFlag( iSplitInputFlags, ESplitInputEditorInStack ); - - // Forward keys to phone again - RProperty::Set( KPSUidAiInformation, - KActiveIdleForwardNumericKeysToPhone, - EPSAiForwardNumericKeysToPhone ); - } - } - } - } - CCoeControl::HandleResourceChange( aType ); - } - -// ----------------------------------------------------------------------------- // CXnTextEditorAdapter::HandlePointerEventL // // ----------------------------------------------------------------------------- // -void CXnTextEditorAdapter::HandlePointerEventL( const TPointerEvent& aPointerEvent ) - { - TPointerEvent pointerEvent( aPointerEvent ); - TRect rect( iEditor->TextView()->ViewRect() ); - TPoint point( aPointerEvent.iPosition ); - - // this opens partial screen also when margin is tapped - if( !IsFlagSet( iSplitInputFlags, ESplitInputOpen ) ) +void CXnTextEditorAdapter::HandlePointerEventL( + const TPointerEvent& aPointerEvent ) + { + if ( aPointerEvent.iType == TPointerEvent::EButton1Down ) { - if( point.iX < rect.iTl.iX ) + iFlags.Clear( EIsAlreadyFocused ); + + if ( IsFocused() ) { - pointerEvent.iPosition.iX = rect.iTl.iX; - } - else if( point.iX > rect.iBr.iX ) - { - pointerEvent.iPosition.iX = rect.iBr.iX; - } - - if( point.iY < rect.iTl.iY ) - { - pointerEvent.iPosition.iY = rect.iTl.iY; - } - else if( point.iY > rect.iBr.iY ) - { - pointerEvent.iPosition.iY = rect.iBr.iY; + iFlags.Set( EIsAlreadyFocused ); } } - CXnControlAdapter::HandlePointerEventL( pointerEvent ); - } - -// ----------------------------------------------------------------------------- -// CXnTextEditorAdapter::HandleScreenDeviceChangedL -// -// ----------------------------------------------------------------------------- -// -void CXnTextEditorAdapter::HandleScreenDeviceChangedL() - { - if( IsFlagSet( iSplitInputFlags, ESplitInputOpen ) ) + if ( iFlags.IsSet( EIsAlreadyFocused ) ) + { + CCoeControl::HandlePointerEventL( aPointerEvent ); + } + else { - SetFlag( iSplitInputFlags, EScreenDeviceChanged ); - } + TPointerEvent pointerEvent( aPointerEvent ); + TRect rect( iEditor->TextView()->ViewRect() ); + TPoint point( aPointerEvent.iPosition ); + + // this opens partial screen also when margin is tapped + if ( iFlags.IsSet( EUsePartialScreenInput ) ) + { + if( point.iX < rect.iTl.iX ) + { + pointerEvent.iPosition.iX = rect.iTl.iX; + } + else if( point.iX > rect.iBr.iX ) + { + pointerEvent.iPosition.iX = rect.iBr.iX; + } + + if( point.iY < rect.iTl.iY ) + { + pointerEvent.iPosition.iY = rect.iTl.iY; + } + else if( point.iY > rect.iBr.iY ) + { + pointerEvent.iPosition.iY = rect.iBr.iY; + } + } + + CXnControlAdapter::HandlePointerEventL( pointerEvent ); + } } // ----------------------------------------------------------------------------- @@ -535,14 +416,54 @@ } // ----------------------------------------------------------------------------- +// CXnTextEditorAdapter::Editor +// Gets underlying CEikEdwin +// ----------------------------------------------------------------------------- +// +CEikEdwin* CXnTextEditorAdapter::Editor() const + { + return iEditor; + } + +// ----------------------------------------------------------------------------- // CXnTextEditorAdapter::SetTextL // Sets the new content to the underlying CEikEdwin // ----------------------------------------------------------------------------- // void CXnTextEditorAdapter::SetTextL( const TDesC& aText ) { - iEditor->SetTextL( &aText ); - iNode.SetDirtyL(); + HBufC* text( Text() ); + + TBool update( EFalse ); + + if ( !text || *text != aText ) + { + update = ETrue; + } + + delete text; + text = NULL; + + if ( update ) + { + iFlags.Set( ESetText ); + + TRAP_IGNORE( iEditor->SetTextL( &aText ) ); + + iFlags.Clear( ESetText ); + + iNode.SetDirtyL(); + } + } + +// ----------------------------------------------------------------------------- +// CXnTextEditorAdapter::IsSetText +// Queries whether SetText API has generated edwin content change +// ----------------------------------------------------------------------------- +// +TBool CXnTextEditorAdapter::IsSetText() const + { + return iFlags.IsSet( ESetText ) ? ETrue : EFalse; } // ----------------------------------------------------------------------------- @@ -561,22 +482,6 @@ } // ----------------------------------------------------------------------------- -// CXnTextEditorAdapter::HandleEditorEvent -// ----------------------------------------------------------------------------- -// -void CXnTextEditorAdapter::HandleEditorEvent( TInt aReason ) - { - if( aReason == CXnTextEditor::KDeactivateTextEditor && - IsFlagSet( iSplitInputFlags, ESplitInputOpen ) ) - { - iAppui->RemoveFromStack( iEditor ); - iEditor->SetFocus( EFalse ); - ClearFlag( iSplitInputFlags, ESplitInputEditorInStack ); - iRefusesFocusLoss = EFalse; - } - } - -// ----------------------------------------------------------------------------- // CXnTextEditorAdapter::SetPropertiesL // Sets text properties // ----------------------------------------------------------------------------- diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditorpublisher.cpp --- a/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditorpublisher.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditorpublisher.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -94,13 +94,10 @@ delete iServiceHandler; iServiceHandler = NULL; } - CEikEdwin* editor = iAdapter.Editor(); - if( editor ) - { - editor->RemoveEdwinObserver( this ); - } + delete iNodeId; delete iTextBuffer; + delete iTempBuffer; } // ----------------------------------------------------------------------------- @@ -120,12 +117,18 @@ { iNodeId = CnvUtfConverter::ConvertToUnicodeFromUtf8L( aNodeId ); InitCpsInterfaceL(); - CEikEdwin* editor = iAdapter.Editor(); - if( editor ) - { - editor->SetEdwinObserver( this ); - TInt len = editor->MaxLength(); + + CEikEdwin* editor( iAdapter.Editor() ); + + // Editor must be activated before setting observer + if( editor && editor->TextView() ) + { + TInt len( editor->MaxLength() ); + iTextBuffer = HBufC::NewL( len ); + iTempBuffer = HBufC::NewL( len ); + + editor->TextView()->SetObserver( this ); } } @@ -250,19 +253,35 @@ iCpsInterface = msgInterface; } + // ----------------------------------------------------------------------------- -// CXnTextEditorPublisher::HandleEdwinEventL +// CXnTextEditorPublisher::OnReformatL // ----------------------------------------------------------------------------- // -void CXnTextEditorPublisher::HandleEdwinEventL(CEikEdwin* aEdwin, TEdwinEvent aEventType) +void CXnTextEditorPublisher::OnReformatL( const CTextView* aTextView ) { - if( aEventType == MEikEdwinObserver::EEventTextUpdate) + CEikEdwin* editor( iAdapter.Editor() ); + + if ( editor ) { - TPtr bufferDes = iTextBuffer->Des(); - bufferDes.Zero(); - aEdwin->GetText( bufferDes ); - PublishTextL( bufferDes ); - } + editor->OnReformatL( aTextView ); + + TPtr ptr( iTempBuffer->Des() ); + + ptr.Zero(); + + editor->GetText( ptr ); + + if ( *iTextBuffer != *iTempBuffer ) + { + *iTextBuffer = *iTempBuffer; + + if ( !iAdapter.IsSetText() ) + { + PublishTextL( *iTextBuffer ); + } + } + } } // ----------------------------------------------------------------------------- diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/renderingplugins/xntextfactory/src/xntextadapter.cpp --- a/idlehomescreen/xmluirendering/renderingplugins/xntextfactory/src/xntextadapter.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/renderingplugins/xntextfactory/src/xntextadapter.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -1044,9 +1044,9 @@ lineSpace = iNode.UiEngineL()->VerticalPixelValueL( lineSpaceProp, aReference ); } - if( lineSpace < 1 ) + if( lineSpace < 0 ) { - // Must be at least 1 + // Default lineSpace = 1; } diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/bwins/xn3layoutengineu.def --- a/idlehomescreen/xmluirendering/uiengine/bwins/xn3layoutengineu.def Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/bwins/xn3layoutengineu.def Fri Sep 17 15:37:16 2010 +0100 @@ -40,178 +40,178 @@ ?ComponentNodeImpl@CXnNodePluginIf@@QAEPAVCXnComponentNodeImpl@@XZ @ 39 NONAME ; class CXnComponentNodeImpl * CXnNodePluginIf::ComponentNodeImpl(void) ??0CXnViewsNodeImpl@@IAE@XZ @ 40 NONAME ; CXnViewsNodeImpl::CXnViewsNodeImpl(void) ?IsTextEditorActive@TXnUiEnginePluginIf@@QAEHXZ @ 41 NONAME ; int TXnUiEnginePluginIf::IsTextEditorActive(void) - ?HandlePointerEventL@CXnControlAdapter@@UAEXABUTPointerEvent@@@Z @ 42 NONAME ; void CXnControlAdapter::HandlePointerEventL(struct TPointerEvent const &) - ??1CXnDocument@@UAE@XZ @ 43 NONAME ; CXnDocument::~CXnDocument(void) - ?HandleResourceChangeL@CXnAppUiAdapter@@MAEXH@Z @ 44 NONAME ; void CXnAppUiAdapter::HandleResourceChangeL(int) - ?DoEnterPowerSaveModeL@CXnControlAdapter@@UAEXW4TModeEvent@1@@Z @ 45 NONAME ; void CXnControlAdapter::DoEnterPowerSaveModeL(enum CXnControlAdapter::TModeEvent) - ?CloneL@CXnProperty@@QAEPAV1@XZ @ 46 NONAME ; class CXnProperty * CXnProperty::CloneL(void) - ?ReportTriggerEventL@CXnNodePluginIf@@QAEXABVTDesC8@@00@Z @ 47 NONAME ; void CXnNodePluginIf::ReportTriggerEventL(class TDesC8 const &, class TDesC8 const &, class TDesC8 const &) - ?FocusedNodeL@TXnUiEnginePluginIf@@QAEPAVCXnNodePluginIf@@XZ @ 48 NONAME ; class CXnNodePluginIf * TXnUiEnginePluginIf::FocusedNodeL(void) - ?FindContentSourceNodesL@TXnUiEngineAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@ABVTDesC8@@@Z @ 49 NONAME ; class RPointerArray TXnUiEngineAppIf::FindContentSourceNodesL(class TDesC8 const &) - ?EqualsL@CXnProperty@@QBEHAAV1@@Z @ 50 NONAME ; int CXnProperty::EqualsL(class CXnProperty &) const - ?ScreenDeviceSize@TXnUiEnginePluginIf@@QAE?AVTSize@@XZ @ 51 NONAME ; class TSize TXnUiEnginePluginIf::ScreenDeviceSize(void) - ??0CXnControlAdapter@@IAE@XZ @ 52 NONAME ; CXnControlAdapter::CXnControlAdapter(void) - ?UiEngineL@CXnNodeAppIf@@QAEPAVTXnUiEngineAppIf@@XZ @ 53 NONAME ; class TXnUiEngineAppIf * CXnNodeAppIf::UiEngineL(void) - ?LongTapDetector@CXnControlAdapter@@QBEPAVCAknLongTapDetector@@XZ @ 54 NONAME ; class CAknLongTapDetector * CXnControlAdapter::LongTapDetector(void) const - ??0CXnAppUiAdapter@@QAE@VTUid@@@Z @ 55 NONAME ; CXnAppUiAdapter::CXnAppUiAdapter(class TUid) - ?DestroyPublisher@CXnAppUiAdapter@@UAEXABVTAiFwPublisherInfo@@@Z @ 56 NONAME ; void CXnAppUiAdapter::DestroyPublisher(class TAiFwPublisherInfo const &) - ?Rect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 57 NONAME ; class TRect CXnNodePluginIf::Rect(void) - ?AddChildL@CXnNodePluginIf@@QAEXPAV1@@Z @ 58 NONAME ; void CXnNodePluginIf::AddChildL(class CXnNodePluginIf *) - ?SetNode@CXnComponent@@QAEXAAVCXnNodePluginIf@@@Z @ 59 NONAME ; void CXnComponent::SetNode(class CXnNodePluginIf &) - ?ResetStylusCounter@CXnControlAdapter@@QAEXXZ @ 60 NONAME ; void CXnControlAdapter::ResetStylusCounter(void) - ?SetComponent@CXnComponentNodeImpl@@QAEXPAVCXnComponent@@@Z @ 61 NONAME ; void CXnComponentNodeImpl::SetComponent(class CXnComponent *) - ?LayoutUIL@TXnUiEnginePluginIf@@QAEXPAVCXnNodePluginIf@@@Z @ 62 NONAME ; void TXnUiEnginePluginIf::LayoutUIL(class CXnNodePluginIf *) - ?ExitPowerSaveModeL@CXnControlAdapter@@QAEXW4TModeEvent@1@@Z @ 63 NONAME ; void CXnControlAdapter::ExitPowerSaveModeL(enum CXnControlAdapter::TModeEvent) - ?PublisherInfo@CXnAppUiAdapter@@UAEHAAVCXnNodeAppIf@@AAVTHsPublisherInfo@@@Z @ 64 NONAME ; int CXnAppUiAdapter::PublisherInfo(class CXnNodeAppIf &, class THsPublisherInfo &) - ?GetThemeResource@TXnUiEngineAppIf@@QAEHABVTDesC16@@AAVRFile@@@Z @ 65 NONAME ; int TXnUiEngineAppIf::GetThemeResource(class TDesC16 const &, class RFile &) - ?ConstructL@CXnComponent@@IAEXXZ @ 66 NONAME ; void CXnComponent::ConstructL(void) - ?FindResource@CXnUtils@@SAPAVCXnResource@@AAV?$CArrayPtrSeg@VCXnResource@@@@ABVTDesC16@@AAH@Z @ 67 NONAME ; class CXnResource * CXnUtils::FindResource(class CArrayPtrSeg &, class TDesC16 const &, int &) - ?UnsetStateL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 68 NONAME ; void CXnNodeAppIf::UnsetStateL(class TDesC8 const &) - ?Uid@CXnDocument@@QAE?AVTUid@@XZ @ 69 NONAME ; class TUid CXnDocument::Uid(void) - ?FocusChanged@CXnControlAdapter@@UAEXW4TDrawNow@@@Z @ 70 NONAME ; void CXnControlAdapter::FocusChanged(enum TDrawNow) - ?SetBlank@CXnControlAdapter@@QAEXH@Z @ 71 NONAME ; void CXnControlAdapter::SetBlank(int) - ?ProcessMessageL@CXnAppUiAdapter@@UAEXVTUid@@ABVTDesC8@@@Z @ 72 NONAME ; void CXnAppUiAdapter::ProcessMessageL(class TUid, class TDesC8 const &) - ?Component@CXnNodeAppIf@@QAEAAVCXnComponent@@XZ @ 73 NONAME ; class CXnComponent & CXnNodeAppIf::Component(void) - ?SetLayoutCapable@CXnNodePluginIf@@QAEXH@Z @ 74 NONAME ; void CXnNodePluginIf::SetLayoutCapable(int) - ?MarginRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 75 NONAME ; class TRect CXnNodePluginIf::MarginRect(void) - ?UiEngineL@CXnAppUiAdapter@@QAEPAVTXnUiEngineAppIf@@XZ @ 76 NONAME ; class TXnUiEngineAppIf * CXnAppUiAdapter::UiEngineL(void) - ?ActiveView@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@XZ @ 77 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::ActiveView(void) - ?HandleXuikonEventL@CXnAppUiAdapter@@UAEXAAVCXnNodeAppIf@@0AAVCXnDomNode@@1@Z @ 78 NONAME ; void CXnAppUiAdapter::HandleXuikonEventL(class CXnNodeAppIf &, class CXnNodeAppIf &, class CXnDomNode &, class CXnDomNode &) - ?RenderUIL@TXnUiEngineAppIf@@QAEXPAVCXnNodeAppIf@@@Z @ 79 NONAME ; void TXnUiEngineAppIf::RenderUIL(class CXnNodeAppIf *) - ?PrepareToExit@CXnAppUiAdapter@@MAEXXZ @ 80 NONAME ; void CXnAppUiAdapter::PrepareToExit(void) - ?DoHandlePropertyChangeL@CXnControlAdapter@@UAEXPAVCXnProperty@@@Z @ 81 NONAME ; void CXnControlAdapter::DoHandlePropertyChangeL(class CXnProperty *) - ?ConstructL@CXnControlAdapter@@IAEXAAVCXnNodePluginIf@@@Z @ 82 NONAME ; void CXnControlAdapter::ConstructL(class CXnNodePluginIf &) - ?FocusedNode@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@XZ @ 83 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FocusedNode(void) - ?SetDataL@CXnComponent@@QAEXABVTDesC8@@ABVTDesC16@@H@Z @ 84 NONAME ; void CXnComponent::SetDataL(class TDesC8 const &, class TDesC16 const &, int) - ?OfferKeyEventL@CXnControlAdapter@@UAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 85 NONAME ; enum TKeyResponse CXnControlAdapter::OfferKeyEventL(struct TKeyEvent const &, enum TEventCode) - ?IsDrawingAllowed@CXnControlAdapter@@QBEHXZ @ 86 NONAME ; int CXnControlAdapter::IsDrawingAllowed(void) const - ?DisplayL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 87 NONAME ; class CXnProperty * CXnNodePluginIf::DisplayL(void) - ?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@PAVCXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 88 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class CXnDomPropertyValue *, class CXnDomStringPool &) - ?Rect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 89 NONAME ; class TRect CXnNodeAppIf::Rect(void) - ?NewL@CXnComponentNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 90 NONAME ; class CXnComponentNodeImpl * CXnComponentNodeImpl::NewL(class CXnType *) - ?WidgetsVisible@TXnUiEngineAppIf@@QBEHXZ @ 91 NONAME ; int TXnUiEngineAppIf::WidgetsVisible(void) const - ?Type@CXnNodePluginIf@@QAEPAVCXnType@@XZ @ 92 NONAME ; class CXnType * CXnNodePluginIf::Type(void) - ?MakeXnComponentL@MXnComponentFactory@@EAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 93 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::MakeXnComponentL(class CXnNodePluginIf &, class CXnComponent * &) - ?UnsetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 94 NONAME ; void CXnNodePluginIf::UnsetStateL(class TDesC8 const &) - ?StringValueL@CXnProperty@@QAEPAVHBufC16@@XZ @ 95 NONAME ; class HBufC16 * CXnProperty::StringValueL(void) - ?DisableRenderUiLC@TXnUiEnginePluginIf@@QAEXXZ @ 96 NONAME ; void TXnUiEnginePluginIf::DisableRenderUiLC(void) - ?SetPropertyL@CXnNodeAppIf@@QAEXPAVCXnProperty@@@Z @ 97 NONAME ; void CXnNodeAppIf::SetPropertyL(class CXnProperty *) - ?View@CXnAppUiAdapter@@QBEAAVCAknView@@XZ @ 98 NONAME ; class CAknView & CXnAppUiAdapter::View(void) const - ?ViewNodeImpl@CXnNodePluginIf@@QAEPAVCXnViewNodeImpl@@XZ @ 99 NONAME ; class CXnViewNodeImpl * CXnNodePluginIf::ViewNodeImpl(void) - ?StripQuotes@CXnUtils@@SAXAAPAVHBufC16@@@Z @ 100 NONAME ; void CXnUtils::StripQuotes(class HBufC16 * &) - ?SetPCDataL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 101 NONAME ; void CXnNodePluginIf::SetPCDataL(class TDesC8 const &) - ?VisibilityL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 102 NONAME ; class CXnProperty * CXnNodePluginIf::VisibilityL(void) - ?Draw@CXnControlAdapter@@MBEXABVTRect@@@Z @ 103 NONAME ; void CXnControlAdapter::Draw(class TRect const &) const - ??1CXnApplication@@UAE@XZ @ 104 NONAME ; CXnApplication::~CXnApplication(void) - ?DoesNodeNeedComponentImplL@MXnComponentFactory@@QAEHABVTDesC8@@@Z @ 105 NONAME ; int MXnComponentFactory::DoesNodeNeedComponentImplL(class TDesC8 const &) - ?ConstructL@CXnViewsNodeImpl@@IAEXPAVCXnType@@@Z @ 106 NONAME ; void CXnViewsNodeImpl::ConstructL(class CXnType *) - ?StringPool@TXnUiEngineAppIf@@QAEAAVCXnDomStringPool@@XZ @ 107 NONAME ; class CXnDomStringPool & TXnUiEngineAppIf::StringPool(void) - ?UiEngineL@CXnNodePluginIf@@QAEPAVTXnUiEnginePluginIf@@XZ @ 108 NONAME ; class TXnUiEnginePluginIf * CXnNodePluginIf::UiEngineL(void) - ?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@@Z @ 109 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &) - ?PluginNodeL@TXnUiEnginePluginIf@@QAEAAVCXnNodePluginIf@@PAV2@@Z @ 110 NONAME ; class CXnNodePluginIf & TXnUiEnginePluginIf::PluginNodeL(class CXnNodePluginIf *) - ?VerticalPixelValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 111 NONAME ; int TXnUiEnginePluginIf::VerticalPixelValueL(class CXnProperty *, int) - ?SetComponent@CXnControlAdapter@@QAEXPAVCXnComponent@@@Z @ 112 NONAME ; void CXnControlAdapter::SetComponent(class CXnComponent *) - ??0MXnNodePredicate@@QAE@XZ @ 113 NONAME ; MXnNodePredicate::MXnNodePredicate(void) - ??1CXnViewsNodeImpl@@UAE@XZ @ 114 NONAME ; CXnViewsNodeImpl::~CXnViewsNodeImpl(void) - ?HandleControlEventL@CXnControlAdapter@@UAEXPAVCCoeControl@@W4TCoeEvent@MCoeControlObserver@@@Z @ 115 NONAME ; void CXnControlAdapter::HandleControlEventL(class CCoeControl *, enum MCoeControlObserver::TCoeEvent) - ?HandleScreenDeviceChangedL@CXnControlAdapter@@UAEXXZ @ 116 NONAME ; void CXnControlAdapter::HandleScreenDeviceChangedL(void) - ?SizeChanged@CXnControlAdapter@@MAEXXZ @ 117 NONAME ; void CXnControlAdapter::SizeChanged(void) - ?CountComponentControls@CXnControlAdapter@@MBEHXZ @ 118 NONAME ; int CXnControlAdapter::CountComponentControls(void) const - ?HideTooltipsL@CXnNodeAppIf@@QAEXXZ @ 119 NONAME ; void CXnNodeAppIf::HideTooltipsL(void) - ?GetPropertyL@CXnNodeAppIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 120 NONAME ; class CXnProperty * CXnNodeAppIf::GetPropertyL(class TDesC8 const &) const - ?FindNodeByClassL@TXnUiEngineAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@ABVTDesC8@@0@Z @ 121 NONAME ; class RPointerArray TXnUiEngineAppIf::FindNodeByClassL(class TDesC8 const &, class TDesC8 const &) - ?Match@MXnNodePredicate@@UAEHAAVCXnNode@@@Z @ 122 NONAME ; int MXnNodePredicate::Match(class CXnNode &) - ?GetBitmapAndMask@CXnControlAdapter@@QAEXABVTDesC16@@0AAPAVCFbsBitmap@@1@Z @ 123 NONAME ; void CXnControlAdapter::GetBitmapAndMask(class TDesC16 const &, class TDesC16 const &, class CFbsBitmap * &, class CFbsBitmap * &) - ?NewL@CXnViewsNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 124 NONAME ; class CXnViewsNodeImpl * CXnViewsNodeImpl::NewL(class CXnType *) - ?PaddingRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 125 NONAME ; class TRect CXnNodeAppIf::PaddingRect(void) - ?SetMarginRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 126 NONAME ; void CXnNodePluginIf::SetMarginRect(class TRect const &) - ?IsDialogDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 127 NONAME ; int TXnUiEnginePluginIf::IsDialogDisplaying(void) - ?HandleEventL@CXnAppUiAdapter@@UAEXABVTDesC16@@AAVCXnNodeAppIf@@@Z @ 128 NONAME ; void CXnAppUiAdapter::HandleEventL(class TDesC16 const &, class CXnNodeAppIf &) - ?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 129 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class TDesC8 const &) const - ?SetPropertyArrayL@CXnNodeAppIf@@QAEXPAV?$RPointerArray@VCXnProperty@@@@@Z @ 130 NONAME ; void CXnNodeAppIf::SetPropertyArrayL(class RPointerArray *) - ?RemoveViewL@CXnAppUiAdapter@@QAEXAAVCAknView@@@Z @ 131 NONAME ; void CXnAppUiAdapter::RemoveViewL(class CAknView &) - ?EnterPowerSaveModeL@CXnComponent@@UAEXXZ @ 132 NONAME ; void CXnComponent::EnterPowerSaveModeL(void) - ?SetRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 133 NONAME ; void CXnNodePluginIf::SetRect(class TRect const &) - ??0CXnComponent@@IAE@XZ @ 134 NONAME ; CXnComponent::CXnComponent(void) - ?CollapseWhiteSpace@CXnUtils@@SAXAAVCXnNodePluginIf@@AAVTDes16@@@Z @ 135 NONAME ; void CXnUtils::CollapseWhiteSpace(class CXnNodePluginIf &, class TDes16 &) - ?SetHandleTooltip@CXnNodePluginIf@@QAEXH@Z @ 136 NONAME ; void CXnNodePluginIf::SetHandleTooltip(int) - ??1CXnAppUiAdapter@@UAE@XZ @ 137 NONAME ; CXnAppUiAdapter::~CXnAppUiAdapter(void) - ?NewL@CXnControlAdapter@@SAPAV1@AAVCXnNodePluginIf@@@Z @ 138 NONAME ; class CXnControlAdapter * CXnControlAdapter::NewL(class CXnNodePluginIf &) - ?EnableLongTapAnimation@CXnControlAdapter@@QAEXH@Z @ 139 NONAME ; void CXnControlAdapter::EnableLongTapAnimation(int) - ?SetPaddingRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 140 NONAME ; void CXnNodePluginIf::SetPaddingRect(class TRect const &) - ?SetFocusedNode@TXnUiEnginePluginIf@@QAEXPAVCXnNodePluginIf@@@Z @ 141 NONAME ; void TXnUiEnginePluginIf::SetFocusedNode(class CXnNodePluginIf *) - ?ExitPowerSaveModeL@CXnComponent@@UAEXXZ @ 142 NONAME ; void CXnComponent::ExitPowerSaveModeL(void) - ?GetPCData@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 143 NONAME ; class TDesC8 const & CXnNodeAppIf::GetPCData(void) const - ?Namespace@CXnNodeAppIf@@QAEABVTDesC8@@XZ @ 144 NONAME ; class TDesC8 const & CXnNodeAppIf::Namespace(void) - ?LoadPublisher@CXnAppUiAdapter@@UAEXABVTAiFwPublisherInfo@@@Z @ 145 NONAME ; void CXnAppUiAdapter::LoadPublisher(class TAiFwPublisherInfo const &) - ??1CXnComponentNodeImpl@@UAE@XZ @ 146 NONAME ; CXnComponentNodeImpl::~CXnComponentNodeImpl(void) - ?SetPropertyWithoutNotificationL@CXnNodePluginIf@@QAEXPAVCXnProperty@@@Z @ 147 NONAME ; void CXnNodePluginIf::SetPropertyWithoutNotificationL(class CXnProperty *) - ?GetPCData@CXnNodePluginIf@@QBEABVTDesC8@@XZ @ 148 NONAME ; class TDesC8 const & CXnNodePluginIf::GetPCData(void) const - ?SetPCDataL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 149 NONAME ; void CXnNodeAppIf::SetPCDataL(class TDesC8 const &) - ?Resources@TXnUiEnginePluginIf@@QAEAAV?$CArrayPtrSeg@VCXnResource@@@@XZ @ 150 NONAME ; class CArrayPtrSeg & TXnUiEnginePluginIf::Resources(void) - ?SetContentBitmaps@CXnControlAdapter@@QAEXABVTDesC16@@0@Z @ 151 NONAME ; void CXnControlAdapter::SetContentBitmaps(class TDesC16 const &, class TDesC16 const &) - ??1CXnControlAdapter@@UAE@XZ @ 152 NONAME ; CXnControlAdapter::~CXnControlAdapter(void) - ??1MXnNodePredicate@@UAE@XZ @ 153 NONAME ; MXnNodePredicate::~MXnNodePredicate(void) - ?HorizontalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 154 NONAME ; int TXnUiEnginePluginIf::HorizontalTwipValueL(class CXnProperty *, int) - ?ConstructL@CXnAppUiAdapter@@UAEXXZ @ 155 NONAME ; void CXnAppUiAdapter::ConstructL(void) - ?CreateFontL@CXnUtils@@SAXAAVCXnNodePluginIf@@AAPAVCFont@@AAH@Z @ 156 NONAME ; void CXnUtils::CreateFontL(class CXnNodePluginIf &, class CFont * &, int &) - ??0CXnApplication@@QAE@VTUid@@@Z @ 157 NONAME ; CXnApplication::CXnApplication(class TUid) - ?ComponentControl@CXnControlAdapter@@MBEPAVCCoeControl@@H@Z @ 158 NONAME ; class CCoeControl * CXnControlAdapter::ComponentControl(int) const - ?HandleLongTapEventL@CXnControlAdapter@@UAEXABVTPoint@@0@Z @ 159 NONAME ; void CXnControlAdapter::HandleLongTapEventL(class TPoint const &, class TPoint const &) - ?ParentL@CXnNodeAppIf@@QBEPAV1@XZ @ 160 NONAME ; class CXnNodeAppIf * CXnNodeAppIf::ParentL(void) const - ??1CXnComponent@@UAE@XZ @ 161 NONAME ; CXnComponent::~CXnComponent(void) - ?ControlAdapter@CXnComponent@@QAEPAVCXnControlAdapter@@XZ @ 162 NONAME ; class CXnControlAdapter * CXnComponent::ControlAdapter(void) - ?DrawContentImage@CXnControlAdapter@@IBEXXZ @ 163 NONAME ; void CXnControlAdapter::DrawContentImage(void) const - ?Component@CXnComponentNodeImpl@@QAEPAVCXnComponent@@XZ @ 164 NONAME ; class CXnComponent * CXnComponentNodeImpl::Component(void) - ?WidgetsVisible@TXnUiEnginePluginIf@@QBEHXZ @ 165 NONAME ; int TXnUiEnginePluginIf::WidgetsVisible(void) const - ?SetControlAdapter@CXnComponent@@QAEXPAVCXnControlAdapter@@@Z @ 166 NONAME ; void CXnComponent::SetControlAdapter(class CXnControlAdapter *) - ?SetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 167 NONAME ; void CXnNodePluginIf::SetStateL(class TDesC8 const &) - ?DoesComponentNeedCreation@CXnComponentNodeImpl@@QBEHXZ @ 168 NONAME ; int CXnComponentNodeImpl::DoesComponentNeedCreation(void) const - ??0CXnDocument@@QAE@AAVCEikApplication@@VTUid@@@Z @ 169 NONAME ; CXnDocument::CXnDocument(class CEikApplication &, class TUid) - ?FindNodeByClassL@TXnUiEnginePluginIf@@QAE?AV?$RPointerArray@VCXnNodePluginIf@@@@ABVTDesC16@@@Z @ 170 NONAME ; class RPointerArray TXnUiEnginePluginIf::FindNodeByClassL(class TDesC16 const &) - ?InternalDomNodeType@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 171 NONAME ; class TDesC8 const & CXnNodeAppIf::InternalDomNodeType(void) const - ?StringPool@TXnUiEnginePluginIf@@QAEAAVCXnDomStringPool@@XZ @ 172 NONAME ; class CXnDomStringPool & TXnUiEnginePluginIf::StringPool(void) - ?SetStateL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 173 NONAME ; void CXnNodeAppIf::SetStateL(class TDesC8 const &) - ?Type@CXnNodeAppIf@@QAEPAVCXnType@@XZ @ 174 NONAME ; class CXnType * CXnNodeAppIf::Type(void) - ?BorderRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 175 NONAME ; class TRect CXnNodeAppIf::BorderRect(void) - ?IdL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 176 NONAME ; class CXnProperty * CXnNodePluginIf::IdL(void) - ?RootNodeL@TXnUiEngineAppIf@@QAEAAVCXnNodeAppIf@@XZ @ 177 NONAME ; class CXnNodeAppIf & TXnUiEngineAppIf::RootNodeL(void) - ?CreateXnComponentL@MXnComponentFactory@@QAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 178 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::CreateXnComponentL(class CXnNodePluginIf &, class CXnComponent * &) - ?RefreshMenuL@TXnUiEngineAppIf@@QAEXXZ @ 179 NONAME ; void TXnUiEngineAppIf::RefreshMenuL(void) - ?PaddingRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 180 NONAME ; class TRect CXnNodePluginIf::PaddingRect(void) - ?MeasureAdaptiveContentL@CXnControlAdapter@@UAE?AVTSize@@ABV2@@Z @ 181 NONAME ; class TSize CXnControlAdapter::MeasureAdaptiveContentL(class TSize const &) - ?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@0W4TPrimitiveValueType@CXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 182 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class TDesC8 const &, enum CXnDomPropertyValue::TPrimitiveValueType, class CXnDomStringPool &) - ?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@AAV2@@Z @ 183 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class CXnProperty &) const - ?MarginRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 184 NONAME ; class TRect CXnNodeAppIf::MarginRect(void) - ?EditMode@TXnUiEnginePluginIf@@QAEHXZ @ 185 NONAME ; int TXnUiEnginePluginIf::EditMode(void) - ?FindNodeByIdL@TXnUiEnginePluginIf@@QAEPAVCXnNodePluginIf@@ABVTDesC8@@0@Z @ 186 NONAME ; class CXnNodePluginIf * TXnUiEnginePluginIf::FindNodeByIdL(class TDesC8 const &, class TDesC8 const &) - ?MakeInterfaceL@CXnComponent@@UAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 187 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnComponent::MakeInterfaceL(class TDesC8 const &) - ?EnableRenderUi@CXnUiEngineImpl@@CAXPAX@Z @ 188 NONAME ; void CXnUiEngineImpl::EnableRenderUi(void *) - ?IsMenuDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 189 NONAME ; int TXnUiEnginePluginIf::IsMenuDisplaying(void) - ?IsMenuDisplaying@TXnUiEngineAppIf@@QAEHXZ @ 190 NONAME ; int TXnUiEngineAppIf::IsMenuDisplaying(void) - ?NewL@CXnProperty@@SAPAV1@PAVCXnDomProperty@@@Z @ 191 NONAME ; class CXnProperty * CXnProperty::NewL(class CXnDomProperty *) - ?ConstructL@CXnComponentNodeImpl@@IAEXPAVCXnType@@@Z @ 192 NONAME ; void CXnComponentNodeImpl::ConstructL(class CXnType *) - ?ChildrenL@CXnNodeAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@XZ @ 193 NONAME ; class RPointerArray CXnNodeAppIf::ChildrenL(void) - ?ConvertHslToRgb@CXnUtils@@SA?AVTRgb@@HHH@Z @ 194 NONAME ; class TRgb CXnUtils::ConvertHslToRgb(int, int, int) - ?LoadBitmap@CXnControlAdapter@@QAEPAVCFbsBitmap@@ABVTDesC16@@@Z @ 195 NONAME ; class CFbsBitmap * CXnControlAdapter::LoadBitmap(class TDesC16 const &) - ??0MXnComponentFactory@@IAE@XZ @ 196 NONAME ; MXnComponentFactory::MXnComponentFactory(void) - ?SetComponent@CXnViewsNodeImpl@@QAEXPAVCXnComponent@@@Z @ 197 NONAME ; void CXnViewsNodeImpl::SetComponent(class CXnComponent *) - ?BorderRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 198 NONAME ; class TRect CXnNodePluginIf::BorderRect(void) - ?CreateDocumentL@CXnApplication@@MAEPAVCApaDocument@@XZ @ 199 NONAME ; class CApaDocument * CXnApplication::CreateDocumentL(void) - ?HandleUiReadyEventL@CXnAppUiAdapter@@UAEXXZ @ 200 NONAME ; void CXnAppUiAdapter::HandleUiReadyEventL(void) - ?CreateFontL@CXnUtils@@SAXABVTDesC16@@HVTFontStyle@@AAPAVCFont@@AAH@Z @ 201 NONAME ; void CXnUtils::CreateFontL(class TDesC16 const &, int, class TFontStyle, class CFont * &, int &) - ?GetPluginNodeArrayL@TXnUiEngineAppIf@@QAEHAAV?$RPointerArray@VCXnNodeAppIf@@@@@Z @ 202 NONAME ; int TXnUiEngineAppIf::GetPluginNodeArrayL(class RPointerArray &) - ?MakeXnControlAdapterL@MXnComponentFactory@@EAEPAVCXnControlAdapter@@AAVCXnNodePluginIf@@PAV2@@Z @ 203 NONAME ; class CXnControlAdapter * MXnComponentFactory::MakeXnControlAdapterL(class CXnNodePluginIf &, class CXnControlAdapter *) - ?IsDrawingAllowed@CXnNodePluginIf@@QBEHXZ @ 204 NONAME ; int CXnNodePluginIf::IsDrawingAllowed(void) const - ?MakeInterfaceL@CXnNodeAppIf@@QAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 205 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnNodeAppIf::MakeInterfaceL(class TDesC8 const &) - ?VerticalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 206 NONAME ; int TXnUiEnginePluginIf::VerticalTwipValueL(class CXnProperty *, int) - ?Component@CXnControlAdapter@@QAEPAVCXnComponent@@XZ @ 207 NONAME ; class CXnComponent * CXnControlAdapter::Component(void) - ?FloatValueL@CXnProperty@@QAENXZ @ 208 NONAME ; double CXnProperty::FloatValueL(void) - ?SetUiEngine@TXnUiEngineAppIf@@QAEXPAVCXnUiEngine@@@Z @ 209 NONAME ; void TXnUiEngineAppIf::SetUiEngine(class CXnUiEngine *) - ?FindNodeByIdL@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@ABVTDesC16@@0@Z @ 210 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FindNodeByIdL(class TDesC16 const &, class TDesC16 const &) - ?IsEditMode@TXnUiEngineAppIf@@QAEHXZ @ 211 NONAME ; int TXnUiEngineAppIf::IsEditMode(void) - ?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@AAH@Z @ 212 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &, int &) - ?EnablePartialTouchInput@TXnUiEnginePluginIf@@QAEXAAVCXnNodePluginIf@@H@Z @ 213 NONAME ; void TXnUiEnginePluginIf::EnablePartialTouchInput(class CXnNodePluginIf &, int) + ?IsEditState@CXnNodePluginIf@@QAEHXZ @ 42 NONAME ; int CXnNodePluginIf::IsEditState(void) + ?HandlePointerEventL@CXnControlAdapter@@UAEXABUTPointerEvent@@@Z @ 43 NONAME ; void CXnControlAdapter::HandlePointerEventL(struct TPointerEvent const &) + ??1CXnDocument@@UAE@XZ @ 44 NONAME ; CXnDocument::~CXnDocument(void) + ?HandleResourceChangeL@CXnAppUiAdapter@@MAEXH@Z @ 45 NONAME ; void CXnAppUiAdapter::HandleResourceChangeL(int) + ?DoEnterPowerSaveModeL@CXnControlAdapter@@UAEXW4TModeEvent@1@@Z @ 46 NONAME ; void CXnControlAdapter::DoEnterPowerSaveModeL(enum CXnControlAdapter::TModeEvent) + ?CloneL@CXnProperty@@QAEPAV1@XZ @ 47 NONAME ; class CXnProperty * CXnProperty::CloneL(void) + ?ReportTriggerEventL@CXnNodePluginIf@@QAEXABVTDesC8@@00@Z @ 48 NONAME ; void CXnNodePluginIf::ReportTriggerEventL(class TDesC8 const &, class TDesC8 const &, class TDesC8 const &) + ?FocusedNodeL@TXnUiEnginePluginIf@@QAEPAVCXnNodePluginIf@@XZ @ 49 NONAME ; class CXnNodePluginIf * TXnUiEnginePluginIf::FocusedNodeL(void) + ?FindContentSourceNodesL@TXnUiEngineAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@ABVTDesC8@@@Z @ 50 NONAME ; class RPointerArray TXnUiEngineAppIf::FindContentSourceNodesL(class TDesC8 const &) + ?EqualsL@CXnProperty@@QBEHAAV1@@Z @ 51 NONAME ; int CXnProperty::EqualsL(class CXnProperty &) const + ?ScreenDeviceSize@TXnUiEnginePluginIf@@QAE?AVTSize@@XZ @ 52 NONAME ; class TSize TXnUiEnginePluginIf::ScreenDeviceSize(void) + ??0CXnControlAdapter@@IAE@XZ @ 53 NONAME ; CXnControlAdapter::CXnControlAdapter(void) + ?UiEngineL@CXnNodeAppIf@@QAEPAVTXnUiEngineAppIf@@XZ @ 54 NONAME ; class TXnUiEngineAppIf * CXnNodeAppIf::UiEngineL(void) + ?LongTapDetector@CXnControlAdapter@@QBEPAVCAknLongTapDetector@@XZ @ 55 NONAME ; class CAknLongTapDetector * CXnControlAdapter::LongTapDetector(void) const + ??0CXnAppUiAdapter@@QAE@VTUid@@@Z @ 56 NONAME ; CXnAppUiAdapter::CXnAppUiAdapter(class TUid) + ?DestroyPublisher@CXnAppUiAdapter@@UAEXABVTAiFwPublisherInfo@@@Z @ 57 NONAME ; void CXnAppUiAdapter::DestroyPublisher(class TAiFwPublisherInfo const &) + ?Rect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 58 NONAME ; class TRect CXnNodePluginIf::Rect(void) + ?AddChildL@CXnNodePluginIf@@QAEXPAV1@@Z @ 59 NONAME ; void CXnNodePluginIf::AddChildL(class CXnNodePluginIf *) + ?SetNode@CXnComponent@@QAEXAAVCXnNodePluginIf@@@Z @ 60 NONAME ; void CXnComponent::SetNode(class CXnNodePluginIf &) + ?ResetStylusCounter@CXnControlAdapter@@QAEXXZ @ 61 NONAME ; void CXnControlAdapter::ResetStylusCounter(void) + ?SetComponent@CXnComponentNodeImpl@@QAEXPAVCXnComponent@@@Z @ 62 NONAME ; void CXnComponentNodeImpl::SetComponent(class CXnComponent *) + ?LayoutUIL@TXnUiEnginePluginIf@@QAEXPAVCXnNodePluginIf@@@Z @ 63 NONAME ; void TXnUiEnginePluginIf::LayoutUIL(class CXnNodePluginIf *) + ?ExitPowerSaveModeL@CXnControlAdapter@@QAEXW4TModeEvent@1@@Z @ 64 NONAME ; void CXnControlAdapter::ExitPowerSaveModeL(enum CXnControlAdapter::TModeEvent) + ?PublisherInfo@CXnAppUiAdapter@@UAEHAAVCXnNodeAppIf@@AAVTHsPublisherInfo@@@Z @ 65 NONAME ; int CXnAppUiAdapter::PublisherInfo(class CXnNodeAppIf &, class THsPublisherInfo &) + ?GetThemeResource@TXnUiEngineAppIf@@QAEHABVTDesC16@@AAVRFile@@@Z @ 66 NONAME ; int TXnUiEngineAppIf::GetThemeResource(class TDesC16 const &, class RFile &) + ?ConstructL@CXnComponent@@IAEXXZ @ 67 NONAME ; void CXnComponent::ConstructL(void) + ?FindResource@CXnUtils@@SAPAVCXnResource@@AAV?$CArrayPtrSeg@VCXnResource@@@@ABVTDesC16@@AAH@Z @ 68 NONAME ; class CXnResource * CXnUtils::FindResource(class CArrayPtrSeg &, class TDesC16 const &, int &) + ?UnsetStateL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 69 NONAME ; void CXnNodeAppIf::UnsetStateL(class TDesC8 const &) + ?Uid@CXnDocument@@QAE?AVTUid@@XZ @ 70 NONAME ; class TUid CXnDocument::Uid(void) + ?FocusChanged@CXnControlAdapter@@UAEXW4TDrawNow@@@Z @ 71 NONAME ; void CXnControlAdapter::FocusChanged(enum TDrawNow) + ?SetBlank@CXnControlAdapter@@QAEXH@Z @ 72 NONAME ; void CXnControlAdapter::SetBlank(int) + ?ProcessMessageL@CXnAppUiAdapter@@UAEXVTUid@@ABVTDesC8@@@Z @ 73 NONAME ; void CXnAppUiAdapter::ProcessMessageL(class TUid, class TDesC8 const &) + ?Component@CXnNodeAppIf@@QAEAAVCXnComponent@@XZ @ 74 NONAME ; class CXnComponent & CXnNodeAppIf::Component(void) + ?SetLayoutCapable@CXnNodePluginIf@@QAEXH@Z @ 75 NONAME ; void CXnNodePluginIf::SetLayoutCapable(int) + ?MarginRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 76 NONAME ; class TRect CXnNodePluginIf::MarginRect(void) + ?UiEngineL@CXnAppUiAdapter@@QAEPAVTXnUiEngineAppIf@@XZ @ 77 NONAME ; class TXnUiEngineAppIf * CXnAppUiAdapter::UiEngineL(void) + ?ActiveView@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@XZ @ 78 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::ActiveView(void) + ?HandleXuikonEventL@CXnAppUiAdapter@@UAEXAAVCXnNodeAppIf@@0AAVCXnDomNode@@1@Z @ 79 NONAME ; void CXnAppUiAdapter::HandleXuikonEventL(class CXnNodeAppIf &, class CXnNodeAppIf &, class CXnDomNode &, class CXnDomNode &) + ?RenderUIL@TXnUiEngineAppIf@@QAEXPAVCXnNodeAppIf@@@Z @ 80 NONAME ; void TXnUiEngineAppIf::RenderUIL(class CXnNodeAppIf *) + ?PrepareToExit@CXnAppUiAdapter@@MAEXXZ @ 81 NONAME ; void CXnAppUiAdapter::PrepareToExit(void) + ?DoHandlePropertyChangeL@CXnControlAdapter@@UAEXPAVCXnProperty@@@Z @ 82 NONAME ; void CXnControlAdapter::DoHandlePropertyChangeL(class CXnProperty *) + ?ConstructL@CXnControlAdapter@@IAEXAAVCXnNodePluginIf@@@Z @ 83 NONAME ; void CXnControlAdapter::ConstructL(class CXnNodePluginIf &) + ?FocusedNode@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@XZ @ 84 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FocusedNode(void) + ?SetDataL@CXnComponent@@QAEXABVTDesC8@@ABVTDesC16@@H@Z @ 85 NONAME ; void CXnComponent::SetDataL(class TDesC8 const &, class TDesC16 const &, int) + ?OfferKeyEventL@CXnControlAdapter@@UAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 86 NONAME ; enum TKeyResponse CXnControlAdapter::OfferKeyEventL(struct TKeyEvent const &, enum TEventCode) + ?IsDrawingAllowed@CXnControlAdapter@@QBEHXZ @ 87 NONAME ; int CXnControlAdapter::IsDrawingAllowed(void) const + ?DisplayL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 88 NONAME ; class CXnProperty * CXnNodePluginIf::DisplayL(void) + ?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@PAVCXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 89 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class CXnDomPropertyValue *, class CXnDomStringPool &) + ?Rect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 90 NONAME ; class TRect CXnNodeAppIf::Rect(void) + ?NewL@CXnComponentNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 91 NONAME ; class CXnComponentNodeImpl * CXnComponentNodeImpl::NewL(class CXnType *) + ?WidgetsVisible@TXnUiEngineAppIf@@QBEHXZ @ 92 NONAME ; int TXnUiEngineAppIf::WidgetsVisible(void) const + ?Type@CXnNodePluginIf@@QAEPAVCXnType@@XZ @ 93 NONAME ; class CXnType * CXnNodePluginIf::Type(void) + ?MakeXnComponentL@MXnComponentFactory@@EAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 94 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::MakeXnComponentL(class CXnNodePluginIf &, class CXnComponent * &) + ?UnsetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 95 NONAME ; void CXnNodePluginIf::UnsetStateL(class TDesC8 const &) + ?StringValueL@CXnProperty@@QAEPAVHBufC16@@XZ @ 96 NONAME ; class HBufC16 * CXnProperty::StringValueL(void) + ?DisableRenderUiLC@TXnUiEnginePluginIf@@QAEXXZ @ 97 NONAME ; void TXnUiEnginePluginIf::DisableRenderUiLC(void) + ?SetPropertyL@CXnNodeAppIf@@QAEXPAVCXnProperty@@@Z @ 98 NONAME ; void CXnNodeAppIf::SetPropertyL(class CXnProperty *) + ?View@CXnAppUiAdapter@@QBEAAVCAknView@@XZ @ 99 NONAME ; class CAknView & CXnAppUiAdapter::View(void) const + ?ViewNodeImpl@CXnNodePluginIf@@QAEPAVCXnViewNodeImpl@@XZ @ 100 NONAME ; class CXnViewNodeImpl * CXnNodePluginIf::ViewNodeImpl(void) + ?StripQuotes@CXnUtils@@SAXAAPAVHBufC16@@@Z @ 101 NONAME ; void CXnUtils::StripQuotes(class HBufC16 * &) + ?SetPCDataL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 102 NONAME ; void CXnNodePluginIf::SetPCDataL(class TDesC8 const &) + ?VisibilityL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 103 NONAME ; class CXnProperty * CXnNodePluginIf::VisibilityL(void) + ?Draw@CXnControlAdapter@@MBEXABVTRect@@@Z @ 104 NONAME ; void CXnControlAdapter::Draw(class TRect const &) const + ??1CXnApplication@@UAE@XZ @ 105 NONAME ; CXnApplication::~CXnApplication(void) + ?DoesNodeNeedComponentImplL@MXnComponentFactory@@QAEHABVTDesC8@@@Z @ 106 NONAME ; int MXnComponentFactory::DoesNodeNeedComponentImplL(class TDesC8 const &) + ?ConstructL@CXnViewsNodeImpl@@IAEXPAVCXnType@@@Z @ 107 NONAME ; void CXnViewsNodeImpl::ConstructL(class CXnType *) + ?StringPool@TXnUiEngineAppIf@@QAEAAVCXnDomStringPool@@XZ @ 108 NONAME ; class CXnDomStringPool & TXnUiEngineAppIf::StringPool(void) + ?UiEngineL@CXnNodePluginIf@@QAEPAVTXnUiEnginePluginIf@@XZ @ 109 NONAME ; class TXnUiEnginePluginIf * CXnNodePluginIf::UiEngineL(void) + ?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@@Z @ 110 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &) + ?PluginNodeL@TXnUiEnginePluginIf@@QAEAAVCXnNodePluginIf@@PAV2@@Z @ 111 NONAME ; class CXnNodePluginIf & TXnUiEnginePluginIf::PluginNodeL(class CXnNodePluginIf *) + ?VerticalPixelValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 112 NONAME ; int TXnUiEnginePluginIf::VerticalPixelValueL(class CXnProperty *, int) + ?SetComponent@CXnControlAdapter@@QAEXPAVCXnComponent@@@Z @ 113 NONAME ; void CXnControlAdapter::SetComponent(class CXnComponent *) + ??0MXnNodePredicate@@QAE@XZ @ 114 NONAME ; MXnNodePredicate::MXnNodePredicate(void) + ??1CXnViewsNodeImpl@@UAE@XZ @ 115 NONAME ; CXnViewsNodeImpl::~CXnViewsNodeImpl(void) + ?HandleControlEventL@CXnControlAdapter@@UAEXPAVCCoeControl@@W4TCoeEvent@MCoeControlObserver@@@Z @ 116 NONAME ; void CXnControlAdapter::HandleControlEventL(class CCoeControl *, enum MCoeControlObserver::TCoeEvent) + ?HandleScreenDeviceChangedL@CXnControlAdapter@@UAEXXZ @ 117 NONAME ; void CXnControlAdapter::HandleScreenDeviceChangedL(void) + ?SizeChanged@CXnControlAdapter@@MAEXXZ @ 118 NONAME ; void CXnControlAdapter::SizeChanged(void) + ?CountComponentControls@CXnControlAdapter@@MBEHXZ @ 119 NONAME ; int CXnControlAdapter::CountComponentControls(void) const + ?HideTooltipsL@CXnNodeAppIf@@QAEXXZ @ 120 NONAME ; void CXnNodeAppIf::HideTooltipsL(void) + ?GetPropertyL@CXnNodeAppIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 121 NONAME ; class CXnProperty * CXnNodeAppIf::GetPropertyL(class TDesC8 const &) const + ?FindNodeByClassL@TXnUiEngineAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@ABVTDesC8@@0@Z @ 122 NONAME ; class RPointerArray TXnUiEngineAppIf::FindNodeByClassL(class TDesC8 const &, class TDesC8 const &) + ?Match@MXnNodePredicate@@UAEHAAVCXnNode@@@Z @ 123 NONAME ; int MXnNodePredicate::Match(class CXnNode &) + ?GetBitmapAndMask@CXnControlAdapter@@QAEXABVTDesC16@@0AAPAVCFbsBitmap@@1@Z @ 124 NONAME ; void CXnControlAdapter::GetBitmapAndMask(class TDesC16 const &, class TDesC16 const &, class CFbsBitmap * &, class CFbsBitmap * &) + ?NewL@CXnViewsNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 125 NONAME ; class CXnViewsNodeImpl * CXnViewsNodeImpl::NewL(class CXnType *) + ?PaddingRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 126 NONAME ; class TRect CXnNodeAppIf::PaddingRect(void) + ?SetMarginRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 127 NONAME ; void CXnNodePluginIf::SetMarginRect(class TRect const &) + ?IsDialogDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 128 NONAME ; int TXnUiEnginePluginIf::IsDialogDisplaying(void) + ?HandleEventL@CXnAppUiAdapter@@UAEXABVTDesC16@@AAVCXnNodeAppIf@@@Z @ 129 NONAME ; void CXnAppUiAdapter::HandleEventL(class TDesC16 const &, class CXnNodeAppIf &) + ?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 130 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class TDesC8 const &) const + ?SetPropertyArrayL@CXnNodeAppIf@@QAEXPAV?$RPointerArray@VCXnProperty@@@@@Z @ 131 NONAME ; void CXnNodeAppIf::SetPropertyArrayL(class RPointerArray *) + ?RemoveViewL@CXnAppUiAdapter@@QAEXAAVCAknView@@@Z @ 132 NONAME ; void CXnAppUiAdapter::RemoveViewL(class CAknView &) + ?EnterPowerSaveModeL@CXnComponent@@UAEXXZ @ 133 NONAME ; void CXnComponent::EnterPowerSaveModeL(void) + ?SetRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 134 NONAME ; void CXnNodePluginIf::SetRect(class TRect const &) + ??0CXnComponent@@IAE@XZ @ 135 NONAME ; CXnComponent::CXnComponent(void) + ?CollapseWhiteSpace@CXnUtils@@SAXAAVCXnNodePluginIf@@AAVTDes16@@@Z @ 136 NONAME ; void CXnUtils::CollapseWhiteSpace(class CXnNodePluginIf &, class TDes16 &) + ?SetHandleTooltip@CXnNodePluginIf@@QAEXH@Z @ 137 NONAME ; void CXnNodePluginIf::SetHandleTooltip(int) + ??1CXnAppUiAdapter@@UAE@XZ @ 138 NONAME ; CXnAppUiAdapter::~CXnAppUiAdapter(void) + ?NewL@CXnControlAdapter@@SAPAV1@AAVCXnNodePluginIf@@@Z @ 139 NONAME ; class CXnControlAdapter * CXnControlAdapter::NewL(class CXnNodePluginIf &) + ?EnableLongTapAnimation@CXnControlAdapter@@QAEXH@Z @ 140 NONAME ; void CXnControlAdapter::EnableLongTapAnimation(int) + ?SetPaddingRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 141 NONAME ; void CXnNodePluginIf::SetPaddingRect(class TRect const &) + ?SetFocusedNode@TXnUiEnginePluginIf@@QAEXPAVCXnNodePluginIf@@@Z @ 142 NONAME ; void TXnUiEnginePluginIf::SetFocusedNode(class CXnNodePluginIf *) + ?ExitPowerSaveModeL@CXnComponent@@UAEXXZ @ 143 NONAME ; void CXnComponent::ExitPowerSaveModeL(void) + ?GetPCData@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 144 NONAME ; class TDesC8 const & CXnNodeAppIf::GetPCData(void) const + ?Namespace@CXnNodeAppIf@@QAEABVTDesC8@@XZ @ 145 NONAME ; class TDesC8 const & CXnNodeAppIf::Namespace(void) + ?LoadPublisher@CXnAppUiAdapter@@UAEXABVTAiFwPublisherInfo@@@Z @ 146 NONAME ; void CXnAppUiAdapter::LoadPublisher(class TAiFwPublisherInfo const &) + ??1CXnComponentNodeImpl@@UAE@XZ @ 147 NONAME ; CXnComponentNodeImpl::~CXnComponentNodeImpl(void) + ?SetPropertyWithoutNotificationL@CXnNodePluginIf@@QAEXPAVCXnProperty@@@Z @ 148 NONAME ; void CXnNodePluginIf::SetPropertyWithoutNotificationL(class CXnProperty *) + ?GetPCData@CXnNodePluginIf@@QBEABVTDesC8@@XZ @ 149 NONAME ; class TDesC8 const & CXnNodePluginIf::GetPCData(void) const + ?SetPCDataL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 150 NONAME ; void CXnNodeAppIf::SetPCDataL(class TDesC8 const &) + ?Resources@TXnUiEnginePluginIf@@QAEAAV?$CArrayPtrSeg@VCXnResource@@@@XZ @ 151 NONAME ; class CArrayPtrSeg & TXnUiEnginePluginIf::Resources(void) + ?SetContentBitmaps@CXnControlAdapter@@QAEXABVTDesC16@@0@Z @ 152 NONAME ; void CXnControlAdapter::SetContentBitmaps(class TDesC16 const &, class TDesC16 const &) + ??1CXnControlAdapter@@UAE@XZ @ 153 NONAME ; CXnControlAdapter::~CXnControlAdapter(void) + ??1MXnNodePredicate@@UAE@XZ @ 154 NONAME ; MXnNodePredicate::~MXnNodePredicate(void) + ?HorizontalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 155 NONAME ; int TXnUiEnginePluginIf::HorizontalTwipValueL(class CXnProperty *, int) + ?ConstructL@CXnAppUiAdapter@@UAEXXZ @ 156 NONAME ; void CXnAppUiAdapter::ConstructL(void) + ?CreateFontL@CXnUtils@@SAXAAVCXnNodePluginIf@@AAPAVCFont@@AAH@Z @ 157 NONAME ; void CXnUtils::CreateFontL(class CXnNodePluginIf &, class CFont * &, int &) + ??0CXnApplication@@QAE@VTUid@@@Z @ 158 NONAME ; CXnApplication::CXnApplication(class TUid) + ?ComponentControl@CXnControlAdapter@@MBEPAVCCoeControl@@H@Z @ 159 NONAME ; class CCoeControl * CXnControlAdapter::ComponentControl(int) const + ?HandleLongTapEventL@CXnControlAdapter@@UAEXABVTPoint@@0@Z @ 160 NONAME ; void CXnControlAdapter::HandleLongTapEventL(class TPoint const &, class TPoint const &) + ?ParentL@CXnNodeAppIf@@QBEPAV1@XZ @ 161 NONAME ; class CXnNodeAppIf * CXnNodeAppIf::ParentL(void) const + ??1CXnComponent@@UAE@XZ @ 162 NONAME ; CXnComponent::~CXnComponent(void) + ?ControlAdapter@CXnComponent@@QAEPAVCXnControlAdapter@@XZ @ 163 NONAME ; class CXnControlAdapter * CXnComponent::ControlAdapter(void) + ?DrawContentImage@CXnControlAdapter@@IBEXXZ @ 164 NONAME ; void CXnControlAdapter::DrawContentImage(void) const + ?Component@CXnComponentNodeImpl@@QAEPAVCXnComponent@@XZ @ 165 NONAME ; class CXnComponent * CXnComponentNodeImpl::Component(void) + ?WidgetsVisible@TXnUiEnginePluginIf@@QBEHXZ @ 166 NONAME ; int TXnUiEnginePluginIf::WidgetsVisible(void) const + ?SetControlAdapter@CXnComponent@@QAEXPAVCXnControlAdapter@@@Z @ 167 NONAME ; void CXnComponent::SetControlAdapter(class CXnControlAdapter *) + ?SetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 168 NONAME ; void CXnNodePluginIf::SetStateL(class TDesC8 const &) + ?DoesComponentNeedCreation@CXnComponentNodeImpl@@QBEHXZ @ 169 NONAME ; int CXnComponentNodeImpl::DoesComponentNeedCreation(void) const + ??0CXnDocument@@QAE@AAVCEikApplication@@VTUid@@@Z @ 170 NONAME ; CXnDocument::CXnDocument(class CEikApplication &, class TUid) + ?FindNodeByClassL@TXnUiEnginePluginIf@@QAE?AV?$RPointerArray@VCXnNodePluginIf@@@@ABVTDesC16@@@Z @ 171 NONAME ; class RPointerArray TXnUiEnginePluginIf::FindNodeByClassL(class TDesC16 const &) + ?InternalDomNodeType@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 172 NONAME ; class TDesC8 const & CXnNodeAppIf::InternalDomNodeType(void) const + ?StringPool@TXnUiEnginePluginIf@@QAEAAVCXnDomStringPool@@XZ @ 173 NONAME ; class CXnDomStringPool & TXnUiEnginePluginIf::StringPool(void) + ?SetStateL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 174 NONAME ; void CXnNodeAppIf::SetStateL(class TDesC8 const &) + ?Type@CXnNodeAppIf@@QAEPAVCXnType@@XZ @ 175 NONAME ; class CXnType * CXnNodeAppIf::Type(void) + ?BorderRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 176 NONAME ; class TRect CXnNodeAppIf::BorderRect(void) + ?IdL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 177 NONAME ; class CXnProperty * CXnNodePluginIf::IdL(void) + ?RootNodeL@TXnUiEngineAppIf@@QAEAAVCXnNodeAppIf@@XZ @ 178 NONAME ; class CXnNodeAppIf & TXnUiEngineAppIf::RootNodeL(void) + ?CreateXnComponentL@MXnComponentFactory@@QAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 179 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::CreateXnComponentL(class CXnNodePluginIf &, class CXnComponent * &) + ?RefreshMenuL@TXnUiEngineAppIf@@QAEXXZ @ 180 NONAME ; void TXnUiEngineAppIf::RefreshMenuL(void) + ?PaddingRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 181 NONAME ; class TRect CXnNodePluginIf::PaddingRect(void) + ?MeasureAdaptiveContentL@CXnControlAdapter@@UAE?AVTSize@@ABV2@@Z @ 182 NONAME ; class TSize CXnControlAdapter::MeasureAdaptiveContentL(class TSize const &) + ?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@0W4TPrimitiveValueType@CXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 183 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class TDesC8 const &, enum CXnDomPropertyValue::TPrimitiveValueType, class CXnDomStringPool &) + ?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@AAV2@@Z @ 184 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class CXnProperty &) const + ?MarginRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 185 NONAME ; class TRect CXnNodeAppIf::MarginRect(void) + ?EditMode@TXnUiEnginePluginIf@@QAEHXZ @ 186 NONAME ; int TXnUiEnginePluginIf::EditMode(void) + ?FindNodeByIdL@TXnUiEnginePluginIf@@QAEPAVCXnNodePluginIf@@ABVTDesC8@@0@Z @ 187 NONAME ; class CXnNodePluginIf * TXnUiEnginePluginIf::FindNodeByIdL(class TDesC8 const &, class TDesC8 const &) + ?MakeInterfaceL@CXnComponent@@UAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 188 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnComponent::MakeInterfaceL(class TDesC8 const &) + ?EnableRenderUi@CXnUiEngineImpl@@CAXPAX@Z @ 189 NONAME ; void CXnUiEngineImpl::EnableRenderUi(void *) + ?IsMenuDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 190 NONAME ; int TXnUiEnginePluginIf::IsMenuDisplaying(void) + ?IsMenuDisplaying@TXnUiEngineAppIf@@QAEHXZ @ 191 NONAME ; int TXnUiEngineAppIf::IsMenuDisplaying(void) + ?NewL@CXnProperty@@SAPAV1@PAVCXnDomProperty@@@Z @ 192 NONAME ; class CXnProperty * CXnProperty::NewL(class CXnDomProperty *) + ?ConstructL@CXnComponentNodeImpl@@IAEXPAVCXnType@@@Z @ 193 NONAME ; void CXnComponentNodeImpl::ConstructL(class CXnType *) + ?ChildrenL@CXnNodeAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@XZ @ 194 NONAME ; class RPointerArray CXnNodeAppIf::ChildrenL(void) + ?ConvertHslToRgb@CXnUtils@@SA?AVTRgb@@HHH@Z @ 195 NONAME ; class TRgb CXnUtils::ConvertHslToRgb(int, int, int) + ?LoadBitmap@CXnControlAdapter@@QAEPAVCFbsBitmap@@ABVTDesC16@@@Z @ 196 NONAME ; class CFbsBitmap * CXnControlAdapter::LoadBitmap(class TDesC16 const &) + ??0MXnComponentFactory@@IAE@XZ @ 197 NONAME ; MXnComponentFactory::MXnComponentFactory(void) + ?SetComponent@CXnViewsNodeImpl@@QAEXPAVCXnComponent@@@Z @ 198 NONAME ; void CXnViewsNodeImpl::SetComponent(class CXnComponent *) + ?BorderRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 199 NONAME ; class TRect CXnNodePluginIf::BorderRect(void) + ?CreateDocumentL@CXnApplication@@MAEPAVCApaDocument@@XZ @ 200 NONAME ; class CApaDocument * CXnApplication::CreateDocumentL(void) + ?HandleUiReadyEventL@CXnAppUiAdapter@@UAEXXZ @ 201 NONAME ; void CXnAppUiAdapter::HandleUiReadyEventL(void) + ?CreateFontL@CXnUtils@@SAXABVTDesC16@@HVTFontStyle@@AAPAVCFont@@AAH@Z @ 202 NONAME ; void CXnUtils::CreateFontL(class TDesC16 const &, int, class TFontStyle, class CFont * &, int &) + ?GetPluginNodeArrayL@TXnUiEngineAppIf@@QAEHAAV?$RPointerArray@VCXnNodeAppIf@@@@@Z @ 203 NONAME ; int TXnUiEngineAppIf::GetPluginNodeArrayL(class RPointerArray &) + ?MakeXnControlAdapterL@MXnComponentFactory@@EAEPAVCXnControlAdapter@@AAVCXnNodePluginIf@@PAV2@@Z @ 204 NONAME ; class CXnControlAdapter * MXnComponentFactory::MakeXnControlAdapterL(class CXnNodePluginIf &, class CXnControlAdapter *) + ?IsDrawingAllowed@CXnNodePluginIf@@QBEHXZ @ 205 NONAME ; int CXnNodePluginIf::IsDrawingAllowed(void) const + ?MakeInterfaceL@CXnNodeAppIf@@QAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 206 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnNodeAppIf::MakeInterfaceL(class TDesC8 const &) + ?VerticalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 207 NONAME ; int TXnUiEnginePluginIf::VerticalTwipValueL(class CXnProperty *, int) + ?Component@CXnControlAdapter@@QAEPAVCXnComponent@@XZ @ 208 NONAME ; class CXnComponent * CXnControlAdapter::Component(void) + ?FloatValueL@CXnProperty@@QAENXZ @ 209 NONAME ; double CXnProperty::FloatValueL(void) + ?SetUiEngine@TXnUiEngineAppIf@@QAEXPAVCXnUiEngine@@@Z @ 210 NONAME ; void TXnUiEngineAppIf::SetUiEngine(class CXnUiEngine *) + ?FindNodeByIdL@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@ABVTDesC16@@0@Z @ 211 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FindNodeByIdL(class TDesC16 const &, class TDesC16 const &) + ?IsEditMode@TXnUiEngineAppIf@@QAEHXZ @ 212 NONAME ; int TXnUiEngineAppIf::IsEditMode(void) + ?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@AAH@Z @ 213 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &, int &) ?RootNodeL@TXnUiEnginePluginIf@@QAEAAVCXnNodePluginIf@@XZ @ 214 NONAME ; class CXnNodePluginIf & TXnUiEnginePluginIf::RootNodeL(void) ?CreateAppUiL@CXnDocument@@UAEPAVCEikAppUi@@XZ @ 215 NONAME ; class CEikAppUi * CXnDocument::CreateAppUiL(void) ?PathL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 216 NONAME ; class CXnProperty * CXnNodePluginIf::PathL(void) diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/eabi/xn3layoutengineu.def --- a/idlehomescreen/xmluirendering/uiengine/eabi/xn3layoutengineu.def Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/eabi/xn3layoutengineu.def Fri Sep 17 15:37:16 2010 +0100 @@ -76,129 +76,129 @@ _ZN15CXnNodePluginIf10BorderRectEv @ 75 NONAME _ZN15CXnNodePluginIf10MarginRectEv @ 76 NONAME _ZN15CXnNodePluginIf10SetPCDataLERK6TDesC8 @ 77 NONAME - _ZN15CXnNodePluginIf11PaddingRectEv @ 78 NONAME - _ZN15CXnNodePluginIf11UnsetStateLERK6TDesC8 @ 79 NONAME - _ZN15CXnNodePluginIf11VisibilityLEv @ 80 NONAME - _ZN15CXnNodePluginIf12SetPropertyLEP11CXnProperty @ 81 NONAME - _ZN15CXnNodePluginIf12ViewNodeImplEv @ 82 NONAME - _ZN15CXnNodePluginIf13SetBorderRectERK5TRect @ 83 NONAME - _ZN15CXnNodePluginIf13SetMarginRectERK5TRect @ 84 NONAME - _ZN15CXnNodePluginIf14IsFocusedStateEv @ 85 NONAME - _ZN15CXnNodePluginIf14MakeInterfaceLERK6TDesC8 @ 86 NONAME - _ZN15CXnNodePluginIf14SetPaddingRectERK5TRect @ 87 NONAME - _ZN15CXnNodePluginIf16SetHandleTooltipEi @ 88 NONAME - _ZN15CXnNodePluginIf16SetLayoutCapableEi @ 89 NONAME - _ZN15CXnNodePluginIf17ComponentNodeImplEv @ 90 NONAME - _ZN15CXnNodePluginIf19ReportTriggerEventLERK6TDesC8S2_S2_ @ 91 NONAME - _ZN15CXnNodePluginIf31SetPropertyWithoutNotificationLEP11CXnProperty @ 92 NONAME - _ZN15CXnNodePluginIf3IdLEv @ 93 NONAME - _ZN15CXnNodePluginIf4RectEv @ 94 NONAME - _ZN15CXnNodePluginIf4TypeEv @ 95 NONAME - _ZN15CXnNodePluginIf5PathLEv @ 96 NONAME - _ZN15CXnNodePluginIf6AppIfLEv @ 97 NONAME - _ZN15CXnNodePluginIf6LabelLEv @ 98 NONAME - _ZN15CXnNodePluginIf7SetRectERK5TRect @ 99 NONAME - _ZN15CXnNodePluginIf8DisplayLEv @ 100 NONAME - _ZN15CXnNodePluginIf9AddChildLEPS_ @ 101 NONAME - _ZN15CXnNodePluginIf9ChildrenLEv @ 102 NONAME - _ZN15CXnNodePluginIf9MaskPathLEv @ 103 NONAME - _ZN15CXnNodePluginIf9NamespaceEv @ 104 NONAME - _ZN15CXnNodePluginIf9SetDirtyLEv @ 105 NONAME - _ZN15CXnNodePluginIf9SetStateLERK6TDesC8 @ 106 NONAME - _ZN15CXnNodePluginIf9UiEngineLEv @ 107 NONAME - _ZN15CXnUiEngineImpl14EnableRenderUiEPv @ 108 NONAME - _ZN16CXnViewsNodeImpl10ConstructLEP7CXnType @ 109 NONAME - _ZN16CXnViewsNodeImpl12SetComponentEP12CXnComponent @ 110 NONAME - _ZN16CXnViewsNodeImpl4NewLEP7CXnType @ 111 NONAME - _ZN16CXnViewsNodeImpl9ComponentEv @ 112 NONAME - _ZN16CXnViewsNodeImplC1Ev @ 113 NONAME - _ZN16CXnViewsNodeImplC2Ev @ 114 NONAME - _ZN16CXnViewsNodeImplD0Ev @ 115 NONAME - _ZN16CXnViewsNodeImplD1Ev @ 116 NONAME - _ZN16CXnViewsNodeImplD2Ev @ 117 NONAME - _ZN16MXnNodePredicate5MatchER7CXnNode @ 118 NONAME - _ZN16MXnNodePredicateC1Ev @ 119 NONAME - _ZN16MXnNodePredicateC2Ev @ 120 NONAME - _ZN16MXnNodePredicateD0Ev @ 121 NONAME - _ZN16MXnNodePredicateD1Ev @ 122 NONAME - _ZN16MXnNodePredicateD2Ev @ 123 NONAME - _ZN16TXnUiEngineAppIf10ActiveViewEv @ 124 NONAME - _ZN16TXnUiEngineAppIf10IsEditModeEv @ 125 NONAME - _ZN16TXnUiEngineAppIf10StringPoolEv @ 126 NONAME - _ZN16TXnUiEngineAppIf11FocusedNodeEv @ 127 NONAME - _ZN16TXnUiEngineAppIf11SetUiEngineEP11CXnUiEngine @ 128 NONAME - _ZN16TXnUiEngineAppIf12RefreshMenuLEv @ 129 NONAME - _ZN16TXnUiEngineAppIf13FindNodeByIdLERK6TDesC8S2_ @ 130 NONAME - _ZN16TXnUiEngineAppIf13FindNodeByIdLERK7TDesC16S2_ @ 131 NONAME - _ZN16TXnUiEngineAppIf16FindNodeByClassLERK6TDesC8S2_ @ 132 NONAME - _ZN16TXnUiEngineAppIf16FindNodeByClassLERK7TDesC16S2_ @ 133 NONAME - _ZN16TXnUiEngineAppIf16GetThemeResourceERK7TDesC16R5RFile @ 134 NONAME - _ZN16TXnUiEngineAppIf16IsMenuDisplayingEv @ 135 NONAME - _ZN16TXnUiEngineAppIf19GetPluginNodeArrayLER13RPointerArrayI12CXnNodeAppIfE @ 136 NONAME - _ZN16TXnUiEngineAppIf23FindContentSourceNodesLERK6TDesC8 @ 137 NONAME - _ZN16TXnUiEngineAppIf9RenderUILEP12CXnNodeAppIf @ 138 NONAME - _ZN16TXnUiEngineAppIf9RootNodeLEv @ 139 NONAME - _ZN17CXnControlAdapter10ConstructLER15CXnNodePluginIf @ 140 NONAME - _ZN17CXnControlAdapter10LoadBitmapERK7TDesC16 @ 141 NONAME - _ZN17CXnControlAdapter10SetVisibleEi @ 142 NONAME - _ZN17CXnControlAdapter11SizeChangedEv @ 143 NONAME - _ZN17CXnControlAdapter11SkinChangedEv @ 144 NONAME - _ZN17CXnControlAdapter12FocusChangedE8TDrawNow @ 145 NONAME - _ZN17CXnControlAdapter12SetComponentEP12CXnComponent @ 146 NONAME - _ZN17CXnControlAdapter14ContentBitmapsERP10CFbsBitmapS2_ @ 147 NONAME - _ZN17CXnControlAdapter14OfferKeyEventLERK9TKeyEvent10TEventCode @ 148 NONAME - _ZN17CXnControlAdapter15SetLocalUiZoomLE10TAknUiZoom @ 149 NONAME - _ZN17CXnControlAdapter16GetBitmapAndMaskERK7TDesC16S2_RP10CFbsBitmapS5_ @ 150 NONAME - _ZN17CXnControlAdapter17SetContentBitmapsEP10CFbsBitmapS1_ @ 151 NONAME - _ZN17CXnControlAdapter17SetContentBitmapsERK7TDesC16S2_ @ 152 NONAME - _ZN17CXnControlAdapter18ExitPowerSaveModeLENS_10TModeEventE @ 153 NONAME - _ZN17CXnControlAdapter18ResetStylusCounterEv @ 154 NONAME - _ZN17CXnControlAdapter19EnterPowerSaveModeLENS_10TModeEventE @ 155 NONAME - _ZN17CXnControlAdapter19HandleControlEventLEP11CCoeControlN19MCoeControlObserver9TCoeEventE @ 156 NONAME - _ZN17CXnControlAdapter19HandleLongTapEventLERK6TPointS2_ @ 157 NONAME - _ZN17CXnControlAdapter19HandlePointerEventLERK13TPointerEvent @ 158 NONAME - _ZN17CXnControlAdapter20DoExitPowerSaveModeLENS_10TModeEventE @ 159 NONAME - _ZN17CXnControlAdapter21DoEnterPowerSaveModeLENS_10TModeEventE @ 160 NONAME - _ZN17CXnControlAdapter21HandlePropertyChangeLEP11CXnProperty @ 161 NONAME - _ZN17CXnControlAdapter22EnableLongTapAnimationEi @ 162 NONAME - _ZN17CXnControlAdapter23DoHandlePropertyChangeLEP11CXnProperty @ 163 NONAME - _ZN17CXnControlAdapter23MeasureAdaptiveContentLERK5TSize @ 164 NONAME - _ZN17CXnControlAdapter26HandleScreenDeviceChangedLEv @ 165 NONAME - _ZN17CXnControlAdapter4NewLER15CXnNodePluginIf @ 166 NONAME - _ZN17CXnControlAdapter8SetBlankEi @ 167 NONAME - _ZN17CXnControlAdapter8SetDataLERK6TDesC8RK7TDesC16i @ 168 NONAME - _ZN17CXnControlAdapter9ComponentEv @ 169 NONAME - _ZN17CXnControlAdapterC1Ev @ 170 NONAME - _ZN17CXnControlAdapterC2Ev @ 171 NONAME - _ZN17CXnControlAdapterD0Ev @ 172 NONAME - _ZN17CXnControlAdapterD1Ev @ 173 NONAME - _ZN17CXnControlAdapterD2Ev @ 174 NONAME - _ZN19MXnComponentFactory16MakeXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 175 NONAME - _ZN19MXnComponentFactory18CreateXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 176 NONAME - _ZN19MXnComponentFactory21MakeXnControlAdapterLER15CXnNodePluginIfP17CXnControlAdapter @ 177 NONAME - _ZN19MXnComponentFactory26DoesNodeNeedComponentImplLERK6TDesC8 @ 178 NONAME - _ZN19MXnComponentFactoryC2Ev @ 179 NONAME - _ZN19MXnComponentFactoryD0Ev @ 180 NONAME - _ZN19MXnComponentFactoryD1Ev @ 181 NONAME - _ZN19MXnComponentFactoryD2Ev @ 182 NONAME - _ZN19TXnUiEnginePluginIf10StringPoolEv @ 183 NONAME - _ZN19TXnUiEnginePluginIf11PluginNodeLEP15CXnNodePluginIf @ 184 NONAME - _ZN19TXnUiEnginePluginIf12FocusedNodeLEv @ 185 NONAME - _ZN19TXnUiEnginePluginIf13AddDirtyNodeLER15CXnNodePluginIf @ 186 NONAME - _ZN19TXnUiEnginePluginIf13FindNodeByIdLERK6TDesC8S2_ @ 187 NONAME - _ZN19TXnUiEnginePluginIf13FindNodeByIdLERK7TDesC16S2_ @ 188 NONAME - _ZN19TXnUiEnginePluginIf14SetFocusedNodeEP15CXnNodePluginIf @ 189 NONAME - _ZN19TXnUiEnginePluginIf16FindNodeByClassLERK7TDesC16 @ 190 NONAME - _ZN19TXnUiEnginePluginIf16IsMenuDisplayingEv @ 191 NONAME - _ZN19TXnUiEnginePluginIf16ScreenDeviceSizeEv @ 192 NONAME - _ZN19TXnUiEnginePluginIf17DisableRenderUiLCEv @ 193 NONAME - _ZN19TXnUiEnginePluginIf18IsDialogDisplayingEv @ 194 NONAME - _ZN19TXnUiEnginePluginIf18IsTextEditorActiveEv @ 195 NONAME - _ZN19TXnUiEnginePluginIf18VerticalTwipValueLEP11CXnPropertyi @ 196 NONAME - _ZN19TXnUiEnginePluginIf19VerticalPixelValueLEP11CXnPropertyi @ 197 NONAME - _ZN19TXnUiEnginePluginIf20HorizontalTwipValueLEP11CXnPropertyi @ 198 NONAME - _ZN19TXnUiEnginePluginIf21HorizontalPixelValueLEP11CXnPropertyi @ 199 NONAME - _ZN19TXnUiEnginePluginIf23EnablePartialTouchInputER15CXnNodePluginIfi @ 200 NONAME + _ZN15CXnNodePluginIf11IsEditStateEv @ 78 NONAME + _ZN15CXnNodePluginIf11PaddingRectEv @ 79 NONAME + _ZN15CXnNodePluginIf11UnsetStateLERK6TDesC8 @ 80 NONAME + _ZN15CXnNodePluginIf11VisibilityLEv @ 81 NONAME + _ZN15CXnNodePluginIf12SetPropertyLEP11CXnProperty @ 82 NONAME + _ZN15CXnNodePluginIf12ViewNodeImplEv @ 83 NONAME + _ZN15CXnNodePluginIf13SetBorderRectERK5TRect @ 84 NONAME + _ZN15CXnNodePluginIf13SetMarginRectERK5TRect @ 85 NONAME + _ZN15CXnNodePluginIf14IsFocusedStateEv @ 86 NONAME + _ZN15CXnNodePluginIf14MakeInterfaceLERK6TDesC8 @ 87 NONAME + _ZN15CXnNodePluginIf14SetPaddingRectERK5TRect @ 88 NONAME + _ZN15CXnNodePluginIf16SetHandleTooltipEi @ 89 NONAME + _ZN15CXnNodePluginIf16SetLayoutCapableEi @ 90 NONAME + _ZN15CXnNodePluginIf17ComponentNodeImplEv @ 91 NONAME + _ZN15CXnNodePluginIf19ReportTriggerEventLERK6TDesC8S2_S2_ @ 92 NONAME + _ZN15CXnNodePluginIf31SetPropertyWithoutNotificationLEP11CXnProperty @ 93 NONAME + _ZN15CXnNodePluginIf3IdLEv @ 94 NONAME + _ZN15CXnNodePluginIf4RectEv @ 95 NONAME + _ZN15CXnNodePluginIf4TypeEv @ 96 NONAME + _ZN15CXnNodePluginIf5PathLEv @ 97 NONAME + _ZN15CXnNodePluginIf6AppIfLEv @ 98 NONAME + _ZN15CXnNodePluginIf6LabelLEv @ 99 NONAME + _ZN15CXnNodePluginIf7SetRectERK5TRect @ 100 NONAME + _ZN15CXnNodePluginIf8DisplayLEv @ 101 NONAME + _ZN15CXnNodePluginIf9AddChildLEPS_ @ 102 NONAME + _ZN15CXnNodePluginIf9ChildrenLEv @ 103 NONAME + _ZN15CXnNodePluginIf9MaskPathLEv @ 104 NONAME + _ZN15CXnNodePluginIf9NamespaceEv @ 105 NONAME + _ZN15CXnNodePluginIf9SetDirtyLEv @ 106 NONAME + _ZN15CXnNodePluginIf9SetStateLERK6TDesC8 @ 107 NONAME + _ZN15CXnNodePluginIf9UiEngineLEv @ 108 NONAME + _ZN15CXnUiEngineImpl14EnableRenderUiEPv @ 109 NONAME + _ZN16CXnViewsNodeImpl10ConstructLEP7CXnType @ 110 NONAME + _ZN16CXnViewsNodeImpl12SetComponentEP12CXnComponent @ 111 NONAME + _ZN16CXnViewsNodeImpl4NewLEP7CXnType @ 112 NONAME + _ZN16CXnViewsNodeImpl9ComponentEv @ 113 NONAME + _ZN16CXnViewsNodeImplC1Ev @ 114 NONAME + _ZN16CXnViewsNodeImplC2Ev @ 115 NONAME + _ZN16CXnViewsNodeImplD0Ev @ 116 NONAME + _ZN16CXnViewsNodeImplD1Ev @ 117 NONAME + _ZN16CXnViewsNodeImplD2Ev @ 118 NONAME + _ZN16MXnNodePredicate5MatchER7CXnNode @ 119 NONAME + _ZN16MXnNodePredicateC1Ev @ 120 NONAME + _ZN16MXnNodePredicateC2Ev @ 121 NONAME + _ZN16MXnNodePredicateD0Ev @ 122 NONAME + _ZN16MXnNodePredicateD1Ev @ 123 NONAME + _ZN16MXnNodePredicateD2Ev @ 124 NONAME + _ZN16TXnUiEngineAppIf10ActiveViewEv @ 125 NONAME + _ZN16TXnUiEngineAppIf10IsEditModeEv @ 126 NONAME + _ZN16TXnUiEngineAppIf10StringPoolEv @ 127 NONAME + _ZN16TXnUiEngineAppIf11FocusedNodeEv @ 128 NONAME + _ZN16TXnUiEngineAppIf11SetUiEngineEP11CXnUiEngine @ 129 NONAME + _ZN16TXnUiEngineAppIf12RefreshMenuLEv @ 130 NONAME + _ZN16TXnUiEngineAppIf13FindNodeByIdLERK6TDesC8S2_ @ 131 NONAME + _ZN16TXnUiEngineAppIf13FindNodeByIdLERK7TDesC16S2_ @ 132 NONAME + _ZN16TXnUiEngineAppIf16FindNodeByClassLERK6TDesC8S2_ @ 133 NONAME + _ZN16TXnUiEngineAppIf16FindNodeByClassLERK7TDesC16S2_ @ 134 NONAME + _ZN16TXnUiEngineAppIf16GetThemeResourceERK7TDesC16R5RFile @ 135 NONAME + _ZN16TXnUiEngineAppIf16IsMenuDisplayingEv @ 136 NONAME + _ZN16TXnUiEngineAppIf19GetPluginNodeArrayLER13RPointerArrayI12CXnNodeAppIfE @ 137 NONAME + _ZN16TXnUiEngineAppIf23FindContentSourceNodesLERK6TDesC8 @ 138 NONAME + _ZN16TXnUiEngineAppIf9RenderUILEP12CXnNodeAppIf @ 139 NONAME + _ZN16TXnUiEngineAppIf9RootNodeLEv @ 140 NONAME + _ZN17CXnControlAdapter10ConstructLER15CXnNodePluginIf @ 141 NONAME + _ZN17CXnControlAdapter10LoadBitmapERK7TDesC16 @ 142 NONAME + _ZN17CXnControlAdapter10SetVisibleEi @ 143 NONAME + _ZN17CXnControlAdapter11SizeChangedEv @ 144 NONAME + _ZN17CXnControlAdapter11SkinChangedEv @ 145 NONAME + _ZN17CXnControlAdapter12FocusChangedE8TDrawNow @ 146 NONAME + _ZN17CXnControlAdapter12SetComponentEP12CXnComponent @ 147 NONAME + _ZN17CXnControlAdapter14ContentBitmapsERP10CFbsBitmapS2_ @ 148 NONAME + _ZN17CXnControlAdapter14OfferKeyEventLERK9TKeyEvent10TEventCode @ 149 NONAME + _ZN17CXnControlAdapter15SetLocalUiZoomLE10TAknUiZoom @ 150 NONAME + _ZN17CXnControlAdapter16GetBitmapAndMaskERK7TDesC16S2_RP10CFbsBitmapS5_ @ 151 NONAME + _ZN17CXnControlAdapter17SetContentBitmapsEP10CFbsBitmapS1_ @ 152 NONAME + _ZN17CXnControlAdapter17SetContentBitmapsERK7TDesC16S2_ @ 153 NONAME + _ZN17CXnControlAdapter18ExitPowerSaveModeLENS_10TModeEventE @ 154 NONAME + _ZN17CXnControlAdapter18ResetStylusCounterEv @ 155 NONAME + _ZN17CXnControlAdapter19EnterPowerSaveModeLENS_10TModeEventE @ 156 NONAME + _ZN17CXnControlAdapter19HandleControlEventLEP11CCoeControlN19MCoeControlObserver9TCoeEventE @ 157 NONAME + _ZN17CXnControlAdapter19HandleLongTapEventLERK6TPointS2_ @ 158 NONAME + _ZN17CXnControlAdapter19HandlePointerEventLERK13TPointerEvent @ 159 NONAME + _ZN17CXnControlAdapter20DoExitPowerSaveModeLENS_10TModeEventE @ 160 NONAME + _ZN17CXnControlAdapter21DoEnterPowerSaveModeLENS_10TModeEventE @ 161 NONAME + _ZN17CXnControlAdapter21HandlePropertyChangeLEP11CXnProperty @ 162 NONAME + _ZN17CXnControlAdapter22EnableLongTapAnimationEi @ 163 NONAME + _ZN17CXnControlAdapter23DoHandlePropertyChangeLEP11CXnProperty @ 164 NONAME + _ZN17CXnControlAdapter23MeasureAdaptiveContentLERK5TSize @ 165 NONAME + _ZN17CXnControlAdapter26HandleScreenDeviceChangedLEv @ 166 NONAME + _ZN17CXnControlAdapter4NewLER15CXnNodePluginIf @ 167 NONAME + _ZN17CXnControlAdapter8SetBlankEi @ 168 NONAME + _ZN17CXnControlAdapter8SetDataLERK6TDesC8RK7TDesC16i @ 169 NONAME + _ZN17CXnControlAdapter9ComponentEv @ 170 NONAME + _ZN17CXnControlAdapterC1Ev @ 171 NONAME + _ZN17CXnControlAdapterC2Ev @ 172 NONAME + _ZN17CXnControlAdapterD0Ev @ 173 NONAME + _ZN17CXnControlAdapterD1Ev @ 174 NONAME + _ZN17CXnControlAdapterD2Ev @ 175 NONAME + _ZN19MXnComponentFactory16MakeXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 176 NONAME + _ZN19MXnComponentFactory18CreateXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 177 NONAME + _ZN19MXnComponentFactory21MakeXnControlAdapterLER15CXnNodePluginIfP17CXnControlAdapter @ 178 NONAME + _ZN19MXnComponentFactory26DoesNodeNeedComponentImplLERK6TDesC8 @ 179 NONAME + _ZN19MXnComponentFactoryC2Ev @ 180 NONAME + _ZN19MXnComponentFactoryD0Ev @ 181 NONAME + _ZN19MXnComponentFactoryD1Ev @ 182 NONAME + _ZN19MXnComponentFactoryD2Ev @ 183 NONAME + _ZN19TXnUiEnginePluginIf10StringPoolEv @ 184 NONAME + _ZN19TXnUiEnginePluginIf11PluginNodeLEP15CXnNodePluginIf @ 185 NONAME + _ZN19TXnUiEnginePluginIf12FocusedNodeLEv @ 186 NONAME + _ZN19TXnUiEnginePluginIf13AddDirtyNodeLER15CXnNodePluginIf @ 187 NONAME + _ZN19TXnUiEnginePluginIf13FindNodeByIdLERK6TDesC8S2_ @ 188 NONAME + _ZN19TXnUiEnginePluginIf13FindNodeByIdLERK7TDesC16S2_ @ 189 NONAME + _ZN19TXnUiEnginePluginIf14SetFocusedNodeEP15CXnNodePluginIf @ 190 NONAME + _ZN19TXnUiEnginePluginIf16FindNodeByClassLERK7TDesC16 @ 191 NONAME + _ZN19TXnUiEnginePluginIf16IsMenuDisplayingEv @ 192 NONAME + _ZN19TXnUiEnginePluginIf16ScreenDeviceSizeEv @ 193 NONAME + _ZN19TXnUiEnginePluginIf17DisableRenderUiLCEv @ 194 NONAME + _ZN19TXnUiEnginePluginIf18IsDialogDisplayingEv @ 195 NONAME + _ZN19TXnUiEnginePluginIf18IsTextEditorActiveEv @ 196 NONAME + _ZN19TXnUiEnginePluginIf18VerticalTwipValueLEP11CXnPropertyi @ 197 NONAME + _ZN19TXnUiEnginePluginIf19VerticalPixelValueLEP11CXnPropertyi @ 198 NONAME + _ZN19TXnUiEnginePluginIf20HorizontalTwipValueLEP11CXnPropertyi @ 199 NONAME + _ZN19TXnUiEnginePluginIf21HorizontalPixelValueLEP11CXnPropertyi @ 200 NONAME _ZN19TXnUiEnginePluginIf8EditModeEv @ 201 NONAME _ZN19TXnUiEnginePluginIf9LayoutUILEP15CXnNodePluginIf @ 202 NONAME _ZN19TXnUiEnginePluginIf9RenderUILEP15CXnNodePluginIf @ 203 NONAME diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/group/xnlayoutengine.mmp --- a/idlehomescreen/xmluirendering/uiengine/group/xnlayoutengine.mmp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/group/xnlayoutengine.mmp Fri Sep 17 15:37:16 2010 +0100 @@ -87,6 +87,7 @@ SOURCE xnwaitdialog.cpp SOURCE xnpublisherdata.cpp SOURCE xnitemactivator.cpp +SOURCE xnviewswitcher.cpp START RESOURCE xnuiengine.rss HEADER diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/inc/xnbackgroundmanager.h --- a/idlehomescreen/xmluirendering/uiengine/inc/xnbackgroundmanager.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/inc/xnbackgroundmanager.h Fri Sep 17 15:37:16 2010 +0100 @@ -326,6 +326,23 @@ * to be stored to AknsWallpaperUtils */ TBool iStoreWallpaper; + + /** + * Pointer to wallpaper image. + * Usually wallpaper is read from active view data, but in case of + * finger follow swipe, wallpaper is changed during the page switch. + * Therefore this is used only during finger follow. + * + * Not own. + */ + mutable CFbsBitmap* iWallpaper; + + /* + * Flag to indicate to use bitmap stored in iWallpaper + * instead of reading it from CXnViewData. + * This is used when page is being changed with finger follow swipe. + */ + mutable TBool iImageChanged; }; #endif // CXNBACKGROUNDMANAGER_H diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/inc/xncontroladapterimpl.h --- a/idlehomescreen/xmluirendering/uiengine/inc/xncontroladapterimpl.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/inc/xncontroladapterimpl.h Fri Sep 17 15:37:16 2010 +0100 @@ -451,6 +451,13 @@ */ RPointerArray< CXnControlAdapter >& ChildAdapters(); + /* + * Checks if widget is Gesture destination node. + * + * @return ETrue if widget is Gesture destination. + */ + TBool IsWidgetGestureDest(); + private: // from MAknTouchGestureFwObserver /** * Implements gesture handling diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/inc/xneditor.h --- a/idlehomescreen/xmluirendering/uiengine/inc/xneditor.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/inc/xneditor.h Fri Sep 17 15:37:16 2010 +0100 @@ -332,6 +332,8 @@ void NotifyViewActivatedL( const CXnViewData& aViewData ); + void NotifyViewLoadedL( const CXnViewData& aViewData ); + void NotifyViewDeactivatedL( const CXnViewData& /*aViewData*/ ); void NotifyConfigureWidgetL( const CHsContentInfo& aContentInfo, @@ -341,9 +343,9 @@ void NotifyWidgetRemovalL( const CXnPluginData& aPluginData ); - void NotifyViewAdditionL( const CXnPluginData& /*aPluginData*/ ); + void NotifyViewAdditionL( const CXnViewData& /*aViewData*/ ); - void NotifyViewRemovalL( const CXnPluginData& /*aPluginData*/ ); + void NotifyViewRemovalL( const CXnViewData& /*aViewData*/ ); void NotifyAllViewsLoadedL(); diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/inc/xneffectmanager.h --- a/idlehomescreen/xmluirendering/uiengine/inc/xneffectmanager.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/inc/xneffectmanager.h Fri Sep 17 15:37:16 2010 +0100 @@ -139,6 +139,7 @@ * @param aThis Active view * @param aOther View to activate * @param aEffect Effect uid + * @param aBgEffectOnly Show only background effect without view animation * @return ETrue of effect is started, EFalse otherwise */ TBool BeginActivateViewEffect( const CXnViewData& aThis, diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/inc/xnfocuscontrol.h --- a/idlehomescreen/xmluirendering/uiengine/inc/xnfocuscontrol.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/inc/xnfocuscontrol.h Fri Sep 17 15:37:16 2010 +0100 @@ -106,8 +106,6 @@ CXnAppUiAdapter& iAppUiAdapter; /** Flag to indicate whether it is allowed to show focus */ TBool iVisible; - /** Flag to indicate refusal */ - TBool iRefused; }; #endif // _XNFOCUSCONTROL_H diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/inc/xnkeyeventdispatcher.h --- a/idlehomescreen/xmluirendering/uiengine/inc/xnkeyeventdispatcher.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/inc/xnkeyeventdispatcher.h Fri Sep 17 15:37:16 2010 +0100 @@ -26,6 +26,7 @@ // Uder includes #include "xnviewmanager.h" +#include "xnuistatelistener.h" // Forward declarations class CXnNode; @@ -45,6 +46,7 @@ */ NONSHARABLE_CLASS( CXnKeyEventDispatcher ) : public CCoeControl, public MCoeMessageMonitorObserver, + public MXnUiResourceChangeObserver, public MXnViewObserver { public: @@ -77,6 +79,19 @@ */ void MonitorWsMessage( const TWsEvent& aEvent ); +private: + // from MXnUiResourceChangeObserver + + /** + * @see MXnUiResourceChangeObserver + */ + void NotifyStatusPaneSizeChanged(); + + /** + * @see MXnUiResourceChangeObserver + */ + void NotifyResourceChanged( TInt aType ); + public: // New functions @@ -174,7 +189,24 @@ * @return Last pointer event */ const TPointerEvent& PointerEvent() const; - + + /** + * Sets activate text editor + * + * @since S60 5.2 + * @param aNode Editor Node + * @param TBool True if text editor should be activated + */ + void SetTextEditorActive( CXnNode* aNode, TBool aActivate ); + + /** + * Queries whether a text editor is active + * + * @since S60 5.2 + * @return ETrue if text editor is active, EFalse otherwise + */ + TBool IsTextEditorActive() const; + private: // new functions @@ -200,6 +232,7 @@ // from MXnViewObserver void NotifyViewActivatedL( const CXnViewData& aViewData ); + void NotifyViewLoadedL( const CXnViewData& /*aViewData*/ ) {}; void NotifyViewDeactivatedL( const CXnViewData& aViewData ); @@ -208,8 +241,8 @@ void NotifyWidgetAdditionL( const CXnPluginData& aPluginData ); void NotifyWidgetRemovalL( const CXnPluginData& aPluginData ); - void NotifyViewAdditionL( const CXnPluginData& /*aPluginData*/ ){}; - void NotifyViewRemovalL( const CXnPluginData& /*aPluginData*/ ){}; + void NotifyViewAdditionL( const CXnViewData& /*aViewData*/ ){}; + void NotifyViewRemovalL( const CXnViewData& /*aViewData*/ ){}; void NotifyAllViewsLoadedL(){}; void NotifyContainerActivatedL( const CXnViewData& /*aViewData*/ ){}; @@ -240,6 +273,8 @@ RPointerArray< CXnNode > iPassiveFocusedNodes; /** Last pointer event */ TPointerEvent iPointerEvent; + /** Active text editor node, not owned */ + CXnNode* iActiveTextEditor; }; #endif //__XNKEYEVENTDISPATCHER_H__ diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.h --- a/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.h Fri Sep 17 15:37:16 2010 +0100 @@ -58,7 +58,8 @@ EIsEmpty, EIsRemovable, EIsActive, - EIsInitial + EIsInitial, + EIsEditable }; public: @@ -373,6 +374,13 @@ inline TBool Removable() const; /* + * Checks whether editable + * + * @return ETrue when editable EFalse when not + */ + inline TBool Editable() const; + + /* * Queries whether this plugin is holding "empty" widget * * @return ETrue if empty, EFalse otherwise @@ -440,9 +448,9 @@ void ShowOutOfMemError(); /** - * Sets locking_status attribute (locked/none) + * Sets locking_status attribute (none/locked/permanent) * - * @param aStatus "locked" / "none" + * @param aStatus "none" / "locked" / "permanent" */ void SetLockingStatus( const TDesC8& aStatus ); diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.inl --- a/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.inl Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.inl Fri Sep 17 15:37:16 2010 +0100 @@ -171,6 +171,15 @@ }; // --------------------------------------------------------------------------- +// Returns editable +// --------------------------------------------------------------------------- +// +inline TBool CXnPluginData::Editable() const + { + return( iFlags.IsSet( EIsEditable ) ? ETrue : EFalse ); + } + +// --------------------------------------------------------------------------- // Returns list of plugindata // --------------------------------------------------------------------------- // diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/inc/xnrootdata.h --- a/idlehomescreen/xmluirendering/uiengine/inc/xnrootdata.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/inc/xnrootdata.h Fri Sep 17 15:37:16 2010 +0100 @@ -93,7 +93,7 @@ /** * Loads remaining application views */ - void LoadRemainingViews(); + void LoadRemainingViewsL(); /** * Cancels load remaining application views @@ -169,7 +169,21 @@ * @return number of pages allowed */ TInt32 MaxPages(); - + + /** + * Returns template view's uid + * + * @return Returns template view's uid, or if not set qhd default + */ + const TDesC8& TemplateViewUid() const; + + /** + * Sets template view's uid + * + * @param Template view's uid + */ + void SetTemplateViewUidL( const TDesC8& aTemplateViewUid ); + /** * Returns ETrue, if all views are loaded */ @@ -206,6 +220,8 @@ TBool iLoadForward; /** Maximum of views allowed */ TInt32 iMaxPages; + /** Template view uid is uid of the view when user selects New view */ + HBufC8* iTemplateViewUid; /** Load error code */ TInt iLoadError; }; diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/inc/xnuiengineimpl.h --- a/idlehomescreen/xmluirendering/uiengine/inc/xnuiengineimpl.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/inc/xnuiengineimpl.h Fri Sep 17 15:37:16 2010 +0100 @@ -147,6 +147,18 @@ void LayoutUIL( CXnNode* aNode = NULL ); /** + * Lays out the UI + * + * This generates full re-layout starting from the given node, + * regardless of the current dirty set or the active view. + * I.e. this can be used to layout an inactive view. + * + * @since Series 60 5.2 + * @param aNode Starting point of the layout + */ + void LayoutFromNodeL( CXnNode& aNode ); + + /** * Creates UI implementations for the UI, adjusts control coordinates * according to the layout * @@ -154,6 +166,19 @@ * @param aNode Starting point */ void RenderUIL( CXnNode* aNode = NULL ); + + /** + * Creates UI implementations for the UI, adjusts control coordinates + * according to the layout + * + * This generates full re-layout starting from the given node, + * regardless of the current dirty set or the active view. + * I.e. this can be used to layout an inactive view. + * + * @since Series 60 5.2 + * @param aNode Starting point + */ + void RenderFromNodeL( CXnNode& aNode ); /** * Gets the root node of the UI @@ -506,10 +531,10 @@ * Enables partial touch input * * @since Series 60 5.2 - * @param aNode Editor Node + * @param aNode Editor Node, can be NULL when disabling partial input * @param TBool Partial input is enabled */ - void EnablePartialTouchInput( CXnNode& aNode, TBool aEnable ); + void EnablePartialTouchInput( CXnNode* aNode, TBool aEnable ); /** * Is partial input active @@ -548,6 +573,7 @@ * @since Series 60 3.2 */ void PrepareRunLayoutL(); + void PrepareRunLayoutL( CXnNode& aNode ); /** * Runs the layout algorithm @@ -555,6 +581,7 @@ * @since Series 60 3.2 */ TInt RunLayoutL( CXnNode* aNode ); + TInt RunLayoutFromNodeL( CXnNode& aNode ); /** * Checks if layout is currently disabled @@ -591,7 +618,7 @@ * @since Series 60 5.2 * @param TInt aType */ - void HandlePartialTouchInputL( CXnNode& aNode, TBool aEnable ); + void HandlePartialTouchInputL( CXnNode* aNode, TBool aEnable ); /** * Set node visible @@ -635,6 +662,11 @@ void NotifyViewActivatedL( const CXnViewData& aViewData ); /** + * from MXnViewObserver + */ + void NotifyViewLoadedL( const CXnViewData& aViewData ); + + /** * from MXnViewObserver */ void NotifyViewDeactivatedL( const CXnViewData& /*aViewData*/ ); @@ -658,12 +690,12 @@ /** * from MXnViewObserver */ - void NotifyViewAdditionL( const CXnPluginData& /*aPluginData*/ ){}; + void NotifyViewAdditionL( const CXnViewData& aViewData ); /** * from MXnViewObserver */ - void NotifyViewRemovalL( const CXnPluginData& /*aPluginData*/ ){}; + void NotifyViewRemovalL( const CXnViewData& /*aViewData*/ ){}; /** * from MXnViewObserver diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/inc/xnviewadapter.h --- a/idlehomescreen/xmluirendering/uiengine/inc/xnviewadapter.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/inc/xnviewadapter.h Fri Sep 17 15:37:16 2010 +0100 @@ -177,10 +177,21 @@ * @param aContainer Container to activate * @param aEnterEditState ETrue if activated container should be set to edit state. * @param aEffect Effect uid, default no effect + * @param aUpdateBg Whether to update wallpaper or not. */ void ActivateContainerL( CXnViewData& aContainer, - TBool aEnterEditState = EFalse, TUid aEffect = TUid::Null() ); - + TBool aEnterEditState = EFalse, TUid aEffect = TUid::Null(), + TBool aUpdateBg = ETrue ); + + /** + * Sets edit state property of container + * + * @since S60 5.0 + * @param aView container + * @param aEnter ETrue if container should be set to edit state. + */ + void EnterEditStateL( CXnViewData& aView, TBool aEnter ); + private: // new functions @@ -200,15 +211,6 @@ * @param aEnterEditState ETrue if default container should be set to edit state. */ void ActivateDefaultContainerL( TBool aEnterEditState = EFalse ); - - /** - * Sets edit state property of container - * - * @since S60 5.0 - * @param aView container - * @param aEnter ETrue if container should be set to edit state. - */ - void EnterEditStateL( CXnViewData& aView, TBool aEnter ); /** * Callback function to be used with CPeriodic. diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/inc/xnviewcontroladapter.h --- a/idlehomescreen/xmluirendering/uiengine/inc/xnviewcontroladapter.h Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/inc/xnviewcontroladapter.h Fri Sep 17 15:37:16 2010 +0100 @@ -38,7 +38,8 @@ NONSHARABLE_CLASS( CXnViewControlAdapter ) : public CXnControlAdapter, public MXnUiStateObserver { -public: + +public: // Constructors and destructor /** @@ -103,7 +104,7 @@ /** * C++ default constructor */ - CXnViewControlAdapter( CXnNodePluginIf& aNode ); + CXnViewControlAdapter(); /** * 2nd phase constructor @@ -112,14 +113,14 @@ private: // data - - /** Node */ - CXnNodePluginIf& iNode; /** AppUi */ CXnAppUiAdapter& iAppUi; + /** HS foreground status*/ MXnUiStateObserver::TForegroundStatus iForegroundStatus; - }; + + //friend class CXnViewSwitcher; + }; #endif // _XNVIEWCONTROLADAPTER_H diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xnappuiadapter.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnappuiadapter.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnappuiadapter.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -30,6 +30,7 @@ #include "hscontentcontrolfactory.h" #include "xnviewadapter.h" #include "xnnode.h" +#include "xnviewswitcher.h" #include "xuikon_builds_cfg.hrh" #include "debug.h" @@ -87,7 +88,9 @@ iImpl = CXnAppUiAdapterImpl::NewL( iApplicationUid, *this ); iImpl->ConstructL(); - + + iViewSwitcher = CXnViewSwitcher::NewL(); + __TIME_ENDMARK( "CXnAppUiAdapter::ConstructL, done", time ); } @@ -98,6 +101,8 @@ // EXPORT_C CXnAppUiAdapter::~CXnAppUiAdapter() { + delete iViewSwitcher; + delete iUiEngineAppIf; delete iImpl; @@ -471,4 +476,14 @@ return iImpl->ViewAdapter().FocusControl().MakeVisible( ETrue ); } +// ----------------------------------------------------------------------------- +// CXnAppUiAdapter::ViewSwitcher +// +// ----------------------------------------------------------------------------- +// +CXnViewSwitcher* CXnAppUiAdapter::ViewSwitcher() + { + return iViewSwitcher; + } + // End of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -83,10 +83,14 @@ void HandleErrorL( TInt aErr ) { TInt resourceId( NULL ); - if ( aErr == KErrTooBig || aErr == KErrNoMemory ) + if ( aErr == KErrTooBig ) { resourceId = R_QTN_HS_TOO_BIG_IMAGE_NOTE; } + else if( aErr == KErrNoMemory ) + { + resourceId = R_QTN_HS_WALLPAPER_OUT_OF_RAM; + } else if ( aErr == KErrCancel || aErr == KErrCouldNotConnect || aErr == KErrCANoRights ) { @@ -139,7 +143,8 @@ CXnBackgroundManager::CXnBackgroundManager( CXnViewManager& aViewManager, CHspsWrapper& aWrapper ) : iViewManager( aViewManager ), iHspsWrapper( aWrapper ), - iStoreWallpaper( ETrue ) + iStoreWallpaper( ETrue ), + iImageChanged( EFalse ) { } @@ -226,7 +231,13 @@ { CFbsBitmap* wallpaper( NULL ); - if( iType == EPageSpecific ) + if( iImageChanged ) + { + iImageChanged = EFalse; + wallpaper = iWallpaper; + iWallpaper = NULL; + } + else if( iType == EPageSpecific ) { CXnViewData& viewData( iViewManager.ActiveViewData() ); wallpaper = viewData.WallpaperImage(); @@ -332,22 +343,15 @@ void CXnBackgroundManager::HandleNotifyDisk( TInt /*aError*/, const TDiskEvent& aEvent ) { - if( aEvent.iType == MDiskNotifyHandlerCallback::EDiskStatusChanged || - aEvent.iType == MDiskNotifyHandlerCallback::EDiskAdded || - aEvent.iType == MDiskNotifyHandlerCallback::EDiskRemoved ) + if( aEvent.iType == MDiskNotifyHandlerCallback::EDiskStatusChanged ) { - if( !( aEvent.iInfo.iDriveAtt & KDriveAttInternal ) ) - { - TBool diskRemoved( aEvent.iInfo.iType == EMediaNotPresent ); - - if( diskRemoved ) - { - TRAP_IGNORE( RemovableDiskRemovedL() ); - } - else - { - TRAP_IGNORE( RemovableDiskInsertedL() ); - } + if( aEvent.iInfo.iType == EMediaHardDisk ) + { + TRAP_IGNORE( RemovableDiskInsertedL() ); + } + else if( aEvent.iInfo.iType == EMediaNotPresent ) + { + TRAP_IGNORE( RemovableDiskRemovedL() ); } } } @@ -409,7 +413,7 @@ else { // Potentially not enough memory - iViewManager.OomSysHandler().HandlePotentialOomL(); + HandleErrorL( KErrNoMemory ); } } } @@ -484,7 +488,8 @@ if ( oldwp.Compare( newwp ) ) { iStoreWallpaper = ETrue; - + iImageChanged = ETrue; + iWallpaper = aNewView.WallpaperImage(); if ( aDrawNow ) { DrawNow(); @@ -780,9 +785,9 @@ CFbsBitmap* bitmap = viewData->WallpaperImage(); if( path != KNullDesC && bitmap ) { - if ( !BaflUtils::FileExists( fs, path ) ) + if ( !BaflUtils::FileExists( fs, path ) && path.Compare( KNullDesC ) != KErrNone ) { - RemoveWallpaperFromCache( path, viewData ); + iSkinSrv.RemoveWallpaper( path ); viewData->SetWallpaperImage( NULL ); if( viewData == &iViewManager.ActiveViewData() ) { @@ -796,9 +801,9 @@ { if( iBgImagePath && iBgImage ) { - if ( !BaflUtils::FileExists( fs, *iBgImagePath ) ) + if ( !BaflUtils::FileExists( fs, *iBgImagePath ) && iBgImagePath->Compare( KNullDesC ) != KErrNone ) { - RemoveWallpaperFromCache( *iBgImagePath ); + iSkinSrv.RemoveWallpaper( *iBgImagePath ); delete iBgImage; iBgImage = NULL; drawingNeeded = ETrue; @@ -925,14 +930,23 @@ if( aFileName == KNullDesC ) { - err = AknsWallpaperUtils::SetIdleWallpaper( aFileName, NULL ); + if( viewData.WallpaperImagePath() == KNullDesC ) + { + // Default already set as background. + err = KErrCancel; + } + else + { + err = AknsWallpaperUtils::SetIdleWallpaper( aFileName, NULL ); + } } else { // Wallpaper is also added into the cache if it is not there already. - err = AknsWallpaperUtils::SetIdleWallpaper( aFileName, CCoeEnv::Static(), - R_QTN_HS_PROCESSING_NOTE, R_CHANGE_WALLPAPER_WAIT_DIALOG ); + err = AknsWallpaperUtils::SetIdleWallpaper( aFileName, CCoeEnv::Static()/*, + R_QTN_HS_PROCESSING_NOTE, R_CHANGE_WALLPAPER_WAIT_DIALOG */ ); } + if( err == KErrNone ) { // Remove old wallpaper from the cache diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xncomposer.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xncomposer.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xncomposer.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -52,6 +52,9 @@ _LIT( KCDrive, "C:" ); _LIT8( KTagXuikon, "xuikon" ); +_LIT8( KTemplateViewSetting, "templateView" ); +_LIT8( KViewUidSetting, "uid" ); + using namespace hspswrapper; // ======== LOCAL FUNCTIONS ======== @@ -512,6 +515,25 @@ return NULL; } + RPointerArray& settings( configuration->Settings() ); + + for ( TInt i = 0; i < settings.Count(); i++ ) + { + CItemMap* setting( settings[i] ); + if ( (setting != NULL) && setting->ItemId() == KTemplateViewSetting ) + { + RPointerArray& properties = setting->Properties(); + for ( TInt j = 0; j < properties.Count(); j++ ) + { + CPropertyMap* property( properties[i] ); + if ( (property != NULL) && property->Name() == KViewUidSetting ) + { + aRootData.SetTemplateViewUidL( property->Value() ); + } + } + } + } + CPluginInfo& info( configuration->PluginInfo() ); aRootData.SetOwner( root ); diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xncontroladapter.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xncontroladapter.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xncontroladapter.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -615,3 +615,14 @@ { } + +// ----------------------------------------------------------------------------- +// CXnControlAdapter::IsWidgetGestureDest +// ----------------------------------------------------------------------------- +// +TBool CXnControlAdapter::IsWidgetGestureDest() + { + return iImpl->IsWidgetGestureDest(); + } + +// End of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xncontroladapterimpl.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xncontroladapterimpl.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xncontroladapterimpl.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -61,6 +61,7 @@ #include "xnscrollablecontroladapter.h" #include "xnfocuscontrol.h" #include "xneditmode.h" +#include "xnviewswitcher.h" _LIT8(KScrollableBoxNodeName, "scrollablebox"); _LIT8( KView, "view" ); @@ -207,7 +208,6 @@ CXnResource& aResource, RFile& aFile, RFs& aFsSession ); static void DrawFocusAppearance( CXnNode& aNode, CWindowGc& aGc ); static CXnDomNode* HasHoldTrigger( CXnDomNode* aNode ); -static void CancelFocusRefusalL( CXnUiEngine& aUiEngine ); // ============================= LOCAL FUNCTIONS =============================== // ----------------------------------------------------------------------------- @@ -3414,30 +3414,6 @@ } // ----------------------------------------------------------------------------- -// CancelFocusRefusalL -// Cancels focus refusal -// ----------------------------------------------------------------------------- -// -static void CancelFocusRefusalL( CXnUiEngine& aUiEngine ) - { - CXnNode* focused( aUiEngine.FocusedNode() ); - - if ( focused ) - { - CXnControlAdapter* control( focused->Control() ); - - if ( control && control->RefusesFocusLoss() ) - { - focused->HideTooltipsL(); - - // It is now time to give up holding focus - focused->UnsetStateL( - XnPropertyNames::style::common::KFocus ); - } - } - } - -// ----------------------------------------------------------------------------- // Calculates scaled bitmap size (rect) // ----------------------------------------------------------------------------- // @@ -3690,20 +3666,7 @@ if ( aType == EEventKeyDown ) { iLongtap = EFalse; - - if ( aKeyEvent.iScanCode == EStdKeyDevice3 || - aKeyEvent.iCode == EKeyEnter ) - { - if ( node->IsStateSet( XnPropertyNames::style::common::KFocus ) ) - { - // Set "pressed down" - node->SetStateL( - XnPropertyNames::style::common::KPressedDown ); - - node->UiEngine()->RenderUIL(); - } - } - + _LIT8( KDown, "3" ); // EEventKeyDown == 3 CXnNode* keydown( BuildTriggerNodeL( *engine, @@ -3765,17 +3728,7 @@ CleanupStack::PopAndDestroy( keyup ); } } - - if ( aKeyEvent.iScanCode == EStdKeyDevice3 || - aKeyEvent.iCode == EKeyEnter ) - { - // Reset "pressed down" - node->UnsetStateL( - XnPropertyNames::style::common::KPressedDown ); - - node->UiEngine()->RenderUIL(); - } - + iLongtap = EFalse; } } @@ -3823,9 +3776,9 @@ if ( prop && prop->StringValue() == XnPropertyNames::KTrue ) { CXnUiEngine* engine( node->UiEngine() ); - CXnAppUiAdapter& appui( engine->AppUiAdapter() ); - - CancelFocusRefusalL( *engine ); + CXnAppUiAdapter& appui( engine->AppUiAdapter() ); + + appui.ViewAdapter().CloseAllPopupsL(); appui.HideFocus(); @@ -3887,7 +3840,7 @@ // TBool CXnControlAdapterImpl::HandlePointerEventL( const TPointerEvent& aPointerEvent ) - { + { const TPointerEvent& event( aPointerEvent ); CXnNode* node( &iNode.Node() ); @@ -3970,11 +3923,6 @@ if ( !menuBar ) { - CancelFocusRefusalL( *engine ); - } - - if ( !menuBar && !engine->FocusedNode() ) - { // save starting point iButtonDownStartPoint = event.iPosition; // Require focus to be shown @@ -4043,21 +3991,41 @@ // void CXnControlAdapterImpl::DoDrawL( const TRect& aRect, CWindowGc& aGc ) const { + if( !iComponent ) + { + return; + } CXnNode& node = iComponent->Node()->Node(); DrawBordersL( aRect, node, aGc ); const_cast< CXnControlAdapterImpl* >( this )->DrawBackgroundDataL( aRect, node, aGc ); - if ( iAdapter->IsFocused() ) - { - DrawFocusAppearance( node, aGc ); + if ( node.IsStateSet( XnPropertyNames::style::common::KFocus ) ) + { + CXnProperty* prop( node.GetPropertyL( + XnPropertyNames::common::KFocusAppearance ) ); + + if ( prop && prop->StringValue() == XnPropertyNames::KNone ) + { + // Current element refuses to draw focus appearance + } + else + { + DrawFocusAppearance( node, aGc ); + } } // Draw plus sign for empty plugins in edit mode. if( node.UiEngine()->EditMode()->EditState() ) { - const_cast< CXnControlAdapterImpl* >( this )->DrawPlusSign( node, aGc ); + CXnControlAdapterImpl* adapter = const_cast< CXnControlAdapterImpl* >( this ); + TBool editstate = iNode.IsEditState(); + + if( editstate ) + { + adapter->DrawPlusSign( node, aGc ); + } } if ( iAnimation ) @@ -4302,9 +4270,18 @@ TRect paddingRect = aRect; TRect shrunkRect = paddingRect; - shrunkRect.Shrink( - KSkinGfxInnerRectShrink, - KSkinGfxInnerRectShrink ); + if ( itemID == KAknsIIDQsnFrPopupSub ) + { + shrunkRect.Shrink( + KSkinGfxInnerRectShrink + 2, + KSkinGfxInnerRectShrink + 2 ); + } + else + { + shrunkRect.Shrink( + KSkinGfxInnerRectShrink, + KSkinGfxInnerRectShrink ); + } CAknsFrameBackgroundControlContext* frameContext = CAknsFrameBackgroundControlContext::NewL( @@ -4334,7 +4311,7 @@ // ----------------------------------------------------------------------------- // void CXnControlAdapterImpl::DrawBackgroundImageL( - const TRect& aRect, + const TRect& /*aRect*/, CXnNode& aNode, CWindowGc& aGc, CFbsBitmap* aBitmap, @@ -4425,7 +4402,7 @@ TPoint( rect.iTl.iX + imageRect.Width(), rect.iTl.iY + imageRect.Height() ) ); - aGc.SetClippingRect( aRect ); + //aGc.SetClippingRect( aRect ); if ( aMask ) { @@ -4442,7 +4419,7 @@ TPoint( rect.iTl.iX + imageRect.Width(), rect.iTl.iY + imageRect.Height() ) ); - aGc.SetClippingRect( aRect ); + //aGc.SetClippingRect( aRect ); aGc.DrawBitmap( newRect, aBitmap, bitmapRect ); } @@ -5746,22 +5723,26 @@ { swipe = &XnPropertyNames::action::trigger::name::swipe::direction::KRight; } - + if ( swipe && iGestureDestination ) { CXnUiEngine* engine = iNode.Node().UiEngine(); - if ( iGestureDestination == &iNode.Node() ) - { - CancelFocusRefusalL( *engine ); - } // Remove focus engine->AppUiAdapter().HideFocus(); - CXnNode* trigger( BuildSwipeTriggerNodeLC( *engine, *swipe ) ); - iGestureDestination->ReportXuikonEventL( *trigger ); - CleanupStack::PopAndDestroy( trigger ); - + if ( ( engine->AppUiAdapter().ViewSwitcher() != NULL ) && + ( engine->AppUiAdapter().ViewSwitcher()->FingerFollowSupported() ) && + ( !iGestureDestination || iGestureDestination == &iNode.Node() ) ) + { + engine->AppUiAdapter().ViewSwitcher()->TouchGesture( type ); + } + else if ( iGestureDestination ) + { + CXnNode* trigger( BuildSwipeTriggerNodeLC( *engine, *swipe ) ); + iGestureDestination->ReportXuikonEventL( *trigger ); + CleanupStack::PopAndDestroy( trigger ); + } CXnAppUiAdapter& appui( engine->AppUiAdapter() ); CXnViewData& data( appui.ViewManager().ActiveViewData() ); @@ -5773,6 +5754,13 @@ } } +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +TBool CXnControlAdapterImpl::IsWidgetGestureDest() + { + return ( !iGestureDestination || iGestureDestination != &iNode.Node() ); + } // ============================= TIconProvider =============================== diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xneditmode.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xneditmode.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xneditmode.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -504,6 +504,7 @@ CXnPluginData* plugin( iUiEngine.ViewManager()-> ActiveViewData().Plugin( node ) ); + if ( plugin && plugin->Occupied() ) { StartDragL( *plugin ); diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -235,7 +235,7 @@ CXnPluginData* plugin( viewData.Plugin( node ) ); - if ( plugin && !plugin->Occupied() ) + if ( plugin && !plugin->Occupied() && plugin->Editable() ) { return plugin; } @@ -1087,6 +1087,14 @@ } } +// ----------------------------------------------------------------------------- +// CXnEditor::NotifyViewLoadedL +// ----------------------------------------------------------------------------- +// +void CXnEditor::NotifyViewLoadedL( const CXnViewData& /*aViewData*/ ) + { + } + // --------------------------------------------------------------------------- // CXnEditor::NotifyConfigureWidgetL // --------------------------------------------------------------------------- @@ -1339,7 +1347,7 @@ // CXnEditor::NotifyViewAdditionL // --------------------------------------------------------------------------- // -void CXnEditor::NotifyViewAdditionL( const CXnPluginData& /*aPluginData*/ ) +void CXnEditor::NotifyViewAdditionL( const CXnViewData& /*aViewData*/ ) { NotifyViewListChanged(); } @@ -1348,7 +1356,7 @@ // CXnEditor::NotifyViewRemovalL // --------------------------------------------------------------------------- // -void CXnEditor::NotifyViewRemovalL( const CXnPluginData& /*aPluginData*/ ) +void CXnEditor::NotifyViewRemovalL( const CXnViewData& /*aViewData*/ ) { NotifyViewListChanged(); } @@ -1422,7 +1430,6 @@ KNotifyWidgetListChangedDelay, KNotifyWidgetListChangedDelay, TCallBack( WidgetListChangedCallBack, this ) ); - } // --------------------------------------------------------------------------- @@ -1928,12 +1935,23 @@ const TDesC8& type( aInfo.Type() ); if ( ( type != KKeyWidget && type != KKeyTemplate ) || - aInfo.Uid() == KNullDesC8 || !aInfo.CanBeAdded() ) + aInfo.Uid() == KNullDesC8 ) { // malformed content info return KErrArgument; } + // the widget can not be added. Return proper error code + if ( IsCurrentViewFull() ) + { + return KHsErrorViewFull; + } + else if ( !aInfo.CanBeAdded() ) + { + return KHsErrorMaxInstanceCountExceeded; + } + + CXnPluginData* plugin( NULL ); if( iTargetPlugin ) @@ -1947,27 +1965,9 @@ iTargetPlugin = NULL; - // the widget can not be added. Return proper error code - if ( IsCurrentViewFull() || !plugin ) - { - return KHsErrorViewFull; - } - else + if ( !plugin ) { - TInt result; - if ( aInfo.Type() != KKeyTemplate() ) - { - result = NonTemplateWidgetCanBeAddedRemovedL( aInfo ); - } - else - { - result = TemplateWidgetCanBeAddedRemovedL( aInfo ); - } - - if ( !( result & ECanBeAdded ) ) - { - return KHsErrorMaxInstanceCountExceeded; - } + return KErrGeneral; } ret = iViewManager.LoadWidgetToPluginL( aInfo, *plugin ); @@ -2193,7 +2193,7 @@ { CXnPluginData* plugin = plugins[ i ]; - if ( !plugin->Occupied() ) + if ( plugin && !plugin->Occupied() && plugin->Editable() ) { isFull = EFalse; break; diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xneffectmanager.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xneffectmanager.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xneffectmanager.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -373,17 +373,17 @@ iBgEffect = ETrue; } - + // because of changes in nga end has to call here. Effects below are // grouped and those will be triggered when calling GfxTransEffect::EndGroup if ( iLandscape ) { GfxTransEffect::Begin( thisView, KGfxControlActionDisappearLsc ); GfxTransEffect::Begin( otherView, KGfxControlActionAppearLsc ); - + GfxTransEffect::SetDemarcation( otherView, otherView->Position() ); GfxTransEffect::End( otherView ); - + GfxTransEffect::SetDemarcation( thisView, thisView->Position() ); GfxTransEffect::End( thisView ); } @@ -394,11 +394,11 @@ GfxTransEffect::SetDemarcation( otherView, otherView->Position() ); GfxTransEffect::End( otherView ); - + GfxTransEffect::SetDemarcation( thisView, thisView->Position() ); GfxTransEffect::End( thisView ); - } - + } + return ETrue; } @@ -459,8 +459,7 @@ void CXnEffectManager::CleanupControlEffect() { iBgEffect = EFalse; - iGroupId = -1; - + iGroupId = -1; iControls.Reset(); } diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xnfocuscontrol.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnfocuscontrol.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnfocuscontrol.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -109,43 +109,20 @@ { if ( aVisible != iVisible ) { + iVisible = aVisible; + if ( !aVisible ) { - iVisible = aVisible; - - iRefused = EFalse; - CXnNode* node( iAppUiAdapter.UiEngine().FocusedNode() ); if ( node ) { - node->HideTooltipsL(); - - CXnControlAdapter* control( node->Control() ); - - if ( control && control->RefusesFocusLoss() ) - { - // Need to keep drawing focus appearance - iRefused = ETrue; - - node->UnsetStateL( - XnPropertyNames::style::common::KPressedDown ); - } - else - { - node->UnsetStateL( - XnPropertyNames::style::common::KFocus ); - } + node->UnsetStateL( + XnPropertyNames::style::common::KFocus ); iAppUiAdapter.UiEngine().RenderUIL(); - } + } } - else - { - iRefused = EFalse; - - iVisible = aVisible; - } } } @@ -174,42 +151,17 @@ return; } - if ( IsVisible() || iRefused ) + if ( IsVisible() ) { - CXnNode* node( iAppUiAdapter.UiEngine().FocusedNode() ); + TRect innerRect( aRect ); - if ( node ) - { - CXnProperty* prop( NULL ); - - TRAP_IGNORE( prop = node->GetPropertyL( - XnPropertyNames::common::KFocusAppearance ) ); - - if ( prop && prop->StringValue() == XnPropertyNames::KNone ) - { - // Current element refuses to draw focus appearance - return; - } - - TRect innerRect( aRect ); - - innerRect.Shrink( - KSkinGfxInnerRectShrink, KSkinGfxInnerRectShrink ); - - MAknsSkinInstance* skin( AknsUtils::SkinInstance() ); - - if ( node->IsStateSet( XnPropertyNames::style::common::KPressedDown ) ) - { - AknsDrawUtils::DrawFrame( skin, aGc, aRect, innerRect, - KAknsIIDQsnFrHomePressed, KAknsIIDDefault ); - } - - if ( node->IsStateSet( XnPropertyNames::style::common::KFocus ) ) - { - AknsDrawUtils::DrawFrame( skin, aGc, aRect, innerRect, - KAknsIIDQsnFrHome, KAknsIIDDefault ); - } - } + innerRect.Shrink( + KSkinGfxInnerRectShrink, KSkinGfxInnerRectShrink ); + + MAknsSkinInstance* skin( AknsUtils::SkinInstance() ); + + AknsDrawUtils::DrawFrame( skin, aGc, aRect, innerRect, + KAknsIIDQsnFrHome, KAknsIIDDefault ); } } diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xnkeyeventdispatcher.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnkeyeventdispatcher.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnkeyeventdispatcher.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -17,9 +17,11 @@ // System includes #include +#include // User includes #include "xnappuiadapter.h" +#include "xnviewadapter.h" #include "xnfocuscontrol.h" #include "xnkeyeventdispatcher.h" #include "xntype.h" @@ -40,7 +42,11 @@ ( k == EStdKeyLeftArrow || k == EStdKeyRightArrow || \ k == EStdKeyUpArrow || k == EStdKeyDownArrow ) -const TInt KOneView = 1; +// Constants +const TInt KOneView( 1 ); + +_LIT8( KEnablePartialInput, "splitinputenabled" ); +_LIT8( KTextEditor, "texteditor" ); // ----------------------------------------------------------------------------- // SetInitialFocusL @@ -145,7 +151,11 @@ { iCoeEnv->RemoveMessageMonitorObserver( *this ); - iUiEngine.ViewManager()->RemoveObserver( *this ); + CXnAppUiAdapter& appui( iUiEngine.AppUiAdapter() ); + + appui.ViewManager().RemoveObserver( *this ); + + appui.UiStateListener().RemoveObserver( *this ); delete iLoseFocus; delete iGainFocus; @@ -171,7 +181,11 @@ { MakeVisible( EFalse ); - iUiEngine.ViewManager()->AddObserver( *this ); + CXnAppUiAdapter& appui( iUiEngine.AppUiAdapter() ); + + appui.UiStateListener().AddObserver( *this ); + + appui.ViewManager().AddObserver( *this ); iCoeEnv->AddMessageMonitorObserverL( *this ); } @@ -228,6 +242,44 @@ } // ----------------------------------------------------------------------------- +// CXnKeyEventDispatcher::NotifyStatusPaneSizeChanged() +// +// ----------------------------------------------------------------------------- +// +void CXnKeyEventDispatcher::NotifyStatusPaneSizeChanged() + { + // No implementation required + } + +// ----------------------------------------------------------------------------- +// CXnKeyEventDispatcher::NotifyResourceChanged() +// +// ----------------------------------------------------------------------------- +// +void CXnKeyEventDispatcher::NotifyResourceChanged( TInt aType ) + { + if ( aType == KAknSplitInputEnabled ) + { + if ( iActiveTextEditor ) + { + CXnProperty* prop( NULL ); + + TRAP_IGNORE( prop = + iActiveTextEditor->GetPropertyL( KEnablePartialInput ) ); + + if ( prop && prop->StringValue() == XnPropertyNames::KTrue ) + { + iUiEngine.EnablePartialTouchInput( iActiveTextEditor, ETrue ); + } + } + } + else if ( aType == KAknSplitInputDisabled ) + { + iUiEngine.EnablePartialTouchInput( NULL, EFalse ); + } + } + +// ----------------------------------------------------------------------------- // CXnKeyEventDispatcher::PointerEvent() // // ----------------------------------------------------------------------------- @@ -238,6 +290,43 @@ } // ----------------------------------------------------------------------------- +// CXnKeyEventDispatcher::SetTextEditorActive() +// +// ----------------------------------------------------------------------------- +// +void CXnKeyEventDispatcher::SetTextEditorActive( CXnNode* aNode, + TBool aActivate ) + { + if ( iActiveTextEditor && iActiveTextEditor != aNode ) + { + CXnNode* activeTextEditor( iActiveTextEditor ); + iActiveTextEditor = NULL; + + // Run lose focus to text editor node + TRAP_IGNORE( SetNodeL( activeTextEditor, NULL, ETrue ) ); + } + + if ( aActivate && aNode && aNode->Type()->Type() == KTextEditor ) + { + iActiveTextEditor = aNode; + } + else + { + iActiveTextEditor = NULL; + } + } + +// ----------------------------------------------------------------------------- +// CXnKeyEventDispatcher::IsTextEditorActive +// +// ----------------------------------------------------------------------------- +// +TBool CXnKeyEventDispatcher::IsTextEditorActive() const + { + return iActiveTextEditor ? ETrue : EFalse; + } + +// ----------------------------------------------------------------------------- // CXnKeyEventDispatcher::OfferKeyEventL // Handles key events. // ----------------------------------------------------------------------------- @@ -269,6 +358,11 @@ { keyYesNoApps = ETrue; + if ( aKeyEvent.iScanCode == EStdKeyNo && aType == EEventKey ) + { + iUiEngine.AppUiAdapter().ViewAdapter().CloseAllPopupsL(); + } + iFocusChanged = EFalse; // AppsKey, YesKey, NoKey events must be always handled, and if we don't @@ -281,38 +375,45 @@ if ( IS_ARROW_KEY( aKeyEvent.iScanCode ) && aType == EEventKey ) { - if ( !appui.FocusShown() ) + if ( !appui.FocusShown() || !iNode ) { appui.ShowFocus(); if ( !iNode ) { - // Find initial location for focus - ResolveAndSetFocusL(); - - // If focus is still not set, we are in normal mode and the view is empty. - // left and right arrows lead to next/previous view. When other arrows - // are pressed, the focus is hidden. - if( !iNode ) + if ( iActiveTextEditor ) + { + iNode = iActiveTextEditor; + } + else { - if( iUiEngine.ViewManager()->ViewAmount() != KOneView && - aKeyEvent.iScanCode == EStdKeyRightArrow ) + // Find initial location for focus + ResolveAndSetFocusL(); + + // If focus is still not set, we are in normal mode and the view is empty. + // left and right arrows lead to next/previous view. When other arrows + // are pressed, the focus is hidden. + if( !iNode ) { - iUiEngine.ViewManager()->ActivateNextViewL(); + if( iUiEngine.ViewManager()->ViewAmount() != KOneView && + aKeyEvent.iScanCode == EStdKeyRightArrow ) + { + iUiEngine.ViewManager()->ActivateNextViewL(); + } + else if( iUiEngine.ViewManager()->ViewAmount() != KOneView && + aKeyEvent.iScanCode == EStdKeyLeftArrow ) + { + iUiEngine.ViewManager()->ActivatePreviousViewL(); + } + else + { + // hide focus if view is not switched + appui.HideFocus(); + } } - else if( iUiEngine.ViewManager()->ViewAmount() != KOneView && - aKeyEvent.iScanCode == EStdKeyLeftArrow ) - { - iUiEngine.ViewManager()->ActivatePreviousViewL(); - } - else - { - // hide focus if view is not switched - appui.HideFocus(); - } + + return EKeyWasConsumed; } - - return EKeyWasConsumed; } } } @@ -431,6 +532,14 @@ { if ( aToLose ) { + CXnControlAdapter* adapter( aToLose->Control() ); + + // Don't change control focus when element is focused + if ( adapter && !iActiveTextEditor ) + { + adapter->SetFocus( EFalse ); + } + aToLose->SetDirtyL( XnDirtyLevel::ERender ); aToLose->UnsetStateL( XnPropertyNames::style::common::KFocus ); @@ -444,20 +553,34 @@ iLoseFocus = BuildTriggerNodeL( iUiEngine, XnPropertyNames::action::trigger::name::KLoseFocus ); } - - aToLose->ReportXuikonEventL( *iLoseFocus ); - } - - CXnControlAdapter* adapter( aToLose->Control() ); - - if ( adapter ) - { - adapter->SetFocus( EFalse ); + + if ( iActiveTextEditor != aToLose ) + { + aToLose->ReportXuikonEventL( *iLoseFocus ); + } } } if ( aToGain ) { + TBool isTextEditor( aToGain->Type()->Type() == KTextEditor ); + + if ( iActiveTextEditor && ( ( aSource != XnEventSource::EStylus && !isTextEditor ) || + ( iActiveTextEditor->Namespace() != aToGain->Namespace() ) || + ( isTextEditor && iActiveTextEditor != aToGain ) ) ) + { + // Remove focus from active element + SetTextEditorActive( NULL, EFalse ); + } + + CXnControlAdapter* adapter( aToGain->Control() ); + + // Don't change control focus when element is focused + if ( adapter && !iActiveTextEditor ) + { + adapter->SetFocus( ETrue ); + } + aToGain->SetDirtyL( XnDirtyLevel::ERender ); if ( aNotify ) @@ -468,15 +591,17 @@ XnPropertyNames::action::trigger::name::KGainFocus ); } - aToGain->ReportXuikonEventL( *iGainFocus, aSource ); + if ( iActiveTextEditor != aToGain ) + { + aToGain->ReportXuikonEventL( *iGainFocus, aSource ); + } } - - CXnControlAdapter* adapter( aToGain->Control() ); - - if ( adapter ) + + if ( isTextEditor ) { - adapter->SetFocus( ETrue ); - } + // Set active element + SetTextEditorActive( aToGain, ETrue ); + } } } @@ -641,6 +766,9 @@ const CXnViewData& /*aViewData*/ ) { iMenuNode = NULL; + + SetTextEditorActive( NULL, EFalse ); + ClearPassiveFocusedNodesL(); ClearStateL(); @@ -667,11 +795,11 @@ { ClearPassiveFocusedNodesL(); + CXnViewData& activeViewData( + iUiEngine.ViewManager()->ActiveViewData() ); + if ( iNode ) { - CXnViewData& activeViewData( - iUiEngine.ViewManager()->ActiveViewData() ); - const CXnPluginData* pluginData( activeViewData.Plugin( iNode ) ); @@ -681,6 +809,17 @@ ClearStateL(); } } + + if ( iActiveTextEditor ) + { + const CXnPluginData* pluginData( + activeViewData.Plugin( iActiveTextEditor ) ); + + if ( pluginData == &aPluginData ) + { + SetTextEditorActive( NULL, EFalse ); + } + } } } diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -27,6 +27,7 @@ #include "xnproperty.h" #include "xnuiengine.h" #include "xnappuiadapter.h" +#include "xnkeyeventdispatcher.h" #include "xncontroladapter.h" #include "xnpopupcontroladapter.h" #include "xnmenuadapter.h" @@ -51,7 +52,6 @@ #include "xneffectmanager.h" #include "xnviewadapter.h" #include "xnbackgroundmanager.h" -#include "xntexteditor.h" #include "xnitemactivator.h" // Local constants @@ -337,10 +337,11 @@ static CXnNode* FindNextNodeFromLeftL( RPointerArray< CXnNode >& aArray, CXnNode& aNode, TBool stayInNamespace = EFalse, CXnUiEngine* aEngine = NULL ); static CXnNode* FindNextNodeFromBelowL( - RPointerArray< CXnNode >& aArray, CXnNode& aNode, TBool stayInNamespace = EFalse ); + RPointerArray< CXnNode >& aArray, CXnNode& aNode, TBool stayInNamespace = EFalse, CXnUiEngine* aEngine = NULL ); static CXnNode* FindNextNodeFromAboveL( - RPointerArray< CXnNode >& aArray, CXnNode& aNode, TBool stayInNamespace = EFalse ); + RPointerArray< CXnNode >& aArray, CXnNode& aNode, TBool stayInNamespace = EFalse, CXnUiEngine* aEngine = NULL ); static CXnNode* FindPluginNode( CXnNode& aNode ); +static TBool IsPluginNode( CXnNode& aNode ); static TBool DoInternalFocusChangeL( CXnUiEngine& aEngine, CXnNode& aNode, const TKeyEvent& aKeyEvent, TEventCode aType ); @@ -2935,22 +2936,22 @@ editorNode = &aLayoutNode; } - if( editorNode ) - { - XnTextEditorInterface::MXnTextEditorInterface* editorControl = NULL; + if ( editorNode ) + { + CXnKeyEventDispatcher* eventDispatcher( + aEngine.AppUiAdapter().ViewAdapter().EventDispatcher() ); - XnComponentInterface::MakeInterfaceL( editorControl, editorNode->AppIfL() ); - if( editorControl ) - { - if( aActivate ) - { - editorControl->HandleEditorEvent(CXnTextEditor::KActivateTextEditor); + if ( eventDispatcher ) + { + if ( aActivate ) + { + eventDispatcher->SetTextEditorActive( editorNode, ETrue ); } else { - editorControl->HandleEditorEvent(CXnTextEditor::KDeactivateTextEditor); - } - } + eventDispatcher->SetTextEditorActive( NULL, EFalse ); + } + } } } @@ -3056,17 +3057,21 @@ for ( TInt i = 0; i < plugins.Count(); i++ ) { - CXnNode* node( plugins[i]->Owner()->LayoutNode() ); + CXnNode* node( plugins[i]->Owner()->LayoutNode() ); + TBool editable = plugins[i]->Editable(); + + if( editable ) + { + node->SetStateL( XnPropertyNames::style::common::KEdit ); + } - node->SetStateL( XnPropertyNames::style::common::KEdit ); - if ( !plugins[i]->Occupied() && useEmpty ) { // Make empty space visible SetStringPropertyToNodeL( *sp, *node, XnPropertyNames::style::common::KVisibility, XnPropertyNames::style::common::visibility::KVisible ); - } + } } aEngine.EditMode()->SetEditModeL( CXnEditMode::EDragAndDrop ); @@ -3734,7 +3739,7 @@ } } - plugins.Append( &viewData ); + plugins.AppendL( &viewData ); RPointerArray< CXnNode > list; CleanupClosePushL( list ); @@ -4780,7 +4785,6 @@ TBool stayInNamespace, CXnUiEngine* aEngine ) { - CXnNode* nextNode = NULL; TRect rect = aNode.PaddingRect(); @@ -4800,6 +4804,14 @@ // do not shift focus to another view continue; } + if( aEngine->IsEditMode() ) + { + if( !IsPluginNode( *tmpNode ) ) + { + // move only between "plugin" nodes in edit mode + continue; + } + } const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace(); const TDesC8& nodeNamespace = aNode.Impl()->Namespace(); @@ -4923,6 +4935,14 @@ // do not shift focus to another view continue; } + if( aEngine->IsEditMode() ) + { + if( !IsPluginNode( *tmpNode ) ) + { + // move only between "plugin" nodes in edit mode + continue; + } + } const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace(); const TDesC8& nodeNamespace = aNode.Impl()->Namespace(); @@ -5037,6 +5057,7 @@ for ( TInt i = 0; i < aArray.Count(); ++i ) { CXnNode* tmpNode = aArray[i]; + if ( !IsNodeNavigableL( *tmpNode ) ) { continue; @@ -5046,6 +5067,14 @@ // do not shift focus to another view continue; } + if( aEngine->IsEditMode() ) + { + if( !IsPluginNode( *tmpNode ) ) + { + // move only between "plugin" nodes in edit mode + continue; + } + } const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace(); const TDesC8& nodeNamespace = aNode.Impl()->Namespace(); @@ -5231,6 +5260,14 @@ // do not shift focus to another view continue; } + if( aEngine->IsEditMode() ) + { + if( !IsPluginNode( *tmpNode ) ) + { + // move only between "plugin" nodes in edit mode + continue; + } + } const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace(); const TDesC8& nodeNamespace = aNode.Impl()->Namespace(); @@ -5353,6 +5390,14 @@ // do not shift focus to another view continue; } + if( aEngine->IsEditMode() ) + { + if( !IsPluginNode( *tmpNode ) ) + { + // move only between "plugin" nodes in edit mode + continue; + } + } const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace(); const TDesC8& nodeNamespace = aNode.Impl()->Namespace(); @@ -5470,12 +5515,7 @@ for ( TInt i = 0; i < aArray.Count(); ++i ) { CXnNode* tmpNode = aArray[i]; - /* - if ( tmpNode == &aNode ) - { - continue; - } - */ + if ( !IsNodeNavigableL( *tmpNode ) ) { continue; @@ -5485,6 +5525,14 @@ // do not shift focus to another view continue; } + if( aEngine->IsEditMode() ) + { + if( !IsPluginNode( *tmpNode ) ) + { + // move only between "plugin" nodes in edit mode + continue; + } + } const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace(); const TDesC8& nodeNamespace = aNode.Impl()->Namespace(); @@ -5649,7 +5697,8 @@ // static CXnNode* FindNextNodeFromBelowL( RPointerArray< CXnNode >& aArray, - CXnNode& aNode, TBool stayInNamespace ) + CXnNode& aNode, TBool stayInNamespace, + CXnUiEngine* aEngine ) { CXnNode* nextNode = NULL; TRect rect = aNode.PaddingRect(); @@ -5669,6 +5718,14 @@ { // do not shift focus to another view continue; + } + if( aEngine->IsEditMode() ) + { + if( !IsPluginNode( *tmpNode ) ) + { + // move only between "plugin" nodes in edit mode + continue; + } } const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace(); @@ -5754,6 +5811,14 @@ // do not shift focus to another view continue; } + if( aEngine->IsEditMode() ) + { + if( !IsPluginNode( *tmpNode ) ) + { + // move only between "plugin" nodes in edit mode + continue; + } + } const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace(); const TDesC8& nodeNamespace = aNode.Impl()->Namespace(); @@ -5825,7 +5890,8 @@ // static CXnNode* FindNextNodeFromAboveL( RPointerArray< CXnNode >& aArray, - CXnNode& aNode, TBool stayInNamespace ) + CXnNode& aNode, TBool stayInNamespace, + CXnUiEngine* aEngine ) { CXnNode* nextNode = NULL; TRect rect = aNode.PaddingRect(); @@ -5846,6 +5912,14 @@ // do not shift focus to another view continue; } + if( aEngine->IsEditMode() ) + { + if( !IsPluginNode( *tmpNode ) ) + { + // move only between "plugin" nodes in edit mode + continue; + } + } const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace(); const TDesC8& nodeNamespace = aNode.Impl()->Namespace(); @@ -5929,6 +6003,14 @@ // do not shift focus to another view continue; } + if( aEngine->IsEditMode() ) + { + if( !IsPluginNode( *tmpNode ) ) + { + // move only between "plugin" nodes in edit mode + continue; + } + } const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace(); const TDesC8& nodeNamespace = aNode.Impl()->Namespace(); @@ -6019,6 +6101,23 @@ } // ----------------------------------------------------------------------------- +// IsPluginNode +// ----------------------------------------------------------------------------- +// +static TBool IsPluginNode( CXnNode& aNode ) + { + TBool ret = EFalse; + + const TDesC8& nodeType = aNode.DomNode()->Name(); + if( nodeType == KPlugin ) + { + ret = ETrue; + } + + return ret; + } + +// ----------------------------------------------------------------------------- // DoInternalFocusChangeL // ----------------------------------------------------------------------------- // @@ -6050,12 +6149,11 @@ // "nav-index: appearance"... CXnProperty* navind = aNode.NavIndexL(); if ( navind && navind->StringValue() == XnPropertyNames::style::common::KAppearance ) - { + { + CXnAppUiAdapter& appui( aEngine.AppUiAdapter() ); - CXnAppUiAdapter& appui = static_cast< CXnAppUiAdapter& >( *iAvkonAppUi ); - CXnPluginData* plugin( - appui.ViewManager().ActiveViewData().Plugin( &aNode ) ); - + CXnPluginData* plugin( appui.ViewManager().ActiveViewData().Plugin( &aNode ) ); + // find if node is in a widget that contatins some opened popup window TBool containsPopUp = ( plugin ? plugin->IsDisplayingPopup() : EFalse ); @@ -6063,11 +6161,11 @@ RPointerArray< CXnNode >& array = aEngine.ViewManager()->AppearanceNodes(); if ( aKeyEvent.iScanCode == EStdKeyDownArrow ) { - nextNode = FindNextNodeFromBelowL( array, aNode, containsPopUp ); + nextNode = FindNextNodeFromBelowL( array, aNode, containsPopUp, &aEngine ); } else if ( aKeyEvent.iScanCode == EStdKeyUpArrow ) { - nextNode = FindNextNodeFromAboveL( array, aNode, containsPopUp ); + nextNode = FindNextNodeFromAboveL( array, aNode, containsPopUp, &aEngine ); } else if ( aKeyEvent.iScanCode == EStdKeyRightArrow ) { @@ -6078,24 +6176,12 @@ nextNode = FindNextNodeFromLeftL( array, aNode, containsPopUp, &aEngine ); } if ( nextNode ) - { - // focus plugin node if in edit mode - if( aEngine.IsEditMode() ) - { - if( nextNode->Type()->Type() != KPlugin ) - { - CXnNode* pluginNode = FindPluginNode( *nextNode ); - if( pluginNode ) - { - nextNode = pluginNode; - } - } - } - + { if( nextNode && nextNode->ScrollableControl() ) { nextNode->ScrollableControl()->ShowItem( *nextNode ); } + nextNode->SetStateL( XnPropertyNames::style::common::KFocus ); return ETrue; } @@ -7956,18 +8042,15 @@ // ----------------------------------------------------------------------------- // void CXnNodeImpl::SetLaidOutL() - { - if ( !iLayoutCapable ) - { - return; - } - - if ( iDropped || !IsNodeDisplayedL( *iNode ) ) - { - return; - } - - iLaidOut = ETrue; + { + if ( !iLayoutCapable || iDropped || !IsNodeDisplayedL( *iNode ) ) + { + iLaidOut = EFalse; + } + else + { + iLaidOut = ETrue; + } for ( TInt i = 0; i < iChildren.Count(); i++ ) { @@ -9134,6 +9217,7 @@ CleanupStack::PopAndDestroy( 2 ); // lockedNodes, lockedNodeIndex } +/* // ----------------------------------------------------------------------------- // CXnNodeImpl::FindNextNodeL // ----------------------------------------------------------------------------- @@ -9162,6 +9246,7 @@ } return node; } +*/ // ----------------------------------------------------------------------------- // CXnNodeImpl::Namespace diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xnnodepluginif.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnnodepluginif.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnnodepluginif.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -26,6 +26,9 @@ #include "xndomdocument.h" #include "xnodt.h" +_LIT8( KFocus, "focus" ); +_LIT8( KEdit, "edit" ); + // ============================ MEMBER FUNCTIONS =============================== // ----------------------------------------------------------------------------- @@ -207,7 +210,16 @@ // EXPORT_C TBool CXnNodePluginIf::IsFocusedState() { - return iNode->IsStateSet( _L8( "focus" ) ); + return iNode->IsStateSet( KFocus ); + } + +// ----------------------------------------------------------------------------- +// CXnNodePluginIf::IsEditState +// ----------------------------------------------------------------------------- +// +EXPORT_C TBool CXnNodePluginIf::IsEditState() + { + return iNode->IsStateSet( KEdit ); } // ----------------------------------------------------------------------------- diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xnodtparser.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnodtparser.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnodtparser.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -88,6 +88,14 @@ _LIT8( KWidgetNodeName, "widget" ); _LIT8( KSliderNodeName, "slider" ); _LIT8( KClockNodeName, "clock" ); +_LIT8( KClockAnalog, "analog" ); +_LIT8( KClockDigital, "digital" ); +_LIT8( KClockFace, "face" ); +_LIT8( KClockFace12, "face12" ); +_LIT8( KClockFace24, "face24" ); +_LIT8( KClockDate, "date" ); +_LIT8( KClockAmpm, "ampm" ); +_LIT8( KClockDay, "day" ); _LIT8( KSoftkeyNodeName,"softkey" ); _LIT8( KConditionalTrigger,"conditional" ); _LIT8( KCondtionalOn, "true" ); @@ -511,6 +519,14 @@ name == KNewstickerNodeName || name == KSliderNodeName || name == KClockNodeName || + name == KClockAnalog || + name == KClockDigital || + name == KClockFace || + name == KClockFace12 || + name == KClockFace24 || + name == KClockDate || + name == KClockAmpm || + name == KClockDay || name == KStylusPopupNodeName || name == KPopUpNodeName || name == KWidgetExtensionNodeName || diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xnplugindata.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnplugindata.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnplugindata.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -37,6 +37,7 @@ // Constants _LIT8( KLockingStatusLocked, "locked" ); +_LIT8( KLockingStatusPermanent, "permanent" ); // ============================ LOCAL FUNCTIONS ================================ @@ -497,12 +498,22 @@ void CXnPluginData::Flush() { // Don't touch to iOwner, because this plugin might be reused later - + + // clear all flags, except editable and removable + TBool removable = iFlags.IsSet( EIsRemovable ); + TBool editable = iFlags.IsSet( EIsEditable ); + iFlags.ClearAll(); - // This is default - iFlags.Set( EIsRemovable ); - + if( removable ) + { + iFlags.Set( EIsRemovable ); + } + if( editable ) + { + iFlags.Set( EIsEditable ); + } + iNode = NULL; delete iConfigurationId; @@ -551,7 +562,7 @@ } // ----------------------------------------------------------------------------- -// CXnPluginData::SetEmpty() +// CXnPluginData::SetEmptyL() // // ----------------------------------------------------------------------------- // @@ -624,13 +635,20 @@ // void CXnPluginData::SetLockingStatus( const TDesC8& aStatus ) { - if ( aStatus.CompareF( KLockingStatusLocked ) == 0 ) + if( aStatus.CompareF( KLockingStatusPermanent ) == 0 ) { iFlags.Clear( EIsRemovable ); + iFlags.Clear( EIsEditable ); + } + else if( aStatus.CompareF( KLockingStatusLocked ) == 0 ) + { + iFlags.Clear( EIsRemovable ); + iFlags.Set( EIsEditable ); } else { iFlags.Set( EIsRemovable ); + iFlags.Set( EIsEditable ); } } diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xnrootdata.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnrootdata.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnrootdata.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -45,6 +45,7 @@ // Constants const TInt KScheduleInterval( 2000000 ); +_LIT8( KTemplateViewUID, "0x20026f50" ); // ============================ LOCAL FUNCTIONS ================================ @@ -94,6 +95,9 @@ // CXnRootData::~CXnRootData() { + delete iTemplateViewUid; + iTemplateViewUid = NULL; + if ( iLoadTimer ) { iLoadTimer->Cancel(); @@ -250,7 +254,7 @@ // // ----------------------------------------------------------------------------- // -void CXnRootData::LoadRemainingViews() +void CXnRootData::LoadRemainingViewsL() { if ( iFlags.IsClear( EIsDispose ) ) { @@ -434,10 +438,9 @@ { iPluginsData.Remove( index ); - if ( iViewsToDestroy.Find( aViewData ) == KErrNotFound ) + if ( iViewsToDestroy.Find( aViewData ) == KErrNotFound && + iViewsToDestroy.Append( aViewData ) == KErrNone ) { - iViewsToDestroy.Append( aViewData ); - iDestroyTimer->Cancel(); iDestroyTimer->Start( TTimeIntervalMicroSeconds32( 0 ), @@ -600,6 +603,28 @@ return iMaxPages; } +// --------------------------------------------------------------------------- +// Returns TemplateViewUid +// --------------------------------------------------------------------------- +// +const TDesC8& CXnRootData::TemplateViewUid() const + { + const TDesC8& templateViewUid = KTemplateViewUID; + return iTemplateViewUid ? *iTemplateViewUid : templateViewUid; // qhd uid + }; + +// --------------------------------------------------------------------------- +// Sets TemplateViewUid +// --------------------------------------------------------------------------- +// +void CXnRootData::SetTemplateViewUidL( const TDesC8& aTemplateViewUid ) + { + delete iTemplateViewUid; + iTemplateViewUid = NULL; + + iTemplateViewUid = aTemplateViewUid.AllocL(); + }; + // ----------------------------------------------------------------------------- // CXnRootData::RunDestroyL() // diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xnscrollablecontroladapter.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnscrollablecontroladapter.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnscrollablecontroladapter.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -156,8 +156,7 @@ { // Remove pressed down focused->UnsetStateL( - XnPropertyNames::style::common::KPressedDown ); - focused->HideTooltipsL(); + XnPropertyNames::style::common::KFocus ); } } @@ -274,41 +273,47 @@ { TRect rect( aNode.MarginRect() ); - if( !iViewPort.Contains( rect.iTl ) || !iViewPort.Contains( rect.iBr ) ) + if ( !iViewPort.Contains( rect.iTl ) || !iViewPort.Contains( rect.iBr ) ) { if ( iDirection == EVertical ) { TInt delta( 0 ); - if( rect.iTl.iY < iViewPort.iTl.iY ) + if ( rect.iTl.iY < iViewPort.iTl.iY ) { delta = rect.iTl.iY - iViewPort.iTl.iY; } - else if( rect.iBr.iY > iViewPort.iBr.iY ) + else if ( rect.iBr.iY > iViewPort.iBr.iY ) { delta = rect.iBr.iY - iViewPort.iBr.iY; } - TPoint newPosition( iPreviousPosition + TPoint( 0, delta ) ); - - ViewPositionChanged( newPosition, ETrue, 0 ); + if ( delta != 0 ) + { + TPoint newPosition( iPreviousPosition + TPoint( 0, delta ) ); + + ViewPositionChanged( newPosition, ETrue, 0 ); + } } else { TInt delta( 0 ); - if( rect.iTl.iX < iViewPort.iTl.iX ) + if ( rect.iTl.iX < iViewPort.iTl.iX ) { delta = rect.iTl.iX - iViewPort.iTl.iX; } - else if( rect.iBr.iX > iViewPort.iBr.iX ) + else if ( rect.iBr.iX > iViewPort.iBr.iX ) { delta = rect.iBr.iX - iViewPort.iBr.iX; } - TPoint newPosition( iPreviousPosition + TPoint( delta, 0 ) ); - - ViewPositionChanged( newPosition, ETrue, 0 ); + if ( delta != 0 ) + { + TPoint newPosition( iPreviousPosition + TPoint( delta, 0 ) ); + + ViewPositionChanged( newPosition, ETrue, 0 ); + } } } } diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xnuiengine.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnuiengine.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnuiengine.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -160,6 +160,16 @@ } // ----------------------------------------------------------------------------- +// CXnUiEngine::RenderFromNodeL +// Forwards the call to the ui engine implementation +// ----------------------------------------------------------------------------- +void CXnUiEngine::RenderFromNodeL( CXnNode& aNode ) + { + iUiEngineImpl->LayoutFromNodeL( aNode ); + iUiEngineImpl->RenderFromNodeL( aNode ); + } + +// ----------------------------------------------------------------------------- // CXnUiEngine::LayoutUIL // Forwards the call to the ui engine implementation // ----------------------------------------------------------------------------- @@ -170,6 +180,16 @@ } // ----------------------------------------------------------------------------- +// CXnUiEngine::LayoutFromNodeL +// Forwards the call to the ui engine implementation +// ----------------------------------------------------------------------------- +// +void CXnUiEngine::LayoutFromNodeL( CXnNode& aNode ) + { + iUiEngineImpl->LayoutFromNodeL( aNode ); + } + +// ----------------------------------------------------------------------------- // CXnUiEngine::Resources // Forwards the call to the ui engine implementation // ----------------------------------------------------------------------------- @@ -526,7 +546,7 @@ // CXnUiEngine::EnablePartialTouchInput() // ----------------------------------------------------------------------------- // -void CXnUiEngine::EnablePartialTouchInput( CXnNode& aNode, TBool aEnable ) +void CXnUiEngine::EnablePartialTouchInput( CXnNode* aNode, TBool aEnable ) { iUiEngineImpl->EnablePartialTouchInput(aNode, aEnable); } diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -58,6 +58,7 @@ #include "xnbackgroundmanager.h" #include "xntexteditor.h" #include "xnrootdata.h" +#include "xnviewswitcher.h" #ifdef _XN_PERFORMANCE_TEST_ #include "xntimemon.h" @@ -77,15 +78,17 @@ _LIT8( KBoxNodeName, "box" ); _LIT8( KButtonNodeName, "button" ); -_LIT8( KWidgetNodeName, "widget" ); _LIT8( KWidgetExtensionNodeName, "widgetextension" ); _LIT8( KScrollableBoxNodeName, "scrollablebox" ); _LIT8( KMenuBar, "menubar" ); _LIT8( KPopUpNodeName, "popup" ); -_LIT8( KEditorNodeName, "texteditor" ); _LIT8( KPlugin, "plugin" ); +_LIT8( KSplitScreenEnabledTrigger , "splitscreenenabled" ); +_LIT8( KSplitScreenDisabledTrigger, "splitscreendisabled" ); + + // LOCAL CONSTANTS AND MACROS static const TReal KIntConversionConstant = 0.5; static const TReal KIntPercentageConstant = @@ -288,23 +291,6 @@ // ============================= LOCAL FUNCTIONS =============================== // ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// -CXnNode* FindPlugin( CXnNode& aNode ) - { - CXnNode* pluginNode( NULL ); - for( CXnNode* node = &aNode; node; node = node->Parent() ) - { - if( node->DomNode()->Name() == KPlugin ) - { - pluginNode = node; - break; - } - } - return pluginNode; - } - -// ----------------------------------------------------------------------------- // GrowIfNeeded() // When a plugin is focused, the focus is a bit bigger than its control // (this is a hack fix to get focus visible with WRT widgets). @@ -3183,18 +3169,18 @@ { TInt width = aNode.BorderRect().Width() + marginLeft + marginRight; - if ( aColumnMargin < marginLeft ) + if ( aColumnMargin < marginRight ) { width -= aColumnMargin; } else { - width -= marginLeft; + width -= marginRight; } if ( width + aColumnWidth <= aParentRect.Width() ) { offsety = aParentRect.iTl.iY + marginTop; - if ( aColumnMargin < marginLeft ) + if ( aColumnMargin < marginRight ) { offsetx = aParentRect.iBr.iX - aColumnWidth + aColumnMargin - marginRight - @@ -3280,7 +3266,7 @@ { offsety = aParentRect.iBr.iY - marginBottom - aNode.BorderRect().Height(); - if ( aColumnMargin < marginLeft ) + if ( aColumnMargin < marginRight ) { offsetx = aParentRect.iBr.iX - aColumnWidth + aColumnMargin - marginRight - @@ -6030,19 +6016,21 @@ TRect parentRect; #ifdef _XN3_DEBUG_ - RDebug::Print( _L("Xuikon: Layout:") ); - TBuf8< 256 > debug; + RDebug::Print( _L("*** XML UI place areas, layout phase=%d"), aLayoutPhase ); + + TBuf8< 256 > debug; #endif // Place areas according their parents and positioning for( CXnNode* node = iterator->Value(); node; node = iterator->NextL() ) { #ifdef _XN3_DEBUG_ - debug = node->Type()->Type(); + debug = _L8( "* layouting node: " ); + debug.Append( node->Type()->Type() ); CXnProperty* id( node->IdL() ); if ( id ) { - debug.Append( _L8( ", id: " ) ); + debug.Append( _L8( " id=" ) ); debug.Append( id->StringValue() ); } #endif @@ -7098,71 +7086,71 @@ if ( IsPropertyAutoL( *top ) ) { TPtrC8 propertyName = top->Property()->Name(); - autoArray.Append( propertyName ); + autoArray.AppendL( propertyName ); } CXnProperty* bottom = aNode.BottomL(); if ( IsPropertyAutoL( *bottom ) ) { TPtrC8 propertyName = bottom->Property()->Name(); - autoArray.Append( propertyName ); + autoArray.AppendL( propertyName ); } CXnProperty* left = aNode.LeftL(); if ( IsPropertyAutoL( *left ) ) { TPtrC8 propertyName = left->Property()->Name(); - autoArray.Append( propertyName ); + autoArray.AppendL( propertyName ); } CXnProperty* right = aNode.RightL(); if ( IsPropertyAutoL( *right ) ) { TPtrC8 propertyName = right->Property()->Name(); - autoArray.Append( propertyName ); + autoArray.AppendL( propertyName ); } CXnProperty* width = aNode.WidthL(); if ( IsPropertyAutoL( *width ) ) { TPtrC8 propertyName = width->Property()->Name(); - autoArray.Append( propertyName ); + autoArray.AppendL( propertyName ); } if ( !width ) { TPtrC8 propertyName = XnPropertyNames::style::common::KWidth(); - autoArray.Append( propertyName ); + autoArray.AppendL( propertyName ); } CXnProperty* height = aNode.HeightL(); if ( IsPropertyAutoL( *height ) ) { TPtrC8 propertyName = height->Property()->Name(); - autoArray.Append( propertyName ); + autoArray.AppendL( propertyName ); } if ( !height ) { TPtrC8 propertyName = XnPropertyNames::style::common::KHeight(); - autoArray.Append( propertyName ); + autoArray.AppendL( propertyName ); } CXnProperty* marginTop = aNode.MarginTopL(); if ( IsPropertyAutoL( *marginTop ) ) { TPtrC8 propertyName = marginTop->Property()->Name(); - autoArray.Append( propertyName ); + autoArray.AppendL( propertyName ); } CXnProperty* marginBottom = aNode.MarginBottomL(); if ( IsPropertyAutoL( *marginBottom ) ) { TPtrC8 propertyName = marginBottom->Property()->Name(); - autoArray.Append( propertyName ); + autoArray.AppendL( propertyName ); } CXnProperty* marginLeft = aNode.MarginLeftL(); if ( IsPropertyAutoL( *marginLeft ) ) { TPtrC8 propertyName = marginLeft->Property()->Name(); - autoArray.Append( propertyName ); + autoArray.AppendL( propertyName ); } CXnProperty* marginRight = aNode.MarginRightL(); if ( IsPropertyAutoL( *marginRight ) ) { TPtrC8 propertyName = marginRight->Property()->Name(); - autoArray.Append( propertyName ); + autoArray.AppendL( propertyName ); } if ( aParentDirection == XnPropertyNames::style::common::direction::KLTR ) @@ -7626,10 +7614,63 @@ if ( count == 0 ) { TRect parentRect( parent->Rect() ); + if( parent->Control() && parent->Control()->OwnsWindow() ) { parentRect = TRect( parentRect.iTl - parent->MarginRect().iTl, parentRect.Size() ); } + + RPointerArray< CXnNode >& siblings( parent->Children() ); + + for ( TInt i = 0; i < siblings.Count(); i++ ) + { + CXnNode* sibling( siblings[i] ); + + if ( sibling == &aNode ) + { + break; + } + + if ( IsNodeDisplayedL( *sibling ) && !sibling->IsDropped() && + !IsAbsoluteL( *sibling ) && !IsNodeTooltip( *sibling ) ) + { + TRect marginRect( sibling->MarginRect() ); + + TInt availableWidth( parentRect.Width() ); + TInt availableHeight( parentRect.Height() ); + + if ( aParentBlockProgression == + XnPropertyNames::style::common::block_progression::KTB || + aParentBlockProgression == + XnPropertyNames::style::common::block_progression::KBT ) + { + availableHeight -= marginRect.Height(); + + if ( availableHeight < 0 ) + { + parentRect.SetHeight( 0 ); + } + else + { + parentRect.SetHeight( availableHeight ); + } + } + else // LR / RL + { + availableWidth -= marginRect.Width(); + + if ( availableWidth < 0 ) + { + parentRect.SetWidth( 0 ); + } + else + { + parentRect.SetWidth( availableWidth ); + } + } + } + } + // I don't have any displayed childrens, fix my own size size = CalculateTotalDimensionsL( aNode, ETrue, EFalse, parentRect, aGraphicsDevice, aHorizontalUnitInPixels, @@ -7928,6 +7969,37 @@ } // ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +static void ReportScreenDeviceChangedL( const CXnPluginData& aPluginData ) + { + CXnNode* node( NULL ); + + if ( aPluginData.Node() ) + { + node = aPluginData.Node()->LayoutNode(); + } + + if ( !node ) + { + return; + } + + CXnNode* trigger( BuildScreenDeviceChangeTriggerNodeLC( *node->UiEngine() ) ); + + node->ReportXuikonEventL( *trigger ); + + CleanupStack::PopAndDestroy( trigger ); + + RPointerArray< CXnPluginData >& plugins( aPluginData.PluginData() ); + + for( TInt i = 0; i < plugins.Count(); i++ ) + { + ReportScreenDeviceChangedL( *plugins[i] ); + } + } + +// ----------------------------------------------------------------------------- // FillFocusCandidatesL // ----------------------------------------------------------------------------- // @@ -7985,23 +8057,16 @@ CXnDepthFirstTreeIterator< CXnNode >::NewL( *aRootNode ); CleanupStack::PushL( iterator ); - RDebug::Print( _L("Xuikon: UI tree:") ); - - TBuf8< 256 > debug; + RDebug::Print( _L("*** XML UI layout:") ); + + TBuf8< 512 > debug; TInt level( 0 ); for( CXnNode* node = iterator->Value(); node; node = iterator->NextL() ) { - debug = _L8( "Xuikon: " ); - - level = iterator->Level(); - - for ( TInt i = 0; i < level; i++ ) - { - debug.Append( ' ' ); - } + debug = _L8( "* " ); debug.Append( node->Type()->Type() ); @@ -8009,12 +8074,12 @@ if ( id ) { - debug.Append( _L8( ", id: " ) ); + debug.Append( _L8( " id=" ) ); debug.Append( id->StringValue() ); } - debug.AppendFormat( _L8( ", laidout: %d" ), node->IsLaidOut() ); - debug.AppendFormat( _L8( ", displayed: %d" ), + debug.AppendFormat( _L8( " laidout=%d" ), node->IsLaidOut() ); + debug.AppendFormat( _L8( " displayed=%d" ), IsNodeDisplayedL( *node ) ); CCoeControl* control( node->Control() ); @@ -8022,12 +8087,55 @@ if ( control ) { TBool visible( control->IsVisible() ); - TRect rect( control->Rect() ); - TPoint tl( rect.iTl ); - TPoint br( rect.iBr ); - debug.AppendFormat( _L8( ", visible %d:" ), visible ); + debug.AppendFormat( _L8( " visible=%d" ), visible ); + + TRect rect; + TPoint tl; + TPoint br; + + rect = node->MarginRect(); + tl = rect.iTl; + br = rect.iBr; + + debug.Append( _L8( "; Margin " ) ); + debug.AppendFormat( + _L8( "tl(%d,%d) br(%d,%d)" ), tl.iX, tl.iY, br.iX, br.iY ); + + rect = node->BorderRect(); + tl = rect.iTl; + br = rect.iBr; + + debug.Append( _L8( "; Border " ) ); debug.AppendFormat( - _L8( ", Tl: %d %d, Br: %d %d" ), tl.iX, tl.iY, br.iX, br.iY ); + _L8( "tl(%d,%d) br(%d,%d)" ), tl.iX, tl.iY, br.iX, br.iY ); + + rect = node->PaddingRect(); + tl = rect.iTl; + br = rect.iBr; + + debug.Append( _L8( "; Padding " ) ); + debug.AppendFormat( + _L8( "tl(%d,%d) br(%d,%d)" ), tl.iX, tl.iY, br.iX, br.iY ); + + rect = node->Rect(); + tl = rect.iTl; + br = rect.iBr; + + debug.Append( _L8( "; Content " ) ); + debug.AppendFormat( + _L8( "tl(%d,%d) br(%d,%d)" ), tl.iX, tl.iY, br.iX, br.iY ); + + if ( control->Rect() != node->BorderRect() ) + { + debug.Append( _L8( "; control rect != rect set by layout algorithm " ) ); + + rect = control->Rect(); + tl = rect.iTl; + br = rect.iBr; + + debug.AppendFormat( + _L8( "tl(%d,%d) br(%d,%d)" ), tl.iX, tl.iY, br.iX, br.iY ); + } } else { @@ -8188,6 +8296,22 @@ } // ----------------------------------------------------------------------------- +// CXnUiEngineImpl::LayoutFromNodeL() +// ----------------------------------------------------------------------------- +// +void CXnUiEngineImpl::LayoutFromNodeL( CXnNode& aNode ) + { + PrepareRunLayoutL( aNode ); + + // Run layout until it is fully calculated + do + { + iLayoutPhase = RunLayoutFromNodeL( aNode ); + } + while ( iLayoutPhase != XnLayoutPhase::ENone ); + } + +// ----------------------------------------------------------------------------- // PrepareRunLayoutL() // Set dropped flags of all nodes in the tree to ENone. // ----------------------------------------------------------------------------- @@ -8215,6 +8339,31 @@ } // ----------------------------------------------------------------------------- +// PrepareRunLayoutL() +// Set dropped flags of all nodes in the tree to ENone. +// ----------------------------------------------------------------------------- +// +void CXnUiEngineImpl::PrepareRunLayoutL( CXnNode& aNode ) + { + if ( iLayoutPhase == XnLayoutPhase::ENone ) + { + iLayoutPhase = XnLayoutPhase::ELayout; + + CXnNode* dirty( &aNode ); + dirty->ClearRenderedAndLaidOut(); + + // Clear dropped flags recursively + SetNodeDroppedL( *dirty, XnNodeLayout::ENone ); + + if ( SetAdaptivesL( *dirty ) ) + { + // Adaptive node causes measure phase + iLayoutPhase = XnLayoutPhase::EMeasure; + } + } + } + +// ----------------------------------------------------------------------------- // CXnUiEngineImpl::RunLayoutL() // ----------------------------------------------------------------------------- // @@ -8315,6 +8464,87 @@ } // ----------------------------------------------------------------------------- +// CXnUiEngineImpl::RunLayoutL() +// ----------------------------------------------------------------------------- +// +TInt CXnUiEngineImpl::RunLayoutFromNodeL( CXnNode& aNode ) + { + TRect clientRect( ClientRect() ); + // Move it to 0, 0 + clientRect.Move( -clientRect.iTl.iX, -clientRect.iTl.iY ); + + RPointerArray< CXnNode > laidOutList; + CleanupClosePushL( laidOutList ); + + if ( IsNodeDisplayedL( aNode ) ) + { + if ( aNode.ViewNodeImpl() && !aNode.IsLaidOut() ) + { + aNode.SetMarginRect( clientRect ); + aNode.SetBorderRect( clientRect ); + aNode.SetNormalFlowBorderRect( clientRect ); + aNode.SetPaddingRect( clientRect ); + aNode.SetRect( clientRect ); + } + + // Put areas to place + PlaceAreasL( aNode, laidOutList, iLayoutPhase, + *iCurrentGraphicsDevice, iHorizontalUnitInPixels, + iVerticalUnitInPixels ); + } + + TInt nextPhase; + + switch ( iLayoutPhase ) + { + case XnLayoutPhase::EMeasure: + nextPhase = XnLayoutPhase::ELayout; + break; + case XnLayoutPhase::ELayout: + // Layout is now calculated + aNode.SetLaidOutL(); + + // Check nodes which dimensions are changed + for ( TInt i = 0; i < laidOutList.Count(); i++ ) + { + CXnNode* node( laidOutList[i] ); + if( IsSrollableBox( *node ) && node->ScrollableControl() ) + { + node->ScrollableControl()->LayoutChangedL(); + } + if ( !node->IsLaidOut() ) + { + continue; + } + CXnControlAdapter* adapter( node->Control() ); + if ( adapter ) + { + TRect rect; + + if ( node->ViewNodeImpl() ) + { + rect = ClientRect(); + } + else + { + rect = node->BorderRect(); + } + if ( adapter->Rect() != rect ) + { + adapter->SetRect( rect ); + } + } + } + /* flow through */ + default: + nextPhase = XnLayoutPhase::ENone; + break; + } + CleanupStack::PopAndDestroy( &laidOutList ); + return nextPhase; + } + +// ----------------------------------------------------------------------------- // CXnUiEngineImpl::RenderUIL() // ----------------------------------------------------------------------------- // @@ -8406,6 +8636,19 @@ } // ----------------------------------------------------------------------------- +// CXnUiEngineImpl::RenderFromNodeL() +// ----------------------------------------------------------------------------- +// +void CXnUiEngineImpl::RenderFromNodeL( CXnNode& aNode ) + { +#ifdef _XN3_DEBUG_ + TraceTreeL( &aNode ); +#endif + CCoeControl* control = WindowOwningControl( aNode ); + control->DrawNow(); + } + +// ----------------------------------------------------------------------------- // CXnUiEngineImpl::RootNode() // ----------------------------------------------------------------------------- // @@ -8713,8 +8956,6 @@ } } - ReportScreenDeviceChangeL(); - SetClientRectL( iAppUiAdapter.ClientRect(), EFalse ); RootNode()->SetDirtyL(); @@ -8725,14 +8966,33 @@ } // ----------------------------------------------------------------------------- +// CXnUiEngineImpl::NotifyViewLoadedL() +// ----------------------------------------------------------------------------- +// +void CXnUiEngineImpl::NotifyViewLoadedL( const CXnViewData& aViewData ) + { + ReportScreenDeviceChangedL( aViewData ); + } + +// ----------------------------------------------------------------------------- // CXnUiEngineImpl::NotifyWidgetAdditionL() // ----------------------------------------------------------------------------- // void CXnUiEngineImpl::NotifyWidgetAdditionL( - const CXnPluginData& /*aPluginData*/ ) - { - } - + const CXnPluginData& aPluginData ) + { + ReportScreenDeviceChangedL( aPluginData ); + } + +// ----------------------------------------------------------------------------- +// CXnUiEngineImpl::NotifyViewAdditionL() +// ----------------------------------------------------------------------------- +// +void CXnUiEngineImpl::NotifyViewAdditionL( const CXnViewData& aViewData ) + { + ReportScreenDeviceChangedL( aViewData ); + } + // ----------------------------------------------------------------------------- // CXnUiEngineImpl::DynInitMenuItemL() // ----------------------------------------------------------------------------- @@ -9034,10 +9294,6 @@ { HandleSkinChangeL(); } - else if( iCurrentViewControlAdapter ) - { - iCurrentViewControlAdapter->HandleResourceChange( aType ); - } } // ----------------------------------------------------------------------------- @@ -9560,7 +9816,13 @@ iClientRect ); iEditMode->SetClientRect( aRect ); - + + CXnViewSwitcher* viewSwitcher( iAppUiAdapter.ViewSwitcher() ); + if( viewSwitcher ) + { + viewSwitcher->SizeChanged( aRect ); + } + if ( aDrawNow ) { RootNode()->SetDirtyL(); @@ -9848,58 +10110,50 @@ } } - // ----------------------------------------------------------------------------- // ----------------------------------------------------------------------------- // void CXnUiEngineImpl::ReportScreenDeviceChangeL() - { - CXnNode* trigger( BuildScreenDeviceChangeTriggerNodeLC( *iUiEngine ) ); - - // Notify current orientation to iCurrentView - iCurrentView->ReportXuikonEventL( *trigger ); - - // Notify also plugins - RPointerArray plugins = *Plugins(); - for( TInt i=0; i pluginChildren = pluginNode->Children(); - for( TInt ii=0; iiDomNode(); - if( widgetNode && widgetNode->Name() == KWidgetNodeName ) - { - pluginChildren[ii]->ReportXuikonEventL( *trigger ); - } - } - } - - CleanupStack::PopAndDestroy(); // trigger + { + // Notify current orientation to all views + RPointerArray< CXnPluginData >& plugins( + iViewManager.ActiveAppData().PluginData() ); + + for( TInt i = 0; i < plugins.Count(); i++ ) + { + ReportScreenDeviceChangedL( *plugins[i] ); + } } // ----------------------------------------------------------------------------- // CXnUiEngineImpl::HandlePartialTouchInputL() // ----------------------------------------------------------------------------- -void CXnUiEngineImpl::HandlePartialTouchInputL( CXnNode& aNode, TBool aEnable ) - { - CXnNode* editorplugin = FindPlugin( aNode ); - if ( !editorplugin ) - { - User::Leave( KErrNotFound ); - } +void CXnUiEngineImpl::HandlePartialTouchInputL( CXnNode* aNode, TBool aEnable ) + { + CXnViewData& view( iViewManager.ActiveViewData() ); + + CXnNode* editor( aEnable ? aNode : iSplitScreenState.iPartialScreenEditorNode ); + + CXnPluginData* plugin( view.Plugin( editor ) ); + + if ( !plugin || !editor ) + { + return; + } + + CXnNode* editorplugin( plugin->Owner()->LayoutNode() ); DisableRenderUiLC(); if ( aEnable ) { iSplitScreenState.iPartialScreenOpen = ETrue; - iSplitScreenState.iPartialScreenEditorNode = &aNode; + iSplitScreenState.iPartialScreenEditorNode = editor; // make sure that we always get up event - CXnViewControlAdapter* control = static_cast< CXnViewControlAdapter* >( - iViewManager.ActiveViewData().ViewNode()->Control() ); - + CXnViewControlAdapter* control = + static_cast< CXnViewControlAdapter* >( view.ViewNode()->Control() ); + control->ResetGrabbing(); // Block progression must be bottom-to-top when partial screen is open @@ -9966,6 +10220,17 @@ RootNode()->SetDirtyL(); ForceRenderUIL(); CleanupStack::PopAndDestroy(); + + if ( aEnable ) + { + editor->PluginIfL().ReportTriggerEventL( + KSplitScreenEnabledTrigger, KNullDesC8, KNullDesC8 ); + } + else + { + editor->PluginIfL().ReportTriggerEventL( + KSplitScreenDisabledTrigger, KNullDesC8, KNullDesC8 ); + } } // ----------------------------------------------------------------------------- @@ -10063,7 +10328,7 @@ // ----------------------------------------------------------------------------- // EnablePartialTouchInput // ----------------------------------------------------------------------------- -void CXnUiEngineImpl::EnablePartialTouchInput( CXnNode& aNode, TBool aEnable ) +void CXnUiEngineImpl::EnablePartialTouchInput( CXnNode* aNode, TBool aEnable ) { if( aEnable && !iSplitScreenState.iPartialScreenOpen || !aEnable && iSplitScreenState.iPartialScreenOpen ) @@ -10139,18 +10404,11 @@ // TBool CXnUiEngineImpl::IsTextEditorActive() { - if( iSplitScreenState.iPartialScreenOpen ) - { - return ETrue; - } - CXnNode* focusedNode = FocusedNode(); - if( focusedNode ) - { - if( focusedNode->Type()->Type() == KEditorNodeName ) - { - return ETrue; - } - } + if( iKeyEventDispatcher ) + { + return iKeyEventDispatcher->IsTextEditorActive(); + } + return EFalse; } diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xnuienginepluginif.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnuienginepluginif.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnuienginepluginif.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -173,11 +173,15 @@ node = &( aFocusedNode->Node() ); } - TRAP_IGNORE - ( - node->SetStateWithoutNotificationL( - XnPropertyNames::style::common::KFocus ); - ); + if ( node ) + { + TRAP_IGNORE( node->SetStateWithoutNotificationL( + XnPropertyNames::style::common::KFocus ) ); + } + else + { + TRAP_IGNORE( iUiEngine->SetFocusedNodeL( NULL ) ); + } } // ----------------------------------------------------------------------------- @@ -356,17 +360,6 @@ } // ----------------------------------------------------------------------------- -// TXnUiEnginePluginIf::EnablePartialTouchInput -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void TXnUiEnginePluginIf::EnablePartialTouchInput( - CXnNodePluginIf& aNode, TBool aEnable ) - { - iUiEngine->EnablePartialTouchInput(aNode.Node(), aEnable); - } - -// ----------------------------------------------------------------------------- // TXnUiEnginePluginIf::IsTextEditorActive // // ----------------------------------------------------------------------------- diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -557,7 +557,7 @@ // ----------------------------------------------------------------------------- // void CXnViewAdapter::ActivateContainerL( CXnViewData& aContainer, - TBool aEnterEditState, TUid aEffect ) + TBool aEnterEditState, TUid aEffect, TBool aUpdateBg ) { // Returns if the container remains the same and activation is not forced // Otherwise the old container is deactivated and the new is activated @@ -574,13 +574,15 @@ } const CXnViewData& active( iAppUiAdapter.ViewManager().ActiveViewData() ); - + + TBool started = EFalse; CXnEffectManager* mgr( iAppUiAdapter.EffectManager() ); - CleanupStack::PushL( TCleanupItem( CleanupEffect, mgr ) ); - TBool started( - mgr->BeginActivateViewEffect( active, aContainer, aEffect ) ); + if( aEffect != TUid::Null() ) + { + started = mgr->BeginActivateViewEffect( active, aContainer, aEffect ); + } DeactivateContainerL( EFalse ); @@ -634,14 +636,20 @@ adapter->MakeVisible( ETrue ); iAppUiAdapter.ViewManager().NotifyContainerChangedL( aContainer ); - - iBgManager->ChangeWallpaper( active, aContainer, !started ); + + if( aUpdateBg ) + { + iBgManager->ChangeWallpaper( active, aContainer, !started ); + } iAppUiAdapter.UiEngine().RenderUIL(); CleanupStack::PopAndDestroy(); // DisableRenderUiLC - - mgr->EndActivateViewEffect( active, aContainer, aEffect ); + + if( aEffect != TUid::Null() ) + { + mgr->EndActivateViewEffect( active, aContainer, aEffect ); + } CleanupStack::PopAndDestroy(); // cleanupitem @@ -679,6 +687,8 @@ // Deactivate container even though it hasn't changed to close all // popups and other windows ActivateContainerL( *viewData, aEnterEditState ); + + CloseAllPopupsL(); } } @@ -1023,6 +1033,8 @@ } CleanupStack::PopAndDestroy( &popups ); + + iEventDispatcher->SetTextEditorActive( NULL, EFalse ); } diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xnviewcontroladapter.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnviewcontroladapter.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewcontroladapter.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -23,9 +23,9 @@ #include "xnnodepluginif.h" #include "xnnode.h" -#include "xndomdocument.h" #include "xndomnode.h" #include "xnproperty.h" +#include "xnviewswitcher.h" #include "xnviewcontroladapter.h" @@ -73,7 +73,7 @@ // CXnViewControlAdapter* CXnViewControlAdapter::NewL( CXnNodePluginIf& aNode ) { - CXnViewControlAdapter* self = new( ELeave ) CXnViewControlAdapter( aNode ); + CXnViewControlAdapter* self = new( ELeave ) CXnViewControlAdapter(); CleanupStack::PushL( self ); self->ConstructL( aNode ); @@ -126,8 +126,8 @@ // C++ default constructor // ----------------------------------------------------------------------------- // -CXnViewControlAdapter::CXnViewControlAdapter( CXnNodePluginIf& aNode ) - : iNode( aNode ), iAppUi( static_cast< CXnAppUiAdapter& >( *iAvkonAppUi ) ) +CXnViewControlAdapter::CXnViewControlAdapter() : + iAppUi( static_cast< CXnAppUiAdapter& >( *iAvkonAppUi ) ) { } @@ -187,8 +187,12 @@ // void CXnViewControlAdapter::HandlePointerEventL( const TPointerEvent& aPointerEvent ) - { - if ( iForegroundStatus != EBackground ) + { + if ( iForegroundStatus != EBackground && + ( iAppUi.UiEngine().IsPartialInputActive() || // no swipe if partial input active + IsWidgetGestureDest() || // no swipe if widget handles it + iAppUi.ViewSwitcher() == NULL || // no swipe if VS not available + !iAppUi.ViewSwitcher()->ProcessPointerEventL( aPointerEvent ) ) ) // no swipe if event not handled by VS { iAppUi.UiEngine().DisableRenderUiLC(); diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xnviewdata.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnviewdata.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewdata.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -33,14 +33,11 @@ #include "ainativeuiplugins.h" #include "xnpanic.h" - #include "debug.h" // Constants _LIT8( KNs, "namespace" ); -// ============================ LOCAL FUNCTIONS ================================ - // ============================ MEMBER FUNCTIONS =============================== // ----------------------------------------------------------------------------- // CXnViewData::NewL() @@ -211,6 +208,11 @@ iLoadError = err; + if( !iLoadError ) + { + TRAP_IGNORE( iManager.NotifyViewLoadedL( *this ) ); + } + return iLoadError; } @@ -319,7 +321,11 @@ // CXnNode* CXnViewData::ViewNode() const { - return iNode->LayoutNode(); + if( iNode ) + { + return iNode->LayoutNode(); + } + return NULL; } // ----------------------------------------------------------------------------- diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -60,7 +60,6 @@ // Constants _LIT8( KEmptyWidgetUid, "0x2001f47f" ); -_LIT8( KTemplateViewUID, "0x20026f50" ); const TInt KPSCategoryUid( 0x200286E3 ); const TInt KPSCrashCountKey( 1 ); @@ -892,27 +891,10 @@ // Activates the next view // ----------------------------------------------------------------------------- // -void CXnViewManager::ActivateNextViewL( TInt /*aEffectId*/ ) +void CXnViewManager::ActivateNextViewL() { CXnViewData& next( NextViewData() ); - - if ( !next.Occupied() ) - { - TInt err( next.Load() ); - - if ( err ) - { - HandleErrorNotes( err ); - return; - } - } - - // Activate view - if ( next.Occupied() && !next.Active() ) - { - iAppUiAdapter.ViewAdapter().ActivateContainerL( - next, EFalse, KGfxContextActivateNextView ); - } + ActivateViewL( next, KGfxContextActivateNextView ); } // ----------------------------------------------------------------------------- @@ -920,13 +902,23 @@ // Activates the previous view // ----------------------------------------------------------------------------- // -void CXnViewManager::ActivatePreviousViewL( TInt /*aEffectId*/ ) +void CXnViewManager::ActivatePreviousViewL() { CXnViewData& prev( PreviousViewData() ); + ActivateViewL( prev, KGfxContextActivatePrevView ); + } - if ( !prev.Occupied() ) +// ----------------------------------------------------------------------------- +// CXnViewManager::ActivatePreviousViewL() +// Activates the previous view +// ----------------------------------------------------------------------------- +// +void CXnViewManager::ActivateViewL( CXnViewData& aViewData, TUid aEffect, + TBool aUpdateBg ) + { + if ( !aViewData.Occupied() ) { - TInt err( prev.Load() ); + TInt err( aViewData.Load() ); if ( err ) { @@ -936,10 +928,10 @@ } // Activate view - if ( prev.Occupied() && !prev.Active() ) + if ( aViewData.Occupied() && !aViewData.Active() ) { iAppUiAdapter.ViewAdapter().ActivateContainerL( - prev, EFalse, KGfxContextActivatePrevView ); + aViewData, EFalse, aEffect, aUpdateBg ); } } @@ -954,11 +946,14 @@ { return KErrGeneral; } - + + // If phone layout is mirrored new view needs to be added to left. Other right. + TInt mirror = AknLayoutUtils::LayoutMirrored() ? 0 : 1; + // Add new view (template view) to hsps CAddPluginResult* result = iHspsWrapper->AddPluginL( iRootData->ConfigurationId(), aInfo.Uid(), - ViewIndex() + 1 ); + ViewIndex() + mirror ); CleanupStack::PushL( result ); TInt retval( result->Status() ); @@ -987,7 +982,7 @@ TInt index( views.Find( &ActiveViewData() ) ); - views.InsertL( newView, index + 1 ); + views.InsertL( newView, index + mirror ); // Root data owns the new view now CleanupStack::Pop( newView ); @@ -1030,11 +1025,14 @@ return; } - + + // If phone layout is mirrored new view needs to be added to left. Other right. + TInt mirror = AknLayoutUtils::LayoutMirrored() ? 0 : 1; + // Add new view (template view) to hsps CAddPluginResult* result = iHspsWrapper->AddPluginL( - iRootData->ConfigurationId(), KTemplateViewUID, - ViewIndex() + 1 ); + iRootData->ConfigurationId(), iRootData->TemplateViewUid(), + ViewIndex() + mirror ); CleanupStack::PushL( result ); TInt status( result->Status() ); @@ -1070,16 +1068,16 @@ TInt index( views.Find( &ActiveViewData() ) ); - views.InsertL( newView, index + 1 ); + views.InsertL( newView, index + mirror ); // Root data owns the new view now CleanupStack::Pop( newView ); - // Activate view - iAppUiAdapter.ViewAdapter().ActivateContainerL( *newView, ETrue ); - // Inform observers about added view NotifyViewAdditionL( *newView ); + + // Activate view + iAppUiAdapter.ViewAdapter().ActivateContainerL( *newView, ETrue ); } else { @@ -1411,7 +1409,7 @@ UpdateCachesL(); // Schedule remaining views loading - iRootData->LoadRemainingViews(); + iRootData->LoadRemainingViewsL(); } HandleErrorNotes( err ); @@ -1485,7 +1483,7 @@ TRAP_IGNORE( bg.StoreWallpaperL() ); - self->NotifyContainerActivatedL( active ); + TRAP_IGNORE( self->NotifyContainerActivatedL( active ) ); return KErrNone; } @@ -1507,6 +1505,19 @@ } // ----------------------------------------------------------------------------- +// CXnViewManager::NotifyViewLoadedL() +// Notifies view is activated +// ----------------------------------------------------------------------------- +// +void CXnViewManager::NotifyViewLoadedL( const CXnViewData& aViewData ) + { + for ( TInt i = 0; i < iObservers.Count(); i++ ) + { + iObservers[i]->NotifyViewLoadedL( aViewData ); + } + } + +// ----------------------------------------------------------------------------- // CXnViewManager::NotifyViewDeactivatedL() // Notifies view is deactivated // ----------------------------------------------------------------------------- diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xnviewswitcher.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewswitcher.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,986 @@ +/* + * Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: Implementation for wrapper for a box + * + */ + +// System includes +#include +#include + +#include +#include + +#ifdef RD_TACTILE_FEEDBACK +#include +#endif // RD_TACTILE_FEEDBACK + +// User includes +#include "xnappuiadapter.h" +#include "xnuiengine.h" +#include "xnproperty.h" +#include "xnviewmanager.h" +#include "xnviewdata.h" +#include "xndomnode.h" +#include "xnnode.h" +#include "xnviewcontroladapter.h" +#include "xneffectmanager.h" +#include "xnrootdata.h" +#include "xnviewadapter.h" +#include "xnbackgroundmanager.h" + +#include "xnviewswitcher.h" + +// Constants +const TInt KDrawDelay( 25000 ); // 16100 = 62 fps +const TInt KDragTreshold( 30 ); +const TInt KMaxScrollSpeed( 150 ); +const TInt KMinScrollSpeed( 20 ); +const TInt KAnimationDuration( 500000 ); +const TInt KDragOffsetForBackground( 100 ); +const TInt KDragOffsetForPageSwitch( 50 ); + +enum TViewPosition + { + KCurrentView, KNextView, KPreviousView + }; + +// ============================= LOCAL FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +void HideAdapter( CXnControlAdapter* aAdapter ) + { + if( aAdapter ) + { + aAdapter->Window().SetOrdinalPosition( -1 ); + } + } + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +void ShowAdapter( CXnControlAdapter* aAdapter ) + { + if( aAdapter ) + { + aAdapter->Window().SetOrdinalPosition( 1 ); + } + } + +// ----------------------------------------------------------------------------- +// Changes window position +// ----------------------------------------------------------------------------- +// +void SetWindowPosition( CXnControlAdapter* aAdapter, const TPoint& aPos ) + { + if( aAdapter ) + { + aAdapter->Window().SetPosition( aPos ); + } + } + +// ----------------------------------------------------------------------------- +// Hide/Show control +// ----------------------------------------------------------------------------- +// +void SetVisible( CCoeControl* aControl, TBool aVisible ) + { + if( aControl ) + { + aControl->MakeVisible( aVisible ); + } + } + +// ----------------------------------------------------------------------------- +// ShowNodes +// ----------------------------------------------------------------------------- +// +void ShowNodesL( CXnNode& aNode, TBool aShow ) + { + CXnDomStringPool* sp( aNode.DomNode()->StringPool() ); + + CXnProperty* prop( NULL ); + if( aShow ) + { + prop = CXnProperty::NewL( + XnPropertyNames::style::common::KDisplay, + XnPropertyNames::style::common::display::KBlock, + CXnDomPropertyValue::EString, *sp ); + } + else + { + prop = CXnProperty::NewL( + XnPropertyNames::style::common::KDisplay, + XnPropertyNames::style::common::display::KNone, + CXnDomPropertyValue::EString, *sp ); + } + CleanupStack::PushL( prop ); + + aNode.SetPropertyWithoutNotificationL( prop ); + CleanupStack::Pop( prop ); + } + +// ----------------------------------------------------------------------------- +// IsNodeVisible +// ----------------------------------------------------------------------------- +// +TBool IsNodeVisibleL( CXnNode& aNode ) + { + CXnProperty* displayProp( aNode.DisplayL() ); + + if ( displayProp ) + { + const TDesC8& display( displayProp->StringValue() ); + + if ( display == XnPropertyNames::style::common::display::KBlock ) + { + return ETrue; + } + } + return EFalse; + } + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CXnViewSwitcher::NewL +// Symbian static 1st phase constructor +// ----------------------------------------------------------------------------- +// +CXnViewSwitcher* CXnViewSwitcher::NewL() + { + CXnViewSwitcher* self = new (ELeave) CXnViewSwitcher(); + + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + + return self; + } + +// ----------------------------------------------------------------------------- +// CXnViewSwitcher::ConstructL +// Symbian 2nd phase constructor can leave. +// ----------------------------------------------------------------------------- +// +void CXnViewSwitcher::ConstructL() + { + iFingerFollowSupported = IsFingerFollowSupportedL(); + iTimer = CPeriodic::NewL( CActive::EPriorityUserInput ); + iViewSwitchState = KViewSwitchIdle; + } + +// ----------------------------------------------------------------------------- +// CXnViewSwitcher::CXnViewSwitcher +// C++ default constructor +// ----------------------------------------------------------------------------- +// +CXnViewSwitcher::CXnViewSwitcher() : + iAppUi(static_cast (*iAvkonAppUi)) + { + } + +// ----------------------------------------------------------------------------- +// CXnViewSwitcher::~CXnViewSwitcher +// C++ destructor +// ----------------------------------------------------------------------------- +// +CXnViewSwitcher::~CXnViewSwitcher() + { + if (iTimer->IsActive()) + { + iTimer->Cancel(); + } + delete iTimer; + } + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +TBool CXnViewSwitcher::FingerFollowSupported() const + { + return iFingerFollowSupported; + } + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +TBool CXnViewSwitcher::ProcessPointerEventL(const TPointerEvent& aPointerEvent ) + { + TBool consumed(EFalse); + + if ( FingerFollowSupported() ) + { + TPoint parentPos = aPointerEvent.iParentPosition; + + switch (aPointerEvent.iType) + { + case TPointerEvent::EButton1Down: + { + if ( iViewSwitchState == KViewSwitchBegin || iViewSwitchState + == KViewSwitchIdle ) + { + if (iTimer->IsActive()) + { + iTimer->Cancel(); + } + if( SetupViewsL() ) + { + iViewSwitchState = KViewSwitchBegin; + iStartPosition = parentPos; + iScrollSpeed = KMaxScrollSpeed; + iTickAmount = 0; + iDirection = KCurrentView; + iScrollDistance = 0; + iScrollDirectionDistance = 0; + } + } + else if( iViewSwitchState == KViewSwitchDragOngoing ) + { + consumed = ETrue; + } + else if( iViewSwitchState == KViewSwitchScroll ) + { + consumed = ETrue; + + if( iActivateView == KCurrentView ) + { + if (iTimer->IsActive()) + { + iTimer->Cancel(); + } + + iViewSwitchState = KViewSwitchDragOngoing; + consumed = ETrue; + iViewStartPosition = iViewPosition; + iScrollDistance = 0; + iScrollDirectionDistance = 0; + iStartPosition = parentPos; + + iTimer->Start( 0, KDrawDelay, TCallBack( + TimerCallback, this ) ); + } + else if( iActivateView == KNextView ) + { + if( iCurrentView.iAdapter && iNextView.iAdapter && + iPreviousView.iAdapter ) + { + if (iTimer->IsActive()) + { + iTimer->Cancel(); + } + + iViewSwitchState = KViewSwitchDragOngoing; + iActivateView = KCurrentView; + + if( iPreviousView.iAdapter == iNextView.iAdapter ) + { + iPreviousView = iCurrentView; + iCurrentView = iNextView; + iNextView = iPreviousView; + } + else + { + iPreviousView = iCurrentView; + + iCurrentView = iNextView; + + iNextView.iReadyToDraw = EFalse; + CXnViewData* nextViewData( + ViewData( *iCurrentView.iViewData, KNextView ) ); + CXnNode* nextViewNode( nextViewData->ViewNode() ); + if( nextViewNode ) + { + iNextView.iAdapter = nextViewNode->Control(); + iNextView.iViewData = nextViewData; + iNextView.iBgDrawn = EFalse; + } + } + + iViewStartPosition = iCurrentView.iAdapter->Window().Position(); + iScrollDistance = 0; + iScrollDirectionDistance = 0; + iStartPosition = parentPos; + + iScrollSpeed = KMaxScrollSpeed; + iTickAmount = 0; + iTimer->Start( 0, KDrawDelay, TCallBack( + TimerCallback, this ) ); + } + consumed = ETrue; + } + else if( iActivateView == KPreviousView ) + { + if( iCurrentView.iAdapter && iNextView.iAdapter && + iPreviousView.iAdapter ) + { + if (iTimer->IsActive()) + { + iTimer->Cancel(); + } + + iViewSwitchState = KViewSwitchDragOngoing; + iActivateView = KCurrentView; + + if( iPreviousView.iAdapter == iNextView.iAdapter ) + { + iNextView = iCurrentView; + iCurrentView = iPreviousView; + iPreviousView = iNextView; + } + else + { + iNextView = iCurrentView; + + iCurrentView = iPreviousView; + + iPreviousView.iReadyToDraw = EFalse; + CXnViewData* prevViewData( + ViewData( *iCurrentView.iViewData, KPreviousView ) ); + CXnNode* prevViewNode( prevViewData->ViewNode() ); + if( prevViewNode ) + { + iPreviousView.iAdapter = prevViewNode->Control(); + iPreviousView.iViewData = prevViewData; + iPreviousView.iBgDrawn = EFalse; + } + } + + iViewStartPosition = iCurrentView.iAdapter->Window().Position(); + iScrollDistance = 0; + iScrollDirectionDistance = 0; + iStartPosition = parentPos; + + iScrollSpeed = KMaxScrollSpeed; + iTickAmount = 0; + iTimer->Start( 0, KDrawDelay, TCallBack( + TimerCallback, this ) ); + } + consumed = ETrue; + } + } + } + break; + case TPointerEvent::EDrag: + { + if( iViewSwitchState == KViewSwitchIdle ) + { + consumed = EFalse; + } + else if( iViewSwitchState == KViewSwitchBegin ) + { + TPoint delta = parentPos - iStartPosition; + + if( Abs(delta.iX) > KDragTreshold || Abs(delta.iY) > KDragTreshold ) + { +#ifdef RD_TACTILE_FEEDBACK + MTouchFeedback* feedback( MTouchFeedback::Instance() ); + + if ( feedback ) + { + feedback->InstantFeedback( ETouchFeedbackBasic ); + } +#endif + + iViewSwitchState = KViewSwitchDragOngoing; + iActivateView = KCurrentView; + iViewPosition.iY = iCurrentView.iAdapter->Position().iY; + iViewPosition.iX = 0; + iStartPosition = parentPos; + + StartViewDraggingL(); + + iTimer->Start( 0, KDrawDelay, TCallBack( + TimerCallback, this ) ); + } + consumed = ETrue; + } + else if( iViewSwitchState == KViewSwitchDragOngoing ) + { + iScrollDistance = parentPos.iX - iStartPosition.iX; + consumed = ETrue; + } + else + { + consumed = EFalse; + } + } + break; + case TPointerEvent::EButton1Up: + { + if( iViewSwitchState == KViewSwitchBegin ) + { + iViewSwitchState = KViewSwitchIdle; + } + else if( iViewSwitchState == KViewSwitchDragOngoing ) + { + if (iTimer->IsActive()) + { + iTimer->Cancel(); + } + +#ifdef RD_TACTILE_FEEDBACK +/* + MTouchFeedback* feedback( MTouchFeedback::Instance() ); + + if ( feedback ) + { + feedback->InstantFeedback( ETouchFeedbackBasic ); + } +*/ +#endif + + consumed = ETrue; + + StartViewScrolling(); + iViewSwitchState = KViewSwitchScroll; + } + else if( iViewSwitchState == KViewSwitchScroll ) + { + consumed = ETrue; + } + } + break; + default: + break; + } + } + + return consumed; + } + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +void CXnViewSwitcher::TouchGesture( TAknTouchGestureFwType& /*aTouchGesture*/ ) + { + } + +// ----------------------------------------------------------------------------- +// CXnViewSwitcher::SizeChanged +// ----------------------------------------------------------------------------- +// +void CXnViewSwitcher::SizeChanged( TRect aRect ) + { + iRect = aRect; + } + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +TBool CXnViewSwitcher::SetupViewsL() + { + TBool ret = EFalse; + + CXnViewManager& wManager = iAppUi.ViewManager(); + iCurrentView.iViewData = &wManager.ActiveViewData(); + iCurrentView.iAdapter = iCurrentView.iViewData->ViewNode()->Control(); + iCurrentView.iReadyToDraw = ETrue; + iCurrentView.iBgDrawn = ETrue; + + iViewStartPosition = TPoint( 0, iCurrentView.iAdapter->Window().Position().iY ); + + if ( wManager.ViewAmount() > 1 ) + { + ret = ETrue; + + CXnNode* nextViewNode( wManager.NextViewData().ViewNode() ); + if( nextViewNode ) + { + iNextView.iAdapter = nextViewNode->Control(); + iNextView.iViewData = &wManager.NextViewData(); + } + + CXnNode* prevViewNode( wManager.PreviousViewData().ViewNode() ); + if( prevViewNode && prevViewNode == nextViewNode ) + { + // Only 2 views in Homesceern -> previous = next + iPreviousView = iNextView; + } + else if( prevViewNode ) + { + iPreviousView.iAdapter = prevViewNode->Control(); + iPreviousView.iViewData = &wManager.PreviousViewData(); + } + } + return ret; + } + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +void CXnViewSwitcher::PrepareViewL( CXnViewSwitcher::TViewInformation& aView ) + { + if( !aView.iAdapter || !aView.iViewData ) + { + return; + } + + CXnControlAdapter& adapter = *aView.iAdapter; + RWindow& win( adapter.Window() ); + win.SetOrdinalPosition( -1 ); + adapter.MakeVisible( ETrue ); + + CXnNode* viewNode( aView.iViewData->ViewNode() ); + TBool nodesVisible( IsNodeVisibleL( *viewNode ) ); + if( !nodesVisible ) + { + // Set visible temporarily + ShowNodesL( *viewNode, ETrue ); + } + + iAppUi.ViewAdapter().EnterEditStateL( *aView.iViewData, EFalse ); + + viewNode->UiEngine()->RenderFromNodeL( *viewNode ); + aView.iReadyToDraw = ETrue; + } + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +void CXnViewSwitcher::StartViewDraggingL() + { + // Remove focused node, in order to prevent activate triggers + CXnNode* currentViewNode = + iAppUi.ViewManager().ActiveViewData(). Node()->LayoutNode(); + CXnUiEngine* engine(currentViewNode->UiEngine()); + + CXnNode* focusedNode = engine->FocusedNode(); + if (focusedNode) + { + focusedNode->UnsetStateL(XnPropertyNames::style::common::KPressedDown); + focusedNode->UnsetStateL(XnPropertyNames::style::common::KFocus); + } + + // Send button up to prevent long tapping + TPointerEvent pointerEvent; + pointerEvent.iType = TPointerEvent::EButton1Up; + if ( iCurrentView.iAdapter ) + { + iCurrentView.iAdapter->CXnControlAdapter::HandlePointerEventL( + pointerEvent); + } + } + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +void CXnViewSwitcher::StartViewScrolling() + { + TInt screenWidth = iCurrentView.iAdapter->Window().Size().iWidth; + + UpdateViewToBeActivated( KDragOffsetForPageSwitch ); + + switch (iActivateView) + { + case KPreviousView: + { + iScrollDistance = screenWidth - iViewPosition.iX; + } + break; + case KNextView: + { + iScrollDistance = -screenWidth - iViewPosition.iX; + } + break; + default: // KCurrentView + { + iScrollDistance = -iViewPosition.iX; + } + break; + } + + TInt minSpeed = Abs( iScrollDistance / ( KAnimationDuration / KDrawDelay ) ); + iScrollSpeed = Abs( iScrollSpeed ); + if( iScrollSpeed < minSpeed ) + { + iScrollSpeed = minSpeed; + } + if( iScrollSpeed < KMinScrollSpeed ) + { + iScrollSpeed = KMinScrollSpeed; + } + if (iTimer->IsActive()) + { + iTimer->Cancel(); + } + + iTimer->Start(KDrawDelay, KDrawDelay, TCallBack( + TimerCallback, this)); + } + + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +void CXnViewSwitcher::ViewSwitchEndedL() + { + iViewSwitchState = KViewSwitchIdle; + + if (iTimer->IsActive()) + { + iTimer->Cancel(); + } + + iViewPosition.iX = 0; + + if ( iCurrentView.iAdapter ) + { + CXnViewManager& wManager( iAppUi.ViewManager() ); + CXnViewData* activeViewData( &wManager.ActiveViewData() ); + + switch( iActivateView ) + { + case KCurrentView: + SetVisible( iNextView.iAdapter, EFalse ); + SetVisible( iPreviousView.iAdapter, EFalse ); + + if( iCurrentView.iViewData && activeViewData != iCurrentView.iViewData ) + { + wManager.ActivateViewL( *iCurrentView.iViewData, TUid::Null(), EFalse ); + } + break; + case KPreviousView: + if ( iPreviousView.iAdapter ) + { + SetVisible( iCurrentView.iAdapter, EFalse ); + if( iPreviousView.iAdapter != iNextView.iAdapter ) + { + SetVisible( iNextView.iAdapter, EFalse ); + } + + CXnViewData* prevViewData( ViewData( *iCurrentView.iViewData, KPreviousView ) ); + if( prevViewData && activeViewData != prevViewData ) + { + wManager.ActivateViewL( *prevViewData, TUid::Null(), EFalse ); + } + } + break; + case KNextView: + if ( iNextView.iAdapter ) + { + SetVisible( iCurrentView.iAdapter, EFalse ); + if( iPreviousView.iAdapter != iNextView.iAdapter ) + { + SetVisible( iPreviousView.iAdapter, EFalse ); + } + + CXnViewData* nextViewData( ViewData( *iCurrentView.iViewData, KNextView ) ); + if( nextViewData && activeViewData != nextViewData ) + { + wManager.ActivateViewL( *nextViewData, TUid::Null(), EFalse ); + } + } + break; + } + + ClearViews(); + } + } + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +void CXnViewSwitcher::Scroll() + { + TInt scrollStep = iScrollDistance / 1.5; + + if( Abs( scrollStep ) > Abs( iScrollSpeed ) ) + { + scrollStep = ( scrollStep > 0 ) ? iScrollSpeed : -iScrollSpeed; + } + + iViewPosition.iX += scrollStep; + iScrollDistance -= scrollStep; + } + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +void CXnViewSwitcher::DoScroll() + { + SetWindowPosition( iCurrentView.iAdapter, iViewPosition ); + + if( iViewPosition.iX < 0 && iNextView.iAdapter ) + { + // next view shown + if( !iNextView.iReadyToDraw ) + { + TRAP_IGNORE( PrepareViewL( iNextView ) ); + if( iPreviousView.iAdapter == iNextView.iAdapter ) + { + iPreviousView.iReadyToDraw = ETrue; + } + } + + ShowAdapter( iNextView.iAdapter ); + if( iPreviousView.iAdapter != iNextView.iAdapter ) + { + HideAdapter( iPreviousView.iAdapter ); + } + + TPoint pos( TPoint( iViewPosition.iX + iRect.Width(), iViewPosition.iY ) ); + SetWindowPosition( iNextView.iAdapter, pos ); + } + + else if( iViewPosition.iX > 0 && iPreviousView.iAdapter ) + { + // previous view shown + if( !iPreviousView.iReadyToDraw ) + { + TRAP_IGNORE( PrepareViewL( iPreviousView ) ); + } + + ShowAdapter( iPreviousView.iAdapter ); + if( iPreviousView.iAdapter != iNextView.iAdapter ) + { + HideAdapter( iNextView.iAdapter ); + } + TPoint pos( TPoint( iViewPosition.iX - iRect.Width(), iViewPosition.iY ) ); + SetWindowPosition( iPreviousView.iAdapter, pos ); + } + + else + { + HideAdapter( iPreviousView.iAdapter ); + HideAdapter( iNextView.iAdapter ); + } + } + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +TInt CXnViewSwitcher::TimerCallback(TAny *aPtr) + { + CXnViewSwitcher* self = reinterpret_cast (aPtr); + + if( self->iViewSwitchState == KViewSwitchDragOngoing ) + { + TInt prevViewPos( self->iViewPosition.iX ); + self->iViewPosition.iX = self->iViewStartPosition.iX + self->iScrollDistance; + self->DoScroll(); + + self->UpdateViewToBeActivated( KDragOffsetForBackground ); + + // Hack for informing NGA to draw. + self->iAppUi.ViewAdapter().BgManager().DrawNow(TRect(0,0,1,1)); + + // Scroll speed is average drag delta between timer callbacks. + self->iTickAmount++; + + TInt scrollDistance = self->iViewPosition.iX - prevViewPos; + + if( ( scrollDistance < 0 && self->iScrollDirectionDistance > 0 ) || + ( scrollDistance > 0 && self->iScrollDirectionDistance < 0 ) ) + { + // Scroll direction has been changed + self->iScrollDirectionDistance = scrollDistance; + self->iScrollSpeed = scrollDistance; + self->iTickAmount = 1; + } + else + { + self->iScrollDirectionDistance += scrollDistance; + self->iScrollSpeed = self->iScrollDistance / self->iTickAmount; + } + + if( scrollDistance < 0 ) + { + self->iDirection = KNextView; + } + else if( scrollDistance > 0 ) + { + self->iDirection = KPreviousView; + } + + return 0; + } + + if ( Abs( self->iScrollDistance ) <= 2 ) + { + TRAP_IGNORE( self->ViewSwitchEndedL() ); + } + else + { + self->Scroll(); + self->DoScroll(); + + // Hack for inforing NGA to draw. + self->iAppUi.ViewAdapter().BgManager().DrawNow(TRect(0,0,1,1)); + } + return 0; + } + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +TBool CXnViewSwitcher::IsFingerFollowSupportedL() const + { + CRepository* repository = + CRepository::NewL(TUid::Uid(KCRUidActiveIdleLV)); + TBool value(EFalse); + TInt err(repository->Get(KAIFingerFollowSupport, value)); + delete repository; + + return value && (KErrNone == err); + } + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +CXnViewData* CXnViewSwitcher::ViewData( CXnViewData& aCurrentViewData, + TInt aView ) + { + CXnRootData& rootData = iAppUi.ViewManager().ActiveAppData(); + RPointerArray& rootDataArr = rootData.PluginData(); + + CXnViewData* ret( NULL ); + + TInt viewAmount( rootDataArr.Count() ); + for( TInt i = 0; i < viewAmount; i++ ) + { + CXnViewData* viewData = static_cast( rootDataArr[i] ); + if( &aCurrentViewData == viewData ) + { + if( aView == KNextView ) + { + if( i < viewAmount - 1 ) + { + ret = static_cast( rootDataArr[i + 1] ); + } + else + { + ret = static_cast( rootDataArr[0] ); + } + break; + } + else if( aView == KPreviousView ) + { + if( i == 0 ) + { + ret = static_cast( rootDataArr[viewAmount - 1] ); + } + else + { + ret = static_cast( rootDataArr[i - 1] ); + } + break; + } + } + } + + return ret; + } + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +void CXnViewSwitcher::ClearViews() + { + TPoint p( 0, iCurrentView.iAdapter->Window().Position().iY ); + SetWindowPosition( iCurrentView.iAdapter, p ); + SetWindowPosition( iPreviousView.iAdapter, p ); + SetWindowPosition( iNextView.iAdapter, p ); + ShowAdapter( iPreviousView.iAdapter ); + ShowAdapter( iNextView.iAdapter ); + ShowAdapter( iCurrentView.iAdapter ); + iCurrentView.iAdapter = NULL; + iCurrentView.iViewData = NULL; + iCurrentView.iReadyToDraw = EFalse; + iCurrentView.iBgDrawn = EFalse; + iNextView.iAdapter = NULL; + iNextView.iViewData = NULL; + iNextView.iReadyToDraw = EFalse; + iNextView.iBgDrawn = EFalse; + iPreviousView.iAdapter = NULL; + iPreviousView.iViewData = NULL; + iPreviousView.iReadyToDraw = EFalse; + iPreviousView.iBgDrawn = EFalse; + } + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +void CXnViewSwitcher::UpdateViewToBeActivated( TInt aOffset ) + { + if ( iViewPosition.iX > aOffset && iDirection == KPreviousView && + iScrollDirectionDistance > aOffset / 2) + { + if( iActivateView != KPreviousView && + iPreviousView.iViewData && iCurrentView.iViewData ) + { + iActivateView = KPreviousView; + if( !iPreviousView.iBgDrawn ) + { + ChangeBackground( *iCurrentView.iViewData, + *iPreviousView.iViewData ); + iPreviousView.iBgDrawn = ETrue; + iNextView.iBgDrawn = EFalse; + iCurrentView.iBgDrawn = EFalse; + } + } + } + else if ( iViewPosition.iX < -aOffset && iDirection == KNextView && + iScrollDirectionDistance < -aOffset / 2 ) + { + if( iActivateView != KNextView && + iNextView.iViewData && iCurrentView.iViewData ) + { + iActivateView = KNextView; + if( !iNextView.iBgDrawn ) + { + ChangeBackground( *iCurrentView.iViewData, + *iNextView.iViewData ); + iPreviousView.iBgDrawn = EFalse; + iNextView.iBgDrawn = ETrue; + iCurrentView.iBgDrawn = EFalse; + } + } + } + else if( iActivateView != KCurrentView && + iPreviousView.iViewData && iNextView.iViewData && iCurrentView.iViewData ) + { + if( Abs( iScrollDirectionDistance ) > aOffset / 2 ) + { + iActivateView = KCurrentView; + if( !iCurrentView.iBgDrawn ) + { + ChangeBackground( ( iPreviousView.iBgDrawn ) ? *iPreviousView.iViewData : + *iNextView.iViewData, *iCurrentView.iViewData ); + iPreviousView.iBgDrawn = EFalse; + iNextView.iBgDrawn = EFalse; + iCurrentView.iBgDrawn = ETrue; + } + } + } + } + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// +void CXnViewSwitcher::ChangeBackground( CXnViewData& aCurrent, CXnViewData& aNext ) + { + CXnBackgroundManager& bg( iAppUi.ViewAdapter().BgManager() ); + + GfxTransEffect::Begin( &bg, KGfxControlActionBgImgToImgAppear ); + + bg.ChangeWallpaper( aCurrent, aNext, EFalse ); + + GfxTransEffect::SetDemarcation( &bg, bg.Position() ); + GfxTransEffect::End( &bg ); + } + +// End of file diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xnwallpaperview.rss --- a/idlehomescreen/xmluirendering/uiengine/src/xnwallpaperview.rss Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnwallpaperview.rss Fri Sep 17 15:37:16 2010 +0100 @@ -66,6 +66,16 @@ } // ---------------------------------------------------- +// r_qtn_hs_wallpaper_out_of_ram +// +// ---------------------------------------------------- +// +RESOURCE TBUF r_qtn_hs_wallpaper_out_of_ram + { + buf = qtn_memlo_ram_out_of_mem; + } + +// ---------------------------------------------------- // r_qtn_hs_drm_protected_image_note // // ---------------------------------------------------- diff -r 20d75ec6647e -r 9f918e984081 idlehomescreen/xmluirendering/uiengine/src/xnwidgetextensionadapter.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnwidgetextensionadapter.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnwidgetextensionadapter.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -98,12 +98,12 @@ // void CXnWidgetExtensionAdapter::HandleScreenDeviceChangedL() { - if( IsVisible() ) + if( iPopup ) { - CCoeControl::MakeVisible( EFalse ); + HidePopupL(); } - CXnControlAdapter::HandleScreenDeviceChangedL(); - + + CXnControlAdapter::HandleScreenDeviceChangedL(); } // ----------------------------------------------------------------------------- @@ -178,7 +178,7 @@ } CXnPluginData* plugin( - iAppUiAdapter->ViewManager().ActiveViewData().Plugin( &iNode.Node() ) ); + iAppUiAdapter->ViewManager().ActiveViewData().Plugin( &iNode.Node() ) ); if ( !plugin ) { @@ -186,6 +186,7 @@ } SetPointerCapture( aVisible ); + Window().SetPointerGrab( aVisible ); plugin->SetIsDisplayingPopup( aVisible, &iNode.Node() ); @@ -231,6 +232,11 @@ effectStarted = ETrue; } + if ( aVisible && OwnsWindow() ) + { + Window().SetOrdinalPosition( 0 ); + } + CCoeControl::MakeVisible( aVisible ); if ( effectStarted ) @@ -247,8 +253,7 @@ // void CXnWidgetExtensionAdapter::HandlePointerEventL( const TPointerEvent& aPointerEvent ) - { - + { // in case of popup, we have to make sure that // it will be closed after tapping outside of the // area of itself and its parent diff -r 20d75ec6647e -r 9f918e984081 menufw/hierarchynavigator/hnengine/src/hnengine.cpp --- a/menufw/hierarchynavigator/hnengine/src/hnengine.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/hierarchynavigator/hnengine/src/hnengine.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -192,7 +192,7 @@ if( !( aSuiteName.Compare( KRoot8 ) ) ) { CLiwGenericParamList* uriParams = - UriQueryToLiwListLC( aUriQuery, aUriFragment, aSuiteName ); + UriQueryToLiwListLC( aUriQuery, aUriFragment, aSuiteName ); CLiwGenericParamList* params = CLiwGenericParamList::NewLC(); params->AppendL( iMetaDataModel->GetSuiteParameters( 0 ) ); params->AppendL( *uriParams ); @@ -205,7 +205,7 @@ else { CLiwGenericParamList* params = - UriQueryToLiwListLC( aUriQuery, aUriFragment, aSuiteName ); + UriQueryToLiwListLC( aUriQuery, aUriFragment, aSuiteName ); HBufC* suiteName = HnConvUtils::Str8ToStrLC( aSuiteName ); params->AppendL( TLiwGenericParam( KNewSuiteParamNameEn, @@ -267,27 +267,27 @@ // --------------------------------------------------------------------------- // EXPORT_C void CHnEngine::LoadSuitesFromUriL( const TDesC8& aUri ) - { - DEBUG(("_MM_:CHnEngine::LoadSuitesFromUriL IN")); - DEBUG8(("_MM_:\tURI: %S",&aUri)); + { + DEBUG(("_MM_:CHnEngine::LoadSuitesFromUriL IN")); + DEBUG8(("_MM_:\tURI: %S",&aUri)); - TBool consumed(EFalse); + TBool consumed(EFalse); if ( aUri.Find( KSetFocusWithPref ) != KErrNotFound ) - { - LoadFromCrL( aUri ); - consumed = ETrue; - } + { + LoadFromCrL( aUri ); + consumed = ETrue; + } if ( !consumed ) - { - consumed = HandleActionL( aUri ); - } + { + consumed = HandleActionL( aUri ); + } if ( !consumed ) - { - LoadSuitesL( aUri ); - } + { + LoadSuitesL( aUri ); + } DEBUG(("_MM_:CHnEngine::LoadSuitesFromUriL OUT")); } @@ -353,19 +353,19 @@ ret = HandleSetFocusEventL( aParams ); } else if (aEventName == KAppGainForeground ) - { - //force matrix gain foreground + { + //force matrix gain foreground DEBUG(("_MM_:CHnEngine::HandleModelEventL EForegroundGain")); iControllerInterface.NotifyUiRefreshL( EForegroundGain ); ret = KErrNone; - } + } else if (aEventName == KAppGainBackground ) - { - //force matrix gain background + { + //force matrix gain background DEBUG(("_MM_:CHnEngine::HandleModelEventL EBackgroundGain")); iControllerInterface.NotifyUiRefreshL( EBackgroundGain ); ret = KErrNone; - } + } return ret; } @@ -602,41 +602,41 @@ TInt posSuite( 0 ); TInt posItem( 0 ); - TInt64 suiteCustomId( KErrNotFound ); - TInt64 itemCustomId( KErrNotFound ); + TInt64 suiteCustomId( KErrNotFound ); + TInt64 itemCustomId( KErrNotFound ); - // Get suite's and item's custom ids. - const TLiwGenericParam* paramSuiteId = aParams.FindFirst( posSuite, KSuiteCustomId8 ); - const TLiwGenericParam* paramItemId = aParams.FindFirst( posItem, KItemCustomId8 ); + // Get suite's and item's custom ids. + const TLiwGenericParam* paramSuiteId = aParams.FindFirst( posSuite, KSuiteCustomId8 ); + const TLiwGenericParam* paramItemId = aParams.FindFirst( posItem, KItemCustomId8 ); - if ( posSuite >= 0 && posItem >= 0 ) - { - suiteCustomId = paramSuiteId->Value().AsTInt64(); - itemCustomId = paramItemId->Value().AsTInt64(); + if ( posSuite >= 0 && posItem >= 0 ) + { + suiteCustomId = paramSuiteId->Value().AsTInt64(); + itemCustomId = paramItemId->Value().AsTInt64(); - // Get matching suite. - CHnSuiteModel* suiteModel = iSuiteContainer->GetMatchingSuiteModel( suiteCustomId ); + // Get matching suite. + CHnSuiteModel* suiteModel = iSuiteContainer->GetMatchingSuiteModel( suiteCustomId ); - if ( suiteModel ) - { - // If suite is not null, then find matching item model. - TInt index( KErrNotFound ); - CHnItemModel* itemModel = suiteModel->GetMatchingItemModelL( itemCustomId, index ); + if ( suiteModel ) + { + // If suite is not null, then find matching item model. + TInt index( KErrNotFound ); + CHnItemModel* itemModel = suiteModel->GetMatchingItemModelL( itemCustomId, index ); - if ( itemModel ) - { - // If itemModel is not null then set highlight and set highligh - // on matching item. - suiteModel->SetSuiteHighlightL( index ); - iControllerInterface.HandleSuiteEventL( ESuiteHighlightChanged, suiteModel ); - } - else - { - suiteModel->QueueFocus( itemCustomId ); - } - } - } + if ( itemModel ) + { + // If itemModel is not null then set highlight and set highligh + // on matching item. + suiteModel->SetSuiteHighlightL( index ); + iControllerInterface.HandleSuiteEventL( ESuiteHighlightChanged, suiteModel ); + } + else + { + suiteModel->QueueFocus( itemCustomId ); + } + } + } DEBUG(("_MM_:CHnEngine::HandleSetFocusEventL OUT")); return KErrNone; @@ -895,11 +895,40 @@ { TInt length = tmpSource.Find( aSeparator ); + if( aSeparator == HnLogicalRelations::KParamUid8 + && length != KErrNotFound ) + { + TInt ampPos( KErrNotFound ); + TInt eqPos( KErrNotFound ); + do + { + ampPos = tmpSource.Mid( + length + HnLogicalRelations::KParamUid8().Length() ). + Find( HnLogicalRelations::KLogicalAnd8 ); + if( ampPos >= 0 ) + { + length += (ampPos + HnLogicalRelations::KParamUid8().Length()); + ampPos = 0; + } + else if( (length + HnLogicalRelations::KParamUid8().Length()) + == tmpSource.Length()) + { + length = KErrNotFound; + } + }while( !ampPos ); + } + if ( length >= 0 ) { token.Set( tmpSource.Mid( 0, length ) ); tokens.AppendL( token.AllocL() ); tmpSource.Set( tmpSource.Mid( length + 1 ) ); + if( aSeparator == HnLogicalRelations::KLogicalEqual8 ) + { + token.Set( tmpSource ); + tokens.AppendL( token.AllocL() ); + break; + } } else { @@ -993,16 +1022,16 @@ // --------------------------------------------------------------------------- // void CHnEngine::LoadFromCrL( const TDesC8& aUri ) - { - HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() ); - uriBuf->Des().Copy( aUri ); + { + HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() ); + uriBuf->Des().Copy( aUri ); - TUriParser8 parser; - parser.Parse( *uriBuf ); - User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound ); + TUriParser8 parser; + parser.Parse( *uriBuf ); + User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound ); - const TDesC8& query = parser.Extract( EUriQuery ); - RPointerArray< HBufC8 > params = SplitL( query, HnLogicalRelations::KLogicalAnd8); + const TDesC8& query = parser.Extract( EUriQuery ); + RPointerArray< HBufC8 > params = SplitL( query, HnLogicalRelations::KParamUid8); TBuf8 item; @@ -1020,34 +1049,34 @@ appgrname.Append( *paramValue[1] ); } - //get current time - TTime currentTime; - currentTime.HomeTime(); - TDateTime date(currentTime.DateTime()); - item.Format(KCRepTimeFormat, &appgrname , date.Year(), date.Month(), - date.Day(), date.Hour(), date.Minute(), date.Second(), date.MicroSecond()); - } + //get current time + TTime currentTime; + currentTime.HomeTime(); + TDateTime date(currentTime.DateTime()); + item.Format(KCRepTimeFormat, &appgrname , date.Year(), date.Month(), + date.Day(), date.Hour(), date.Minute(), date.Second(), date.MicroSecond()); + } else if ( !paramValue[0]->Compare( KKeyTypeUid ) ) - { - item.Append( KComma8 ); + { + item.Append( KComma8 ); if( paramValue[1]->Length()<=KUidStringLength ) { item.Append( *paramValue[1] ); } - } + } CleanupStack::PopAndDestroy( ¶mValue ); } TBuf item1; item1.Copy(item); - CRepository *cenRep = CRepository::NewLC( KCRUidMenu ); - cenRep->Set(KMenuShowFolder, item1); - CleanupStack::PopAndDestroy( cenRep ); + CRepository *cenRep = CRepository::NewLC( KCRUidMenu ); + cenRep->Set(KMenuShowFolder, item1); + CleanupStack::PopAndDestroy( cenRep ); params.ResetAndDestroy(); CleanupStack::PopAndDestroy( uriBuf ); - } + } // --------------------------------------------------------------------------- // // --------------------------------------------------------------------------- @@ -1081,96 +1110,96 @@ // --------------------------------------------------------------------------- // TBool CHnEngine::HandleActionL( const TDesC8& aUri ) - { - TBool exitActionConsumed(EFalse); + { + TBool exitActionConsumed(EFalse); - HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() ); - uriBuf->Des().Copy( aUri ); + HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() ); + uriBuf->Des().Copy( aUri ); - TUriParser8 parser; + TUriParser8 parser; parser.Parse( *uriBuf ); User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound ); const TDesC8& host8 = parser.Extract( EUriHost ); const TDesC8& query = parser.Extract( EUriQuery ); - RBuf action; + RBuf action; CleanupClosePushL( action ); CLiwGenericParamList* paramsUri = UriQueryToLiwListLC( query, KNullDesC8, KNullDesC8 ); HnLiwUtils::GetStringL( *paramsUri, KActionParams, action ); if ( !action.Compare( KActionExit ) ) - { - RBuf host; - host.CreateL( host8.Length() ); - CleanupClosePushL( host ); - host.Copy(host8); - CHnSuiteModel* suiteModel = iSuiteContainer->GetSuiteModel( host ); - TBool exitHideHostNotFound( ETrue ); - if( suiteModel && suiteModel->ExitMode() == EExitModeHide ) - { - exitHideHostNotFound = EFalse; - } + { + RBuf host; + host.CreateL( host8.Length() ); + CleanupClosePushL( host ); + host.Copy(host8); + CHnSuiteModel* suiteModel = iSuiteContainer->GetSuiteModel( host ); + TBool exitHideHostNotFound( ETrue ); + if( suiteModel && suiteModel->ExitMode() == EExitModeHide ) + { + exitHideHostNotFound = EFalse; + } - if ( exitHideHostNotFound ) - { - //send to foreground - CLiwGenericParamList* pl = CLiwGenericParamList::NewL(); - CleanupStack::PushL( pl ); - HandleModelEventL( KAppGainForeground, *pl ); - CleanupStack::PopAndDestroy( pl ); - } - else - { - //send to background - CLiwGenericParamList* pl = CLiwGenericParamList::NewL(); - CleanupStack::PushL( pl ); - HandleModelEventL( KAppGainBackground, *pl ); - CleanupStack::PopAndDestroy( pl ); - } + if ( exitHideHostNotFound ) + { + //send to foreground + CLiwGenericParamList* pl = CLiwGenericParamList::NewL(); + CleanupStack::PushL( pl ); + HandleModelEventL( KAppGainForeground, *pl ); + CleanupStack::PopAndDestroy( pl ); + } + else + { + //send to background + CLiwGenericParamList* pl = CLiwGenericParamList::NewL(); + CleanupStack::PushL( pl ); + HandleModelEventL( KAppGainBackground, *pl ); + CleanupStack::PopAndDestroy( pl ); + } - if ( exitHideHostNotFound && iSuiteContainer->GetLastSuiteModel() == suiteModel ) - { + if ( exitHideHostNotFound && iSuiteContainer->GetLastSuiteModel() == suiteModel ) + { HandleBackEventL( host, 1 ); - } - else - { - //reset to root + } + else + { + //reset to root CLiwGenericParamList* params = CLiwGenericParamList::NewLC(); params->AppendL( iMetaDataModel->GetSuiteParameters( 0 ) ); - ResetModelsL(); + ResetModelsL(); InitializeL( *params ); CleanupStack::PopAndDestroy( params ); - } + } - CleanupStack::PopAndDestroy( &host ); - exitActionConsumed = ETrue; - } + CleanupStack::PopAndDestroy( &host ); + exitActionConsumed = ETrue; + } CleanupStack::PopAndDestroy( paramsUri ); CleanupStack::PopAndDestroy( &action ); CleanupStack::PopAndDestroy( uriBuf ); return exitActionConsumed; - } + } // --------------------------------------------------------------------------- // // --------------------------------------------------------------------------- // void CHnEngine::LoadSuitesL( const TDesC8& aUri ) - { - TBool sendToForeground(EFalse); - HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() ); - uriBuf->Des().Copy( aUri ); + { + TBool sendToForeground(EFalse); + HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() ); + uriBuf->Des().Copy( aUri ); - TUriParser8 parser; - parser.Parse( *uriBuf ); - User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound ); + TUriParser8 parser; + parser.Parse( *uriBuf ); + User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound ); - CDesC8ArrayFlat* suiteNameArray = new( ELeave ) CDesC8ArrayFlat( KDefaultGranularity ) ; - CleanupStack::PushL( suiteNameArray ); + CDesC8ArrayFlat* suiteNameArray = new( ELeave ) CDesC8ArrayFlat( KDefaultGranularity ) ; + CleanupStack::PushL( suiteNameArray ); - const TDesC8& host = parser.Extract( EUriHost ); + const TDesC8& host = parser.Extract( EUriHost ); RBuf8 host8; CleanupClosePushL( host8 ); if (host.Compare( KNullDesC8 )) @@ -1181,19 +1210,19 @@ DEBUG8(( "_MM_:\tURI host part: %S", &host8 )); } - const TDesC8& path = parser.Extract( EUriPath ); - if (path.Compare( KNullDesC8 )) - { - HBufC8* path8 = HBufC8::NewLC( path.Length() ); - path8->Des().Copy( path ); - path8->Des().LowerCase(); - ParseSuiteUriPathL( *path8, *suiteNameArray ); - CleanupStack::PopAndDestroy( path8 ); - } + const TDesC8& path = parser.Extract( EUriPath ); + if (path.Compare( KNullDesC8 )) + { + HBufC8* path8 = HBufC8::NewLC( path.Length() ); + path8->Des().Copy( path ); + path8->Des().LowerCase(); + ParseSuiteUriPathL( *path8, *suiteNameArray ); + CleanupStack::PopAndDestroy( path8 ); + } - TBool suiteExists( EFalse ); - iMetaDataModel->IgnoreEvaluations( ETrue ); - iMetaDataModel->QueueForeground( CHnMdModel::EWhenAnySuiteIsEvaluated ); + TBool suiteExists( EFalse ); + iMetaDataModel->IgnoreEvaluations( ETrue ); + iMetaDataModel->QueueForeground( CHnMdModel::EWhenAnySuiteIsEvaluated ); if( host8.Length() == 0 || ( host8.Length() > 0 && !iMetaDataModel->SuiteModelExistsL( host8 ) ) ) @@ -1202,101 +1231,101 @@ suiteNameArray->AppendL( KRoot8 ); } - for( TInt i = 0; i < suiteNameArray->Count(); ++i ) - { - suiteExists = iMetaDataModel->SuiteModelExistsL( - ( *suiteNameArray )[i] ); - TBool nextExists = i < suiteNameArray->Count() - 1 && - iMetaDataModel->SuiteModelExistsL( ( *suiteNameArray )[i + 1] ); - TBool isLast = ( i == ( suiteNameArray->Count() - 1 ) ); + for( TInt i = 0; i < suiteNameArray->Count(); ++i ) + { + suiteExists = iMetaDataModel->SuiteModelExistsL( + ( *suiteNameArray )[i] ); + TBool nextExists = i < suiteNameArray->Count() - 1 && + iMetaDataModel->SuiteModelExistsL( ( *suiteNameArray )[i + 1] ); + TBool isLast = ( i == ( suiteNameArray->Count() - 1 ) ); - TBool turnOnEvaluation = ( suiteExists && ( !nextExists || isLast ) ); - if( turnOnEvaluation || !suiteExists ) - { - iMetaDataModel->IgnoreEvaluations( EFalse ); - } + TBool turnOnEvaluation = ( suiteExists && ( !nextExists || isLast ) ); + if( turnOnEvaluation || !suiteExists ) + { + iMetaDataModel->IgnoreEvaluations( EFalse ); + } - TInt err( KErrNone ); + TInt err( KErrNone ); - // Ignore loading new suite if the last suite in model is the same - // as first one in the uri. - if ( i == 0 ) - { - if ( SuitesAreTheSameL( iMetaDataModel->GetLastSuite()->SuiteName(), (*suiteNameArray)[i] ) ) - { - HandleTheSameSuitesL( nextExists, parser.Extract( EUriQuery ) ); - sendToForeground = ETrue; - continue; - } - } + // Ignore loading new suite if the last suite in model is the same + // as first one in the uri. + if ( i == 0 ) + { + if ( SuitesAreTheSameL( iMetaDataModel->GetLastSuite()->SuiteName(), (*suiteNameArray)[i] ) ) + { + HandleTheSameSuitesL( nextExists, parser.Extract( EUriQuery ) ); + sendToForeground = ETrue; + continue; + } + } - if( suiteExists ) - { - if (!nextExists) - { - // Tricky: queue foreground so that if the suite is evaluated synchronously - // the foreground will be gained. - iMetaDataModel->QueueForeground( CHnMdModel::EWhenAnySuiteIsEvaluated ); - } - err = LoadSuiteFromUriL( - ( *suiteNameArray )[i], parser.Extract( EUriQuery ), parser.Extract( EUriFragment ) ); - if ( KErrNone == err && !nextExists && iMetaDataModel->IsForegroundQueued() ) - { - // Tricky: if foreground is still queued it means that the suite is evaluated - // asynchronously. Override the previos foreground queue setting with one - // that will be effective only if the last loaded suite is evaluated. - iMetaDataModel->QueueForeground( CHnMdModel::EWhenCurrentTopSuiteIsEvaluated ); - } - if ( err != KErrNone ) - { - sendToForeground = ETrue; - } - } + if( suiteExists ) + { + if (!nextExists) + { + // Tricky: queue foreground so that if the suite is evaluated synchronously + // the foreground will be gained. + iMetaDataModel->QueueForeground( CHnMdModel::EWhenAnySuiteIsEvaluated ); + } + err = LoadSuiteFromUriL( + ( *suiteNameArray )[i], parser.Extract( EUriQuery ), parser.Extract( EUriFragment ) ); + if ( KErrNone == err && !nextExists && iMetaDataModel->IsForegroundQueued() ) + { + // Tricky: if foreground is still queued it means that the suite is evaluated + // asynchronously. Override the previos foreground queue setting with one + // that will be effective only if the last loaded suite is evaluated. + iMetaDataModel->QueueForeground( CHnMdModel::EWhenCurrentTopSuiteIsEvaluated ); + } + if ( err != KErrNone ) + { + sendToForeground = ETrue; + } + } - if( !suiteExists || err != KErrNone || !nextExists ) - { - CHnFilter* filter = CHnFilter::NewLC(); + if( !suiteExists || err != KErrNone || !nextExists ) + { + CHnFilter* filter = CHnFilter::NewLC(); - filter->SetSuiteId( - iSuiteContainer->GetLastSuiteModel()->CustomId() ); + filter->SetSuiteId( + iSuiteContainer->GetLastSuiteModel()->CustomId() ); - filter->SetEvaluateSuiteL( ETrue ); - iMetaDataModel->IgnoreEvaluations( EFalse ); + filter->SetEvaluateSuiteL( ETrue ); + iMetaDataModel->IgnoreEvaluations( EFalse ); - TRAPD( err, iMetaDataModel->EvaluateL( *filter ) ); + TRAPD( err, iMetaDataModel->EvaluateL( *filter ) ); - CleanupStack::PopAndDestroy( filter ); - if( err ) - { - iMetaDataModel->DeleteLastSuite(); - iSuiteContainer->PopSuiteModelL( - HnConvUtils::Str8ToStr( ( *suiteNameArray )[i] )->Des() ); - sendToForeground = ETrue; - } - break; - } - } + CleanupStack::PopAndDestroy( filter ); + if( err ) + { + iMetaDataModel->DeleteLastSuite(); + iSuiteContainer->PopSuiteModelL( + HnConvUtils::Str8ToStr( ( *suiteNameArray )[i] )->Des() ); + sendToForeground = ETrue; + } + break; + } + } - // set highlight only when path is valid! - if( suiteExists ) - { - HighlightPlacementFromUriL( parser.Extract( EUriFragment ) ); - } + // set highlight only when path is valid! + if( suiteExists ) + { + HighlightPlacementFromUriL( parser.Extract( EUriFragment ) ); + } CleanupStack::PopAndDestroy( &host8 ); - CleanupStack::PopAndDestroy( suiteNameArray ); - CleanupStack::PopAndDestroy( uriBuf ); + CleanupStack::PopAndDestroy( suiteNameArray ); + CleanupStack::PopAndDestroy( uriBuf ); // send to foreground - if ( sendToForeground ) - { - CLiwGenericParamList* pl = CLiwGenericParamList::NewL(); - CleanupStack::PushL( pl ); - HandleModelEventL( KAppGainForeground, *pl ); - CleanupStack::PopAndDestroy( pl ); - iMetaDataModel->QueueForeground( CHnMdModel::ENever ); - } + if ( sendToForeground ) + { + CLiwGenericParamList* pl = CLiwGenericParamList::NewL(); + CleanupStack::PushL( pl ); + HandleModelEventL( KAppGainForeground, *pl ); + CleanupStack::PopAndDestroy( pl ); + iMetaDataModel->QueueForeground( CHnMdModel::ENever ); + } - } + } // End of file diff -r 20d75ec6647e -r 9f918e984081 menufw/hierarchynavigator/hnmetadatamodel/inc/hnglobals.h --- a/menufw/hierarchynavigator/hnmetadatamodel/inc/hnglobals.h Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/hierarchynavigator/hnmetadatamodel/inc/hnglobals.h Fri Sep 17 15:37:16 2010 +0100 @@ -110,7 +110,12 @@ /** * Has not. */ - _LIT8( KLogicalHasNot8, "HASNOT" ); + _LIT8( KLogicalHasNot8, "HASNOT" ); + + /** + * Uid param for uri. + */ + _LIT8( KParamUid8, "&uid=" ); } /** @@ -427,11 +432,11 @@ // info notes for notifying lack of configuration files _LIT( KDebugNoteDirNotFound, - "Directory containing suite configuration not found!" ); + "Directory containing suite configuration not found!" ); _LIT( KDebugNoteFileNotFound, - "File containing suite configuration not found!" ); + "File containing suite configuration not found!" ); _LIT( KDebugNoteOtherError, - "Loading suite configuration returned error: %d" ); + "Loading suite configuration returned error: %d" ); _LIT8( KStar8, "*" ); @@ -518,9 +523,9 @@ * Order in which drives are searched for suites. */ const TInt KDriveSearchOrder[] = { EDriveY, EDriveX, EDriveW, EDriveV, EDriveU, - EDriveT, EDriveS, EDriveR, EDriveQ, EDriveP, EDriveO, EDriveN, EDriveM, - EDriveL, EDriveK, EDriveJ, EDriveI, EDriveH, EDriveG, EDriveF, EDriveE, - EDriveD, EDriveC, EDriveB, EDriveA, EDriveZ }; + EDriveT, EDriveS, EDriveR, EDriveQ, EDriveP, EDriveO, EDriveN, EDriveM, + EDriveL, EDriveK, EDriveJ, EDriveI, EDriveH, EDriveG, EDriveF, EDriveE, + EDriveD, EDriveC, EDriveB, EDriveA, EDriveZ }; /** * Type of the widget which displays Suite data @@ -562,10 +567,10 @@ * Custom item ids. */ enum TCustomId - { - ECustomIdFirstItem = -2, - ECustomIdLastItem = -3 - }; + { + ECustomIdFirstItem = -2, + ECustomIdLastItem = -3 + }; /** * Suite's exit mode @@ -580,8 +585,8 @@ * Type of change in items number */ enum TItemsChangeType { - EItemsAdded = 0, - EItemsRemoved + EItemsAdded = 0, + EItemsRemoved }; _LIT8( KExitModeParams, "params:exit" ); diff -r 20d75ec6647e -r 9f918e984081 menufw/hierarchynavigator/hnmetadatamodel/inc/hnrepositoryobserver.h --- a/menufw/hierarchynavigator/hnmetadatamodel/inc/hnrepositoryobserver.h Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/hierarchynavigator/hnmetadatamodel/inc/hnrepositoryobserver.h Fri Sep 17 15:37:16 2010 +0100 @@ -39,7 +39,7 @@ NONSHARABLE_CLASS( CHnRepositoryObserver ): public CBase, public MCenRepNotifyHandlerCallback - { + { public: /** @@ -98,7 +98,7 @@ */ CCenRepNotifyHandler* iNotifyHandler; - }; + }; /** * Widget Type Repository Observer. @@ -110,7 +110,7 @@ * @ingroup group_hnmetadatamodel */ NONSHARABLE_CLASS( CHnRepositoryWidgetTypeObserver ): public CHnRepositoryObserver - { + { public: /** @@ -164,7 +164,7 @@ * @param aCmnPtrs Common pointers. * @since S60 v5.0 */ - CHnRepositoryWidgetTypeObserver( THnMdCommonPointers* aCmnPtrs ); + CHnRepositoryWidgetTypeObserver( THnMdCommonPointers* aCmnPtrs ); private: @@ -173,24 +173,23 @@ * * @since S60 v5.0 */ - void ConstructL( const TUid aRepositoryUid ); + void ConstructL( const TUid aRepositoryUid ); private: - /** - * Array holding ids of widgets being switched. - * It is used to eliminate double refresh for such suites. - */ - RArray iWidgetSwitches; + /** + * Array holding ids of widgets being switched. + * It is used to eliminate double refresh for such suites. + */ + RArray iWidgetSwitches; - }; + }; NONSHARABLE_CLASS( CHnRepositoryShowFolderObserver ): public CHnRepositoryObserver, - public MLiwNotifyCallback, - public MHnSuiteObserver - { + public MLiwNotifyCallback + { public: /** @@ -201,26 +200,26 @@ virtual ~CHnRepositoryShowFolderObserver(); /** - * Factory function. - * - * @param aCmnPtrs Common pointers. - * @return Repository Observer. - * @since S60 v5.0 - */ - static CHnRepositoryShowFolderObserver* NewL( - THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid, - const TUint32 aId); + * Factory function. + * + * @param aCmnPtrs Common pointers. + * @return Repository Observer. + * @since S60 v5.0 + */ + static CHnRepositoryShowFolderObserver* NewL( + THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid, + const TUint32 aId); - /** - * Factory function. - * - * @param aCmnPtrs Common pointers. - * @return Repository Observer. - * @since S60 v5.0 - */ - static CHnRepositoryShowFolderObserver* NewLC( - THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid, - const TUint32 aId); + /** + * Factory function. + * + * @param aCmnPtrs Common pointers. + * @return Repository Observer. + * @since S60 v5.0 + */ + static CHnRepositoryShowFolderObserver* NewLC( + THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid, + const TUint32 aId); /** * Change handler method. @@ -250,14 +249,6 @@ CLiwGenericParamList& aEventParamList, const CLiwGenericParamList& aInParamList); - /** - * From MHnSuiteObserver - */ - virtual void HandleSuiteEventL ( THnCustomSuiteEvent aCustomSuiteEvent, - CHnSuiteModel *aModel ); - - - private: /** @@ -266,7 +257,7 @@ * @param aCmnPtrs Common pointers. * @since S60 v5.0 */ - CHnRepositoryShowFolderObserver( THnMdCommonPointers* aCmnPtrs, TUint32 iId ); + CHnRepositoryShowFolderObserver( THnMdCommonPointers* aCmnPtrs, TUint32 iId ); /** * Extracts the folder name from the CR key. @@ -274,14 +265,14 @@ * @param aNewValue The CR key. * @since S60 v5.0 */ - void ExtractCRKeyShowFolderName( const TDesC& aNewValue ); + void ExtractCRKeyShowFolderName( const TDesC& aNewValue ); - /** - * Request get list for parent folder of an application. - * - * @param aFolderId A parent folder id - * @since S60 v5.0 - */ + /** + * Request get list for parent folder of an application. + * + * @param aFolderId A parent folder id + * @since S60 v5.0 + */ void GetShowFolderL( TUint32 aFolderId ); /** @@ -308,21 +299,21 @@ * * @since S60 v5.0 */ - void ConstructL( const TUid aRepositoryUid ); + void ConstructL( const TUid aRepositoryUid ); private: - /** + /** * Folder application group name. */ - TBuf8 iCRKeyFolderName; + TBuf8 iCRKeyFolderName; /** * Mcs id for an application item in a folder with a given app group name. */ - TBuf8 iCRKeyFolderItemUid; + TBuf8 iCRKeyFolderItemUid; - /** + /** * Own. * Intance of the service handler. */ @@ -332,7 +323,7 @@ * Flag describing the type of notification. */ TInt iNotifyType; - }; + }; #endif /*HNREPOSITORYOBSERVER_H_*/ diff -r 20d75ec6647e -r 9f918e984081 menufw/hierarchynavigator/hnmetadatamodel/src/hnmdmodel.cpp --- a/menufw/hierarchynavigator/hnmetadatamodel/src/hnmdmodel.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/hierarchynavigator/hnmetadatamodel/src/hnmdmodel.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -247,9 +247,9 @@ // --------------------------------------------------------------------------- // EXPORT_C TBool CHnMdModel::IsForegroundQueued() const - { - return iForegroundQueued; - } + { + return iForegroundQueued; + } // --------------------------------------------------------------------------- // @@ -264,13 +264,13 @@ if ( IsForegroundQueued() && ( !iForegroundTriggeringSuite || iForegroundTriggeringSuite == aJustEvaluatedSuite ) ) - { - CLiwGenericParamList* pl = CLiwGenericParamList::NewL(); - CleanupStack::PushL( pl ); - iCmnPtrs.iModelEventObserver->HandleModelEventL( KAppGainForeground, *pl ); - CleanupStack::PopAndDestroy( pl ); - QueueForeground( ENever ); - } + { + CLiwGenericParamList* pl = CLiwGenericParamList::NewL(); + CleanupStack::PushL( pl ); + iCmnPtrs.iModelEventObserver->HandleModelEventL( KAppGainForeground, *pl ); + CleanupStack::PopAndDestroy( pl ); + QueueForeground( ENever ); + } } // --------------------------------------------------------------------------- @@ -316,11 +316,11 @@ { TInt err( KErrNone ); - RXmlEngDocument xmlDoc; - // Xml model provider takes ownership of xmlDoc. - TRAP( err, iXmlModelProvider->GetModelL( aGenre, xmlDoc ) ); + RXmlEngDocument xmlDoc; + // Xml model provider takes ownership of xmlDoc. + TRAP( err, iXmlModelProvider->GetModelL( aGenre, xmlDoc ) ); - TXmlEngElement element; + TXmlEngElement element; if ( !err ) { element = xmlDoc.DocumentElement().AsElement(); @@ -342,10 +342,10 @@ TInt pos( 0 ); newSuite->GetSuiteParameters().FindFirst( pos, KSuiteName8); if ( pos == KErrNotFound ) - { - newSuite->GetSuiteParameters().AppendL( - TLiwGenericParam(KSuiteName8, TLiwVariant( aGenre ) ) ); - } + { + newSuite->GetSuiteParameters().AppendL( + TLiwGenericParam(KSuiteName8, TLiwVariant( aGenre ) ) ); + } iCmnPtrs.iContainer->PushNewSuiteModelL( newSuite->SuiteName() ); iCmnPtrs.iContainer->GetLastSuiteModel()->GetItemsOrder()-> @@ -355,9 +355,9 @@ iLoadedSuites.AppendL( newSuite ); } else - { - MMPERF(("CHnMdModel::LoadSuiteL - Error TRAPPED!")); - } + { + MMPERF(("CHnMdModel::LoadSuiteL - Error TRAPPED!")); + } return err; } @@ -395,8 +395,8 @@ // --------------------------------------------------------------------------- // TInt CHnMdModel::LoadedSuitesCount() - { - return iLoadedSuites.Count(); - } + { + return iLoadedSuites.Count(); + } diff -r 20d75ec6647e -r 9f918e984081 menufw/hierarchynavigator/hnmetadatamodel/src/hnrepositoryobserver.cpp --- a/menufw/hierarchynavigator/hnmetadatamodel/src/hnrepositoryobserver.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/hierarchynavigator/hnmetadatamodel/src/hnrepositoryobserver.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -229,7 +229,7 @@ TInt ret = iRepository->Create( iId, KBlank ); iNotifyHandler = CCenRepNotifyHandler::NewL( *this, *iRepository, - CCenRepNotifyHandler::EStringKey, iId ); + CCenRepNotifyHandler::EStringKey, iId ); iNotifyHandler->StartListeningL(); } @@ -273,23 +273,23 @@ //++Show Folder if( aId == iId && aNewValue.Length()) - { + { iNotifyType = 0; - ExtractCRKeyShowFolderName( aNewValue ); + ExtractCRKeyShowFolderName( aNewValue ); - // iCRKeyFolderItemUid can contain mcs id or uid - // in case of uid it will be replaced whith id in HandleNotifyL callback - if( iCRKeyFolderItemUid.Length()>0 ) - { - if( iCRKeyFolderItemUid.FindF( KHexPrefix8 )==0 ) - { - iNotifyType |= EAPP_UID; - } - else - { - iNotifyType |= EAPP_ID; - } - } + // iCRKeyFolderItemUid can contain mcs id or uid + // in case of uid it will be replaced whith id in HandleNotifyL callback + if( iCRKeyFolderItemUid.Length()>0 ) + { + if( iCRKeyFolderItemUid.FindF( KHexPrefix8 )==0 ) + { + iNotifyType |= EAPP_UID; + } + else + { + iNotifyType |= EAPP_ID; + } + } CHnMdBaseKey* inDataKey = HnMdKeyFactory::CreateL( KInData8, KKeyTypeMap, KDefaultParentId8 ); @@ -392,7 +392,7 @@ CleanupStack::PopAndDestroy( id ); } CleanupStack::PopAndDestroy( inDataKey ); - } + } DEBUG(("_MM_:CHnRepositoryShowFolderObserver::HandleNotifyStringL OUT")); @@ -403,91 +403,91 @@ // --------------------------------------------------------------------------- // void CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName( const TDesC& aNewValue ) - { - DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName IN" )); - iCRKeyFolderName.Copy( KBlank ); - iCRKeyFolderItemUid.Copy( KBlank ); + { + DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName IN" )); + iCRKeyFolderName.Copy( KBlank ); + iCRKeyFolderItemUid.Copy( KBlank ); - int keyValueLength = aNewValue.Length(); - if( keyValueLength ) - { - TApaAppGroupName folder; - TBuf 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 ) - { - if( posUid>KTimeStampBufferLength ) - { - return; - } - timeStamp.Copy( tempBuf.Left(posUid) ); - if( tempBuf.Length()-(posUid+1) > KUidStringLength ) - { - return; - } - iCRKeyFolderItemUid.Copy( tempBuf.Mid( posUid + 1 ) ); - } - else - { + TInt posUid = tempBuf.Find( KComma ); + if ( KErrNotFound != posUid ) + { + if( posUid>KTimeStampBufferLength ) + { + return; + } + timeStamp.Copy( tempBuf.Left(posUid) ); + if( tempBuf.Length()-(posUid+1) > KUidStringLength ) + { + return; + } + iCRKeyFolderItemUid.Copy( tempBuf.Mid( posUid + 1 ) ); + } + else + { if( tempBuf.Length()>KTimeStampBufferLength ) { return; } - timeStamp.Copy( tempBuf ); - } + timeStamp.Copy( tempBuf ); + } - TTime currentTime; - currentTime.HomeTime(); - TTimeIntervalSeconds interval; + TTime currentTime; + currentTime.HomeTime(); + TTimeIntervalSeconds interval; - TTime timeStampTime; - ret = timeStampTime.Set(timeStamp); + TTime timeStampTime; + ret = timeStampTime.Set(timeStamp); - if(ret == KErrGeneral ) - { - DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (bad timestamp) OUT" )); - return; // bad time stamp value - } + if(ret == KErrGeneral ) + { + DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (bad timestamp) OUT" )); + return; // bad time stamp value + } - ret = currentTime.SecondsFrom( timeStampTime, interval ); + ret = currentTime.SecondsFrom( timeStampTime, interval ); - if( interval.Int() < 0 ) - {//negative timestamp is set ahead of current time...! - DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (negative interval) OUT" )); - return; - } + if( interval.Int() < 0 ) + {//negative timestamp is set ahead of current time...! + DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (negative interval) OUT" )); + return; + } - if(( interval.Int()) > KTimeStampCutOff ) - {//positive timestamp but more than 5 seconds - DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (more than 5 seconds) OUT" )); - return; - } - else - { - iCRKeyFolderName.Copy(folder); - } - } - DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName OUT" )); - } + if(( interval.Int()) > KTimeStampCutOff ) + {//positive timestamp but more than 5 seconds + DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (more than 5 seconds) OUT" )); + return; + } + else + { + iCRKeyFolderName.Copy(folder); + } + } + DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName OUT" )); + } // --------------------------------------------------------------------------- // @@ -615,9 +615,9 @@ TInt aEventId, CLiwGenericParamList& aEventParamList, const CLiwGenericParamList& /*aInParamList*/) - { - DEBUG(("_MM_:CHnRepositoryShowFolderObserver::HandleNotifyL IN")); - if( aEventId == KLiwEventCanceled ) + { + DEBUG(("_MM_:CHnRepositoryShowFolderObserver::HandleNotifyL IN")); + if( aEventId == KLiwEventCanceled ) { return KErrNotFound; } @@ -732,7 +732,6 @@ if ( iCmnPtrs->iContainer->GetLastSuiteModel()->CustomId() != varId.AsTInt64() ) { iCmnPtrs->iModelEventObserver->HandleModelEventL( KNewSuiteLoadedMdEvent, *paramList ); - iCmnPtrs->iContainer->GetLastSuiteModel()->RegisterSuiteObserverL( this ); iCmnPtrs->iModel->QueueForeground( CHnMdModel::EWhenCurrentTopSuiteIsEvaluated ); } else @@ -769,37 +768,8 @@ CleanupStack::PopAndDestroy( &varId ); } - DEBUG(("_MM_:CHnRepositoryShowFolderObserver::HandleNotifyL OUT")); - return KErrNone; - } - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -void CHnRepositoryShowFolderObserver::HandleSuiteEventL ( THnCustomSuiteEvent aCustomSuiteEvent, - CHnSuiteModel *aModel ) - { - - if ( aCustomSuiteEvent == ESuiteModelInitialized && iCRKeyFolderItemUid.Length() > 0 ) - { - if (iCRKeyFolderItemUid.Length() > 0 ) - { - TLex8 lex( iCRKeyFolderItemUid ); - TInt64 id (0); - TInt err = lex.Val( id ); - TInt focus( KErrNotFound ); - // If suite is not null, then find matching item model. - CHnItemModel* itemModel = aModel->GetMatchingItemModelL( id, focus ); - aModel->SetSuiteHighlightL( focus ); - } - iCRKeyFolderItemUid.Copy( KBlank ); - aModel->UnregisterSuiteObserver( this ); - CLiwGenericParamList* pl = CLiwGenericParamList::NewL(); - CleanupStack::PushL( pl ); - iCmnPtrs->iModelEventObserver->HandleModelEventL( KAppGainForeground, *pl ); - CleanupStack::PopAndDestroy( pl ); - } - } + DEBUG(("_MM_:CHnRepositoryShowFolderObserver::HandleNotifyL OUT")); + return KErrNone; + } // End of File diff -r 20d75ec6647e -r 9f918e984081 menufw/menufwui/matrixmenu/help/data/xhtml.zip Binary file menufw/menufwui/matrixmenu/help/data/xhtml.zip has changed diff -r 20d75ec6647e -r 9f918e984081 menufw/menufwui/matrixmenu/inc/mmappui.h --- a/menufw/menufwui/matrixmenu/inc/mmappui.h Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/menufwui/matrixmenu/inc/mmappui.h Fri Sep 17 15:37:16 2010 +0100 @@ -12,7 +12,7 @@ * Contributors: * * Description: Application UI class -* Version : %version: MM_83.1.2.1.23.1.21 % << Don't touch! Updated by Synergy at check-out. +* Version : %version: MM_83.1.2.1.23.1.24 % << Don't touch! Updated by Synergy at check-out. * */ @@ -372,7 +372,8 @@ enum TExitKeyType { EExitKeyApplication, - EExitKeyRed + EExitKeyRed, + ECommingFromBackground }; /** @@ -1011,10 +1012,10 @@ */ TBool iHasFocus; - /** + /** * ETrue if Matrix is hidden from TS which is used on startup. */ - TBool isHiddenFromFS; + TBool isHiddenFromFS; /** * Own. diff -r 20d75ec6647e -r 9f918e984081 menufw/menufwui/matrixmenu/src/mmappui.cpp --- a/menufw/menufwui/matrixmenu/src/mmappui.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/menufwui/matrixmenu/src/mmappui.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -12,8 +12,8 @@ * Contributors: * * Description: Application UI class -* Version : %version: MM_176.1.28.1.83 % << Don't touch! Updated by Synergy at check-out. -* Version : %version: MM_176.1.28.1.83 % << Don't touch! Updated by Synergy at check-out. +* Version : %version: MM_176.1.28.1.87 % << Don't touch! Updated by Synergy at check-out. +* Version : %version: MM_176.1.28.1.87 % << Don't touch! Updated by Synergy at check-out. * */ @@ -106,8 +106,8 @@ iIsKastorEffectStarted = EFalse; StartLayoutSwitchFullScreen( AknTransEffect::EApplicationStart ); - RefreshUiPanesL( ETrue ); Cba()->MakeVisible( EFalse ); + StatusPane()->MakeVisible( EFalse ); StatusPane()->SwitchLayoutL( R_AVKON_STATUS_PANE_LAYOUT_USUAL ); iDummyTemplateLib = CMmTemplateLibrary::NewL(); @@ -340,7 +340,7 @@ iCurrentContainer->MakeVisible( EFalse ); iDummyContainer->DrawNow(); } - CleanupForExitL( EExitKeyApplication ); + CleanupForExitL( ECommingFromBackground ); User::LeaveIfError( iCoeEnv->WsSession().SetWindowGroupOrdinalPosition( CEikonEnv::Static()->RootWin().Identifier(), 0 ) ); iAppkeyHandler->StartL(); @@ -494,11 +494,6 @@ MMPERF(("CMmAppUi::HandleBackCommandL - START")); DEBUG16(("\t_Mm_:current genre: %S",&iCurrentSuiteModel->SuiteName())); - iDummyContainer->MakeVisible( ETrue ); - RefreshUiPanesL( ETrue ); - iCurrentContainer->MakeVisible( EFalse ); - iDummyContainer->DrawNow(); - iHNInterface->HandleBackEventL( iCurrentSuiteModel->SuiteName() ); MMPERF(("CMmAppUi::HandleBackCommandL - DONE")); @@ -1023,7 +1018,6 @@ if ( IsEditMode() ) { - TInt modelId = iCurrentSuiteModel->IdByIndex( aModelItemIndex ); if (modelId != KErrNotFound) { @@ -1823,6 +1817,11 @@ aWidgetContainer && iCurrentContainer->IsHighlightVisible() && iCurrentContainer->WidgetType() != aWidgetContainer->WidgetType(); + + if( iCurrentContainer && !highlightVisibleBefore ) + { + iCurrentContainer->SetHighlightVisibilityL( EFalse ); + } HandleWidgetChangeRefreshL( aWidgetContainer ); @@ -2377,7 +2376,6 @@ // void CMmAppUi::HandleSuiteModelInitializedL( CHnSuiteModel* aModel ) { - StatusPane()->MakeVisible( ETrue ); Cba()->MakeVisible( ETrue ); if ( aModel == iHNInterface->GetLastSuiteModelL() ) @@ -2496,27 +2494,47 @@ iCurrentContainer->CancelDragL( EFalse ); SetEditModeL( EFalse ); } - + + THnSuiteWidgetType widgetType = iCurrentContainer + ? iCurrentContainer->WidgetType() : EUnspecified; + // reset model - revert to root if current view is not a suite view CHnSuiteModel* model = iHNInterface->GetLastSuiteModelL(); - if ( model && aExitKey == EExitKeyApplication ) + + TBool commingFromBackground( aExitKey == ECommingFromBackground ); + + if( model && ( aExitKey == EExitKeyApplication || commingFromBackground ) ) { TBool topSuiteIsBeingEvaluated = !model->GetItemsOrder()->IsSuiteReadyToShow(); TBool topSuiteChanged = ResetToRootL(); model = NULL; // ResetToRootL might have deleted the model TBool presentationChangeExpected = topSuiteChanged || topSuiteIsBeingEvaluated; + + + TBool mustDrawImmediately = !presentationChangeExpected + || !iDummyContainer->IsVisible() || commingFromBackground; - TBool mustDrawImmediately = - !presentationChangeExpected || !iDummyContainer->IsVisible(); - - if ( iCurrentContainer && mustDrawImmediately ) + if( iCurrentContainer ) { - DEBUG(("\t_Mm_:Top item index reset")); - iCurrentContainer->ResetWidgetPosition(); - iCurrentContainer->Widget()->UpdateScrollBarsL(); - iCurrentContainer->MakeVisible( ETrue ); - iCurrentContainer->DrawNow(); + if( commingFromBackground ) + { + //do not draw the widget if the previous widget type is diffenernt than the current one + mustDrawImmediately &= ( widgetType + == iCurrentContainer->WidgetType() ); + + iCurrentContainer->SetWidgetCommingFromBackground( ETrue ); + } + + if( mustDrawImmediately ) + { + DEBUG(("\t_Mm_:Top item index reset")); + iCurrentContainer->ResetWidgetPosition(); + iCurrentContainer->Widget()->UpdateScrollBarsL(); + iCurrentContainer->MakeVisible( ETrue ); + iCurrentContainer->DrawNow(); + iCurrentContainer->SetWidgetCommingFromBackground( EFalse ); + } } } @@ -2603,6 +2621,7 @@ if( !succeeded ) { + StartLayoutSwitchFullScreen( AknTransEffect::EApplicationExit ); ShowHomescreenL( EExitReally ); } } @@ -2804,7 +2823,11 @@ ResetContainerMapToRootL(); if( iCurrentContainer ) { + const TInt FirstItemIndex = 0; + iCurrentContainer->GetSuiteModelL()->SetSuiteHighlightL( FirstItemIndex ); + iMakeHightlightedItemFullyVisible = ETrue; iCurrentContainer->ResetWidgetPosition(); + iCurrentContainer->SetEditModeL( EFalse ); AddToStackL( iCurrentContainer ); } RefreshUiPanesL( ETrue ); @@ -3035,23 +3058,22 @@ isHiddenFromFS = EFalse; } - if (iCurrentContainer && iCurrentSuiteModel ) - { - iCurrentContainer->HandleForegroundGainedL(); - iDummyContainer->MakeVisible( EFalse ); - iCurrentContainer->MakeVisible( ETrue ); - RefreshUiPanesL(); + if( iCurrentContainer && iCurrentSuiteModel ) + { + iCurrentContainer->HandleForegroundGainedL(); + iDummyContainer->MakeVisible( EFalse ); + iCurrentContainer->MakeVisible( ETrue ); + RefreshUiPanesL(); + } + if( iSkinChangeNeeded && !iSkinChangeInProgress ) + { + MAknsSkinInstance* skinInstance = AknsUtils::SkinInstance(); + if( skinInstance && !skinInstance->IsUpdateInProgress() ) + { + RefreshIconsL(); + } + } } - if (iSkinChangeNeeded && !iSkinChangeInProgress) - { - MAknsSkinInstance* skinInstance = AknsUtils::SkinInstance(); - if (skinInstance && !skinInstance->IsUpdateInProgress()) - { - RefreshIconsL(); - - } - } - } // --------------------------------------------------------------------------- // diff -r 20d75ec6647e -r 9f918e984081 menufw/menufwui/mmwidgets/bwins/mmwidgetsu.def --- a/menufw/menufwui/mmwidgets/bwins/mmwidgetsu.def Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/menufwui/mmwidgets/bwins/mmwidgetsu.def Fri Sep 17 15:37:16 2010 +0100 @@ -40,4 +40,5 @@ ?AllowMove@CMmWidgetContainer@@QBEHXZ @ 39 NONAME ; int CMmWidgetContainer::AllowMove(void) const ?SetTriggerMoveItemL@CMmWidgetContainer@@QAEXHPAVCLiwGenericParamList@@@Z @ 40 NONAME ; void CMmWidgetContainer::SetTriggerMoveItemL(int, class CLiwGenericParamList *) ?SetExDialogOpened@CMmWidgetContainer@@QAEXH@Z @ 41 NONAME ; void CMmWidgetContainer::SetExDialogOpened(int) + ?SetWidgetCommingFromBackground@CMmWidgetContainer@@UAEXH@Z @ 42 NONAME ; void CMmWidgetContainer::SetWidgetCommingFromBackground(int) diff -r 20d75ec6647e -r 9f918e984081 menufw/menufwui/mmwidgets/data/grid/lct/akn_logical_template_3_vga.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/menufw/menufwui/mmwidgets/data/grid/lct/akn_logical_template_3_vga.xml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 menufw/menufwui/mmwidgets/eabi/mmwidgetsu.def --- a/menufw/menufwui/mmwidgets/eabi/mmwidgetsu.def Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/menufwui/mmwidgets/eabi/mmwidgetsu.def Fri Sep 17 15:37:16 2010 +0100 @@ -41,4 +41,5 @@ _ZN18CMmWidgetContainer19SetTriggerMoveItemLEiP20CLiwGenericParamList @ 40 NONAME _ZNK18CMmWidgetContainer9AllowMoveEv @ 41 NONAME _ZN18CMmWidgetContainer17SetExDialogOpenedEi @ 42 NONAME + _ZN18CMmWidgetContainer30SetWidgetCommingFromBackgroundEi @ 43 NONAME diff -r 20d75ec6647e -r 9f918e984081 menufw/menufwui/mmwidgets/group/bld.inf --- a/menufw/menufwui/mmwidgets/group/bld.inf Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/menufwui/mmwidgets/group/bld.inf Fri Sep 17 15:37:16 2010 +0100 @@ -12,7 +12,7 @@ * Contributors: * * Description: Build information file for project mmwidgets -* Version : %version: 8.1.3.1.8 % << Don't touch! Updated by Synergy at check-out. +* Version : %version: 8.1.3.1.9 % << Don't touch! Updated by Synergy at check-out. * */ @@ -26,78 +26,54 @@ ../rom/mmwidgets.iby CORE_APP_LAYER_IBY_EXPORT_PATH(mmwidgets.iby) // list exports -../data/list/custom/akn_single_large_graphic_pane.xml Z:/resource/list/custom/akn_single_large_graphic_pane.xml - -../data/list/custom/akn_logical_template_1.xml Z:/resource/list/custom/akn_logical_template_1.xml - -../data/list/custom/akn_logical_template_2.xml Z:/resource/list/custom/akn_logical_template_2.xml - -../data/list/custom/akn_logical_template_3.xml Z:/resource/list/custom/akn_logical_template_3.xml - -../data/list/custom/akn_logical_template_4.xml Z:/resource/list/custom/akn_logical_template_4.xml - -../data/list/custom/akn_logical_template_5.xml Z:/resource/list/custom/akn_logical_template_5.xml - -../data/list/custom/akn_logical_template_6.xml Z:/resource/list/custom/akn_logical_template_6.xml - -../data/list/custom/akn_logical_template_7.xml Z:/resource/list/custom/akn_logical_template_7.xml - -../data/list/custom/akn_logical_template_8.xml Z:/resource/list/custom/akn_logical_template_8.xml - -../data/list/custom/akn_logical_template_10.xml Z:/resource/list/custom/akn_logical_template_10.xml - -../data/list/custom/akn_logical_template_11.xml Z:/resource/list/custom/akn_logical_template_11.xml - -../data/list/custom/akn_logical_template_12.xml Z:/resource/list/custom/akn_logical_template_12.xml - -../data/list/custom/akn_logical_template_13.xml Z:/resource/list/custom/akn_logical_template_13.xml +../data/list/custom/akn_single_large_graphic_pane.xml Z:/resource/list/custom/akn_single_large_graphic_pane.xml +../data/list/custom/akn_logical_template_1.xml Z:/resource/list/custom/akn_logical_template_1.xml +../data/list/custom/akn_logical_template_2.xml Z:/resource/list/custom/akn_logical_template_2.xml +../data/list/custom/akn_logical_template_3.xml Z:/resource/list/custom/akn_logical_template_3.xml +../data/list/custom/akn_logical_template_4.xml Z:/resource/list/custom/akn_logical_template_4.xml +../data/list/custom/akn_logical_template_5.xml Z:/resource/list/custom/akn_logical_template_5.xml +../data/list/custom/akn_logical_template_6.xml Z:/resource/list/custom/akn_logical_template_6.xml +../data/list/custom/akn_logical_template_7.xml Z:/resource/list/custom/akn_logical_template_7.xml +../data/list/custom/akn_logical_template_8.xml Z:/resource/list/custom/akn_logical_template_8.xml +../data/list/custom/akn_logical_template_10.xml Z:/resource/list/custom/akn_logical_template_10.xml +../data/list/custom/akn_logical_template_11.xml Z:/resource/list/custom/akn_logical_template_11.xml +../data/list/custom/akn_logical_template_12.xml Z:/resource/list/custom/akn_logical_template_12.xml +../data/list/custom/akn_logical_template_13.xml Z:/resource/list/custom/akn_logical_template_13.xml // grid exports -../data/grid/custom/akn_single_large_graphic_pane.xml Z:/resource/grid/custom/akn_single_large_graphic_pane.xml - -../data/grid/custom/akn_logical_template_1.xml Z:/resource/grid/custom/akn_logical_template_1.xml - -../data/grid/custom/akn_logical_template_2.xml Z:/resource/grid/custom/akn_logical_template_2.xml - -../data/grid/custom/akn_logical_template_3.xml Z:/resource/grid/custom/akn_logical_template_3.xml - -../data/grid/custom/akn_logical_template_4.xml Z:/resource/grid/custom/akn_logical_template_4.xml - -//lct exports -../data/list/lct/akn_list_single_hc_apps_pane.xml Z:/resource/list/lct/akn_list_single_hc_apps_pane.xml - -../data/list/lct/akn_single_large_graphic_pane.xml Z:/resource/list/lct/akn_single_large_graphic_pane.xml - -../data/list/lct/akn_logical_template_1.xml Z:/resource/list/lct/akn_logical_template_1.xml +../data/grid/custom/akn_single_large_graphic_pane.xml Z:/resource/grid/custom/akn_single_large_graphic_pane.xml +../data/grid/custom/akn_logical_template_1.xml Z:/resource/grid/custom/akn_logical_template_1.xml +../data/grid/custom/akn_logical_template_2.xml Z:/resource/grid/custom/akn_logical_template_2.xml +../data/grid/custom/akn_logical_template_3.xml Z:/resource/grid/custom/akn_logical_template_3.xml +../data/grid/custom/akn_logical_template_4.xml Z:/resource/grid/custom/akn_logical_template_4.xml -../data/list/lct/akn_logical_template_2.xml Z:/resource/list/lct/akn_logical_template_2.xml - -../data/list/lct/akn_logical_template_3.xml Z:/resource/list/lct/akn_logical_template_3.xml - -../data/list/lct/akn_logical_template_4.xml Z:/resource/list/lct/akn_logical_template_4.xml - -../data/list/lct/akn_logical_template_5.xml Z:/resource/list/lct/akn_logical_template_5.xml - -../data/list/lct/akn_logical_template_6.xml Z:/resource/list/lct/akn_logical_template_6.xml +//lct list exports +../data/list/lct/akn_list_single_hc_apps_pane.xml Z:/resource/list/lct/akn_list_single_hc_apps_pane.xml +../data/list/lct/akn_single_large_graphic_pane.xml Z:/resource/list/lct/akn_single_large_graphic_pane.xml +../data/list/lct/akn_logical_template_1.xml Z:/resource/list/lct/akn_logical_template_1.xml +../data/list/lct/akn_logical_template_2.xml Z:/resource/list/lct/akn_logical_template_2.xml +../data/list/lct/akn_logical_template_3.xml Z:/resource/list/lct/akn_logical_template_3.xml +../data/list/lct/akn_logical_template_4.xml Z:/resource/list/lct/akn_logical_template_4.xml +../data/list/lct/akn_logical_template_5.xml Z:/resource/list/lct/akn_logical_template_5.xml +../data/list/lct/akn_logical_template_6.xml Z:/resource/list/lct/akn_logical_template_6.xml +../data/list/lct/akn_logical_template_6a.xml Z:/resource/list/lct/akn_logical_template_6a.xml +../data/list/lct/akn_logical_template_7.xml Z:/resource/list/lct/akn_logical_template_7.xml +../data/list/lct/akn_logical_template_8.xml Z:/resource/list/lct/akn_logical_template_8.xml +../data/list/lct/akn_logical_template_12.xml Z:/resource/list/lct/akn_logical_template_12.xml -../data/list/lct/akn_logical_template_6a.xml Z:/resource/list/lct/akn_logical_template_6a.xml - -../data/list/lct/akn_logical_template_7.xml Z:/resource/list/lct/akn_logical_template_7.xml +//lct grid exports +../data/grid/lct/akn_logical_template_3_vga.xml Z:/resource/grid/lct/akn_logical_template_3_vga.xml +../data/grid/lct/akn_logical_template_3.xml Z:/resource/grid/lct/akn_logical_template_3.xml -../data/list/lct/akn_logical_template_8.xml Z:/resource/list/lct/akn_logical_template_8.xml - -../data/list/lct/akn_logical_template_12.xml Z:/resource/list/lct/akn_logical_template_12.xml - -../data/grid/lct/akn_logical_template_3.xml Z:/resource/grid/lct/akn_logical_template_3.xml ../inc/mmdraganddropobserver.h |../../../inc/mmdraganddropobserver.h -../inc/mmlongtapobserver.h |../../../inc/mmlongtapobserver.h +../inc/mmlongtapobserver.h |../../../inc/mmlongtapobserver.h ../inc/mmkeyeventobserver.h |../../../inc/mmkeyeventobserver.h ../inc/mmwidgetobserver.h |../../../inc/mmwidgetobserver.h ../inc/mmwidgetcontainer.h |../../../inc/mmwidgetcontainer.h ../inc/mmvisibilityobserver.h |../../../inc/mmvisibilityobserver.h ../inc/mmtemplatelibrary.h |../../../inc/mmtemplatelibrary.h -../inc/mmwidgetsconstants.h |../../../inc/mmwidgetsconstants.h +../inc/mmwidgetsconstants.h |../../../inc/mmwidgetsconstants.h PRJ_MMPFILES mmwidgets.mmp diff -r 20d75ec6647e -r 9f918e984081 menufw/menufwui/mmwidgets/inc/mmdraweranimator.h --- a/menufw/menufwui/mmwidgets/inc/mmdraweranimator.h Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/menufwui/mmwidgets/inc/mmdraweranimator.h Fri Sep 17 15:37:16 2010 +0100 @@ -12,7 +12,7 @@ * Contributors: * * Description: CMmDrawerAnimator declaration -* Version : %version: MM_17.1.10 % << Don't touch! Updated by Synergy at check-out. +* Version : %version: MM_17.1.11 % << Don't touch! Updated by Synergy at check-out. * */ @@ -160,8 +160,8 @@ * and end in the EDrag floating item position, when item had been start drag. * * @since S60 v5.0 - * @param aDraggedIndex Draged item index to be animated. - * @param aPoint End position of animated item. + * @param aDraggedIndex Draged item index to be animated. + * @param aPoint End position of animated item. */ void AnimateDragItemStartL( TInt aDraggedIndex, TPoint aPoint ); @@ -239,11 +239,6 @@ TTimeIntervalMicroSeconds iDelay; /** - * Last redraw time - */ - TTime iLastRedrawTime; - - /** * Effects api. */ MAknListBoxTfx *iTransTfx; diff -r 20d75ec6647e -r 9f918e984081 menufw/menufwui/mmwidgets/inc/mmgrid.h --- a/menufw/menufwui/mmwidgets/inc/mmgrid.h Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/menufwui/mmwidgets/inc/mmgrid.h Fri Sep 17 15:37:16 2010 +0100 @@ -12,7 +12,7 @@ * Contributors: * * Description: CMmGrid declaration -* Version : %version: MM_32.1.25 % << Don't touch! Updated by Synergy at check-out. +* Version : %version: MM_32.1.26 % << Don't touch! Updated by Synergy at check-out. * */ @@ -397,25 +397,6 @@ void ProcessScrollEventL( CEikScrollBar* aScrollBar, TEikScrollEvent aEventType ); - /** - * Handles periodic events from @c iRedrawTimer. - * Such events are generated at equal time intervals while - * the view is being scrolled using the scrollbar. - * This function typically calls @c ProcessScrollEventL, - * which actually scrolls the view and causes a redraw. - */ - void HandleRedrawTimerEventL(); - -private: - /** - * Callback function for @c iRedrawTimer. - * It simply calls @c HandleRedrawTimerEventL and returns 0. - * - * @param aPtr A pointer to CMmGrid object. - * @return 0 (always). - */ - static TInt RedrawTimerCallback( TAny* aPtr ); - private: /** * Grid model. @@ -472,26 +453,6 @@ */ TPoint iButton1DownPos; - /** - * ETrue if the view is being scrolled with the scrollbar. - */ - TBool iScrollbarThumbIsBeingDragged; - - /** - * Stores the number of scrollbar events that were ignored. - * It is only used while scrolling the view using scrollbar, - * in such situation the scroll events that this object receives - * are ignored, and actual scrolling is done only when - * iRedrawTimer completes. - */ - TInt iSkippedScrollbarEventsCount; - - /** - * A timer that initiates redraws at certain time intervals. - * It is used to refresh the view while scrolling with - * the scrollbar. - */ - CPeriodic* iRedrawTimer; }; #endif // C_MMGRID_H diff -r 20d75ec6647e -r 9f918e984081 menufw/menufwui/mmwidgets/inc/mmgridcontainer.h --- a/menufw/menufwui/mmwidgets/inc/mmgridcontainer.h Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/menufwui/mmwidgets/inc/mmgridcontainer.h Fri Sep 17 15:37:16 2010 +0100 @@ -12,7 +12,7 @@ * Contributors: * * Description: CMmGridContainer declaration -* Version : %version: MM_29.1.14 % << Don't touch! Updated by Synergy at check-out. +* Version : %version: MM_29.1.15 % << Don't touch! Updated by Synergy at check-out. * */ @@ -212,6 +212,11 @@ * @return ETrue if visible, EFalse otherwise. */ TBool ItemIsVisible( TInt aItemIndex ) const; + + /** + * Sets a proper flag if the widget is brought to foreground. + */ + virtual void SetWidgetCommingFromBackground( TBool /*aCommingFromBackground*/ ); private: /** diff -r 20d75ec6647e -r 9f918e984081 menufw/menufwui/mmwidgets/inc/mmlistbox.h --- a/menufw/menufwui/mmwidgets/inc/mmlistbox.h Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/menufwui/mmwidgets/inc/mmlistbox.h Fri Sep 17 15:37:16 2010 +0100 @@ -12,7 +12,7 @@ * Contributors: * * Description: CMmListBox -* Version : %version: MM_22.1.17 % << Don't touch! Updated by Synergy at check-out. +* Version : %version: MM_22.1.19 % << Don't touch! Updated by Synergy at check-out. * */ @@ -23,7 +23,7 @@ #include #include #include -#include +#include class CMmListBoxModel; class CMmListBoxItemDrawer; @@ -41,47 +41,47 @@ * @ingroup group_mmwidgets */ NONSHARABLE_CLASS( CMmListBox ) : public CEikFormattedCellListBoxTypedef - { + { public: /** * Two-phased constructor. - * + * * @since S60 v3.0 * @param aParent Parent control. * @param aFlags Flags. - * @param aTemplateLibrary Template library for drawer. + * @param aTemplateLibrary Template library for drawer. * @return List box. */ static CMmListBox* NewL( const CCoeControl* aParent, TInt aFlags, CMmTemplateLibrary* aTemplateLibrary ); - + /** * Two-phased constructor. - * + * * @since S60 v3.0 * @param aParent Parent control. * @param aFlags Flags. - * @param aTemplateLibrary Template library for drawer. + * @param aTemplateLibrary Template library for drawer. * @return List box. */ static CMmListBox* NewLC( const CCoeControl* aParent, TInt aFlags, CMmTemplateLibrary* aTemplateLibrary ); - + /** - * Destructor. - * - * @since S60 v3.0 - */ - virtual ~CMmListBox(); - - /** + * Destructor. + * + * @since S60 v3.0 + */ + virtual ~CMmListBox(); + + /** * Gets the listbox model. * * @since S60 v3.0 * @return Listbox model. */ - CMmListBoxModel * MmModel(); - + CMmListBoxModel * MmModel(); + /** * Sets the listbox model. * @@ -97,43 +97,43 @@ * @return Listbox view. */ CListBoxView* MakeViewClassInstanceL(); - - /** + + /** * Creates the item drawer for listbox. - * - * @param aTemplateLibrary Template library for drawer. + * + * @param aTemplateLibrary Template library for drawer. * @since S60 v3.0 */ void CreateItemDrawerL( CMmTemplateLibrary* aTemplateLibrary ); - - /** + + /** * Sets the flag. - * + * * @since S60 v3.0 * @param aFlag Avkon list flag */ void SetListFlag( TInt aFlag ); - - /** + + /** * Clears the flag. - * + * * @since S60 v3.0 * @param aFlag Avkon list flag */ void ClearListFlag( TInt aFlag ); - + public: // from base class CCoeControl. /** - * From CCoeControl. + * From CCoeControl. * Handles pointer events. - * + * * @since S60 v3.0 * @param aPointerEvent Pointer event. */ - void HandlePointerEventL( const TPointerEvent& aPointerEvent ); - + void HandlePointerEventL( const TPointerEvent& aPointerEvent ); + /** * From base class. * @@ -141,9 +141,9 @@ * @param aKeyEvent Key event. * @param aType Event code. */ - TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, + TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType ); - + /** * Adjusts the given rectangle. * @@ -152,28 +152,28 @@ * @return Error code. */ TInt AdjustRectHeightToWholeNumberOfItems( TRect& aRect ) const; - + /** * Sets item drawer and view background context. * * @since S60 v3.0 * @param aBgContext Background context. */ - void SetItemDrawerAndViewBgContext( + void SetItemDrawerAndViewBgContext( CAknsBasicBackgroundControlContext * aBgContext ); - + /** * Updates scrollbar. * * @since S60 v3.0 */ void UpdateScrollBarsL(); - + /** * Special version of Update scrollbar that never calls DrawNow() */ void UpdateScrollBarsNoRedrawL(); - + /** * Checks if all items fit in view rectangle. * @@ -181,7 +181,7 @@ * @return Do all items fit in view rectangle. */ TBool AllItemsFitInViewRect(); - + /** * Handles scrollbar visibility change. * @@ -189,7 +189,7 @@ * @return Is redraw needed. */ TBool HandleScrollbarVisibilityChangeL(); - + /** * Sets marquee adapter. * @@ -197,7 +197,7 @@ * @param aAdapter Marquee adapter. */ void SetMarqueeAdapter( CMmMarqueeAdapter* aAdapter ); - + /** * Notifies that marquee is being drawn. * @@ -205,76 +205,76 @@ * @param aIsMarqueeBeingDrawn Is marquee being drawn. */ void SetMarqueeDrawing( TBool aIsMarqueeBeingDrawn ); - + /** * Handles item removal. redraws view, updates scrollbar. * * @since S60 v3.0 */ void HandleItemRemovalL(); - + /** * Redraws items in view if it is necessary. * * @since S60 v3.0 * @param aPreviousCurrent Previously current item index. * @param aCurrent Current item index. - * + * * @return true if anything was drawn. */ - TBool RedrawIfNecessary( TInt aPreviousCurrent, TInt aCurrent ); - - /** - * Overridden from base class to allow for drawing scrollbar - * background in mirrored layout. - * - * @param aRect clipping rect - */ - void Draw(const TRect& aRect) const; - - /** + TBool RedrawIfNecessary( TInt aPreviousCurrent, TInt aCurrent ); + + /** + * Overridden from base class to allow for drawing scrollbar + * background in mirrored layout. + * + * @param aRect clipping rect + */ + void Draw(const TRect& aRect) const; + + /** * Draws the listbox view. * * @since S60 v5.0 */ - void DrawView(); - + void DrawView(); + /** * Set the vertical item offset; * @param aOffset The offset to set to the widget. - * + * * @since S60 v5.0 */ void SetVerticalItemOffset( TInt aOffset ); /** * Gets the current widget vertical item offset. - * + * * @since S60 v5.0 * @return The current widget vertical item offset. */ TInt VerticalItemOffset() const; - + /** * Simply sets the item height members in widget and view. */ void SetItemHeight( TInt aItemHeight ); - + /** * Updates scrollbar thumbs. */ void UpdateScrollBarThumbs(); - + /** * Counts the number of component controls which this component owns. - */ + */ TInt CountComponentControls() const; - + /** * Disables/enables child component (scrollbar) drawing. */ void SetDisableChildComponentDrawing( TBool aDisable ); - + /** * Handles scrolling event. * @@ -282,51 +282,51 @@ * @param aScrollBar Scrollbar being scrolled. * @param aEventType Type of scrollbar event. */ - void HandleScrollEventL( CEikScrollBar* aScrollBar, + void HandleScrollEventL( CEikScrollBar* aScrollBar, TEikScrollEvent aEventType ); - + private: /** * Default constructor. - * + * * @since S60 v3.0 */ - CMmListBox(); - + CMmListBox(); + /** * 2nd phase constructor. - * + * * @since S60 v3.0 * @param aParent Parent control. * @param aFlags Flags. - * @param aTemplateLibrary Template library for drawer. + * @param aTemplateLibrary Template library for drawer. */ - void ConstructL( const CCoeControl* aParent, TInt aFlags, + void ConstructL( const CCoeControl* aParent, TInt aFlags, CMmTemplateLibrary* aTemplateLibrary ); - + /** * Handles pointer events when edit mode is enabled. - * + * * This method is only called during edit mode. It selectively passes * only some of the pointer events to CAknGrid::HandlePointerEventL * in order to disable flicking and panning. - * + * * @param aPointerEvent pointer event */ void HandlePointerEventInEditModeL( const TPointerEvent& aPointerEvent ); - + /** * Scrolls the view if pointer is close to the top/bottom edge. - * + * * This method is used only when edit mode is active. In a way it * brings back the focus based scrolling behavior that was present * in CAknGrid before ODE scrolling was introduced. */ void HandleScrollingInEditMode( const TPointerEvent& aPointerEvent ); - + /** * Checks if pointer position is within the scroll-triggering area. - * + * * @param aPointerEvent pointer event * @return true if pointer above the top scrolling threshold. */ @@ -335,120 +335,88 @@ /** * Checks if pointer position is within the scroll-triggering area. - * + * * @param aPointerEvent pointer event * @return true if pointer below the bottom scrolling threshold. */ TBool IsPointerInBottomScrollingThreshold( const TPointerEvent& aPointerEvent ) const; - + /** * Scrolls the view if the pointer is near top/bottom edge of the screen. - * + * * Assumes that current item index is the index of the item under the * pointer. The time value returned is based on the distance of the pointer * from the top/bottom edge of the grid view (this makes the scrolling speed * dependent of how close the pointer is to the edge). * If there is no need to continue scrolling because the beginning/end of * the list has already been reached, 0 is returned. - * + * * @param aPointerEvent pointer event * @return time to wait before calling this method again (in microseconds) * or 0 if already at the beginning/end of the list */ TInt ScrollIfNeeded( const TPointerEvent& aPointerEvent ); - + + /** + * Minimal scrolling (setting top item index and vertical offset) with + * boundary checking and WITHOUT redrawing. + * + * @param aDistanceInPixels Distance to scroll. + */ + void ScrollWithoutRedraw( TInt aDistanceInPixels ); + /** * Ensures that elements are drawn correctly when mirrored layout is * used and scrollbar is visible by shifting ViewRect to the right. */ void FixViewForMirroredLayout(); - + /** * Redraws the background under the vertical scrollbar in mirrored layout. - * + * * The reason such method is needed is that view rectangle is shifted * to the right in mirrored layout and does not cover the scrollbar * area. In normal (non-mirrored) mode this method does nothing. */ void RedrawScrollbarBackground() const; - + /** * Does actual handling of scroll events. - * + * * @param aScrollBar Scrollbar being scrolled. * @param aEventType Type of scrollbar event. */ - void ProcessScrollEventL( CEikScrollBar* aScrollBar, + void ProcessScrollEventL( CEikScrollBar* aScrollBar, TEikScrollEvent aEventType ); - - /** - * Handles periodic events from @c iRedrawTimer. - * Such events are generated at equal time intervals while - * the view is being scrolled using the scrollbar. - * This function typically calls @c ProcessScrollEventL, - * which actually scrolls the view and causes a redraw. - */ - void HandleRedrawTimerEventL(); - -private: - /** - * Callback function for @c iRedrawTimer. - * It simply calls @c HandleRedrawTimerEventL and returns 0. - * - * @param aPtr A pointer to CMmListBox object. - * @return 0 (always). - */ - static TInt RedrawTimerCallback( TAny* aPtr ); - + private: // Data /** * Item drawer. */ CMmListBoxItemDrawer* iMmDrawer; - + /** * Multimedia Menu model. */ - CMmListBoxModel* iMmModel; + CMmListBoxModel* iMmModel; /** * marquee adapter. */ - CMmMarqueeAdapter* iMarqueeAdapter; + CMmMarqueeAdapter* iMarqueeAdapter; /** * Blocks scrollbar drawing. When this flag is set scrollbars components - * are blocked in the CountComponentControls() method; + * are blocked in the CountComponentControls() method; */ - TBool iDisableChildComponentDrawing; - - /** + TBool iDisableChildComponentDrawing; + + /** * This member is only used in edit mode to store the position of the pointer * during EButton1Down event. */ TPoint iButton1DownPos; - - /** - * ETrue if the view is being scrolled with the scrollbar. - */ - TBool iScrollbarThumbIsBeingDragged; - - /** - * Stores the number of scrollbar events that were ignored. - * It is only used while scrolling the view using scrollbar, - * in such situation the scroll events that this object receives - * are ignored, and actual scrolling is done only when - * iRedrawTimer completes. - */ - TInt iSkippedScrollbarEventsCount; - - /** - * A timer that initiates redraws at certain time intervals. - * It is used to refresh the view while scrolling with - * the scrollbar. - */ - CPeriodic* iRedrawTimer; - }; - + }; + #endif // MMLISTBOX_H diff -r 20d75ec6647e -r 9f918e984081 menufw/menufwui/mmwidgets/inc/mmlistboxcontainer.h --- a/menufw/menufwui/mmwidgets/inc/mmlistboxcontainer.h Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/menufwui/mmwidgets/inc/mmlistboxcontainer.h Fri Sep 17 15:37:16 2010 +0100 @@ -12,7 +12,7 @@ * Contributors: * * Description: CMmListBoxContainer -* Version : %version: MM_21.1.10 % << Don't touch! Updated by Synergy at check-out. +* Version : %version: MM_21.1.11 % << Don't touch! Updated by Synergy at check-out. * */ @@ -166,6 +166,13 @@ */ THnSuiteWidgetType WidgetType(); + /** + * Sets a proper flag if the widget is brought to foreground. + * + * @param aCommingFromBackground indicates whether the widget is brought to foreground. + */ + virtual void SetWidgetCommingFromBackground( TBool aCommingFromBackground ); + public: /** * Draws the widget view. @@ -189,7 +196,7 @@ * @return The current widget vertical item offset. */ virtual TInt VerticalItemOffset() const; - + protected: // from CMmWidgetContainer /** diff -r 20d75ec6647e -r 9f918e984081 menufw/menufwui/mmwidgets/inc/mmlistboxview.h --- a/menufw/menufwui/mmwidgets/inc/mmlistboxview.h Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/menufwui/mmwidgets/inc/mmlistboxview.h Fri Sep 17 15:37:16 2010 +0100 @@ -12,7 +12,7 @@ * Contributors: * * Description: -* Version : %version: MM_12.1.9 % << Don't touch! Updated by Synergy at check-out. +* Version : %version: MM_12.1.10 % << Don't touch! Updated by Synergy at check-out. * */ @@ -187,6 +187,13 @@ * @return */ TInt ModelItemsCount(); + + /** + * Sets a proper flag if the list is brought to foreground. + * + * @param aCommingFromBackground indicates whether the list is brought to foreground. + */ + void SetListCommingFromBackground(TBool aCommingFromBackground); private: @@ -223,7 +230,14 @@ * @since S60 v3.0 * @param aIndex Current Item index. */ - void SetPreviouslyDrawnCurrentItemIndex( TBool aIndex ); + void SetPreviouslyDrawnCurrentItemIndex( TBool aIndex ); + + /** + * Gets the flag indicating if the list is being brought to foreground. + * @return Last item index. + */ + TBool GetListCommingFromBackground() const; + private: @@ -236,6 +250,11 @@ * When ETrue, disables ScrollToMakeItemVisible method. */ TBool iScrollToItemDisabled; + + /** + * When ETrue the list is being brought from background + */ + TBool iListCommingFromBackground; }; #endif // MMLISTBOXVIEW_H diff -r 20d75ec6647e -r 9f918e984081 menufw/menufwui/mmwidgets/inc/mmwidgetcontainer.h --- a/menufw/menufwui/mmwidgets/inc/mmwidgetcontainer.h Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/menufwui/mmwidgets/inc/mmwidgetcontainer.h Fri Sep 17 15:37:16 2010 +0100 @@ -12,7 +12,7 @@ * Contributors: * * Description: -* Version : %version: MM_48.1.43 % << Don't touch! Updated by Synergy at check-out. +* Version : %version: MM_48.1.46 % << Don't touch! Updated by Synergy at check-out. * */ @@ -697,6 +697,11 @@ * Widget position cache. */ TMmWidgetPosition WidgetPositionCache() const; + + /** + * Sets a proper flag if the widget is brought to foreground. + */ + IMPORT_C virtual void SetWidgetCommingFromBackground( TBool /*aCommingFromBackground*/ ); public: // from MMmVisibilityObserver @@ -1076,6 +1081,10 @@ */ TBool iHighlightVisibleBeforeLongTap; + /** + * ETrue if widget highlight must be reset. + */ + TBool iResetHighlight; }; #endif // MMMWIDGETCONTAINER_H diff -r 20d75ec6647e -r 9f918e984081 menufw/menufwui/mmwidgets/inc/mmwidgetsconstants.h --- a/menufw/menufwui/mmwidgets/inc/mmwidgetsconstants.h Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/menufwui/mmwidgets/inc/mmwidgetsconstants.h Fri Sep 17 15:37:16 2010 +0100 @@ -12,7 +12,7 @@ * Contributors: * * Description: Constants for the matrixmenu -* Version : %version: 33.1.14 % << Don't touch! Updated by Synergy at check-out. +* Version : %version: 33.1.16 % << Don't touch! Updated by Synergy at check-out. * */ @@ -27,121 +27,138 @@ * Grid constants' namespace. */ namespace MmGrid - { - /** - * X component of the 4x3 layout. - */ - const TInt K4By3LayoutX = 4; + { + /** + * X component of the 4x3 layout. + */ + const TInt K4By3LayoutX = 4; - /** - * Y component of the 4x3 layout. - */ - const TInt K4By3LayoutY = 3; + /** + * Y component of the 4x3 layout. + */ + const TInt K4By3LayoutY = 3; - /** - * X component of the 3x4 layout. - */ + /** + * X component of the 3x4 layout. + */ - const TInt K3By4LayoutX = 3; + const TInt K3By4LayoutX = 3; - /** - * Y component of the 3x4 layout. - */ - const TInt K3By4LayoutY = 4; + /** + * Y component of the 3x4 layout. + */ + const TInt K3By4LayoutY = 4; - /** - * X component of the 4x5 layout. - */ - const TInt K4By5LayoutX = 4; + /** + * X component of the 4x5 layout. + */ + const TInt K4By5LayoutX = 4; - /** - * Y component of the 5x4 layout. - */ - const TInt K4By5LayoutY = 5; + /** + * Y component of the 5x4 layout. + */ + const TInt K4By5LayoutY = 5; - /** - * X component of the 5x4 layout. - */ - const TInt K5By4LayoutX = 5; + /** + * X component of the 5x4 layout. + */ + const TInt K5By4LayoutX = 5; - /** - * Y component of the 5x4 layout. - */ - const TInt K5By4LayoutY = 4; + /** + * Y component of the 5x4 layout. + */ + const TInt K5By4LayoutY = 4; - /** - * Below this value, default highlight in 3x4 grid - * is set up on the first item. Otherwize, on the default - * highlight. - */ - const TInt K3By4Threshold(5); + /** + * Below this value, default highlight in 3x4 grid + * is set up on the first item. Otherwize, on the default + * highlight. + */ + const TInt K3By4Threshold( 5 ); - /** - * Below this value, default highlight in 4x3 grid - * is set up on the first item. Otherwize, on the default - * highlight. - */ - const TInt K4By3Threshold(6); + /** + * Below this value, default highlight in 4x3 grid + * is set up on the first item. Otherwize, on the default + * highlight. + */ + const TInt K4By3Threshold( 6 ); - /** - * Below this value, default highlight in 5x4 grid - * is set up on the first item. Otherwize, on the default - * highlight. - */ - const TInt K5By4Threshold(8); + /** + * Below this value, default highlight in 5x4 grid + * is set up on the first item. Otherwize, on the default + * highlight. + */ + const TInt K5By4Threshold( 8 ); - /** - * Below this value, default highlight in 4x5 grid - * is set up on the first item. Otherwize, on the default - * highlight. - */ - const TInt K4By5Threshold(10); + /** + * Below this value, default highlight in 4x5 grid + * is set up on the first item. Otherwize, on the default + * highlight. + */ + const TInt K4By5Threshold( 10 ); - /** - * Default highlight in 3x4 grid. - */ - const TInt K3By4DefaultHighlight(4); + /** + * Default highlight in 3x4 grid. + */ + const TInt K3By4DefaultHighlight( 4 ); - /** - * Default highlight in 4x3 grid. - */ - const TInt K4By3DefaultHighlight(5); + /** + * Default highlight in 4x3 grid. + */ + const TInt K4By3DefaultHighlight( 5 ); - /** - * Default highlight in 5x4 grid. - */ - const TInt K5By4DefaultHighlight(7); + /** + * Default highlight in 5x4 grid. + */ + const TInt K5By4DefaultHighlight( 7 ); - /** - * Default highlight in 4x5 grid. - */ - const TInt K4By5DefaultHighlight(8); + /** + * Default highlight in 4x5 grid. + */ + const TInt K4By5DefaultHighlight( 8 ); - /** - * Number of rows in portrait/non-zoom mode; - */ - const TInt KRowsPortraitZoomNormal(4); + /** + * Number of rows in portrait/non-zoom mode; + */ + const TInt KRowsPortraitZoomNormal( 4 ); - /** - * Number of columns in landscape/non-zoom mode; - */ - const TInt KColsPortraitZoomNormal(3); + /** + * Number of columns in landscape/non-zoom mode; + */ + const TInt KColsPortraitZoomNormal( 3 ); - /** - * Number of rows in portrait/non-zoom mode; - */ - const TInt KRowsLandscapeZoomNormal(3); + /** + * Number of rows in portrait/non-zoom mode; + */ + const TInt KRowsLandscapeZoomNormal( 3 ); - /** - * Number of columns in landscape/non-zoom mode; - */ - const TInt KColsLandscapeZoomNormal(4); + /** + * Number of columns in landscape/non-zoom mode; + */ + const TInt KColsLandscapeZoomNormal( 4 ); /** * Focus based scrolling item threshold for grid. */ const TReal KFocusScrollingThreshold( 0.27 ); - } + + /** + * Scrolling step (in pixels) for grid. + */ + const TInt KScrollingStep( 10 ); + + /** + * Determines the speed of focus-based scrolling in edit mode. + * Minimal delay of scrolling in the grid layout. + */ + const TInt KEditModeScrollingGridMinDelay( 2000 ); + + /** + * Determines the speed of focus-based scrolling in edit mode. + * Maximal delay of scrolling in the grid layout. + */ + const TInt KEditModeScrollingGridMaxDelay( 30000 ); + } /** * Listbox constants' namespace. @@ -163,13 +180,30 @@ * Focus based scrolling item threshold for list. */ const TReal KFocusScrollingThreshold( 0.55 ); + + /** + * Scrolling step (in pixels) for listbox. + */ + const TInt KScrollingStep( 10 ); + + /** + * Determines the speed of focus-based scrolling in edit mode. + * Minimal delay of scrolling in the listbox layout. + */ + const TInt KEditModeScrollingListBoxMinDelay( 4000 ); + + /** + * Determines the speed of focus-based scrolling in edit mode. + * Maximal delay of scrolling in the listbox layout. + */ + const TInt KEditModeScrollingListBoxMaxDelay( 30000 ); } /** * Drag and drop related constants. */ namespace MmEffects - { + { /** * Threshold for items shift. */ @@ -219,33 +253,27 @@ * Time between two butto repeat events. */ const TInt KDragRepeatRespawn( 2 ); - - /** - * Determines the speed of focus-based scrolling in edit mode. - */ - const TInt KEditModeScrollingDelayFactor = 4000; } /** * Templates' related constants. */ namespace MmTemplateContants - { - /** - * If a custom (non LCT) template is used, this is - * its default scrollbar width. - */ - const TInt KCustomTemplateScrolbarWidth (25); + { + /** + * If a custom (non LCT) template is used, this is + * its default scrollbar width. + */ + const TInt KCustomTemplateScrolbarWidth( 25 ); - const TInt KTemplateChildTextLength (64); + const TInt KTemplateChildTextLength( 64 ); - const TInt KSubCellsCount (6); + const TInt KSubCellsCount( 6 ); - const TInt KItemSubCellsText (300); + const TInt KItemSubCellsText( 300 ); - const TInt KMoveIndicatorStartingPos ( 32 ); - - } + const TInt KMoveIndicatorStartingPos( 32 ); + } /** * Shortcut constants. @@ -270,13 +298,13 @@ } namespace MmMarqueeConstants - { - const TInt KTextTrimmingThreshold (80); - const TInt KClippingBufLength (80); - const TInt KLoops (1); - const TInt KScrollAmount (6); - const TInt KScrollDelay (1000000); - } + { + const TInt KTextTrimmingThreshold( 80 ); + const TInt KClippingBufLength( 80 ); + const TInt KLoops( 1 ); + const TInt KScrollAmount( 6 ); + const TInt KScrollDelay( 1000000 ); + } /** * Matrix Template Library panic notice. */ @@ -448,10 +476,4 @@ */ const TInt KDragTreshold = 18; -/** - * The interval between redraws when scrolling using the scrollbar. - * This will give us nice ~30 fps. - */ -const TInt KScrollingRedrawInterval = 33333; - #endif // MMWIDGETSCONSTANTS_H diff -r 20d75ec6647e -r 9f918e984081 menufw/menufwui/mmwidgets/rom/mmwidgets.iby --- a/menufw/menufwui/mmwidgets/rom/mmwidgets.iby Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/menufwui/mmwidgets/rom/mmwidgets.iby Fri Sep 17 15:37:16 2010 +0100 @@ -21,45 +21,51 @@ #include -file=ABI_DIR\BUILD_DIR\mmwidgets.dll SHARED_LIB_DIR\mmwidgets.dll +file=ABI_DIR\BUILD_DIR\mmwidgets.dll SHARED_LIB_DIR\mmwidgets.dll -data=\epoc32\data\z\resource\list\custom\akn_single_large_graphic_pane.xml resource\list\custom\akn_single_large_graphic_pane.xml -data=\epoc32\data\z\resource\list\custom\akn_logical_template_1.xml resource\list\custom\akn_logical_template_1.xml -data=\epoc32\data\z\resource\list\custom\akn_logical_template_2.xml resource\list\custom\akn_logical_template_2.xml -data=\epoc32\data\z\resource\list\custom\akn_logical_template_3.xml resource\list\custom\akn_logical_template_3.xml -data=\epoc32\data\z\resource\list\custom\akn_logical_template_4.xml resource\list\custom\akn_logical_template_4.xml -data=\epoc32\data\z\resource\list\custom\akn_logical_template_5.xml resource\list\custom\akn_logical_template_5.xml -data=\epoc32\data\z\resource\list\custom\akn_logical_template_6.xml resource\list\custom\akn_logical_template_6.xml -data=\epoc32\data\z\resource\list\custom\akn_logical_template_7.xml resource\list\custom\akn_logical_template_7.xml -data=\epoc32\data\z\resource\list\custom\akn_logical_template_8.xml resource\list\custom\akn_logical_template_8.xml -data=\epoc32\data\z\resource\list\custom\akn_logical_template_10.xml resource\list\custom\akn_logical_template_10.xml -data=\epoc32\data\z\resource\list\custom\akn_logical_template_11.xml resource\list\custom\akn_logical_template_11.xml -data=\epoc32\data\z\resource\list\custom\akn_logical_template_12.xml resource\list\custom\akn_logical_template_12.xml -data=\epoc32\data\z\resource\list\custom\akn_logical_template_13.xml resource\list\custom\akn_logical_template_13.xml +data=\epoc32\data\z\resource\list\custom\akn_single_large_graphic_pane.xml resource\list\custom\akn_single_large_graphic_pane.xml +data=\epoc32\data\z\resource\list\custom\akn_logical_template_1.xml resource\list\custom\akn_logical_template_1.xml +data=\epoc32\data\z\resource\list\custom\akn_logical_template_2.xml resource\list\custom\akn_logical_template_2.xml +data=\epoc32\data\z\resource\list\custom\akn_logical_template_3.xml resource\list\custom\akn_logical_template_3.xml +data=\epoc32\data\z\resource\list\custom\akn_logical_template_4.xml resource\list\custom\akn_logical_template_4.xml +data=\epoc32\data\z\resource\list\custom\akn_logical_template_5.xml resource\list\custom\akn_logical_template_5.xml +data=\epoc32\data\z\resource\list\custom\akn_logical_template_6.xml resource\list\custom\akn_logical_template_6.xml +data=\epoc32\data\z\resource\list\custom\akn_logical_template_7.xml resource\list\custom\akn_logical_template_7.xml +data=\epoc32\data\z\resource\list\custom\akn_logical_template_8.xml resource\list\custom\akn_logical_template_8.xml +data=\epoc32\data\z\resource\list\custom\akn_logical_template_10.xml resource\list\custom\akn_logical_template_10.xml +data=\epoc32\data\z\resource\list\custom\akn_logical_template_11.xml resource\list\custom\akn_logical_template_11.xml +data=\epoc32\data\z\resource\list\custom\akn_logical_template_12.xml resource\list\custom\akn_logical_template_12.xml +data=\epoc32\data\z\resource\list\custom\akn_logical_template_13.xml resource\list\custom\akn_logical_template_13.xml -data=\epoc32\data\z\resource\grid\custom\akn_single_large_graphic_pane.xml resource\grid\custom\akn_single_large_graphic_pane.xml -data=\epoc32\data\z\resource\grid\custom\akn_logical_template_1.xml resource\grid\custom\akn_logical_template_1.xml -data=\epoc32\data\z\resource\grid\custom\akn_logical_template_2.xml resource\grid\custom\akn_logical_template_2.xml -data=\epoc32\data\z\resource\grid\custom\akn_logical_template_3.xml resource\grid\custom\akn_logical_template_3.xml -data=\epoc32\data\z\resource\grid\custom\akn_logical_template_4.xml resource\grid\custom\akn_logical_template_4.xml +data=\epoc32\data\z\resource\grid\custom\akn_single_large_graphic_pane.xml resource\grid\custom\akn_single_large_graphic_pane.xml +data=\epoc32\data\z\resource\grid\custom\akn_logical_template_1.xml resource\grid\custom\akn_logical_template_1.xml +data=\epoc32\data\z\resource\grid\custom\akn_logical_template_2.xml resource\grid\custom\akn_logical_template_2.xml +data=\epoc32\data\z\resource\grid\custom\akn_logical_template_3.xml resource\grid\custom\akn_logical_template_3.xml +data=\epoc32\data\z\resource\grid\custom\akn_logical_template_4.xml resource\grid\custom\akn_logical_template_4.xml //lct exports -data=\epoc32\data\z\resource\list\lct\akn_list_single_hc_apps_pane.xml resource\list\lct\akn_list_single_hc_apps_pane.xml -data=\epoc32\data\z\resource\list\lct\akn_single_large_graphic_pane.xml resource\list\lct\akn_single_large_graphic_pane.xml -data=\epoc32\data\z\resource\list\lct\akn_logical_template_1.xml resource\list\lct\akn_logical_template_1.xml -data=\epoc32\data\z\resource\list\lct\akn_logical_template_2.xml resource\list\lct\akn_logical_template_2.xml -data=\epoc32\data\z\resource\list\lct\akn_logical_template_3.xml resource\list\lct\akn_logical_template_3.xml -data=\epoc32\data\z\resource\list\lct\akn_logical_template_4.xml resource\list\lct\akn_logical_template_4.xml -data=\epoc32\data\z\resource\list\lct\akn_logical_template_5.xml resource\list\lct\akn_logical_template_5.xml -data=\epoc32\data\z\resource\list\lct\akn_logical_template_6.xml resource\list\lct\akn_logical_template_6.xml -data=\epoc32\data\z\resource\list\lct\akn_logical_template_6a.xml resource\list\lct\akn_logical_template_6a.xml -data=\epoc32\data\z\resource\list\lct\akn_logical_template_7.xml resource\list\lct\akn_logical_template_7.xml -data=\epoc32\data\z\resource\list\lct\akn_logical_template_8.xml resource\list\lct\akn_logical_template_8.xml -data=\epoc32\data\z\resource\list\lct\akn_logical_template_12.xml resource\list\lct\akn_logical_template_12.xml +data=\epoc32\data\z\resource\list\lct\akn_list_single_hc_apps_pane.xml resource\list\lct\akn_list_single_hc_apps_pane.xml +data=\epoc32\data\z\resource\list\lct\akn_single_large_graphic_pane.xml resource\list\lct\akn_single_large_graphic_pane.xml +data=\epoc32\data\z\resource\list\lct\akn_logical_template_1.xml resource\list\lct\akn_logical_template_1.xml +data=\epoc32\data\z\resource\list\lct\akn_logical_template_2.xml resource\list\lct\akn_logical_template_2.xml +data=\epoc32\data\z\resource\list\lct\akn_logical_template_3.xml resource\list\lct\akn_logical_template_3.xml +data=\epoc32\data\z\resource\list\lct\akn_logical_template_4.xml resource\list\lct\akn_logical_template_4.xml +data=\epoc32\data\z\resource\list\lct\akn_logical_template_5.xml resource\list\lct\akn_logical_template_5.xml +data=\epoc32\data\z\resource\list\lct\akn_logical_template_6.xml resource\list\lct\akn_logical_template_6.xml +data=\epoc32\data\z\resource\list\lct\akn_logical_template_6a.xml resource\list\lct\akn_logical_template_6a.xml +data=\epoc32\data\z\resource\list\lct\akn_logical_template_7.xml resource\list\lct\akn_logical_template_7.xml +data=\epoc32\data\z\resource\list\lct\akn_logical_template_8.xml resource\list\lct\akn_logical_template_8.xml +data=\epoc32\data\z\resource\list\lct\akn_logical_template_12.xml resource\list\lct\akn_logical_template_12.xml -data=\epoc32\data\z\resource\grid\lct\akn_logical_template_3.xml resource\grid\lct\akn_logical_template_3.xml + +#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) + data=\epoc32\data\z\resource\grid\lct\akn_logical_template_3_vga.xml resource\grid\lct\akn_logical_template_3.xml +#else + data=\epoc32\data\z\resource\grid\lct\akn_logical_template_3.xml resource\grid\lct\akn_logical_template_3.xml +#endif + #endif // MATRIXWIDGETS_IBY diff -r 20d75ec6647e -r 9f918e984081 menufw/menufwui/mmwidgets/src/mmdraweranimator.cpp --- a/menufw/menufwui/mmwidgets/src/mmdraweranimator.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/menufwui/mmwidgets/src/mmdraweranimator.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -12,7 +12,7 @@ * Contributors: * * Description: - * Version : %version: MM_44 % << Don't touch! Updated by Synergy at check-out. + * Version : %version: MM_45 % << Don't touch! Updated by Synergy at check-out. * */ @@ -141,6 +141,10 @@ refreshRect.BoundingRect( beforeRect ); refreshRect.BoundingRect( afterRect ); } + if( current.GetFloatingItemType() == EPostDragRefreshItem ) + { + iDrawer.RemoveFloatingItem( i-- ); + } } const TInt highlightedItemIndex = iDrawer.Widget()->View()->CurrentItemIndex(); if( iLastNotedHighlight != highlightedItemIndex ) diff -r 20d75ec6647e -r 9f918e984081 menufw/menufwui/mmwidgets/src/mmgrid.cpp --- a/menufw/menufwui/mmwidgets/src/mmgrid.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/menufwui/mmwidgets/src/mmgrid.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -12,7 +12,7 @@ * Contributors: * * Description: -* Version : %version: MM_106 % << Don't touch! Updated by Synergy at check-out. +* Version : %version: MM_108 % << Don't touch! Updated by Synergy at check-out. * */ @@ -51,7 +51,6 @@ // CMmGrid::~CMmGrid() { - delete iRedrawTimer; } // ----------------------------------------------------------------------------- @@ -216,35 +215,18 @@ void CMmGrid::HandleScrollEventL( CEikScrollBar* aScrollBar, TEikScrollEvent aEventType ) { - if ( aEventType == EEikScrollThumbDragVert && !iScrollbarThumbIsBeingDragged ) + if ( aEventType == EEikScrollThumbDragVert ) { - iScrollbarThumbIsBeingDragged = ETrue; static_cast( View()->ItemDrawer() )->EnableCachedDataUse( ETrue ); - iRedrawTimer->Start( KScrollingRedrawInterval, KScrollingRedrawInterval, - TCallBack( &CMmGrid::RedrawTimerCallback, static_cast( this ) ) ); } else if ( aEventType == EEikScrollThumbReleaseVert ) { - iScrollbarThumbIsBeingDragged = EFalse; static_cast( View()->ItemDrawer() )->EnableCachedDataUse( EFalse ); - // The view will be redrawn with cache disabled when ProcessScrollEventL - // calls the base class's HandleScrollEventL method -- no need to - // explicitly redraw the view. - iRedrawTimer->Cancel(); } - - if ( !iScrollbarThumbIsBeingDragged ) - { ProcessScrollEventL( aScrollBar, aEventType ); } - else - { - __ASSERT_DEBUG( aEventType == EEikScrollThumbDragVert, User::Invariant() ); - ++iSkippedScrollbarEventsCount; - } - } // ----------------------------------------------------------------------------- // Clearing ELeftDownInViewRect flag before invoking the base class @@ -379,12 +361,12 @@ // void CMmGrid::ScrollWithoutRedraw( TInt distanceInPixels ) { - CAknGridView* view = static_cast( iView ); + CAknGridView* view = static_cast ( iView ); const TInt rowHeight = ItemHeight(); const TInt numOfCols = view->NumberOfColsInView(); const TInt itemCount = iModel->NumberOfItems(); TInt totalNumberOfRows = itemCount / numOfCols; - if ( itemCount % numOfCols ) + if( itemCount % numOfCols ) { ++totalNumberOfRows; } @@ -396,8 +378,8 @@ desiredViewPosition += distanceInPixels; const TInt viewPositionMin = 0; - const TInt viewPositionMax = - Max( 0, ( totalNumberOfRows * rowHeight ) - view->ViewRect().Height() ); + const TInt viewPositionMax = Max( 0, ( totalNumberOfRows * rowHeight ) + - view->ViewRect().Height() ); desiredViewPosition = Min( desiredViewPosition, viewPositionMax ); desiredViewPosition = Max( desiredViewPosition, viewPositionMin ); @@ -416,47 +398,45 @@ // TInt CMmGrid::ScrollIfNeeded( const TPointerEvent& aPointerEvent ) { - CAknGridView* view = static_cast( View() ); TInt nextScrollDelay = 0; TBool readyForScrolling = iMmDrawer->GetAnimator()->IsReadyForNewAnimation() - && iMmDrawer->GetFloatingItemCount() != 0; + && iMmDrawer->GetFloatingItemCount() != 0; - if ( IsPointerInTopScrollingThreshold( aPointerEvent ) ) - { - // scroll up by one row - TInt newCurrentItemIndex = CurrentItemIndex() - view->NumberOfColsInView(); - if ( newCurrentItemIndex < 0 ) - { - newCurrentItemIndex = CurrentItemIndex(); - } - - nextScrollDelay = MmEffects::KEditModeScrollingDelayFactor * - Max( 1, aPointerEvent.iPosition.iY - Rect().iTl.iY ); + if( IsPointerInTopScrollingThreshold( aPointerEvent ) ) + { + // scroll up + TInt startPos = MmGrid::KFocusScrollingThreshold * TReal( + View()->ItemSize().iHeight ); + TInt diff = Max( 1, Min( aPointerEvent.iPosition.iY + - Rect().iTl.iY, startPos ) ); + nextScrollDelay = ( (TReal) diff / (TReal) startPos ) + * ( MmGrid::KEditModeScrollingGridMaxDelay + - MmGrid::KEditModeScrollingGridMinDelay ) + + MmGrid::KEditModeScrollingGridMinDelay; - if ( readyForScrolling ) - { - ScrollWithoutRedraw( -iItemHeight ); - View()->SetCurrentItemIndex( newCurrentItemIndex ); - } - } - else if ( IsPointerInBottomScrollingThreshold( aPointerEvent) ) - { - TInt newCurrentItemIndex = CurrentItemIndex() + view->NumberOfColsInView(); - if ( newCurrentItemIndex > iModel->NumberOfItems() - 1 ) - { - newCurrentItemIndex = CurrentItemIndex(); - } + if( readyForScrolling ) + { + ScrollWithoutRedraw( -MmGrid::KScrollingStep ); + } + } + else if( IsPointerInBottomScrollingThreshold( aPointerEvent ) ) + { + // scroll down + TInt startPos = MmGrid::KFocusScrollingThreshold * TReal( + View()->ItemSize().iHeight ); + TInt diff = Max( 1, Min( Rect().iBr.iY + - aPointerEvent.iPosition.iY, startPos ) ); + nextScrollDelay = ( (TReal) diff / (TReal) startPos ) + * ( MmGrid::KEditModeScrollingGridMaxDelay + - MmGrid::KEditModeScrollingGridMinDelay ) + + MmGrid::KEditModeScrollingGridMinDelay; - nextScrollDelay = MmEffects::KEditModeScrollingDelayFactor * - Max( 1, Rect().iBr.iY - aPointerEvent.iPosition.iY ); - - if ( readyForScrolling ) - { - ScrollWithoutRedraw( iItemHeight ); - View()->SetCurrentItemIndex( newCurrentItemIndex ); - } - } + if( readyForScrolling ) + { + ScrollWithoutRedraw( MmGrid::KScrollingStep ); + } + } return nextScrollDelay; } @@ -601,7 +581,6 @@ } DoSetupLayoutL(); - iRedrawTimer = CPeriodic::NewL( EPriorityRealTime ); } // ----------------------------------------------------------------------------- @@ -961,33 +940,6 @@ // // ----------------------------------------------------------------------------- // -void CMmGrid::HandleRedrawTimerEventL() - { - if ( iSkippedScrollbarEventsCount ) - { - ProcessScrollEventL( ScrollBarFrame()->VerticalScrollBar(), - EEikScrollThumbDragVert ); - } - iSkippedScrollbarEventsCount = 0; - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -TInt CMmGrid::RedrawTimerCallback( TAny* aPtr ) - { - CMmGrid* self = static_cast( aPtr ); - TRAP_IGNORE( self->HandleRedrawTimerEventL() ); - // Do not bother returning a meaningful error code, CPeriodic will ignore it - // anyway. - return 0; - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// void CMmGrid::SetVerticalItemOffset(TInt aOffset) { static_cast (View())->SetItemOffsetInPixels(aOffset); diff -r 20d75ec6647e -r 9f918e984081 menufw/menufwui/mmwidgets/src/mmgridcontainer.cpp --- a/menufw/menufwui/mmwidgets/src/mmgridcontainer.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/menufwui/mmwidgets/src/mmgridcontainer.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -12,8 +12,8 @@ * Contributors: * * Description: -* Version : %version: MM_76 % << Don't touch! Updated by Synergy at check-out. -* Version : %version: MM_76 % << Don't touch! Updated by Synergy at check-out. +* Version : %version: MM_77 % << Don't touch! Updated by Synergy at check-out. +* Version : %version: MM_77 % << Don't touch! Updated by Synergy at check-out. * */ @@ -400,5 +400,14 @@ return isVisible; } +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void CMmGridContainer::SetWidgetCommingFromBackground( TBool /*aCommingFromBackground*/) + { + } + // End of File + diff -r 20d75ec6647e -r 9f918e984081 menufw/menufwui/mmwidgets/src/mmlistbox.cpp --- a/menufw/menufwui/mmwidgets/src/mmlistbox.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/menufwui/mmwidgets/src/mmlistbox.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -58,7 +58,6 @@ // CMmListBox::~CMmListBox() { - delete iRedrawTimer; } // ----------------------------------------------------------------------------- @@ -120,7 +119,6 @@ iItemDrawer->SetDrawMark(EFalse); CEikListBox::ConstructL(aParent,aFlags); iMmDrawer->SetView( this ); - iRedrawTimer = CPeriodic::NewL( EPriorityRealTime ); } // ----------------------------------------------------------------------------- @@ -234,53 +232,68 @@ // // ----------------------------------------------------------------------------- // +void CMmListBox::ScrollWithoutRedraw( TInt distanceInPixels ) + { + // desired view position relative to the first item in list (always positive) + TInt desiredViewPosition = ItemHeight() * TopItemIndex() - VerticalItemOffset(); + desiredViewPosition += distanceInPixels; + + const TInt viewPositionMax = Max( 0, ( iModel->NumberOfItems() + * ItemHeight() ) - iView->ViewRect().Height() ); + + desiredViewPosition = Min( desiredViewPosition, viewPositionMax ); + desiredViewPosition = Max( desiredViewPosition, 0 ); + + ASSERT( desiredViewPosition >= 0 ); + + SetTopItemIndex( desiredViewPosition / ItemHeight() ); + SetVerticalItemOffset( -( desiredViewPosition % ItemHeight() ) ); + } + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// TInt CMmListBox::ScrollIfNeeded( const TPointerEvent& aPointerEvent ) { TInt nextScrollDelay = 0; - TBool readyForScrolling = - iMmDrawer->GetAnimator()->IsReadyForNewAnimation() - && iMmDrawer->GetFloatingItemCount() != 0; - - if ( IsPointerInTopScrollingThreshold( aPointerEvent ) ) - { - // scroll up by one row - TInt newCurrentItemIndex = CurrentItemIndex() - 1; + TBool readyForScrolling = iMmDrawer->GetAnimator()->IsReadyForNewAnimation() + && iMmDrawer->GetFloatingItemCount() != 0; - if ( newCurrentItemIndex >= 0 ) - { - nextScrollDelay = MmEffects::KEditModeScrollingDelayFactor * - Max( 1, aPointerEvent.iPosition.iY - Rect().iTl.iY ); - if (readyForScrolling) + if( IsPointerInTopScrollingThreshold( aPointerEvent ) ) { - View()->VScrollTo( View()->CalcNewTopItemIndexSoItemIsVisible( - newCurrentItemIndex ) ); - View()->SetCurrentItemIndex( newCurrentItemIndex ); - UpdateScrollBarThumbs(); + // scroll up + TInt startPos = MmListBox::KFocusScrollingThreshold * TReal( + View()->ItemSize().iHeight ); + TInt diff = Max( 1, Min( aPointerEvent.iPosition.iY + - Rect().iTl.iY, startPos ) ); + nextScrollDelay = ( (TReal) diff / (TReal) startPos ) + * ( MmListBox::KEditModeScrollingListBoxMaxDelay + - MmListBox::KEditModeScrollingListBoxMinDelay ) + + MmListBox::KEditModeScrollingListBoxMinDelay; + if( readyForScrolling ) + { + ScrollWithoutRedraw( -MmListBox::KScrollingStep ); + } } - } - } - else if ( IsPointerInBottomScrollingThreshold( aPointerEvent) ) - { - // scroll down by one row - TInt lastItemIndex = iModel->NumberOfItems() - 1; - TInt newCurrentItemIndex = CurrentItemIndex() + 1; - + else if( IsPointerInBottomScrollingThreshold( aPointerEvent ) ) + { + // scroll down + TInt startPos = MmListBox::KFocusScrollingThreshold * TReal( + View()->ItemSize().iHeight ); + TInt diff = Max( 1, Min( Rect().iBr.iY + - aPointerEvent.iPosition.iY, startPos ) ); + nextScrollDelay = ( (TReal) diff / (TReal) startPos ) + * ( MmListBox::KEditModeScrollingListBoxMaxDelay + - MmListBox::KEditModeScrollingListBoxMinDelay ) + + MmListBox::KEditModeScrollingListBoxMinDelay; - if ( newCurrentItemIndex <= lastItemIndex ) - { - nextScrollDelay = MmEffects::KEditModeScrollingDelayFactor * - Max( 1, Rect().iBr.iY - aPointerEvent.iPosition.iY ); - - if (readyForScrolling) - { - View()->VScrollTo( View()->CalcNewTopItemIndexSoItemIsVisible( - newCurrentItemIndex ) ); - View()->SetCurrentItemIndex( newCurrentItemIndex ); - UpdateScrollBarThumbs(); + if( readyForScrolling ) + { + ScrollWithoutRedraw( MmListBox::KScrollingStep ); + } } - } - } return nextScrollDelay; } @@ -389,33 +402,6 @@ // // ----------------------------------------------------------------------------- // -void CMmListBox::HandleRedrawTimerEventL() - { - if ( iSkippedScrollbarEventsCount ) - { - ProcessScrollEventL( ScrollBarFrame()->VerticalScrollBar(), - EEikScrollThumbDragVert ); - } - iSkippedScrollbarEventsCount = 0; - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -TInt CMmListBox::RedrawTimerCallback( TAny* aPtr ) - { - CMmListBox* self = static_cast( aPtr ); - TRAP_IGNORE( self->HandleRedrawTimerEventL() ); - // Do not bother returning a meaningful error code, CPeriodic will ignore it - // anyway. - return 0; - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// TKeyResponse CMmListBox::OfferKeyEventL( const TKeyEvent& aKeyEvent,TEventCode aType ) { @@ -956,34 +942,17 @@ void CMmListBox::HandleScrollEventL( CEikScrollBar* aScrollBar, TEikScrollEvent aEventType ) { - if ( aEventType == EEikScrollThumbDragVert && !iScrollbarThumbIsBeingDragged ) + if ( aEventType == EEikScrollThumbDragVert ) { - iScrollbarThumbIsBeingDragged = ETrue; static_cast( View()->ItemDrawer() )->EnableCachedDataUse( ETrue ); - iRedrawTimer->Start( KScrollingRedrawInterval, KScrollingRedrawInterval, - TCallBack( &CMmListBox::RedrawTimerCallback, static_cast( this ) ) ); } else if ( aEventType == EEikScrollThumbReleaseVert ) { - iScrollbarThumbIsBeingDragged = EFalse; static_cast( View()->ItemDrawer() )->EnableCachedDataUse( EFalse ); - // The view will be redrawn with cache disabled when ProcessScrollEventL - // calls the base class's HandleScrollEventL method -- no need to - // explicitly redraw the view. - iRedrawTimer->Cancel(); } - - if ( !iScrollbarThumbIsBeingDragged ) - { - ProcessScrollEventL( aScrollBar, aEventType ); - } - else - { - __ASSERT_DEBUG( aEventType == EEikScrollThumbDragVert, User::Invariant() ); - ++iSkippedScrollbarEventsCount; - } + ProcessScrollEventL( aScrollBar, aEventType ); } // End of file diff -r 20d75ec6647e -r 9f918e984081 menufw/menufwui/mmwidgets/src/mmlistboxcontainer.cpp --- a/menufw/menufwui/mmwidgets/src/mmlistboxcontainer.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/menufwui/mmwidgets/src/mmlistboxcontainer.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -12,7 +12,7 @@ * Contributors: * * Description: -* Version : %version: MM_66 % << Don't touch! Updated by Synergy at check-out. +* Version : %version: MM_67 % << Don't touch! Updated by Synergy at check-out. * */ @@ -35,6 +35,7 @@ #include "mmtemplatelibrary.h" #include "mmpostevaluationprocessor.h" #include "mmdraweranimator.h" +#include "mmlistboxview.h" // ============================ MEMBER FUNCTIONS =============================== @@ -327,4 +328,16 @@ { iListBox->UpdateScrollBarThumbs(); } + +//---------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void CMmListBoxContainer::SetWidgetCommingFromBackground( + TBool aCommingFromBackground ) + { + CMmListBoxView* view = static_cast ( Widget()->View() ); + view->SetListCommingFromBackground( aCommingFromBackground ); + } + // End of File diff -r 20d75ec6647e -r 9f918e984081 menufw/menufwui/mmwidgets/src/mmlistboxitemdrawer.cpp --- a/menufw/menufwui/mmwidgets/src/mmlistboxitemdrawer.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/menufwui/mmwidgets/src/mmlistboxitemdrawer.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -342,7 +342,7 @@ iZoomIconIndex = tempZoomIconIndex; } } - else + else if( type != EPostDragRefreshItem ) { iFloatingItems.Remove( i ); } diff -r 20d75ec6647e -r 9f918e984081 menufw/menufwui/mmwidgets/src/mmlistboxview.cpp --- a/menufw/menufwui/mmwidgets/src/mmlistboxview.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/menufwui/mmwidgets/src/mmlistboxview.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -12,7 +12,7 @@ * Contributors: * * Description: - * Version : %version: MM_55 % << Don't touch! Updated by Synergy at check-out. + * Version : %version: MM_56 % << Don't touch! Updated by Synergy at check-out. * */ @@ -81,6 +81,7 @@ void CMmListBoxView::ConstructL () { iPreviouslyDrawnCurrentItemIndex = KErrNotFound; + iListCommingFromBackground = EFalse; } // ----------------------------------------------------------------------------- @@ -247,8 +248,9 @@ view->UpdateAverageItemHeight (); CMmListBoxModel* model = static_cast< CMmListBoxModel* > ( iModel ); - if ( model && model->GetSuiteModel() - && !model->GetSuiteModel()->GetItemsOrder()->IsSuiteReadyToShow() ) + if( model && model->GetSuiteModel() + && !model->GetSuiteModel()->GetItemsOrder()->IsSuiteReadyToShow() + && !GetListCommingFromBackground() ) { return; } @@ -630,4 +632,23 @@ iScrollToItemDisabled = aDisable; } +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +TBool CMmListBoxView::GetListCommingFromBackground() const + { + return iListCommingFromBackground; + } + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void CMmListBoxView::SetListCommingFromBackground( + TBool aCommingFromBackground ) + { + iListCommingFromBackground = aCommingFromBackground; + } + // End of file diff -r 20d75ec6647e -r 9f918e984081 menufw/menufwui/mmwidgets/src/mmwidgetcontainer.cpp --- a/menufw/menufwui/mmwidgets/src/mmwidgetcontainer.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/menufwui/mmwidgets/src/mmwidgetcontainer.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -12,7 +12,7 @@ * Contributors: * * Description: -* Version : %version: MM_71.1.17.1.70 % << Don't touch! Updated by Synergy at check-out. +* Version : %version: MM_71.1.17.1.75 % << Don't touch! Updated by Synergy at check-out. * */ @@ -111,7 +111,8 @@ , iRecipientId( KErrNotFound ) , iEventParameters( NULL ) , iDialogOpened( EFalse ) - , iHighlightVisibleBeforeLongTap( EFalse ) + , iHighlightVisibleBeforeLongTap( EFalse ) + , iResetHighlight( EFalse ) { iWidgetPositionCache.iValid = EFalse; } @@ -142,7 +143,7 @@ // cancel longTap timer, avoid showing popupmenu if( !aEnable ) { - TRAP_IGNORE( iLongTapDetector->PointerEventL( TPointerEvent() ) ); + TRAP_IGNORE( iLongTapDetector->CancelAnimationL() ); } } } @@ -215,8 +216,8 @@ { iDraggedIndex = KErrNotFound; } - iItemRelativeTapPoint = aPointerEvent.iPosition - iWidget->View()->ItemPos( - iDraggedIndex ); + iItemRelativeTapPoint = aPointerEvent.iPosition + - iWidget->View()->ItemPos( iDraggedIndex ); } // ----------------------------------------------------------------------------- @@ -313,7 +314,7 @@ { iDragAndDropObserver->HandleDragOverL( GetHighlight() ); } - + TPoint centerPoint( aPointerEvent.iPosition ); if( WidgetType() == EGridWidget ) { // move item's TL corner by half width/height to center item horizontally. @@ -326,7 +327,7 @@ // move item's L of corner by half height to center item horizontally. centerPoint.iY -= ( iWidget->View()->ItemSize( highlight ).iHeight / 2 ); } - + if( !tooFast ) { TSize itemSize = iWidget->View()->ItemSize( highlight ); @@ -677,6 +678,16 @@ HandleButtonDownL( aPointerEvent ); iDragAndDropObserver->HandleDragStartL( GetHighlight() ); } + else if( IsNoItemDragged() && ( aPointerEvent.iType + == TPointerEvent::EButton1Up ) ) + { + iWidget->View()->ItemDrawer()->SetFlags( + CListItemDrawer::ESingleClickDisabledHighlight ); + TInt highlight = GetHighlight(); + CListBoxView* view = Widget()->View(); + Widget()->DrawNow( TRect( view->ItemPos( highlight ), + view->ItemSize( highlight ) ) ); + } else if( ( aPointerEvent.iType == TPointerEvent::EDrag || aPointerEvent.iType == TPointerEvent::EButtonRepeat ) && iDraggedIndex != KErrNotFound ) @@ -1143,9 +1154,9 @@ if( resp == EKeyWasNotConsumed ) { - resp = iWidget->OfferKeyEventL( aKeyEvent, aType ); + resp = iWidget->OfferKeyEventL( aKeyEvent, aType ); } - + if( iKeyEventObserver ) { resp = iKeyEventObserver->HandleKeyPressedL( aKeyEvent, aType ); @@ -1165,7 +1176,7 @@ SetHighlightVisibilityL( ETrue ); SetDefaultHighlightL( ETrue ); - HandleForegroundGainedL(); + HandleForegroundGainedL(); } } return resp; @@ -1733,7 +1744,9 @@ iWidgetPositionCache.iValid = EFalse; iWidgetPositionCache.iHighlightedItemId = KErrNotFound; Widget()->SetTopItemIndex( 0 ); + Widget()->View()->SetCurrentItemIndex( 0 ); SetVerticalItemOffset( 0 ); + iResetHighlight = ETrue; } // --------------------------------------------------------------------------- @@ -1877,11 +1890,12 @@ // EXPORT_C TBool CMmWidgetContainer::ScrollToItemL( TInt aIndex ) { - TInt scrollConsumed( EFalse ); + TBool scrollConsumed( EFalse ); if( aIndex >= 0 && aIndex <= NumberOfItems() ) { scrollConsumed = AlignBottomOfViewL(); - if ( !scrollConsumed && Widget()->View()->ItemIsPartiallyVisible(aIndex)) + if ( ( !scrollConsumed || iResetHighlight ) + && Widget()->View()->ItemIsPartiallyVisible(aIndex) ) { // the case when the item is partially visible at top or // bottom of screen. The view is scrolled the offset to @@ -1897,7 +1911,6 @@ ScrollInPixelsL( offset ); scrollConsumed = ETrue; } - } else if( !Widget()->View()->ItemIsVisible( aIndex ) ) { @@ -1907,6 +1920,7 @@ AlignBottomOfViewL(); scrollConsumed = ETrue; } + iResetHighlight = EFalse; } return scrollConsumed; } @@ -2069,4 +2083,14 @@ iListBoxObserver->HandleListBoxEventL( aListBox, aEventType ); } } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +EXPORT_C void CMmWidgetContainer::SetWidgetCommingFromBackground( TBool /*aCommingFromBackground*/) + { + // this method must not be implemented. Change and implement only descended methods. + } + //End of file diff -r 20d75ec6647e -r 9f918e984081 menufw/menusuites/foldersuite/data/matrixmenudata.xml --- a/menufw/menusuites/foldersuite/data/matrixmenudata.xml Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/menusuites/foldersuite/data/matrixmenudata.xml Fri Sep 17 15:37:16 2010 +0100 @@ -160,22 +160,38 @@ mask_id="16405" param="messaging:audiomsg"/> - - - + + + + diff -r 20d75ec6647e -r 9f918e984081 menufw/menusuites/foldersuite/data/matrixmenudata_vga.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/menufw/menusuites/foldersuite/data/matrixmenudata_vga.xml Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,431 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 20d75ec6647e -r 9f918e984081 menufw/menusuites/foldersuite/group/bld.inf --- a/menufw/menusuites/foldersuite/group/bld.inf Thu Sep 02 15:42:21 2010 +0100 +++ b/menufw/menusuites/foldersuite/group/bld.inf Fri Sep 17 15:37:16 2010 +0100 @@ -42,7 +42,11 @@ #ifdef _MATRIX_MENU_INCLUDE_TEST_CONTENT ../data/matrixmenudatatestcontent.xml Z:/private/200113DD/content/matrixmenudata.xml #else +// #if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) +// ../data/matrixmenudata_vga.xml Z:/private/200113DD/content/matrixmenudata.xml +// #else ../data/matrixmenudata.xml Z:/private/200113DD/content/matrixmenudata.xml +// #endif #endif ../data/matrixmenudata.dtd Z:/private/200113DD/content/01/matrixmenudata.dtd diff -r 20d75ec6647e -r 9f918e984081 menufw/menusuites/foldersuite/loc/matrixmenudata.loc Binary file menufw/menusuites/foldersuite/loc/matrixmenudata.loc has changed diff -r 20d75ec6647e -r 9f918e984081 taskswitcher/contextengine/tsfswpreviewprovider/inc/tspreviewobserver.h --- a/taskswitcher/contextengine/tsfswpreviewprovider/inc/tspreviewobserver.h Thu Sep 02 15:42:21 2010 +0100 +++ b/taskswitcher/contextengine/tsfswpreviewprovider/inc/tspreviewobserver.h Fri Sep 17 15:37:16 2010 +0100 @@ -61,7 +61,7 @@ * @param aWgId Window group id of the application * @param aClockwise marks direction of the rotation (ETrue - clockwise, EFalse - counter clockwise) */ - virtual void HandleFswPpApplicationBitmapRotation( TInt aWgId, TBool aClockwise ) = 0; + virtual void HandleFswPpApplicationBitmapRotation( TInt aWgId, TInt aFbsHandle, TBool aClockwise ) = 0; }; #endif // TSPREVIEWOBSERVER_H diff -r 20d75ec6647e -r 9f918e984081 taskswitcher/contextengine/tsfswpreviewprovider/src/tspropertylistener.cpp --- a/taskswitcher/contextengine/tsfswpreviewprovider/src/tspropertylistener.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/taskswitcher/contextengine/tsfswpreviewprovider/src/tspropertylistener.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -71,12 +71,14 @@ } case EOperationBitmapRotation90: { - iObs.HandleFswPpApplicationBitmapRotation( iWgId, ETrue ); + iObs.HandleFswPpApplicationBitmapRotation( iWgId, + iFbsBitmapId, ETrue ); break; } case EOperationBitmapRotation270: { - iObs.HandleFswPpApplicationBitmapRotation( iWgId, EFalse ); + iObs.HandleFswPpApplicationBitmapRotation( iWgId, + iFbsBitmapId, EFalse ); break; } default: diff -r 20d75ec6647e -r 9f918e984081 taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/inc/previewprovidercrp.h --- a/taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/inc/previewprovidercrp.h Thu Sep 02 15:42:21 2010 +0100 +++ b/taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/inc/previewprovidercrp.h Fri Sep 17 15:37:16 2010 +0100 @@ -117,7 +117,7 @@ /* * Allocate resources and take screenshot */ - void ScreenshotL(); + void ScreenshotL( TBool aRotation ); /** * Takes the screenshot. @@ -144,7 +144,7 @@ /** * Notifies the PreviewProviderClient when screenshot is ready for copying. */ - void ScaleCompleteL(const CFbsBitmap& aBitmap); + void ScaleCompleteL( const CFbsBitmap& aBitmap, TBool aRotation ); /** * Notifies the PreviewProviderClient when an application has been exited. @@ -152,11 +152,6 @@ void UnregisterComplete( TInt aWgId ); /** - * Notifies the PreviewProviderClient that specific bitmap needs rotation. - */ - void BitmapRotationNeeded( TInt aWgId, TBool aClockwise ); - - /** * Uses window server front buffer to create a screenshot. * @param aFront preallocated destination bitmap * @param aFront Front buffer. diff -r 20d75ec6647e -r 9f918e984081 taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/src/previewprovidercrp.cpp --- a/taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/src/previewprovidercrp.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/src/previewprovidercrp.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -33,7 +33,7 @@ // CONSTANTS const TInt KImpId( 0x20016BEC ); -const TInt KMinTimeForOrientationSwitch = 1; // 1 second +const TInt64 KMinTimeForOrientationSwitch = 500000; // 0.5 second // -------------------------------------------------------------------------- // CPreviewProviderCRP::CreateL @@ -126,7 +126,7 @@ iScreenshotMode = static_cast( in.ReadInt32L() ); break; case NPreviewMsg::ETakePreview: - ScreenshotL(); + ScreenshotL( FALSE ); break; case NPreviewMsg::EAckPreviewReady: RemoveScreenshot( in.ReadInt32L() ); @@ -172,21 +172,18 @@ { TTime currTime; currTime.HomeTime(); - TTimeIntervalSeconds secondsFrom; - TInt err = currTime.SecondsFrom( iScreenChangedTime, secondsFrom ); - if ( err != KErrNone || secondsFrom.Int() > KMinTimeForOrientationSwitch ) + TTimeIntervalMicroSeconds micSecondsFrom = currTime.MicroSecondsFrom( iScreenChangedTime ); + if ( micSecondsFrom.Int64() > KMinTimeForOrientationSwitch ) { if ( iLastWgIdRedraw ) { - TRAP_IGNORE( ScreenshotL() ); + TRAP_IGNORE( ScreenshotL( FALSE ) ); } } else { // Reset time to allow screenshot taking on next wg change iScreenChangedTime = 0; - // Order screenshot rotation - BitmapRotationNeeded( iPrevId?iPrevId:iPrevReg, iClockwiseRot ); } iPrevReg = 0; } @@ -198,7 +195,9 @@ iScreenChangedTime.HomeTime(); if ( iLastWgIdRedraw ) { - TRAP_IGNORE( ScreenshotL() ); + TRAP_IGNORE( + ScreenshotL( TRUE ); + ); } } else if ( aEvent.Type() == TWservCrEvent::EScreenDrawing ) @@ -213,13 +212,22 @@ // CPreviewProviderCRP::ScaleComplete // -------------------------------------------------------------------------- // -void CPreviewProviderCRP::ScaleCompleteL( const CFbsBitmap& aBitmap ) +void CPreviewProviderCRP::ScaleCompleteL( const CFbsBitmap& aBitmap, + TBool aRotation ) { TSLOG_CONTEXT( ScaleComplete, TSLOG_LOCAL ); TSLOG_IN(); + TInt msgType = NPreviewMsg::EPreviewReady; + if ( aRotation ) + { + msgType = iClockwiseRot ? + NPreviewMsg::EBitmapRotationNeeded90 : + NPreviewMsg::EBitmapRotationNeeded270; + } + const TInt msg[] = { - NPreviewMsg::EPreviewReady, + msgType, iPrevId?iPrevId:iPrevReg, aBitmap.Handle() }; @@ -252,28 +260,6 @@ TSLOG_OUT(); } - -// -------------------------------------------------------------------------- -// CPreviewProviderCRP::BitmapRotationNeeded -// -------------------------------------------------------------------------- -// -void CPreviewProviderCRP::BitmapRotationNeeded( TInt aWgId, TBool aClockwise ) - { - TSLOG_CONTEXT( BitmapRotationNeeded, TSLOG_LOCAL ); - TSLOG_IN(); - - const TInt msg[] = { - aClockwise ? NPreviewMsg::EBitmapRotationNeeded90 : NPreviewMsg::EBitmapRotationNeeded270, - aWgId, - 0 - }; - TPckgC buf(msg); - SendMessage(buf); - - TSLOG_OUT(); - } - - // -------------------------------------------------------------------------- // CPreviewProviderCRP::Register // -------------------------------------------------------------------------- @@ -313,12 +299,12 @@ // CPreviewProviderCRP::ScreenShotL // -------------------------------------------------------------------------- // -void CPreviewProviderCRP::ScreenshotL() +void CPreviewProviderCRP::ScreenshotL( TBool aRotation ) { CFbsBitmap* screenshot = new (ELeave)CFbsBitmap(); CleanupStack::PushL( screenshot ); ScreenshotL( *screenshot ); - ScaleCompleteL( *screenshot ); + ScaleCompleteL( *screenshot, aRotation ); iScreenshots.InsertL( screenshot, iScreenshots.Count() ); CleanupStack::Pop( screenshot ); CheckOverflow(); diff -r 20d75ec6647e -r 9f918e984081 taskswitcher/contextengine/tsfswserver/engine/inc/tsfswdatalist.h --- a/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswdatalist.h Thu Sep 02 15:42:21 2010 +0100 +++ b/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswdatalist.h Fri Sep 17 15:37:16 2010 +0100 @@ -149,6 +149,11 @@ */ TInt FindMostTopParentWgId( TInt aWgId ); + /** + * Remove all screenshots from hidden apps, they are not used. + */ + void RemoveHiddenAppsScrenshotsL(); + private: /** * Adds running apps to the list. diff -r 20d75ec6647e -r 9f918e984081 taskswitcher/contextengine/tsfswserver/engine/inc/tsfswengine.h --- a/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswengine.h Thu Sep 02 15:42:21 2010 +0100 +++ b/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswengine.h Fri Sep 17 15:37:16 2010 +0100 @@ -140,7 +140,8 @@ // from MTsFastSwapPreviewObserver void HandleFswPpApplicationChange( TInt aWgId, TInt aFbsHandle ); void HandleFswPpApplicationUnregistered( TInt aWgId ); - void HandleFswPpApplicationBitmapRotation( TInt aWgId, TBool aClockwise ); + void HandleFswPpApplicationBitmapRotation( TInt aWgId, + TInt aFbsHandle, TBool aClockwise ); void RotateL( CFbsBitmap& aBitmap, TInt aWgId, TBool aClockwise ); diff -r 20d75ec6647e -r 9f918e984081 taskswitcher/contextengine/tsfswserver/engine/src/tsfswdatalist.cpp --- a/taskswitcher/contextengine/tsfswserver/engine/src/tsfswdatalist.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/taskswitcher/contextengine/tsfswserver/engine/src/tsfswdatalist.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -737,6 +737,10 @@ if ( (iData[i]->Widget() == aConsiderWidgets) && !CheckIfExists(*iData[i], aListToFit) ) { + if( aConsiderWidgets ) + { + RemoveScreenshot( iData[i]->AppUid().iUid ); + } delete iData[i]; iData.Remove(i); changed = ETrue; @@ -831,5 +835,29 @@ return changed; } +// -------------------------------------------------------------------------- +// CTsFswDataList::RemoveScreenshotFromParent +// -------------------------------------------------------------------------- +// +void CTsFswDataList::RemoveHiddenAppsScrenshotsL() + { + RArray hiddenWgIds; + THashMapIter iter( iScreenshots ); + while ( const TInt* wgIdkey = iter.NextKey() ) + { + TInt wgId = *wgIdkey; + TBool hidden = HiddenApps()->IsHiddenL( AppUidForWgIdL( wgId), + iWsSession, wgId ); + if( hidden ) + { + hiddenWgIds.Append( wgId ); + } + } + for ( TInt i = 0; i < hiddenWgIds.Count(); i++) + { + RemoveScreenshot( hiddenWgIds[i] ); + } + hiddenWgIds.Reset(); + } // end of file diff -r 20d75ec6647e -r 9f918e984081 taskswitcher/contextengine/tsfswserver/engine/src/tsfswengine.cpp --- a/taskswitcher/contextengine/tsfswserver/engine/src/tsfswengine.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/taskswitcher/contextengine/tsfswserver/engine/src/tsfswengine.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -364,6 +364,7 @@ void CTsFswEngine::HiddenAppListUpdated() { UpdateTaskList(); + TRAP_IGNORE( iDataList->RemoveHiddenAppsScrenshotsL(); ) } // -------------------------------------------------------------------------- @@ -489,10 +490,15 @@ wgId = aWgId; } TInt err = iDataList->AppUidForWgId( wgId, appUid ); - if ( err || appUid == KTsCameraUid ) + TBool hidden = EFalse; + TRAP_IGNORE( + hidden = iDataList->HiddenApps()->IsHiddenL( appUid, iWsSession, aWgId) ); + if ( err || + KTsCameraUid == appUid || + hidden ) { - // Dont't assign screenshot to camera app - TSLOG0( TSLOG_LOCAL, "Screenshot for camera - ignore" ); + // Dont't assign screenshot to camera app or hidden app + TSLOG0( TSLOG_LOCAL, "Screenshot for camera or hidden app - ignore" ); iPreviewProvider->AckPreview(aFbsHandle); TSLOG_OUT(); return; @@ -529,11 +535,14 @@ // Callback from CTsFastSwapPreviewProvider // -------------------------------------------------------------------------- // -void CTsFswEngine::HandleFswPpApplicationBitmapRotation( TInt aWgId, TBool aClockwise ) +void CTsFswEngine::HandleFswPpApplicationBitmapRotation( TInt aWgId, + TInt aFbsHandle, TBool aClockwise ) { TSLOG_CONTEXT( HandleFswPpApplicationBitmapRotation, TSLOG_LOCAL ); TSLOG1_IN( "aWgId = %d", aWgId ); + HandleFswPpApplicationChange( aWgId, aFbsHandle ); + CFbsBitmap** bmp = iDataList->FindScreenshot(aWgId); if ( bmp ) diff -r 20d75ec6647e -r 9f918e984081 taskswitcher/taskswitcherui/taskswitcherapp/group/tsapp.mmp --- a/taskswitcher/taskswitcherui/taskswitcherapp/group/tsapp.mmp Thu Sep 02 15:42:21 2010 +0100 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/group/tsapp.mmp Fri Sep 17 15:37:16 2010 +0100 @@ -20,7 +20,9 @@ #include #include "../inc/tsuid.hrh" -EPOCHEAPSIZE 0x100000 0xa00000 // 1 Mb - 10 Mb +#ifndef WINSCW + EPOCHEAPSIZE 0x100000 0xa00000 // 1 Mb - 10 Mb +#endif EPOCSTACKSIZE 0x5000 // 20KB TARGET taskswitcher.exe @@ -37,6 +39,7 @@ SOURCE tstaskswitcher.cpp SOURCE tsappview.cpp SOURCE tsfastswaparea.cpp +SOURCE tsfastswapareautils.cpp SOURCE tsfastswapgrid.cpp SOURCE tsdevicestate.cpp SOURCE tseventcontroler.cpp @@ -81,6 +84,7 @@ LIBRARY akntouchgesturefw.lib LIBRARY aknphysics.lib LIBRARY touchfeedback.lib +LIBRARY bitmaptransforms.lib DEBUGLIBRARY flogger.lib diff -r 20d75ec6647e -r 9f918e984081 taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappui.h --- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappui.h Thu Sep 02 15:42:21 2010 +0100 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappui.h Fri Sep 17 15:37:16 2010 +0100 @@ -45,9 +45,6 @@ public: enum { - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - //TODO make maping to NGA transition id - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ENoneTransition = 0, EForegroundTransition = 3, EBackgroundTransition = 4, @@ -214,6 +211,13 @@ * Currently it recognises only camera app as multimedia app. */ TBool IsUnderlyingAppMultimediaL(); + + /** + * Obtain aplication id by it's window group Id. + * + * @return TUid aplication id. + */ + TUid GetAppIdL( TInt aWgId ); private: diff -r 20d75ec6647e -r 9f918e984081 taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h --- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h Thu Sep 02 15:42:21 2010 +0100 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h Fri Sep 17 15:37:16 2010 +0100 @@ -34,6 +34,8 @@ class CTsEventControler; class MTsDataChangeObserver; class CAknLongTapAnimation; +class CTsFastSwapAreaExtension; +class CAknPointerEventSuppressor; /** * Taskswitcher Fast Swap area UI. @@ -180,6 +182,13 @@ void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType); public: + + enum TsFastSwapAreaGridData { + EMaxItemsOnScreen = 1, + EGridItemWidth, + EGridItemGap + }; + /** * Implements drag gesture handling * @see MTsEventControlerObserver @@ -229,6 +238,21 @@ */ TBool WgOnTaskList( TInt aWgId ); + /** + * Returns full grid view size. + */ + TSize GridWorldSize(); + + /** + * Retrieves number of items in grid + */ + TInt GridItemCount(); + + /** + * Returnes value of the requested grid data + */ + TInt GetGridItemData( TsFastSwapAreaGridData aDataType ); + public: // from CCoeControl TInt CountComponentControls() const; @@ -262,23 +286,21 @@ * Switches to another application. */ void SwitchToApp( TInt aWgId, const TUid& aUid ); - - /** - * Makes a copy of the given bitmap. - * Also scaled to the given size, but maintains aspect ratio, - * so the size of the returned bitmap may be less then aSize. - */ - CFbsBitmap* CopyBitmapL( TInt aFbsHandle, TSize aSize ); /** - * Called from HandleFswContentChanged. + * Update and prepare data for grid. */ - void HandleFswContentChangedL(); + void GetContentForGrid(); /** - * Shows the content from iArray on the screen. + * Obtain actual data from server. + */ + void GetContentL(); + + /** + * Prepare the content from iArray to be shown on the screen. */ - void RenderContentL( TBool aSuppressAnimation = EFalse ); + void RenderContentL( ); /** * Creates the ganes grid control. @@ -296,11 +318,6 @@ * @param aItemCount number of items in grid */ void LayoutGridViewL( TInt aItemCount ); - - /** - * Returns rectangles for fast swap area controls - */ - void GetFastSwapAreaRects( RArray& aRects ); /** * Creates a stylus popup instance (iPopup) if not yet done. @@ -320,22 +337,6 @@ void NotifyChange(); /** - * Retrieves and returns size for image graphics. - */ - TSize PreferredImageSize(); - - /** - * Retrieves number of items in grid - */ - TInt GridItemCount(); - - /** - * Calculates the correct size if aspect ratio needs to be preserved. - */ - TSize CalculateSizePreserveRatio(const TSize& aTargetAreaSize, - const TSize& aSourceSize); - - /** * Selects next item in grid */ void SelectNextItem(); @@ -350,11 +351,6 @@ void CenterItem( TInt aRedrawDelay); /** - * Returns full grid view size. - */ - TSize GridWorldSize(); - - /** * Updates grid, called for manual grid scroll update * * @param aForceRedraw if set to ETrue - redraw will be forced @@ -369,53 +365,12 @@ TSize ViewSize(); /** - * Returns the position of the given item inside grid world rect. - * Returns point in the middle of the view rectangle. - * - * @param aItemIdx index of the item for which calculation will be done - */ - TPoint ItemViewPosition( TInt aItemIdx ); - - /** - * Returns index of the shown item, based on the logical - * position of the grids view. Item that is closest to the - * middle of screen is returned. - * - * @param aViewPos grids view position. This must be point in - * the middle of the view rectangle - * @return index of the item - */ - TInt ViewToVisibleItem( const TPoint aViewPos ); - - /** - * Launches increasing pop-up feedback. - */ - void LaunchPopupFeedback(); - - /** * Show highlight when disabled and * consume EEventKeyUp that follows after event that swiched on the highlight. */ TKeyResponse ShowHighlightOnKeyEvent(const TKeyEvent& aKeyEvent, TEventCode aType); /** - * Returns current screen orientation: - * - * @return 1 if landscape, 0 if portait - */ - TInt GetCurrentScreenOrientation(); - - /** - * Retrieves variety value, based on current screen resolution. - * - * @param aVariety result of the function, 0 value means portrait - * value of 1 indicates landscape - * @return ETrue if screen resolution differs from vale returned by - * layout meta data functions. - */ - TBool GetVariety( TInt& aVariety ); - - /** * Cancels long tap animation. */ void CancelLongTapAnimation( TBool aDisablePopup = ETrue ); @@ -434,6 +389,9 @@ // parent control CCoeControl& iParent; + // utility helper class + CTsFastSwapAreaExtension* iFastSwapExt; + // device state // not own CTsDeviceState& iDeviceState; @@ -485,6 +443,8 @@ // Key event handling TBool iConsumeEvent; TBool iKeyEvent; + CAknPointerEventSuppressor* iEventSupressor; + TBool iSupressDrag; // App closing handling RArray iIsClosing; @@ -495,6 +455,9 @@ CAknLongTapAnimation* iLongTapAnimation; CTsFastSwapTimer* iLongTapAnimationTimer; TBool iLongTapAnimationRunning; + + // Screenshot handling + RArray iPrevScreenshots; }; #endif // TSFASTSWAPAREA_H diff -r 20d75ec6647e -r 9f918e984081 taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapareautils.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapareautils.h Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,220 @@ +/* +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Fast swap area utilities classes + * +*/ + +#ifndef TSFASTSWAPAREAUTILS_H_ +#define TSFASTSWAPAREAUTILS_H_ + +#include + +// Forwar class declarations +class CEikonEnv; +class TAknLayoutRect; +class CTsFastSwapTimer; +class CTsFastSwapArea; +class CTsFastSwapGrid; +class CTsFswEntry; +class CBitmapScaler; +class CTsFastSwapAreaExtension; + + +/** + * Interface for observing timer class. + */ +class MTsFastSwapTimerObserver + { +public: + /** + * Called when timer is completed + */ + virtual void TimerCompletedL( CTsFastSwapTimer* aSource ) = 0; + }; + + + +/** + * Timer class for handling timed events + */ +class CTsFastSwapTimer : public CTimer + { +public: + // Constructor + CTsFastSwapTimer( MTsFastSwapTimerObserver& aObserver ); + // Destructor + ~CTsFastSwapTimer(); + // 2nd phase constructor + void ConstructL(); + +private: // From CTimer + void RunL(); + +private: // Data + MTsFastSwapTimerObserver* iObserver; // not own + }; + + + +/** + * Asynchronous class for handling screenshots loading + * and rescaling to achieve better quality. + */ +class CTsBitmapScaleTask : public CActive + { +public: + CTsBitmapScaleTask( CTsFastSwapAreaExtension& aObserver ); + ~CTsBitmapScaleTask(); + void StartLD( CFbsBitmap* aSourceBitmap, + CFbsBitmap* aTargetBitmap ); +private: + void RunL(); + void DoCancel(); +private: + // Data + CTsFastSwapAreaExtension& iObserver; + CBitmapScaler* iScaler; // owned + CFbsBitmap* iSourceBmp; // owned + }; + + + +/** + * Utility class containg methods for fast swap area handling. + */ +class CTsFastSwapAreaExtension: public CBase + { + +public: + + /** + * Two-phase constructor. + * + * @param aRect Area where fast swap info & list should draw itself. + * @param aParent Parent CoeControl. + */ + static CTsFastSwapAreaExtension* NewL( CTsFastSwapArea& aFastSwapArea, + CEikonEnv& aEnv); + + /** + * @copydoc NewL + */ + static CTsFastSwapAreaExtension* NewLC( CTsFastSwapArea& aFastSwapArea, + CEikonEnv& aEnv ); + + /** + * Destructor. + */ + ~CTsFastSwapAreaExtension(); + +private: + + /** + * @copydoc NewL + */ + void ConstructL(); + + /** + * C++ constructor. + */ + CTsFastSwapAreaExtension( CTsFastSwapArea& aFastSwapArea, + CEikonEnv& aEnv ); + +public: + + /** + * Returns current screen orientation: + * + * @return 1 if landscape, 0 if portait + */ + TInt GetCurrentScreenOrientation(); + + /** + * Retrieves variety value, based on current screen resolution. + * + * @param aVariety result of the function, 0 value means portrait + * value of 1 indicates landscape + * @return ETrue if screen resolution differs from vale returned by + * layout meta data functions. + */ + TBool GetVariety( TInt& aVariety ); + + /** + * Returns rectangles for fast swap area controls + */ + void GetFastSwapAreaRects( RArray& aRects ); + + /** + * Returns the position of the given item inside grid world rect. + * Returns point in the middle of the view rectangle. + * + * @param aItemIdx index of the item for which calculation will be done + */ + TPoint ItemViewPosition( TInt aItemIdx ); + + /** + * Returns index of the shown item, based on the logical + * position of the grids view. Item that is closest to the + * middle of screen is returned. + * + * @param aViewPos grids view position. This must be point in + * the middle of the view rectangle + * @return index of the item + */ + TInt ViewToVisibleItem( const TPoint aViewPos ); + + /** + * Launches increasing pop-up feedback. + */ + void LaunchPopupFeedback(); + + /** + * Retrieves and returns size for image graphics. + */ + TSize PreferredImageSize(); + + /** + * Calculates the correct size if aspect ratio needs to be preserved. + */ + TSize CalculateSizePreserveRatio(const TSize& aTargetAreaSize, + const TSize& aSourceSize); + + /** + * Makes a copy of the given bitmap. + * Also scaled to the given size, but maintains aspect ratio, + * so the size of the returned bitmap may be less then aSize. + */ + CFbsBitmap* CopyBitmapL( TInt aFbsHandle, TSize aSize, TBool aIsScreenshot ); + + /** + * Cancels ongoing scale tasks + */ + void CancelScaleTasks(); + + /** + * Callback for updating task list. + */ + void ScaleFinished( CTsBitmapScaleTask* iFinishedTask ); + +private: // Data + + CTsFastSwapArea& iFastSwapArea; + + CEikonEnv& iEnv; + + RPointerArray iScaleTasks; + + }; + +#endif /* TSFASTSWAPAREAUTILS_H_ */ diff -r 20d75ec6647e -r 9f918e984081 taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapgrid.h --- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapgrid.h Thu Sep 02 15:42:21 2010 +0100 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapgrid.h Fri Sep 17 15:37:16 2010 +0100 @@ -22,9 +22,9 @@ #include #include #include "tsdevicestate.h" +#include "tsfastswapareautils.h" class CAknsFrameBackgroundControlContext; -class CTsFastSwapTimer; /** * Observer for handling fast swap grid events @@ -42,16 +42,6 @@ }; -class MTsFastSwapTimerObserver - { -public: - /** - * Called when timer is completed - */ - virtual void TimerCompletedL( CTsFastSwapTimer* aSource ) = 0; - }; - - /** * Avkon grid implementing custom item drawer */ @@ -375,25 +365,4 @@ }; - -/** - * Timer class for handling highlight bevaiour - */ -class CTsFastSwapTimer : public CTimer - { -public: - // Constructor - CTsFastSwapTimer( MTsFastSwapTimerObserver& aObserver ); - // Destructor - ~CTsFastSwapTimer(); - // 2nd phase constructor - void ConstructL(); - -private: // From CTimer - void RunL(); - -private: // Data - MTsFastSwapTimerObserver* iObserver; // not own - }; - #endif /* TSFASTSWAPGRID_H_ */ diff -r 20d75ec6647e -r 9f918e984081 taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp --- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -155,6 +155,7 @@ iApplicationTask.SetWgId( iWg.Identifier() ); // And finally, go to background. + iForeground = ETrue; MoveAppToBackground( ENoneTransition ); iEikonEnv->RootWin().SetOrdinalPosition(-1, ECoeWinPriorityNeverAtFront); @@ -167,11 +168,6 @@ iUiStarted = EFalse; iDisableAppKeyHandling = EFalse; - // Set process priority to high to avoid being - // locked by heavy ui apps processing - iEikonEnv->WsSession().ComputeMode(RWsSession::EPriorityControlDisabled); - RProcess().SetPriority(EPriorityHigh); - iForegroundDelayed = EFalse; iDelayedForegroundInProgress = EFalse; @@ -183,7 +179,7 @@ // Perform the first phase of two phase construction // ----------------------------------------------------------------------------- // -CTsAppUi::CTsAppUi(): iForeground( ETrue ), +CTsAppUi::CTsAppUi(): iForeground( EFalse ), iApplicationTask( iCoeEnv->WsSession() ) { // no implementation required @@ -196,7 +192,7 @@ // CTsAppUi::~CTsAppUi() { - if( GfxTransEffect::IsRegistered( iAppView ) ) + if( iAppView && GfxTransEffect::IsRegistered( iAppView ) ) { GfxTransEffect::Deregister(iAppView); @@ -270,6 +266,7 @@ TUint aSubCom ) { const TDesC8* ptr = reinterpret_cast(iAppView); + GfxTransEffect::AbortFullScreen(); GfxTransEffect::Abort(iAppView); GfxTransEffect::Begin( iAppView, aTranstionId ); GfxTransEffect::SetDemarcation( iAppView, iAppView->Rect() ); @@ -301,6 +298,7 @@ { // App start animation const TDesC8* ptr = reinterpret_cast(iAppView); + GfxTransEffect::AbortFullScreen(); GfxTransEffect::Abort(iAppView); TInt groupId = GfxTransEffect::BeginGroup(); GfxTransEffect::BeginFullScreen( @@ -538,6 +536,8 @@ // TInt CTsAppUi::GoToBackgroundTimerCallback( TAny* aParam ) { + TSLOG_STATIC_CONTEXT( GoToBackgroundTimerCallback, TSLOG_LOCAL, RThread().Id() ); + TSLOG_IN(); CTsAppUi* self = static_cast( aParam ); if ( self->iGoToBackgroundTimer ) { @@ -550,7 +550,7 @@ // Notify self->HandleSwitchToBackgroundEvent(); - + TSLOG_OUT(); return 0; } @@ -584,6 +584,10 @@ TSLOG_CONTEXT( MoveAppToForeground, TSLOG_LOCAL ); TSLOG_IN(); + if ( !iUiStarted ) + { + TRAP_IGNORE( iUnderAppWgId = WgIdOfUnderlyingAppL(EFalse) ); + } iUiStarted = ETrue; // Request window server to bring our application @@ -626,7 +630,8 @@ { iForeground = EFalse; SetTaskswitcherStateProperty( KTaskswitcherBackgroundValue ); - + + iAppView->MakeVisible( EFalse ); // notify view iAppView->HandleSwitchToBackgroundEvent(); @@ -743,7 +748,6 @@ { SetOrientationL(EAppUiOrientationPortrait); } - RProcess().SetPriority(EPriorityForeground); SetFullScreenApp(EFalse); iEikonEnv->RootWin().SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront); } @@ -765,7 +769,6 @@ iEikonEnv->RootWin().SetOrdinalPosition(-1, ECoeWinPriorityNeverAtFront); SetOrientationL(EAppUiOrientationAutomatic); SetFullScreenApp(EFalse); - RProcess().SetPriority(EPriorityHigh); } TSLOG_OUT(); } @@ -802,12 +805,16 @@ void CTsAppUi::HandleWsEventL(const TWsEvent& aEvent, CCoeControl* aDestination) { + TSLOG_CONTEXT( CTsAppUi::HandleWsEventL, TSLOG_LOCAL ); CAknAppUi::HandleWsEventL(aEvent, aDestination); TInt eventType = aEvent.Type(); if ( eventType == EEventWindowGroupListChanged ) { TInt wgId = WgIdOfUnderlyingAppL(EFalse); + TSLOG2( TSLOG_INFO, "WgIdOfUnderlyingAppL: %d appId: %d", + wgId, GetAppIdL( wgId ).iUid ); if ( iForeground && + wgId && wgId != iUnderAppWgId && !iAppView->AppCloseInProgress(iUnderAppWgId) && !iAppView->WgOnTaskList(wgId) ) @@ -820,6 +827,7 @@ } iUnderAppWgId = wgId; } + TSLOG_OUT(); } @@ -829,12 +837,19 @@ // TInt CTsAppUi::WgIdOfUnderlyingAppL( TBool aIgnoreParentChild ) { + TSLOG_CONTEXT( CTsAppUi::WgIdOfUnderlyingAppL, TSLOG_LOCAL ); TInt retVal(0); TInt underlyingWg = CheckForUnderlyingHiddenAppsL(); if ( !underlyingWg ) { - TApaTaskList taskList( iEikonEnv->WsSession() ); + TApaTaskList taskList(iEikonEnv->WsSession()); underlyingWg = taskList.FindByPos(0).WgId(); + if ( !(GetAppIdL(underlyingWg).iUid) ) + { + TSLOG1 (TSLOG_INFO, "Incorrect underlying window group: %d.", underlyingWg ); + TSLOG0 (TSLOG_INFO, "No association to appId, nor special handling for underlying hidden apps.Change return value into 0."); + underlyingWg = 0; + } } if ( aIgnoreParentChild ) @@ -846,6 +861,7 @@ TInt parentWg = GetTopParentWg( underlyingWg ); retVal = parentWg ? parentWg : underlyingWg; } + TSLOG_OUT(); return retVal; } @@ -916,10 +932,7 @@ TInt underlyingWg(allWgIds[0].iId); CleanupStack::PopAndDestroy(&allWgIds); - CApaWindowGroupName* windowName = - CApaWindowGroupName::NewLC( iEikonEnv->WsSession(), underlyingWg ); - TUid appUid = windowName->AppUid(); - CleanupStack::PopAndDestroy( windowName ); + TUid appUid = GetAppIdL( underlyingWg ); if( appUid == KTsCameraUid || appUid == KTsTelephoneUid ) { @@ -939,10 +952,7 @@ TApaTaskList taskList( iEikonEnv->WsSession() ); TInt underlyingWg = taskList.FindByPos(0).WgId(); - CApaWindowGroupName* windowName = - CApaWindowGroupName::NewLC( iEikonEnv->WsSession(), underlyingWg ); - TUid appUid = windowName->AppUid(); - CleanupStack::PopAndDestroy( windowName ); + TUid appUid = GetAppIdL( underlyingWg ); if ( appUid == KTsCameraUid ) { retVal = ETrue; @@ -961,4 +971,18 @@ return iDelayedForegroundInProgress; } +// ----------------------------------------------------------------------------- +// CTsAppUi::GetAppIdL +// ----------------------------------------------------------------------------- +// +TUid CTsAppUi::GetAppIdL( TInt aWgId ) + { + TUid retVal; + CApaWindowGroupName* windowName = + CApaWindowGroupName::NewLC( iEikonEnv->WsSession(), aWgId ); + retVal = windowName->AppUid(); + CleanupStack::PopAndDestroy( windowName ); + return retVal; + } + // End of file diff -r 20d75ec6647e -r 9f918e984081 taskswitcher/taskswitcherui/taskswitcherapp/src/tsappview.cpp --- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappview.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappview.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -205,9 +205,18 @@ bgTport.LayoutRect( iViewRect, AknLayoutScalable_Apps::bg_popup_window_pane_cp01( variety ) ); iBgContextOuterRect = bgTport.Rect(); - bgTport.LayoutRect( iBgContextOuterRect, - AknLayoutScalable_Avkon::aid_inside_area_window_primary( variety ) ); - iBgContextInnerRect = bgTport.Rect(); + if( iBgContextOuterRect == iViewRect ) + { + //full screen + iBgContextInnerRect = iBgContextOuterRect; + } + else + { + bgTport.LayoutRect( iBgContextOuterRect, + AknLayoutScalable_Avkon:: + aid_inside_area_window_primary( variety ) ); + iBgContextInnerRect = bgTport.Rect(); + } TSLOG4( TSLOG_INFO, "outer rect for popup = %d %d %d %d", iBgContextOuterRect.iTl.iX, iBgContextOuterRect.iTl.iY, iBgContextOuterRect.iBr.iX, iBgContextOuterRect.iBr.iY ); @@ -243,7 +252,6 @@ iAppsHeading->ConstructL( KNullDesC() ); iAppsHeading->SetLayout( CAknPopupHeadingPane::EListHeadingPane ); - //TODO: check why we need to set rect (set already in contructL) iFastSwapArea->SetRect( rects[1] ); // cannot be before iAppsHeading constructL iAppsHeading->SetRect( rects[0] ); diff -r 20d75ec6647e -r 9f918e984081 taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp --- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -28,12 +28,11 @@ #include #include #include -#include -#include -#include #include +#include #include "tsfastswaparea.h" +#include "tsfastswapareautils.h" #include "tsapplogging.h" #include "tsfswclient.h" #include "tsappui.h" @@ -58,6 +57,7 @@ const TInt KAppKeyTypeLong = 2; const TInt KLayoutItemCount = 4; +const TInt KLayoutItemGap = 0; const TInt KRedrawTime = 250000; // 0.25 sec const TInt KRedrawTimeForLayoutSwitch = 700000; // 0.7 sec @@ -66,12 +66,17 @@ const TInt KOrientationSwitchTime = 1000000; // 1 sec const TInt KLongTapAnimationInitTime = 150000; // 0.15 sec const TInt KLongTapAnimationTimeout = 1000000; // 1 sec +const TInt KPointerEventSuppressorMaxTapDuration = 400000; // 0.4 sec +const TInt KPointerEventSuppressorMaxTapMoveWidth = 3; +const TInt KPointerEventSuppressorMaxTapMoveHeight = 8; const TInt KMaxGranularity = 4; const TUid KTsMenuUid = { 0x101f4cd2 }; const TUid KTsHomescreenUid = { 0x102750f0 }; + + // ----------------------------------------------------------------------------- // CTsFastSwapArea::NewL // ----------------------------------------------------------------------------- @@ -109,7 +114,9 @@ CTsDeviceState& aDeviceState, CTsEventControler& aEventHandler) : iParent(aParent), iDeviceState(aDeviceState), iEvtHandler(aEventHandler), - iIgnoreLayoutSwitch(EFalse), iWidgetClosingCount(0), iLongTapAnimationRunning(EFalse) + iGridItemGap(KLayoutItemGap), iIgnoreLayoutSwitch(EFalse), + iSupressDrag(EFalse),iWidgetClosingCount(0), + iLongTapAnimationRunning(EFalse) { // no implementation required } @@ -131,6 +138,9 @@ delete iOrientationSignalTimer; delete iLongTapAnimation; delete iLongTapAnimationTimer; + delete iFastSwapExt; + iPrevScreenshots.Close(); + delete iEventSupressor; } // ----------------------------------------------------------------------------- @@ -143,6 +153,9 @@ SetRect( aRect ); + // Create utility class + iFastSwapExt = CTsFastSwapAreaExtension::NewL( *this, *iEikonEnv ); + // setup grid ReCreateGridL(); @@ -175,6 +188,12 @@ iActivateOnPointerRelease = TPoint(); iHandlePointerCandidate = EFalse; + iEventSupressor = CAknPointerEventSuppressor::NewL(); + TSize maxTapMove(KPointerEventSuppressorMaxTapMoveWidth, + KPointerEventSuppressorMaxTapMoveHeight ); + iEventSupressor->SetMaxTapMove(maxTapMove); + iEventSupressor->SetMaxTapDuration(KPointerEventSuppressorMaxTapDuration); + ActivateL(); } @@ -241,25 +260,31 @@ // void CTsFastSwapArea::LayoutGridL() { + TSLOG_CONTEXT( CTsFastSwapArea::LayoutGridL, TSLOG_LOCAL ); + TSLOG_IN(); + RArray rects; CleanupClosePushL(rects); rects.ReserveL(KLayoutItemCount); - GetFastSwapAreaRects(rects); + iFastSwapExt->GetFastSwapAreaRects(rects); TAknLayoutRect gridAppPane = rects[0]; TAknLayoutRect gridItem = rects[1]; TAknLayoutRect gridImage = rects[2]; - TAknLayoutRect gridNextItem = rects[3]; + CleanupStack::PopAndDestroy(&rects); iGrid->SetRect(gridAppPane.Rect()); + CTsAppUi* appUi = static_cast(iEikonEnv->AppUi()); + TInt variety; - TBool disable = GetVariety(variety); + TBool disable = iFastSwapExt->GetVariety(variety); if ( disable ) { - TRAP_IGNORE(static_cast(iEikonEnv->AppUi())->RequestPopUpL()); + TRAP_IGNORE(appUi->RequestPopUpL()); } variety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0; // double check to avoid layout panic + TSLOG1( TSLOG_INFO, "variety %d", variety ); TAknLayoutScalableParameterLimits gridParams = AknLayoutScalable_Apps::cell_tport_appsw_pane_ParamLimits( variety ); @@ -290,14 +315,6 @@ iGrid->ItemDrawer()->FormattedCellData()->SetSubCellColorsL(1, colors); iGrid->SetStrokeColors(textColor, highlightTextColor); - if ( AknLayoutUtils::LayoutMirrored() ) - { - iGridItemGap = gridItem.Rect().iTl.iX - gridNextItem.Rect().iBr.iX; - } - else - { - iGridItemGap = gridNextItem.Rect().iTl.iX - gridItem.Rect().iBr.iX; - } iMaxItemsOnScreen = Rect().Width() / gridItem.Rect().Width(); if ( iMaxItemsOnScreen > 1 ) { @@ -309,7 +326,6 @@ } } iGridItemWidth = gridItem.Rect().Width(); - // Update item drawer iGrid->UpdateItemDrawerLayoutDataL(); @@ -318,8 +334,10 @@ if ( disable ) { - TRAP_IGNORE(static_cast(iEikonEnv->AppUi())->DisablePopUpL()); + TRAP_IGNORE(appUi->DisablePopUpL()); } + + TSLOG_OUT(); } @@ -332,7 +350,7 @@ RArray rects; CleanupClosePushL(rects); rects.ReserveL(KLayoutItemCount); - GetFastSwapAreaRects(rects); + iFastSwapExt->GetFastSwapAreaRects(rects); TAknLayoutRect gridItem = rects[1]; CleanupStack::PopAndDestroy(&rects); if ( aItemCount ) @@ -361,48 +379,6 @@ } } - -// -------------------------------------------------------------------------- -// CTsFastSwapArea::GetFastSwapAreaRects -// -------------------------------------------------------------------------- -// -void CTsFastSwapArea::GetFastSwapAreaRects( RArray& aRects ) - { - TAknLayoutRect gridAppPane; - TAknLayoutRect gridItem; - TAknLayoutRect gridImage; - TAknLayoutRect gridNextItem; - - TInt variety; - TBool disable = GetVariety(variety); - if ( disable ) - { - TRAP_IGNORE(static_cast(iEikonEnv->AppUi())->RequestPopUpL()); - } - variety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0; // double check to avoid layout panic - - gridAppPane.LayoutRect( Rect(), - AknLayoutScalable_Apps::tport_appsw_pane( variety ) ); - aRects.Append(gridAppPane); - - gridItem.LayoutRect( gridAppPane.Rect(), - AknLayoutScalable_Apps::cell_tport_appsw_pane( variety, 0, 0 ) ); - aRects.Append(gridItem); - - gridImage.LayoutRect( gridItem.Rect(), - AknLayoutScalable_Apps::cell_tport_appsw_pane_g1( variety ) ); - aRects.Append(gridImage); - gridNextItem.LayoutRect( gridAppPane.Rect(), - AknLayoutScalable_Apps::cell_tport_appsw_pane_cp03( variety ) ); - aRects.Append(gridNextItem); - - if ( disable ) - { - TRAP_IGNORE(static_cast(iEikonEnv->AppUi())->DisablePopUpL()); - } - } - - // -------------------------------------------------------------------------- // CTsFastSwapArea::Setup // -------------------------------------------------------------------------- @@ -554,7 +530,7 @@ } // Orientation update - iPrevScreenOrientation = GetCurrentScreenOrientation(); + iPrevScreenOrientation = iFastSwapExt->GetCurrentScreenOrientation(); iOrientationSignalTimer->Cancel(); iOrientationSignalTimer->After(KOrientationSwitchTime); } @@ -624,8 +600,31 @@ { TSLOG_CONTEXT( HandleFswContentChanged, TSLOG_LOCAL ); TSLOG_IN(); + + //prepare grid with current content from fastswap server + GetContentForGrid(); + // draw + UpdateGrid( ETrue, ETrue ); + // notify observer, if present + NotifyChange(); + + TSLOG_OUT(); + } - TRAPD( err, HandleFswContentChangedL() ); +// -------------------------------------------------------------------------- +// CTsFastSwapArea::GetContentForGrid +// -------------------------------------------------------------------------- +// +void CTsFastSwapArea::GetContentForGrid() + { + TSLOG_CONTEXT( GetContentForGrid, TSLOG_LOCAL ); + TSLOG_IN(); + TRAPD( err, + // get current content from fastswap server + GetContentL(); + // prepare grid content + RenderContentL(); + ) if ( err != KErrNone ) { TSLOG1( TSLOG_INFO, "leave occured: %d", err ); @@ -635,25 +634,23 @@ } // -------------------------------------------------------------------------- -// CTsFastSwapArea::HandleFswContentChangedL +// CTsFastSwapArea::GetContentL // -------------------------------------------------------------------------- // -void CTsFastSwapArea::HandleFswContentChangedL() +void CTsFastSwapArea::GetContentL() { - TSLOG_CONTEXT( HandleFswContentChangedL, TSLOG_LOCAL ); + TSLOG_CONTEXT( GetContentL, TSLOG_LOCAL ); TSLOG_IN(); - - // get current content from fastswap server iFSClient->GetContentL( iArray ); - -#ifdef _DEBUG + + #ifdef _DEBUG for ( TInt i = 0, ie = iArray.Count(); i != ie; ++i ) { CTsFswEntry* e = iArray[i]; const TDesC& name( e->AppName() ); TSLOG4( TSLOG_INFO, "[%d]: %d %d %S", i, e->WgId(), e->AppUid(), &name ); } -#endif + #endif // Update closing widget count if necessary if ( iWidgetClosingCount ) @@ -668,13 +665,6 @@ } iWidgetClosingCount = widgetCount; } - - // draw - RenderContentL(); - - // notify observer, if present - NotifyChange(); - TSLOG_OUT(); } @@ -682,13 +672,16 @@ // CTsFastSwapArea::RenderContentL // -------------------------------------------------------------------------- // -void CTsFastSwapArea::RenderContentL( TBool aSuppressAnimation ) +void CTsFastSwapArea::RenderContentL( ) { TSLOG_CONTEXT( RenderContentL, TSLOG_LOCAL ); TSLOG_IN(); _LIT(KSeparator, "\t"); + // Cancel ongoing scaling + iFastSwapExt->CancelScaleTasks(); + CArrayPtr* iconArray = new ( ELeave ) CAknIconArray( KMaxGranularity ); CleanupStack::PushL( iconArray ); CDesCArrayFlat* textArray = new ( ELeave ) CDesCArrayFlat( KMaxGranularity ); @@ -697,10 +690,15 @@ CleanupClosePushL(closeItemArray); RArray strokeItemArray; CleanupClosePushL(strokeItemArray); + RArray screenshotList; + CleanupClosePushL(screenshotList); // Update view based on number of items LayoutGridViewL( iArray.Count() ); + CArrayPtr* oldIconArray = + iGrid->ItemDrawer()->FormattedCellData()->IconArray(); + for ( TInt i = 0; i < iArray.Count(); ++i ) { const TDesC& appName( iArray[i]->AppName() ); @@ -713,19 +711,21 @@ formAppName.Append(appName); textArray->AppendL(formAppName); CleanupStack::PopAndDestroy(&formAppName); - TSize sz = PreferredImageSize(); - + TSize sz = iFastSwapExt->PreferredImageSize(); + // take the screenshot or appicon+mask and make a copy and scale CFbsBitmap* bitmap = 0; TInt h = iArray[i]->ScreenshotHandle(); TSLOG2( TSLOG_INFO, "'%S' screenshot handle %d", &appName, h ); TInt maskh = 0; CFbsBitmap* mask = 0; + TBool isScreenshot( ETrue ); if ( !h ) { // No screenshot, take app icon h = iArray[i]->AppIconBitmapHandle(); maskh = iArray[i]->AppIconMaskHandle(); + isScreenshot = EFalse; TSLOG1( TSLOG_INFO, "using appicon, handle = %d", h ); } else @@ -734,11 +734,31 @@ strokeItemArray.AppendL(i); } __ASSERT_DEBUG( h, User::Invariant() ); - bitmap = CopyBitmapL( h, sz ); + + // check screenshot - if it exists already, use it + // so there is no unnecessary scaling performed + screenshotList.AppendL( h ); + TInt idx = iPrevScreenshots.Find( h ); + if ( idx != KErrNotFound && oldIconArray && idx < oldIconArray->Count() ) + { + CGulIcon* existingIcon = oldIconArray->At( idx ); + if ( existingIcon->Bitmap() ) + { + h = existingIcon->Bitmap()->Handle(); + if ( existingIcon->Mask() ) + { + maskh = existingIcon->Mask()->Handle(); + } + isScreenshot = EFalse; + } + } + + // create bitmap for grid item + bitmap = iFastSwapExt->CopyBitmapL( h, sz, isScreenshot ); CleanupStack::PushL( bitmap ); if ( maskh ) { - mask = CopyBitmapL( maskh, sz ); + mask = iFastSwapExt->CopyBitmapL( maskh, sz, EFalse ); } CleanupStack::PushL( mask ); @@ -753,10 +773,16 @@ closeItemArray.AppendL(i); } } + // Update screenshot list + iPrevScreenshots.Reset(); + for ( TInt i = 0; i < screenshotList.Count(); i++ ) + { + iPrevScreenshots.AppendL( screenshotList[i] ); + } + CleanupStack::PopAndDestroy( &screenshotList ); + // Setup grid iGrid->Model()->SetItemTextArray(textArray); - CArrayPtr* oldIconArray = - iGrid->ItemDrawer()->FormattedCellData()->IconArray(); if(oldIconArray) { delete oldIconArray; @@ -785,37 +811,9 @@ { iGrid->SetCurrentDataIndex( GridItemCount() - 1 ); } - UpdateGrid( ETrue, !aSuppressAnimation ); - TSLOG_OUT(); } -// -------------------------------------------------------------------------- -// CTsFastSwapArea::CopyBitmapL -// Copy and scale. -// -------------------------------------------------------------------------- -// -CFbsBitmap* CTsFastSwapArea::CopyBitmapL( TInt aFbsHandle, TSize aSize ) - { - CFbsBitmap* ret = new (ELeave) CFbsBitmap(); - CleanupStack::PushL( ret ); - - CFbsBitmap* bmp = new (ELeave) CFbsBitmap(); - CleanupStack::PushL( bmp ); - User::LeaveIfError( bmp->Duplicate( aFbsHandle ) ); - - // do not always use aSize, preserving the aspect ratio is quite - // important when showing app icons instead of screenshots - TSize sz = CalculateSizePreserveRatio( aSize, bmp->SizeInPixels() ); - User::LeaveIfError( ret->Create( sz, bmp->DisplayMode() ) ); - - AknIconUtils::ScaleBitmapL( sz, ret, bmp ); - - CleanupStack::PopAndDestroy( bmp ); - CleanupStack::Pop( ret ); - - return ret; - } // -------------------------------------------------------------------------- // CTsFastSwapArea::CountComponentControls @@ -891,19 +889,22 @@ iGrid->ShowHighlight(); } - // get the current task list - HandleFswContentChanged(); + //prepare grid with current content from fastswap server + GetContentForGrid(); + //restore default selection + RestoreSelectedIndex(); + // draw + UpdateGrid( ETrue, EFalse ); + // notify observer, if present + NotifyChange(); // and then start listening for changes iFSClient->Subscribe( *this ); - RestoreSelectedIndex(); - UpdateGrid(EFalse, EFalse); - iRedrawTimer->Cancel(); iRedrawTimer->After(KRedrawTime); // give feedback - LaunchPopupFeedback(); + iFastSwapExt->LaunchPopupFeedback(); iPrevAppCount = iArray.Count(); @@ -1049,9 +1050,11 @@ // void CTsFastSwapArea::HandlePointerEventL( const TPointerEvent& aPointerEvent ) { + TBool supressed = iEventSupressor->SuppressPointerEvent( aPointerEvent ); iKeyEvent = EFalse; if(aPointerEvent.iType == TPointerEvent::EButton1Down) { + iSupressDrag = EFalse; iHandlePointerCandidate = ETrue; iTapEvent = aPointerEvent; iGrid->EnableAknEventHandling(EFalse); @@ -1064,10 +1067,15 @@ iLongTapAnimationTimer->After(KLongTapAnimationInitTime); } } + else if( aPointerEvent.iType == TPointerEvent::EDrag ) + { + iSupressDrag = supressed; + } else if ( aPointerEvent.iType == TPointerEvent::EButton1Up ) { CancelLongTapAnimation( EFalse ); - if( iActivateOnPointerRelease != TPoint() ) + if( iActivateOnPointerRelease != TPoint() || + iSupressDrag) { iHandlePointerCandidate = ETrue; TapL(iActivateOnPointerRelease); @@ -1201,7 +1209,7 @@ } else if ( aSource == iOrientationSignalTimer ) { - TInt currentOrientation = GetCurrentScreenOrientation(); + TInt currentOrientation = iFastSwapExt->GetCurrentScreenOrientation(); if ( currentOrientation != iPrevScreenOrientation ) { // Order layout change @@ -1275,7 +1283,7 @@ { static_cast(iEikonEnv->AppUi())->RequestPopUpL(); // give feedback - LaunchPopupFeedback(); + iFastSwapExt->LaunchPopupFeedback(); // save index for later use & show popup iAppIndexForPopup = aIndex; iPopup->SetPosition( aPoint, CAknStylusPopUpMenu::EPositionTypeLeftBottom ); @@ -1317,24 +1325,6 @@ } // ----------------------------------------------------------------------------- -// CTsFastSwapArea::PreferredImageSize -// ----------------------------------------------------------------------------- -// -TSize CTsFastSwapArea::PreferredImageSize() - { - TAknLayoutRect gridImage; - TRAP_IGNORE( - RArray rects; - CleanupClosePushL(rects); - rects.ReserveL(KLayoutItemCount); - GetFastSwapAreaRects(rects); - gridImage = rects[2]; - CleanupStack::PopAndDestroy(&rects); - ); - return gridImage.Rect().Size(); - } - -// ----------------------------------------------------------------------------- // CTsFastSwapArea::GridItemCount // ----------------------------------------------------------------------------- // @@ -1343,6 +1333,32 @@ return iGrid->Model()->ItemTextArray()->MdcaCount(); } + +// ----------------------------------------------------------------------------- +// CTsFastSwapArea::GridItemCount +// ----------------------------------------------------------------------------- +// +TInt CTsFastSwapArea::GetGridItemData( TsFastSwapAreaGridData aDataType ) + { + TInt retVal; + switch ( aDataType ) + { + case EMaxItemsOnScreen: + retVal = iMaxItemsOnScreen; + break; + case EGridItemWidth: + retVal = iGridItemWidth; + break; + case EGridItemGap: + retVal = iGridItemGap; + break; + default: + retVal = KErrArgument; + break; + } + return retVal; + } + // ----------------------------------------------------------------------------- // CTsFastSwapArea::HandleListBoxEventL // ----------------------------------------------------------------------------- @@ -1371,25 +1387,6 @@ } } -// -------------------------------------------------------------------------- -// CTsFastSwapArea::CalculateSizePreserveRatio -// -------------------------------------------------------------------------- -// -TSize CTsFastSwapArea::CalculateSizePreserveRatio( - const TSize& aTargetAreaSize, - const TSize& aSourceSize ) - { - const TReal - resizedAspectRatio(aTargetAreaSize.iWidth/(TReal)aTargetAreaSize.iHeight); - const TReal - orginalAspectRatio(aSourceSize.iWidth/(TReal)aSourceSize.iHeight); - //this condition avoid empty margins ( bigger output ). to realy fit area change it - const TReal scaleFactor = - ( orginalAspectRatio > resizedAspectRatio ) ? - (aTargetAreaSize.iHeight /(TReal)aSourceSize.iHeight) ://scale by height - (aTargetAreaSize.iWidth /(TReal)aSourceSize.iWidth) ;//scale by width - return TSize(aSourceSize.iWidth * scaleFactor, aSourceSize.iHeight * scaleFactor); - } // -------------------------------------------------------------------------- // CTsFastSwapArea::SelectNextItem @@ -1421,7 +1418,7 @@ { if( iMaxItemsOnScreen < GridItemCount() ) { - TInt visibleItem = ViewToVisibleItem( ViewPos() ); + TInt visibleItem = iFastSwapExt->ViewToVisibleItem( ViewPos() ); if(iKeyEvent) { visibleItem = SelectedIndex(); @@ -1462,7 +1459,7 @@ // void CTsFastSwapArea::UpdateGrid( TBool aForceRedraw, TBool aAnimate ) { - TPoint targetPoint = ItemViewPosition( SelectedIndex() ); + TPoint targetPoint = iFastSwapExt->ItemViewPosition( SelectedIndex() ); if ( aForceRedraw || targetPoint.iX != ViewPos().iX ) { if ( aAnimate ) @@ -1646,7 +1643,7 @@ } // ----------------------------------------------------------------------------- -// CTsFastSwapArea::ViewSize +// CTsFastSwapArea::ViewPos // ----------------------------------------------------------------------------- // TPoint CTsFastSwapArea::ViewPos() const @@ -1664,211 +1661,6 @@ return retVal; } -// ----------------------------------------------------------------------------- -// CTsFastSwapArea::ItemPosition -// ----------------------------------------------------------------------------- -// -TPoint CTsFastSwapArea::ItemViewPosition( TInt aItemIdx ) - { - TPoint retVal = Rect().iTl; - if ( aItemIdx < 0 ) - { - // No items - retVal.iX = 0; - } - else if ( aItemIdx == 0 ) - { - // First item - if( AknLayoutUtils::LayoutMirrored() ) - { - if ( GridItemCount() > iMaxItemsOnScreen ) - { - retVal.iX = GridWorldSize().iWidth - Rect().Width(); - } - else - { - retVal.iX = 0; - } - } - else // normal layout - { - retVal.iX = 0; - } - } - else if ( aItemIdx == GridItemCount() - 1 ) - { - // Last item selected - if( AknLayoutUtils::LayoutMirrored() ) - { - retVal.iX = 0; - } - else // normal layout - { - if ( GridItemCount() > iMaxItemsOnScreen ) - { - retVal.iX = GridWorldSize().iWidth - Rect().Width(); - } - else - { - retVal.iX = 0; - } - } - } - else - { - // Middle item - TInt screenMiddleItemOffset = ( Rect().Width() - iGridItemWidth ) / 2; - if( AknLayoutUtils::LayoutMirrored() ) - { - retVal.iX = iGridItemWidth * ( GridItemCount() - 1 - aItemIdx ) - screenMiddleItemOffset; - retVal.iX += ( GridItemCount() - 1 - aItemIdx ) * iGridItemGap; - } - else // normal layout - { - retVal.iX = iGridItemWidth * aItemIdx - screenMiddleItemOffset; - retVal.iX += iGridItemGap * aItemIdx; - } - if ( retVal.iX < 0 ) - { - retVal.iX = 0; - } - else if ( retVal.iX + Rect().Width() > GridWorldSize().iWidth ) - { - retVal.iX = GridWorldSize().iWidth - Rect().Width(); - } - } - - // Return middle of the view rectangle - retVal.iX += Rect().Width() / 2; - - return retVal; - } - -// ----------------------------------------------------------------------------- -// CTsFastSwapArea::ViewToVisibleItem -// ----------------------------------------------------------------------------- -// -TInt CTsFastSwapArea::ViewToVisibleItem( const TPoint aViewPos ) - { - TInt retVal(0); - TPoint absViewPos = aViewPos; - absViewPos.iX -= Rect().Width() / 2; - if ( absViewPos.iX < 0 ) - { - if ( AknLayoutUtils::LayoutMirrored() ) - { - // View crossed left border of grid world rect, last item selected - retVal = GridItemCount() - 1; - } - else // normal layout - { - // View crossed left border of grid world rect, first item selected - retVal = 0; - } - } - else if ( absViewPos.iX + Rect().Width() > GridWorldSize().iWidth ) - { - if ( AknLayoutUtils::LayoutMirrored() ) - { - // View crossed right border of grid world rect, first item selected - retVal = 0; - } - else // normal layout - { - // View crossed right border of grid world rect, last item selected - retVal = GridItemCount() - 1; - } - } - else - { - TInt retItemPosX(0); - TInt offsetCheck = GridWorldSize().iWidth; - // View inside of grid world rect - for ( TInt i = 0 ; i < GridItemCount(); i++ ) - { - TInt itemPosX = ItemViewPosition( i ).iX; - TInt offset = aViewPos.iX - itemPosX; - if ( Abs( offset ) <= offsetCheck ) - { - offsetCheck = Abs( offset ); - retVal = i; - retItemPosX = itemPosX; - } - else - { - break; - } - } - // Check if item is fully visible. If not - // return next one if possible - if ( retItemPosX - iGridItemWidth / 2 < absViewPos.iX && - retVal + 1 < GridItemCount() ) - { - retVal++; - } - } - - return retVal; - } - - -// ----------------------------------------------------------------------------- -// CTsFastSwapArea::LaunchPopupFeedback -// ----------------------------------------------------------------------------- -// -void CTsFastSwapArea::LaunchPopupFeedback() - { - if ( AknLayoutUtils::PenEnabled() ) - { - MTouchFeedback* feedback = MTouchFeedback::Instance(); - if ( feedback ) - { - TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp; - if ( CAknTransitionUtils::TransitionsEnabled( - AknTransEffect::EComponentTransitionsOff ) ) - { - fbLogicalType = ETouchFeedbackIncreasingPopUp; - } - feedback->InstantFeedback( this, - fbLogicalType, - ETouchFeedbackVibra, - TPointerEvent() ); - } - } - } - - -// ----------------------------------------------------------------------------- -// CTsFastSwapArea::GetCurrentScreenOrientation -// ----------------------------------------------------------------------------- -// -TInt CTsFastSwapArea::GetCurrentScreenOrientation() - { - TPixelsAndRotation availableRect; - iEikonEnv->ScreenDevice()->GetDefaultScreenSizeAndRotation(availableRect); - return availableRect.iPixelSize.iWidth > availableRect.iPixelSize.iHeight; - } - - -// ----------------------------------------------------------------------------- -// CTsFastSwapArea::GetVariety -// ----------------------------------------------------------------------------- -// -TBool CTsFastSwapArea::GetVariety( TInt& aVariety ) - { - aVariety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0; - TBool foreground = static_cast(iEikonEnv->AppUi())->IsForeground(); - if ( foreground ) - { - TInt screenOrientation = GetCurrentScreenOrientation(); - if ( aVariety != screenOrientation ) - { - aVariety = screenOrientation; - return ETrue; - } - } - return EFalse; - } // ----------------------------------------------------------------------------- // CTsFastSwapArea::IsAppClosing @@ -1924,6 +1716,7 @@ { retVal = ETrue; } + iPrevAppCount = appCount; return retVal; } diff -r 20d75ec6647e -r 9f918e984081 taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapareautils.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapareautils.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -0,0 +1,572 @@ +/* +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Taskswitcher Fast Swap area UI + * +*/ + +#include +#include +#include +#include +#include +#include +#include +#include + + +#include "tsfastswapareautils.h" +#include "tsfastswaparea.h" +#include "tsappui.h" +#include "tsfswentry.h" + + +const TInt KLayoutItemCount = 4; + + /* ================================================================================ + * CTsFastSwapTimer + * ================================================================================ + */ + +// ----------------------------------------------------------------------------- +// CTsFastSwapTimer::CTsFastSwapTimer +// ----------------------------------------------------------------------------- +// +CTsFastSwapTimer::CTsFastSwapTimer( MTsFastSwapTimerObserver& aObserver ) +: CTimer( EPriorityStandard ), + iObserver( &aObserver ) + { + } + + +// ----------------------------------------------------------------------------- +// CTsFastSwapTimer::CTsGridHighlightTimer +// ----------------------------------------------------------------------------- +// +CTsFastSwapTimer::~CTsFastSwapTimer() + { + Cancel(); + } + + +// ----------------------------------------------------------------------------- +// CTsFastSwapTimer::ConstructL +// ----------------------------------------------------------------------------- +// +void CTsFastSwapTimer::ConstructL() + { + CTimer::ConstructL(); + CActiveScheduler::Add( this ); + } + + +// ----------------------------------------------------------------------------- +// CTsFastSwapTimer::CTsGridHighlightTimer +// ----------------------------------------------------------------------------- +// +void CTsFastSwapTimer::RunL() + { + iObserver->TimerCompletedL(this); + } + + + +/* ================================================================================ + * CTsBitmapScaleTask + * ================================================================================ + */ + +// ----------------------------------------------------------------------------- +// CTsBitmapScaleTask:: +// ----------------------------------------------------------------------------- +// +CTsBitmapScaleTask::CTsBitmapScaleTask( CTsFastSwapAreaExtension& aObserver ) +: CActive(EPriorityStandard), + iObserver( aObserver ) + { + CActiveScheduler::Add( this ); + } + + +// ----------------------------------------------------------------------------- +// CTsBitmapScaleTask:: +// ----------------------------------------------------------------------------- +// +CTsBitmapScaleTask::~CTsBitmapScaleTask() + { + Cancel(); + delete iScaler; + delete iSourceBmp; + } + + +// ----------------------------------------------------------------------------- +// CTsBitmapScaleTask:: +// ----------------------------------------------------------------------------- +// +void CTsBitmapScaleTask::StartLD( CFbsBitmap* aSourceBitmap, + CFbsBitmap* aTargetBitmap ) + { + if ( !iScaler ) + { + iSourceBmp = aSourceBitmap; + iScaler = CBitmapScaler::NewL(); + iScaler->Scale( &iStatus, *aSourceBitmap, *aTargetBitmap ); + SetActive(); + } + } + + +// ----------------------------------------------------------------------------- +// CTsBitmapScaleTask:: +// ----------------------------------------------------------------------------- +// +void CTsBitmapScaleTask::RunL() + { + iObserver.ScaleFinished( this ); + delete this; + } + + +// ----------------------------------------------------------------------------- +// CTsBitmapScaleTask:: +// ----------------------------------------------------------------------------- +// +void CTsBitmapScaleTask::DoCancel() + { + iScaler->Cancel(); + } + + +/* ================================================================================ + * CTsFastSwapAreaExtension + * ================================================================================ + */ + +// ----------------------------------------------------------------------------- +// CTsFastSwapAreaExtension::NewL +// ----------------------------------------------------------------------------- +// +CTsFastSwapAreaExtension* CTsFastSwapAreaExtension::NewL( CTsFastSwapArea& aFastSwapArea, + CEikonEnv& aEnv ) + { + CTsFastSwapAreaExtension* self = CTsFastSwapAreaExtension::NewLC( + aFastSwapArea, aEnv ); + CleanupStack::Pop( self ); + return self; + } + + +// ----------------------------------------------------------------------------- +// CTsFastSwapAreaExtension::NewLC +// ----------------------------------------------------------------------------- +// +CTsFastSwapAreaExtension* CTsFastSwapAreaExtension::NewLC( CTsFastSwapArea& aFastSwapArea, + CEikonEnv& aEnv ) + { + CTsFastSwapAreaExtension* self = new (ELeave) CTsFastSwapAreaExtension( + aFastSwapArea, aEnv ); + CleanupStack::PushL( self ); + self->ConstructL(); + return self; + } + + +// ----------------------------------------------------------------------------- +// CTsFastSwapAreaExtension::~CTsFastSwapAreaExtension +// ----------------------------------------------------------------------------- +// +CTsFastSwapAreaExtension::~CTsFastSwapAreaExtension() + { + iScaleTasks.ResetAndDestroy(); + } + + +// ----------------------------------------------------------------------------- +// CTsFastSwapAreaExtension::ConstructL +// ----------------------------------------------------------------------------- +// +void CTsFastSwapAreaExtension::ConstructL() + { + } + + +// ----------------------------------------------------------------------------- +// CTsFastSwapAreaExtension::CTsFastSwapAreaExtension +// ----------------------------------------------------------------------------- +// +CTsFastSwapAreaExtension::CTsFastSwapAreaExtension( CTsFastSwapArea& aFastSwapArea, + CEikonEnv& aEnv ) +: iFastSwapArea( aFastSwapArea ), + iEnv( aEnv ) + { + } + +// ----------------------------------------------------------------------------- +// CTsFastSwapAreaExtension::GetCurrentScreenOrientation +// ----------------------------------------------------------------------------- +// +TInt CTsFastSwapAreaExtension::GetCurrentScreenOrientation() + { + TPixelsAndRotation availableRect; + iEnv.ScreenDevice()->GetDefaultScreenSizeAndRotation(availableRect); + return availableRect.iPixelSize.iWidth > availableRect.iPixelSize.iHeight; + } + + +// ----------------------------------------------------------------------------- +// CTsFastSwapAreaExtension::GetVariety +// ----------------------------------------------------------------------------- +// +TBool CTsFastSwapAreaExtension::GetVariety( TInt& aVariety ) + { + aVariety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0; + TBool foreground = static_cast(iEnv.AppUi())->IsForeground(); + if ( foreground ) + { + TInt screenOrientation = GetCurrentScreenOrientation(); + if ( aVariety != screenOrientation ) + { + aVariety = screenOrientation; + return ETrue; + } + } + return EFalse; + } + + +// -------------------------------------------------------------------------- +// CTsFastSwapAreaExtension::GetFastSwapAreaRects +// -------------------------------------------------------------------------- +// +void CTsFastSwapAreaExtension::GetFastSwapAreaRects( RArray& aRects ) + { + TAknLayoutRect gridAppPane; + TAknLayoutRect gridItem; + TAknLayoutRect gridImage; + TInt variety; + TBool disable = GetVariety(variety); + if ( disable ) + { + TRAP_IGNORE(static_cast(iEnv.AppUi())->RequestPopUpL()); + } + variety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0; // double check to avoid layout panic + gridAppPane.LayoutRect( iFastSwapArea.Rect(), + AknLayoutScalable_Apps::tport_appsw_pane_g1( variety ) ); + aRects.Append(gridAppPane); + + gridItem.LayoutRect( gridAppPane.Rect(), + AknLayoutScalable_Apps::cell_tport_appsw_pane( variety, 0, 0 ) ); + aRects.Append(gridItem); + + gridImage.LayoutRect( gridItem.Rect(), + AknLayoutScalable_Apps::cell_tport_appsw_pane_g1( variety ) ); + aRects.Append(gridImage); + + if ( disable ) + { + TRAP_IGNORE(static_cast(iEnv.AppUi())->DisablePopUpL()); + } + } + + +// ----------------------------------------------------------------------------- +// CTsFastSwapAreaExtension::ItemPosition +// ----------------------------------------------------------------------------- +// +TPoint CTsFastSwapAreaExtension::ItemViewPosition( TInt aItemIdx ) + { + TPoint retVal = iFastSwapArea.Rect().iTl; + TInt maxItemsOnScreen = iFastSwapArea.GetGridItemData( CTsFastSwapArea::EMaxItemsOnScreen ); + TInt gridItemWidth = iFastSwapArea.GetGridItemData( CTsFastSwapArea::EGridItemWidth ); + TInt gridItemGap = iFastSwapArea.GetGridItemData( CTsFastSwapArea::EGridItemGap ); + + if ( aItemIdx < 0 ) + { + // No items + retVal.iX = 0; + } + else if ( aItemIdx == 0 ) + { + // First item + if( AknLayoutUtils::LayoutMirrored() ) + { + if ( iFastSwapArea.GridItemCount() > maxItemsOnScreen ) + { + retVal.iX = iFastSwapArea.GridWorldSize().iWidth - iFastSwapArea.Rect().Width(); + } + else + { + retVal.iX = 0; + } + } + else // normal layout + { + retVal.iX = 0; + } + } + else if ( aItemIdx == iFastSwapArea.GridItemCount() - 1 ) + { + // Last item selected + if( AknLayoutUtils::LayoutMirrored() ) + { + retVal.iX = 0; + } + else // normal layout + { + if ( iFastSwapArea.GridItemCount() > maxItemsOnScreen ) + { + retVal.iX = iFastSwapArea.GridWorldSize().iWidth - iFastSwapArea.Rect().Width(); + } + else + { + retVal.iX = 0; + } + } + } + else + { + // Middle item + TInt screenMiddleItemOffset = ( iFastSwapArea.Rect().Width() - gridItemWidth ) / 2; + if( AknLayoutUtils::LayoutMirrored() ) + { + retVal.iX = gridItemWidth * ( iFastSwapArea.GridItemCount() - 1 - aItemIdx ) - screenMiddleItemOffset; + retVal.iX += ( iFastSwapArea.GridItemCount() - 1 - aItemIdx ) * gridItemGap; + } + else // normal layout + { + retVal.iX = gridItemWidth * aItemIdx - screenMiddleItemOffset; + retVal.iX += gridItemGap * aItemIdx; + } + if ( retVal.iX < 0 ) + { + retVal.iX = 0; + } + // aligin to grid end edge in case + // (item's position + draw area) extends over grid area and + // (all items cover more than grid area or penultimate item) + else if ( retVal.iX + iFastSwapArea.Rect().Width() > iFastSwapArea.GridWorldSize().iWidth && + (iFastSwapArea.GridWorldSize().iWidth > gridItemWidth * iFastSwapArea.GridItemCount() || + (aItemIdx > 1 && aItemIdx == iFastSwapArea.GridItemCount() - 2 )) ) + { + retVal.iX = iFastSwapArea.GridWorldSize().iWidth - iFastSwapArea.Rect().Width(); + } + } + + // Return middle of the view rectangle + retVal.iX += iFastSwapArea.Rect().Width() / 2; + + return retVal; + } + + +// ----------------------------------------------------------------------------- +// CTsFastSwapAreaExtension::ViewToVisibleItem +// ----------------------------------------------------------------------------- +// +TInt CTsFastSwapAreaExtension::ViewToVisibleItem( const TPoint aViewPos ) + { + TInt retVal(0); + TPoint absViewPos = aViewPos; + absViewPos.iX -= iFastSwapArea.Rect().Width() / 2; + if ( absViewPos.iX < 0 ) + { + if ( AknLayoutUtils::LayoutMirrored() ) + { + // View crossed left border of grid world rect, last item selected + retVal = iFastSwapArea.GridItemCount() - 1; + } + else // normal layout + { + // View crossed left border of grid world rect, first item selected + retVal = 0; + } + } + else if ( absViewPos.iX + iFastSwapArea.Rect().Width() > iFastSwapArea.GridWorldSize().iWidth ) + { + if ( AknLayoutUtils::LayoutMirrored() ) + { + // View crossed right border of grid world rect, first item selected + retVal = 0; + } + else // normal layout + { + // View crossed right border of grid world rect, last item selected + retVal = iFastSwapArea.GridItemCount() - 1; + } + } + else + { + TInt retItemPosX(0); + TInt offsetCheck = iFastSwapArea.GridWorldSize().iWidth; + // View inside of grid world rect + for ( TInt i = 0 ; i < iFastSwapArea.GridItemCount(); i++ ) + { + TInt itemPosX = ItemViewPosition( i ).iX; + TInt offset = aViewPos.iX - itemPosX; + if ( Abs( offset ) <= offsetCheck ) + { + offsetCheck = Abs( offset ); + retVal = i; + retItemPosX = itemPosX; + } + else + { + break; + } + } + // Check if item is fully visible. If not + // return next one if possible + TInt gridItemWidth = iFastSwapArea.GetGridItemData( CTsFastSwapArea::EGridItemWidth ); + if ( retItemPosX - gridItemWidth / 2 < absViewPos.iX && + retVal + 1 < iFastSwapArea.GridItemCount() ) + { + retVal++; + } + } + + return retVal; + } + + +// ----------------------------------------------------------------------------- +// CTsFastSwapAreaExtension::LaunchPopupFeedback +// ----------------------------------------------------------------------------- +// +void CTsFastSwapAreaExtension::LaunchPopupFeedback() + { + if ( AknLayoutUtils::PenEnabled() ) + { + MTouchFeedback* feedback = MTouchFeedback::Instance(); + if ( feedback ) + { + TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp; + if ( CAknTransitionUtils::TransitionsEnabled( + AknTransEffect::EComponentTransitionsOff ) ) + { + fbLogicalType = ETouchFeedbackIncreasingPopUp; + } + feedback->InstantFeedback( &iFastSwapArea, + fbLogicalType, + ETouchFeedbackVibra, + TPointerEvent() ); + } + } + } + + +// ----------------------------------------------------------------------------- +// CTsFastSwapAreaExtension::PreferredImageSize +// ----------------------------------------------------------------------------- +// +TSize CTsFastSwapAreaExtension::PreferredImageSize() + { + TAknLayoutRect gridImage; + TRAP_IGNORE( + RArray rects; + CleanupClosePushL(rects); + rects.ReserveL(KLayoutItemCount); + GetFastSwapAreaRects(rects); + gridImage = rects[2]; + CleanupStack::PopAndDestroy(&rects); + ); + return gridImage.Rect().Size(); + } + +// -------------------------------------------------------------------------- +// CTsFastSwapAreaExtension::CalculateSizePreserveRatio +// -------------------------------------------------------------------------- +// +TSize CTsFastSwapAreaExtension::CalculateSizePreserveRatio( + const TSize& aTargetAreaSize, + const TSize& aSourceSize ) + { + const TReal + resizedAspectRatio(aTargetAreaSize.iWidth/(TReal)aTargetAreaSize.iHeight); + const TReal + orginalAspectRatio(aSourceSize.iWidth/(TReal)aSourceSize.iHeight); + //this condition avoid empty margins ( bigger output ). to realy fit area change it + const TReal scaleFactor = + ( orginalAspectRatio > resizedAspectRatio ) ? + (aTargetAreaSize.iHeight /(TReal)aSourceSize.iHeight) ://scale by height + (aTargetAreaSize.iWidth /(TReal)aSourceSize.iWidth) ;//scale by width + return TSize(aSourceSize.iWidth * scaleFactor, aSourceSize.iHeight * scaleFactor); + } + + +// -------------------------------------------------------------------------- +// CTsFastSwapAreaExtension::CopyBitmapL +// Copy and scale. +// -------------------------------------------------------------------------- +// +CFbsBitmap* CTsFastSwapAreaExtension::CopyBitmapL( TInt aFbsHandle, TSize aSize, TBool aIsScreenshot ) + { + CFbsBitmap* ret = new (ELeave) CFbsBitmap(); + CleanupStack::PushL( ret ); + + CFbsBitmap* bmp = new (ELeave) CFbsBitmap(); + CleanupStack::PushL( bmp ); + User::LeaveIfError( bmp->Duplicate( aFbsHandle ) ); + + // First scale using normal method, to show "draft" screenshots. + // Do not always use aSize, preserving the aspect ratio is quite + // important when showing app icons instead of screenshots + TSize sz = CalculateSizePreserveRatio( aSize, bmp->SizeInPixels() ); + User::LeaveIfError( ret->Create( sz, bmp->DisplayMode() ) ); + AknIconUtils::ScaleBitmapL( sz, ret, bmp ); + + // Second, if it is screenshot, perform quality improvement scaling + if ( aIsScreenshot ) + { + CTsBitmapScaleTask* rotaTask = new (ELeave) CTsBitmapScaleTask( *this ); + CleanupStack::PushL( rotaTask ); + iScaleTasks.AppendL( rotaTask ); + rotaTask->StartLD( bmp, ret ); // ownership of bmp transferred + CleanupStack::Pop( rotaTask ); + CleanupStack::Pop( bmp ); + } + else + { + CleanupStack::PopAndDestroy( bmp ); + } + + CleanupStack::Pop( ret ); + return ret; + } + + +// -------------------------------------------------------------------------- +// CTsFastSwapAreaExtension::CancelScaleTasks +// -------------------------------------------------------------------------- +// +void CTsFastSwapAreaExtension::CancelScaleTasks() + { + iScaleTasks.ResetAndDestroy(); + } + + +// -------------------------------------------------------------------------- +// CTsFastSwapAreaExtension::ScaleFinished +// -------------------------------------------------------------------------- +// +void CTsFastSwapAreaExtension::ScaleFinished( CTsBitmapScaleTask* iFinishedTask ) + { + TInt task = iScaleTasks.Find( iFinishedTask ); + if ( task != KErrNotFound ) + { + iScaleTasks.Remove( task ); + } + iFastSwapArea.DrawDeferred(); + } + + // End of file diff -r 20d75ec6647e -r 9f918e984081 taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapgrid.cpp --- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapgrid.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapgrid.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -515,16 +515,14 @@ EMbmAvkonQgn_indi_button_preview_close_mask )); - TAknLayoutRect gridAppPane; TAknLayoutRect gridItem; TAknLayoutRect gridImage; TAknLayoutRect gridCloseButton; TAknLayoutRect gridCloseIcon; TInt variety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0; - TRect source = iParent ? iParent->Rect() : Rect(); - gridAppPane.LayoutRect( source, - AknLayoutScalable_Apps::tport_appsw_pane( variety ) ); - gridItem.LayoutRect( gridAppPane.Rect(), + + TRect source = Rect(); + gridItem.LayoutRect( source, AknLayoutScalable_Apps::cell_tport_appsw_pane( variety, 0, 0 ) ); gridImage.LayoutRect( gridItem.Rect(), AknLayoutScalable_Apps::cell_tport_appsw_pane_g1( variety ) ); @@ -865,53 +863,5 @@ retVal.iBr.iY -= iCloseButtonRect.iBr.iY - iCloseIconRect.iBr.iY; return retVal; } - - - - /* ================================================================================ - * CTsGridHighlightTimer - * ================================================================================ - */ - -// ----------------------------------------------------------------------------- -// CTsGridHighlightTimer::CTsGridHighlightTimer -// ----------------------------------------------------------------------------- -// -CTsFastSwapTimer::CTsFastSwapTimer( MTsFastSwapTimerObserver& aObserver ) -: CTimer( EPriorityStandard ), - iObserver( &aObserver ) - { - } - - -// ----------------------------------------------------------------------------- -// CTsGridHighlightTimer::CTsGridHighlightTimer -// ----------------------------------------------------------------------------- -// -CTsFastSwapTimer::~CTsFastSwapTimer() - { - Cancel(); - } - - -// ----------------------------------------------------------------------------- -// CTsGridHighlightTimer::ConstructL -// ----------------------------------------------------------------------------- -// -void CTsFastSwapTimer::ConstructL() - { - CTimer::ConstructL(); - CActiveScheduler::Add( this ); - } - - -// ----------------------------------------------------------------------------- -// CTsGridHighlightTimer::CTsGridHighlightTimer -// ----------------------------------------------------------------------------- -// -void CTsFastSwapTimer::RunL() - { - iObserver->TimerCompletedL(this); - } - + // End of file diff -r 20d75ec6647e -r 9f918e984081 taskswitcher/taskswitcherui/taskswitcherapp/src/tsphysicsengine.cpp --- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsphysicsengine.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsphysicsengine.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -72,7 +72,7 @@ void CTsPhysicsEngine::ConstructL(MAknPhysicsObserver& aPhysicObserver, CCoeControl& aViewControl) { - iPhysics = CAknPhysics::NewL(aPhysicObserver, &aViewControl);//TODO: + iPhysics = CAknPhysics::NewL(aPhysicObserver, &aViewControl); iTaskswitcherPhysics = CTsPhysics::NewL(aPhysicObserver); } diff -r 20d75ec6647e -r 9f918e984081 taskswitcher/taskswitcherui/taskswitcherappecom/group/tsappecom.mmp --- a/taskswitcher/taskswitcherui/taskswitcherappecom/group/tsappecom.mmp Thu Sep 02 15:42:21 2010 +0100 +++ b/taskswitcher/taskswitcherui/taskswitcherappecom/group/tsappecom.mmp Fri Sep 17 15:37:16 2010 +0100 @@ -44,6 +44,7 @@ LIBRARY ecom.lib LIBRARY apgrfx.lib LIBRARY cone.lib +LIBRARY apparc.lib DEBUGLIBRARY flogger.lib diff -r 20d75ec6647e -r 9f918e984081 taskswitcher/taskswitcherui/taskswitcherappecom/inc/tsappecom.h --- a/taskswitcher/taskswitcherui/taskswitcherappecom/inc/tsappecom.h Thu Sep 02 15:42:21 2010 +0100 +++ b/taskswitcher/taskswitcherui/taskswitcherappecom/inc/tsappecom.h Fri Sep 17 15:37:16 2010 +0100 @@ -21,6 +21,7 @@ #include #include +#include /** * Taskswitcher ecom plugin which is loaded by AknCapServer as an alternate Fast @@ -102,7 +103,28 @@ * Defines the P&S property. */ void DefineTaskswitcherStateProperty(); - + + /** + * Checks if Task Switcher is running. + */ + TBool IsTaskSwitcherStarted(); + + /** + * Starts Task Switche app by calling StartTaskSwitcherL. + * + * @return KErrNone if succesful or error code. + */ + TInt StartTaskSwitcher(); + + /** + * Starts Task Switche app. + * + * @return KErrNone if succesful or error code. + */ + TInt StartTaskSwitcherL(); + +private: + RApaLsSession iApaLsSession; }; #endif // TSAPPECOM_H diff -r 20d75ec6647e -r 9f918e984081 taskswitcher/taskswitcherui/taskswitcherappecom/src/tsappecom.cpp --- a/taskswitcher/taskswitcherui/taskswitcherappecom/src/tsappecom.cpp Thu Sep 02 15:42:21 2010 +0100 +++ b/taskswitcher/taskswitcherui/taskswitcherappecom/src/tsappecom.cpp Fri Sep 17 15:37:16 2010 +0100 @@ -74,6 +74,7 @@ TSLOG_IN(); DefineTaskswitcherStateProperty(); + User::LeaveIfError( iApaLsSession.Connect() ); TSLOG_OUT(); } @@ -85,6 +86,7 @@ // CTsEcomPlugin::~CTsEcomPlugin() { + iApaLsSession.Close(); } // --------------------------------------------------------------------------- @@ -188,18 +190,11 @@ TSLOG_CONTEXT( CTsEcomPlugin::IsReady, TSLOG_LOCAL ); TSLOG_IN(); - TBool ret = EFalse; - CEikonEnv* eikonEnv = CEikonEnv::Static(); + TBool ret = ETrue; - if ( eikonEnv ) + if( !IsTaskSwitcherStarted() ) { - TApaTaskList taskList( eikonEnv->WsSession() ); - TApaTask task = taskList.FindApp( KTaskswitcherAppUidValue ); - - if ( task.Exists() ) - { - ret = ETrue; - } + ret = (KErrNone == StartTaskSwitcher()) ? ETrue : EFalse; } TSLOG1_OUT( "IsReady returns: %d", ret ); @@ -249,4 +244,72 @@ TSLOG_OUT(); } +// ----------------------------------------------------------------------------- +// CTsEcomPlugin::IsTaskSwitcherStarted +// ----------------------------------------------------------------------------- +// +TBool CTsEcomPlugin::IsTaskSwitcherStarted() + { + TSLOG_CONTEXT( CTsEcomPlugin::IsTaskSwitcherStarted, TSLOG_LOCAL ); + TSLOG_IN(); + + TBool ret(EFalse); + CEikonEnv* eikonEnv = CEikonEnv::Static(); + if ( eikonEnv ) + { + TApaTaskList taskList( eikonEnv->WsSession() ); + TApaTask task = taskList.FindApp( KTaskswitcherAppUidValue ); + if ( task.Exists() ) + { + ret = ETrue; + } + } + TSLOG1( TSLOG_INFO, "TaskSwitcherStarted: %d", ret); + TSLOG_OUT(); + return ret; + } + +// ----------------------------------------------------------------------------- +// CTsEcomPlugin::StartTaskSwitcher +// ----------------------------------------------------------------------------- +// +TInt CTsEcomPlugin::StartTaskSwitcher() + { + TInt ret(0); + TRAPD(err, ret = StartTaskSwitcherL() ); + if( KErrNone != err ) + { + ret = err; + } + return ret; + } + +// ----------------------------------------------------------------------------- +// CTsEcomPlugin::StartTaskSwitcherL +// ----------------------------------------------------------------------------- +// +TInt CTsEcomPlugin::StartTaskSwitcherL() + { + TSLOG_CONTEXT( CTsEcomPlugin::StartTaskSwitcher, TSLOG_LOCAL ); + TSLOG_IN(); + TInt ret(KErrNone); + + TApaAppInfo appInfo; + TApaAppCapabilityBuf capabilityBuf; + ret = iApaLsSession.GetAppInfo( appInfo, KTaskswitcherAppUidValue ); + if ( !ret ) + { + TFileName appName = appInfo.iFullName; + CApaCommandLine* cmdLine = CApaCommandLine::NewLC(); + cmdLine->SetExecutableNameL( appName ); + cmdLine->SetCommandL( EApaCommandRun ); + ret = iApaLsSession.StartApp( *cmdLine ); + CleanupStack::PopAndDestroy( cmdLine ); + } + + TSLOG1( TSLOG_INFO, "RApaLsSession::StartApp returned with: %d", ret ); + TSLOG_OUT(); + return ret; + } + // End of file