--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/empty_2001f47f/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,55 @@
+/*
+* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* The information required for building
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+// Support for productization and Carbide.Ui customization
+//********************************************************
+../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/empty_2001f47f/hsps/manifest.dat
+../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/empty_2001f47f/hsps/widgetconfiguration.xml
+../xuikon/00/empty.dat /epoc32/data/Z/resource/homescreen/empty_2001f47f/xuikon/empty_2001f47f.dat
+../xuikon/00/empty.css /epoc32/data/Z/resource/homescreen/empty_2001f47f/xuikon/empty.css
+../xuikon/00/empty.xml /epoc32/data/Z/resource/homescreen/empty_2001f47f/xuikon/empty.xml
+
+// Support for S60 builds
+//***********************
+../rom/empty_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(empty_2001f47f_variant.iby)
+../rom/empty.iby CORE_APP_LAYER_IBY_EXPORT_PATH(empty_2001f47f.iby)
+
+// Dtd-localization
+//*****************
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME empty_2001f47f
+OPTION DTD_TYPE widget
+OPTION LOC_FOLDERS yes
+END
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+
+// End of File
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/empty_2001f47f/hsps/00/manifest.dat Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+
+<package version="2.0">
+
+
+ <family>qhd_tch</family>
+ <family>vga_tch</family>
+
+
+
+ <type>widget</type>
+
+
+
+ <!-- interface uid -->
+
+ <interfaceuid>0x2001f48a</interfaceuid>
+
+
+
+ <!-- vendor uid -->
+
+ <provideruid>0x101fb657</provideruid>
+
+
+
+ <!-- uid -->
+
+ <configurationuid>0x2001f47f</configurationuid>
+
+
+
+ <!-- description -->
+
+ <fullname>&qtn_empty_2001f47f_name;</fullname>
+
+ <shortname>empty</shortname>
+
+ <version>1.0</version>
+
+
+
+ <!-- configuration -->
+
+ <filexml>widgetconfiguration.xml</filexml>
+
+
+ <!-- Locale independent/common resources -->
+
+ <fileresource>empty.o0000</fileresource>
+
+
+
+ <!-- Locale specific resources -->
+
+ <localization/>
+
+
+
+</package>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/empty_2001f47f/hsps/00/widgetconfiguration.xml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,5 @@
+<configuration>
+ <control>
+ <settings/>
+ </control>
+</configuration>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/empty_2001f47f/rom/empty.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Empty widget HSPS-plugin IBY file
+*
+*/
+
+#ifndef __EMPTY_2001F47F_IBY__
+#define __EMPTY_2001F47F_IBY__
+
+// Enabled by DTD-localization tools
+data=ZPRIVATE\200159c0\install\empty_2001f47f\xuikon\00\empty.o0000 \private\200159c0\install\empty_2001f47f\xuikon\00\empty.o0000
+data=ZPRIVATE\200159c0\install\empty_2001f47f\hsps\00\manifest.dat \private\200159c0\install\empty_2001f47f\hsps\00\manifest.dat
+
+#endif // __EMPTY_2001F47F_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/empty_2001f47f/rom/empty_variant.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Empty widget HSPS-plugin variant specific IBY file.
+*
+*/
+
+#ifndef __EMPTY_2001F47F_VARIANT_IBY__
+#define __EMPTY_2001F47F_VARIANT_IBY__
+
+// Enabled by variation tools, variant specific
+data=ZPRIVATE\200159c0\install\empty_2001f47f\hsps\00\widgetconfiguration.xml \private\200159c0\install\empty_2001f47f\hsps\00\widgetconfiguration.xml
+
+#endif // __EMPTY_2001F47F_VARIANT_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/empty_2001f47f/xuikon/00/empty.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,6 @@
+widget
+{
+ display: none;
+ visibility: hidden;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/empty_2001f47f/xuikon/00/empty.dat Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<data>
+ <AppUid>E029CF57</AppUid>
+ <Provideruid>101FB657</Provideruid>
+ <ThemeUid>11001001</ThemeUid>
+ <ThemeFullName>empty</ThemeFullName>
+ <ThemeShortName>empty</ThemeShortName>
+ <ThemeVersion>1.0</ThemeVersion>
+ <FileXML>empty.xml</FileXML>
+ <FileCSS>empty.css</FileCSS>
+</data>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/empty_2001f47f/xuikon/00/empty.xml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
+ <widget id="empty"/>
+</xmluiml>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,24 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: The information required for building
+*
+*/
+
+#include "../empty_2001f47f/group/bld.inf"
+#include "../view_200286ed/group/bld.inf"
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/view_200286ed/conf/view200286ed.confml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration xmlns="http://www.s60.com/xml/confml/2" name="Banko Homescreen" version="1">
+ <feature ref="BlankoHomescreenPlugins" name="Blanko Homescreen Widgets">
+ <setting ref="Plugins" name="Widgets" type="sequence">
+ <desc>Widgets on Blanko Homescreen</desc>
+ <setting ref="Uid" name="Widget" type="string">
+ <desc>Widget name</desc>
+ <option name="Empty" value="0x2001f47f"/>
+ <option name="wrtplugin_1" value="0x20022FD4"/>
+ <option name="wrtplugin_2" value="0x20022FD5"/>
+ <option name="wrtplugin_3" value="0x20022FD6"/>
+ <option name="wrtplugin_4" value="0x20022FD7"/>
+ <option name="wrtplugin_5" value="0x20022FD8"/>
+ <option name="wrtplugin_6" value="0x20022FD9"/>
+ <option name="wrtplugin_7" value="0x20022FDA"/>
+ <option name="wrtplugin_8" value="0x20022FDB"/>
+ <option name="wrtplugin_9" value="0x2001CB7D"/>
+ <option name="wrtplugin_10" value="0x2001CB7E"/>
+ <option name="wrtplugin_11" value="0x2001CB7F"/>
+ <option name="wrtplugin_12" value="0x200286EE"/>
+ </setting>
+ <setting ref="BundleIdentifier" name="Bundle Identifier" type="string">
+ <desc>Bundle identifier for the (C)WRT widgets. Leave empty if not set.</desc>
+ <option name="8TV Catch Up" value="com.nerdattack.widget.8TV"/>
+ <option name="Aftonbladet WebbTV" value="apegroup.aftonbladet.webbtv.symbian3"/>
+ <option name="Al Jazeera" value="si.inova.verve.aljazeera"/>
+ <option name="BBC Arabic Web TV" value="com.nokia.forum.bbcatv1.widget"/>
+ <option name="BH TV" value="com.bollywoodhungama.widget.BollywoodHungamaTV"/>
+ <option name="Channel NewsAsia" value="Channel.newsasia"/>
+ <option name="CNN Video" value="com.cnn"/>
+ <option name="DigiturkWebTV" value="com.digiturkwebtv.widget"/>
+ <option name="EFE Videos" value="com.ericsson.efe.widget"/>
+ <option name="E!" value="com.moderati.eonline"/>
+ <option name="Bollywood" value="br.org.indt.widget.eros"/>
+ <option name="Ovi Files" value="com.nokia.ss.sas.filesql"/>
+ <option name="Hi5" value="com.hi5.widget.Launcher"/>
+ <option name="凤凰电视" value="com.ifeng.www.webtv.widget"/>
+ <option name="Chat" value="com.nokia.ChatClient"/>
+ <option name="芒果 TV" value="com.imgo.tv"/>
+ <option name="India Today" value="br.org.indt.widget.indiatoday"/>
+ <option name="BBC iPlayer" value="com.bbc.widget.iplayer"/>
+ <option name="Contacts' latest activities" value="com.nokia.somawebui.xwidget"/>
+ <option name="M1TV" value="com.m1tv.basic.widget"/>
+ <option name="Makansutr" value="com.nerdattack.wrt.Makansutra"/>
+ <option name="bose" value="com.bose.basic.widget"/>
+ <option name="SingTel MTVS" value="com.nokia.widget.sapi.mtvs"/>
+ <option name="Nat Geo" value="com.natgeo"/>
+ <option name="NRK Mobil-TV" value="no.nrk.mobil.mobiltv.widget"/>
+ <option name="ontv" value="ontv.cc.on.tv.widget"/>
+ <option name="ovi" value="com.nokia.ovi"/>
+ <option name="Movie Teasers" value="com.movieteasers"/>
+ <option name="Schweizer Fernsehen" value="com.sftvreader.basic.widget"/>
+ <option name="Sky News On Demand" value="com.nerdattack.widget.SKYNEWS"/>
+ <option name="Social" value="com.nokia.socialmixer.v1"/>
+ <option name="æœç‹å¨±ä¹" value="com.sohu.widget.webtv4ovi"/>
+ <option name="SSOUI" value="ovi.serviceui.SSOUI"/>
+ <option name="Terra TV" value="com.terra.widget.wrt.tv"/>
+ <option name="Terra TV Lat" value="com.terra.widget.wrt.tv.latam"/>
+ <option name="topApps" value="com.topApps.basic.widget"/>
+ <option name="Tudou" value="com.Tudou.widget"/>
+ <option name="tv2news" value="com.nokia.forum.widget.tv2news"/>
+ <option name="TV2Play" value="no.tv2.tv2play.widget"/>
+ <option name="TV3 Catch Up" value="com.nerdattack.widget.TV3"/>
+ <option name="ВеÑти" value="com.vesti.basic.widget"/>
+ <option name="Viasat No" value="no.viasat.widget"/>
+ <option name="Viasat Swe" value="se.viasat.widget"/>
+ <option name="Virtual Malaysia" value="com.nerdattack.widget.VirtualMalaysia"/>
+ <option name="央广新浪" value="cn.com.sina.3g"/>
+ <option name="Web TV Demo" value="com.nokia.forum.webtv.widget"/>
+ <option name="Yle Areena" value="com.tieto.yle"/>
+ <option name="优酷" value="com.youku.s605th.webtv"/>
+ </setting>
+ <setting ref="TemplateIdentifier" name="Template Identifier" type="selection">
+ <desc>Templeate identifier for the (C)WRT widgets. None for the native widgets</desc>
+ <option name="None" value="0"/>
+ <option name="wideimage_qhd" value="0x2001f489"/>
+ <option name="wideimage_vga" value="0x10009dff"/>
+ </setting>
+ <setting ref="LockingStatus" name="locking Status" type="selection">
+ <desc>Locking status</desc>
+ <option name="None" value="none"/>
+ <option name="Locked" value="locked"/>
+ </setting>
+ </setting>
+ </feature>
+ <data>
+ <!-- <BlankoHomescreenPlugins>
+ <Plugins extensionPolicy="replace"><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
+ <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
+ <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
+ <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
+ <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
+ <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
+ </BlankoHomescreenPlugins> -->
+ </data>
+</configuration>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/view_200286ed/conf/view200286ed.gcfml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/>
+ <phase name='post'/> <!-- post phase for making sure that all required data is available -->
+
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="viewconfiguration.xml" target="\private\200159c0\install\view_200286ed\hsps\00\">
+ <setting ref="BlankoHomescreenPlugins/Plugins"/>
+ <xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xi="http://www.w3.org/2001/xinclude">
+ <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+ <xsl:template match="configuration/data">
+ <configuration>
+ <control>
+ <plugins>
+ <xsl:for-each select="BlankoHomescreenPlugins/Plugins">
+ <plugin>
+ <xsl:attribute name="uid"><xsl:value-of select="Uid"/></xsl:attribute>
+ <xsl:attribute name="bundle_id"><xsl:value-of select="BundleIdentifier"/></xsl:attribute>
+ <xsl:attribute name="template_id"><xsl:value-of select="TemplateIdentifier"/></xsl:attribute>
+ <xsl:attribute name="locking_status"><xsl:value-of select="LockingStatus"/></xsl:attribute>
+ </plugin>
+ </xsl:for-each>
+ </plugins>
+ </control>
+ </configuration>
+ </xsl:template>
+ </xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
Binary file idlehomescreen/data/common/view_200286ed/conf/view200286edmanifest.confml has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/view_200286ed/conf/view200286edmanifest.gcfml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="manifest.dat" target="\private\200159c0\install\view_200286ed\hsps\00\">
+ <setting ref="BlankoHomescreenManifest/PackageVersion"/>
+ <setting ref="BlankoHomescreenManifest/DeviceFamily"/>
+ <setting ref="BlankoHomescreenManifest/ConfigurationType"/>
+ <setting ref="BlankoHomescreenManifest/InterfaceUid"/>
+ <setting ref="BlankoHomescreenManifest/ProviderUid"/>
+ <setting ref="BlankoHomescreenManifest/ConfigurationUid"/>
+ <setting ref="BlankoHomescreenManifest/FullName"/>
+ <setting ref="BlankoHomescreenManifest/ShortName"/>
+ <setting ref="BlankoHomescreenManifest/ConfigurationVersion"/>
+ <setting ref="BlankoHomescreenManifest/ConfigurationFile"/>
+ <setting ref="BlankoHomescreenManifest/UiResourceFile"/>
+ <xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xi="http://www.w3.org/2001/xinclude">
+ <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+ <xsl:template match="configuration/data">
+ <package>
+ <xsl:attribute name="version"><xsl:value-of select="BlankoHomescreenManifest/PackageVersion"/></xsl:attribute>
+ <family>
+ <xsl:value-of select="BlankoHomescreenManifest/DeviceFamily"/>
+ </family>
+ <type>
+ <xsl:value-of select="BlankoHomescreenManifest/ConfigurationType"/>
+ </type>
+ <interfaceuid>
+ <xsl:value-of select="BlankoHomescreenManifest/InterfaceUid"/>
+ </interfaceuid>
+ <provideruid>
+ <xsl:value-of select="BlankoHomescreenManifest/ProviderUid"/>
+ </provideruid>
+ <configurationuid>
+ <xsl:value-of select="BlankoHomescreenManifest/ConfigurationUid"/>
+ </configurationuid>
+ <fullname>
+ <xsl:text>&</xsl:text>
+ <xsl:value-of select="BlankoHomescreenManifest/FullName"/>
+ <xsl:text>;</xsl:text>
+ </fullname>
+ <shortname>
+ <xsl:value-of select="BlankoHomescreenManifest/ShortName"/>
+ </shortname>
+ <version>
+ <xsl:value-of select="BlankoHomescreenManifest/ConfigurationVersion"/>
+ </version>
+ <filexml>
+ <xsl:value-of select="BlankoHomescreenManifest/ConfigurationFile"/>
+ </filexml>
+ <localization>
+ <fileresource>
+ <xsl:value-of select="BlankoHomescreenManifest/UiResourceFile"/>
+ </fileresource>
+ </localization>
+ </package>
+ </xsl:template>
+ </xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
Binary file idlehomescreen/data/common/view_200286ed/conf/view200286edxuikon.confml has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/view_200286ed/conf/view200286edxuikon.gcfml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="empty.foo" target="\private\200159c0\install\view_200286ed\xuikon\">
+ <setting ref="BlankoHomescreenXuikonFolder/FolderCFG"/>
+ <xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xi="http://www.w3.org/2001/xinclude">
+ <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+ <xsl:template match="configuration/data">
+ <whois>
+ <xsl:attribute name="dude"><xsl:value-of select="BlankoHomescreenXuikonFolder/FolderCFG"/></xsl:attribute>
+ </whois>
+ </xsl:template>
+ </xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/view_200286ed/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,40 @@
+/*
+* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* The information required for building
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+//Confml and cfgml files for the customization
+// starting use confml it is need to remove root_configuration.xml direct exporting (view_200286e5_variant.iby)
+//***********************************
+../conf/view200286ed.confml APP_LAYER_CONFML(view200286ed.confml)
+../conf/view200286ed.gcfml APP_LAYER_GCFML(view200286ed.gcfml)
+../conf/view200286edmanifest.confml APP_LAYER_CONFML(view200286edmanifest.confml)
+../conf/view200286edmanifest.gcfml APP_LAYER_GCFML(view200286edmanifest.gcfml)
+../conf/view200286edxuikon.confml APP_LAYER_CONFML(view200286edxuikon.confml)
+../conf/view200286edxuikon.gcfml APP_LAYER_GCFML(view200286edxuikon.gcfml)
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+
+// End of File
--- a/idlehomescreen/data/group/bld.inf Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
@@ -16,7 +16,8 @@
*/
-#include "../vga_tch/group/bld.inf" // Buzzidle
+#include "../common/group/bld.inf"
+// #include "../vga_tch/group/bld.inf" // Buzzidle
#include "../qhd_tch/group/bld.inf" // Flashidle
PRJ_PLATFORMS
--- a/idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/widgetconfiguration.xml Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/widgetconfiguration.xml Tue Sep 14 20:58:58 2010 +0300
@@ -4,28 +4,28 @@
<!-- Shortcut #1, Phonebook -->
<item id="first" name="Shortcut1" >
<property name="type" value="application"/>
- <property name="uid" value="0x101F4CCE"/>
+ <property name="uid" value="0x99999990"/>
<property name="view" value=""/>
<property name="param" value=""/>
</item>
<!-- Shortcut #2, New Message -->
<item id="second" name="Shortcut2" >
- <property name="type" value="shortcut"/>
- <property name="uid" value="0x99999999"/>
+ <property name="type" value="application"/>
+ <property name="uid" value="0x99999990"/>
<property name="view" value=""/>
- <property name="param" value="messaging:msg"/>
+ <property name="param" value=""/>
</item>
<!-- Shortcut #3, Browser -->
<item id="third" name="Shortcut3" >
<property name="type" value="application"/>
- <property name="uid" value="0x10008D39"/>
+ <property name="uid" value="0x99999990"/>
<property name="view" value=""/>
<property name="param" value=""/>
</item>
<!-- Shortcut #4, Calendar -->
<item id="fourth" name="Shortcut4" >
<property name="type" value="application"/>
- <property name="uid" value="0x10005901"/>
+ <property name="uid" value="0x99999990"/>
<property name="view" value=""/>
<property name="param" value=""/>
</item>
--- a/idlehomescreen/data/qhd_tch/empty_2001f47f/group/bld.inf Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* The information required for building
-*
-*/
-
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-// Support for productization and Carbide.Ui customization
-//********************************************************
-../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/empty_2001f47f/hsps/manifest.dat
-../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/empty_2001f47f/hsps/widgetconfiguration.xml
-../xuikon/00/empty.dat /epoc32/data/Z/resource/homescreen/empty_2001f47f/xuikon/empty_2001f47f.dat
-../xuikon/00/empty.css /epoc32/data/Z/resource/homescreen/empty_2001f47f/xuikon/empty.css
-../xuikon/00/empty.xml /epoc32/data/Z/resource/homescreen/empty_2001f47f/xuikon/empty.xml
-
-// Support for S60 builds
-//***********************
-../rom/empty_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(empty_2001f47f_variant.iby)
-../rom/empty.iby CORE_APP_LAYER_IBY_EXPORT_PATH(empty_2001f47f.iby)
-
-// Dtd-localization
-//*****************
-PRJ_EXTENSIONS
-START EXTENSION tools/dtd
-OPTION SWITCH_LOC_FILE_NAME empty_2001f47f
-OPTION DTD_TYPE widget
-OPTION LOC_FOLDERS yes
-END
-
-PRJ_MMPFILES
-
-PRJ_TESTMMPFILES
-
-// End of File
-
-
-
-
--- a/idlehomescreen/data/qhd_tch/empty_2001f47f/hsps/00/manifest.dat Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-<?xml version="1.0"?>
-
-<package version="2.0">
-
-
-
- <family>qhd_tch</family>
-
-
-
- <type>widget</type>
-
-
-
- <!-- interface uid -->
-
- <interfaceuid>0x2001f48a</interfaceuid>
-
-
-
- <!-- vendor uid -->
-
- <provideruid>0x101fb657</provideruid>
-
-
-
- <!-- uid -->
-
- <configurationuid>0x2001f47f</configurationuid>
-
-
-
- <!-- description -->
-
- <fullname>&qtn_empty_2001f47f_name;</fullname>
-
- <shortname>empty</shortname>
-
- <version>1.0</version>
-
-
-
- <!-- configuration -->
-
- <filexml>widgetconfiguration.xml</filexml>
-
-
- <!-- Locale independent/common resources -->
-
- <fileresource>empty.o0000</fileresource>
-
-
-
- <!-- Locale specific resources -->
-
- <localization/>
-
-
-
-</package>
--- a/idlehomescreen/data/qhd_tch/empty_2001f47f/hsps/00/widgetconfiguration.xml Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-<configuration>
- <control>
- <settings/>
- </control>
-</configuration>
--- a/idlehomescreen/data/qhd_tch/empty_2001f47f/rom/empty.iby Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
-* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Empty widget HSPS-plugin IBY file
-*
-*/
-
-#ifndef __EMPTY_2001F47F_IBY__
-#define __EMPTY_2001F47F_IBY__
-
-#if defined(__LAYOUT_360_640_TOUCH) || defined(__LAYOUT_640_360_TOUCH)
-
-// Enabled by DTD-localization tools
-data=ZPRIVATE\200159c0\install\empty_2001f47f\xuikon\00\empty.o0000 \private\200159c0\install\empty_2001f47f\xuikon\00\empty.o0000
-data=ZPRIVATE\200159c0\install\empty_2001f47f\hsps\00\manifest.dat \private\200159c0\install\empty_2001f47f\hsps\00\manifest.dat
-
-#endif // __LAYOUT_360_640_TOUCH || __LAYOUT_640_360_TOUCH
-
-#endif // __EMPTY_2001F47F_IBY__
--- a/idlehomescreen/data/qhd_tch/empty_2001f47f/rom/empty_variant.iby Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
-* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Empty widget HSPS-plugin variant specific IBY file.
-*
-*/
-
-#ifndef __EMPTY_2001F47F_VARIANT_IBY__
-#define __EMPTY_2001F47F_VARIANT_IBY__
-
-#if defined(__LAYOUT_360_640_TOUCH) || defined(__LAYOUT_640_360_TOUCH)
-
-// Enabled by variation tools, variant specific
-data=ZPRIVATE\200159c0\install\empty_2001f47f\hsps\00\widgetconfiguration.xml \private\200159c0\install\empty_2001f47f\hsps\00\widgetconfiguration.xml
-
-#endif // __LAYOUT_360_640_TOUCH || __LAYOUT_640_360_TOUCH
-
-#endif // __EMPTY_2001F47F_VARIANT_IBY__
--- a/idlehomescreen/data/qhd_tch/empty_2001f47f/xuikon/00/empty.css Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-widget
-{
- display: none;
- visibility: hidden;
-}
-
--- a/idlehomescreen/data/qhd_tch/empty_2001f47f/xuikon/00/empty.dat Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-<?xml version="1.0"?>
-<data>
- <AppUid>E029CF57</AppUid>
- <Provideruid>101FB657</Provideruid>
- <ThemeUid>11001001</ThemeUid>
- <ThemeFullName>empty</ThemeFullName>
- <ThemeShortName>empty</ThemeShortName>
- <ThemeVersion>1.0</ThemeVersion>
- <FileXML>empty.xml</FileXML>
- <FileCSS>empty.css</FileCSS>
-</data>
\ No newline at end of file
--- a/idlehomescreen/data/qhd_tch/empty_2001f47f/xuikon/00/empty.xml Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
- <widget id="empty"/>
-</xmluiml>
--- a/idlehomescreen/data/qhd_tch/group/bld.inf Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
@@ -16,7 +16,6 @@
*/
#include "../desktop_20026f4f/group/bld.inf"
-#include "../empty_2001f47f/group/bld.inf"
#include "../onerow_2001f480/group/bld.inf"
#include "../tworows_2001f488/group/bld.inf"
#include "../threerows_2001f486/group/bld.inf"
@@ -28,7 +27,6 @@
#include "../view_20022fe0/group/bld.inf"
#include "../view_200286e4/group/bld.inf"
#include "../view_200286e5/group/bld.inf"
-#include "../view_200286ed/group/bld.inf"
#include "../templateview_20026f50/group/bld.inf"
#include "../root_2001f482/group/bld.inf"
--- a/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/00/onerow.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/00/onerow.css Tue Sep 14 20:58:58 2010 +0300
@@ -1,30 +1,40 @@
widget#onerow_template
{
block-progression:rl;
+
}
image#image_container
{
- padding-top:8px;
- padding-bottom:8px;
- padding-left:8px;
- padding-right:8px;
- height: 90%;
- width: 20%;
+ height: 70px;
+ width: 70px;
+ margin-top:3px;
+ margin-bottom:3px;
+ margin-left:3px;
+ margin-right:2px;
+ padding-top:3px;
+ padding-bottom:3px;
+ padding-left:3px;
+ padding-right:3px;
nav-index:appearance;
_s60-aspect-ratio:preserve;
}
text
{
- padding-left:8px;
- padding-right:8px;
- font-line-space: 15;
- text-align:left;
+ font-size:3.5u;
+ margin-left:2px;
+ margin-right:3px;
+ margin-top:3px;
+ margin-bottom:3px;
+ padding-top:3px;
+ padding-bottom:3px;
+ padding-left:3px;
+ padding-right:3px;
+ text-align:center;
text-overflow-mode: wrap;
max-line-amount: 2;
font-family: EAknLogicalFontSecondaryFont;
- font-size: 23px;
color: "SKIN(268458534 13056 74)";
nav-index:appearance;
}
--- a/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/37/onerow.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/37/onerow.css Tue Sep 14 20:58:58 2010 +0300
@@ -6,27 +6,36 @@
image#image_container
{
- padding-top:8px;
- padding-bottom:8px;
- padding-left:8px;
- padding-right:8px;
- height: 90%;
- width: 20%;
+ height: 70px;
+ width: 70px;
+ margin-top:3px;
+ margin-bottom:3px;
+ margin-left:3px;
+ margin-right:2px;
+ padding-top:3px;
+ padding-bottom:3px;
+ padding-left:3px;
+ padding-right:3px;
nav-index:appearance;
_s60-aspect-ratio:preserve;
}
text
{
- padding-left:8px;
- padding-right:8px;
- font-line-space: 15;
+ font-size:3.5u;
+ margin-left:2px;
+ margin-right:3px;
+ margin-top:3px;
+ margin-bottom:3px;
+ padding-top:3px;
+ padding-bottom:3px;
+ padding-left:3px;
+ padding-right:3px;
direction: ltr;
- text-align: right;
+ text-align:center;
text-overflow-mode: wrap;
max-line-amount: 2;
font-family: EAknLogicalFontSecondaryFont;
- font-size: 23px;
color: "SKIN(268458534 13056 74)";
nav-index:appearance;
}
--- a/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/50/onerow.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/50/onerow.css Tue Sep 14 20:58:58 2010 +0300
@@ -6,27 +6,36 @@
image#image_container
{
- padding-top:8px;
- padding-bottom:8px;
- padding-left:8px;
- padding-right:8px;
- height: 90%;
- width: 20%;
+ height: 70px;
+ width: 70px;
+ margin-top:3px;
+ margin-bottom:3px;
+ margin-left:3px;
+ margin-right:2px;
+ padding-top:3px;
+ padding-bottom:3px;
+ padding-left:3px;
+ padding-right:3px;
nav-index:appearance;
_s60-aspect-ratio:preserve;
}
text
{
- padding-left:8px;
- padding-right:8px;
- font-line-space: 15;
+ font-size:3.5u;
+ margin-left:2px;
+ margin-right:3px;
+ margin-top:3px;
+ margin-bottom:3px;
+ padding-top:3px;
+ padding-bottom:3px;
+ padding-left:3px;
+ padding-right:3px;
direction: ltr;
- text-align: right;
+ text-align:center;
text-overflow-mode: wrap;
max-line-amount: 2;
font-family: EAknLogicalFontSecondaryFont;
- font-size: 23px;
color: "SKIN(268458534 13056 74)";
nav-index:appearance;
}
--- a/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/57/onerow.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/57/onerow.css Tue Sep 14 20:58:58 2010 +0300
@@ -6,27 +6,36 @@
image#image_container
{
- padding-top:8px;
- padding-bottom:8px;
- padding-left:8px;
- padding-right:8px;
- height: 90%;
- width: 20%;
+ height: 70px;
+ width: 70px;
+ margin-top:3px;
+ margin-bottom:3px;
+ margin-left:3px;
+ margin-right:2px;
+ padding-top:3px;
+ padding-bottom:3px;
+ padding-left:3px;
+ padding-right:3px;
nav-index:appearance;
_s60-aspect-ratio:preserve;
}
text
{
- padding-left:8px;
- padding-right:8px;
- font-line-space: 15;
+ font-size:3.5u;
+ margin-left:2px;
+ margin-right:3px;
+ margin-top:3px;
+ margin-bottom:3px;
+ padding-top:3px;
+ padding-bottom:3px;
+ padding-left:3px;
+ padding-right:3px;
direction: ltr;
- text-align: right;
+ text-align:center;
text-overflow-mode: wrap;
max-line-amount: 2;
font-family: EAknLogicalFontSecondaryFont;
- font-size: 23px;
color: "SKIN(268458534 13056 74)";
nav-index:appearance;
}
--- a/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/94/onerow.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/94/onerow.css Tue Sep 14 20:58:58 2010 +0300
@@ -6,27 +6,36 @@
image#image_container
{
- padding-top:8px;
- padding-bottom:8px;
- padding-left:8px;
- padding-right:8px;
- height: 90%;
- width: 20%;
+ height: 70px;
+ width: 70px;
+ margin-top:3px;
+ margin-bottom:3px;
+ margin-left:3px;
+ margin-right:2px;
+ padding-top:3px;
+ padding-bottom:3px;
+ padding-left:3px;
+ padding-right:3px;
nav-index:appearance;
_s60-aspect-ratio:preserve;
}
text
{
- padding-left:8px;
- padding-right:8px;
- font-line-space: 15;
+ font-size:3.5u;
+ margin-left:2px;
+ margin-right:3px;
+ margin-top:3px;
+ margin-bottom:3px;
+ padding-top:3px;
+ padding-bottom:3px;
+ padding-left:3px;
+ padding-right:3px;
direction: ltr;
- text-align: right;
+ text-align:center;
text-overflow-mode: wrap;
max-line-amount: 2;
font-family: EAknLogicalFontSecondaryFont;
- font-size: 23px;
color: "SKIN(268458534 13056 74)";
nav-index:appearance;
}
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.css Tue Sep 14 20:58:58 2010 +0300
@@ -9,20 +9,30 @@
block-progression: lr;
}
-clock
+clock#clock
{
width: 152px;
margin-right: 3px;
padding-top: 2px;
padding-bottom: 2px;
_s60-format: locale;
- _s60-ampm-font-size: 16px;
- _s60-digital-font-size: 56px;
+ _s60-font-size: 56px;
color: "SKIN(268458534 13056 74)";
background-color: "SKIN(268458534 9916)";
nav-index: appearance;
}
+ampm
+{
+ position: absolute;
+ width: 46px;
+ height: 20px;
+ left: 88px;
+ top: 60px;
+ text-align: right;
+ _s60-font-size: 16px;
+}
+
box.clock_profile
{
background-color: "SKIN(268458534 9916)";
@@ -36,34 +46,22 @@
block-progression: tb;
}
-box#date_container
+clock#date_content
{
width: auto;
height: 26px;
- block-progression: lr;
- margin-bottom: 3px;
- padding-bottom: 2px;
-}
-
-box#date_content
-{
- width: adaptive;
- height: adaptive;
margin-left: auto;
margin-right: auto;
+ margin-bottom: 3px;
+ padding-bottom: 2px;
+ color:"SKIN(268458534 13056 74)";
+ background-color: "SKIN(268458534 9916)";
+ nav-index: appearance;
}
-text#date_text
+date
{
- text-align: center;
- margin-left: 2px;
- margin-right: 2px;
- width: adaptive;
- height: adaptive;
- font-family: EAknLogicalFontSecondaryFont;
- font-size: 3.5u;
- _s60-text-valign: top;
- color:"SKIN(268458534 13056 74)";
+ _s60-font-size: 3.5u;
}
box#profile_softindicator
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.xml Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.xml Tue Sep 14 20:58:58 2010 +0300
@@ -9,6 +9,14 @@
<box id="clock_profile_container">
<clock id="clock" focusable="true" _s60-initial-focus="1">
+ <digital>
+ <face24/>
+ <face12/>
+ <ampm/>
+ </digital>
+ <analog>
+ <face/>
+ </analog>
<actions>
<action>
<trigger name="activate"/>
@@ -17,20 +25,16 @@
</actions>
</clock>
<box id="date_profiles_container" focusable="false">
- <box id="date_container" class="clock_profile" focusable="true">
- <box id="date_content" focusable="false">
- <text id="date_text" focusable="false">
- <property class="DeviceStatus/Date"/>
- </text>
- </box>
- <actions>
+ <clock id="date_content" focusable="true">
+ <date/>
+ <actions>
<action>
<trigger name="activate"/>
<!-- open organizer -->
<event name="EventHandler/LaunchApp" uid="0x10005901"/><!--organizer application-->
</action>
- </actions>
- </box>
+ </actions>
+ </clock>
<box id="profile_softindicator" class="clock_profile" focusable="true">
<!-- UI resources -->
<desc id="Profile/ActiveProfileGeneralIconResource" path="SKIN(270501603 8586 74)"/>
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/37/profile.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/37/profile.css Tue Sep 14 20:58:58 2010 +0300
@@ -9,20 +9,30 @@
block-progression: lr;
}
-clock
+clock#clock
{
width: 152px;
margin-left: 3px;
padding-top: 2px;
padding-bottom: 2px;
_s60-format: locale;
- _s60-ampm-font-size: 16px;
- _s60-digital-font-size: 56px;
+ _s60-font-size: 56px;
color: "SKIN(268458534 13056 74)";
background-color: "SKIN(268458534 9916)";
nav-index: appearance;
}
+ampm
+{
+ position: absolute;
+ width: 46px;
+ height: 20px;
+ left: 88px;
+ top: 60px;
+ text-align: right;
+ _s60-font-size: 16px;
+}
+
box.clock_profile
{
background-color: "SKIN(268458534 9916)";
@@ -36,34 +46,22 @@
block-progression: tb;
}
-box#date_container
+clock#date_content
{
width: auto;
height: 26px;
- block-progression: rl;
- margin-bottom: 3px;
- padding-bottom: 2px;
-}
-
-box#date_content
-{
- width: adaptive;
- height: adaptive;
margin-left: auto;
margin-right: auto;
+ margin-bottom: 3px;
+ padding-bottom: 2px;
+ color:"SKIN(268458534 13056 74)";
+ background-color: "SKIN(268458534 9916)";
+ nav-index: appearance;
}
-text#date_text
+date
{
- text-align: center;
- margin-left: 2px;
- margin-right: 2px;
- width: adaptive;
- height: adaptive;
- font-family: EAknLogicalFontSecondaryFont;
- font-size: 3.5u;
- _s60-text-valign: top;
- color:"SKIN(268458534 13056 74)";
+ _s60-font-size: 3.5u;
}
box#profile_softindicator
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/50/profile.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/50/profile.css Tue Sep 14 20:58:58 2010 +0300
@@ -9,20 +9,30 @@
block-progression: lr;
}
-clock
+clock#clock
{
width: 152px;
margin-left: 3px;
padding-top: 2px;
padding-bottom: 2px;
_s60-format: locale;
- _s60-ampm-font-size: 16px;
- _s60-digital-font-size: 56px;
+ _s60-font-size: 56px;
color: "SKIN(268458534 13056 74)";
background-color: "SKIN(268458534 9916)";
nav-index: appearance;
}
+ampm
+{
+ position: absolute;
+ width: 46px;
+ height: 20px;
+ left: 88px;
+ top: 60px;
+ text-align: right;
+ _s60-font-size: 16px;
+}
+
box.clock_profile
{
background-color: "SKIN(268458534 9916)";
@@ -36,34 +46,22 @@
block-progression: tb;
}
-box#date_container
+clock#date_content
{
width: auto;
height: 26px;
- block-progression: rl;
- margin-bottom: 3px;
- padding-bottom: 2px;
-}
-
-box#date_content
-{
- width: adaptive;
- height: adaptive;
margin-left: auto;
margin-right: auto;
+ margin-bottom: 3px;
+ padding-bottom: 2px;
+ color:"SKIN(268458534 13056 74)";
+ background-color: "SKIN(268458534 9916)";
+ nav-index: appearance;
}
-text#date_text
+date
{
- text-align: center;
- margin-left: 2px;
- margin-right: 2px;
- width: adaptive;
- height: adaptive;
- font-family: EAknLogicalFontSecondaryFont;
- font-size: 3.5u;
- _s60-text-valign: top;
- color:"SKIN(268458534 13056 74)";
+ _s60-font-size: 3.5u;
}
box#profile_softindicator
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/57/profile.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/57/profile.css Tue Sep 14 20:58:58 2010 +0300
@@ -9,20 +9,30 @@
block-progression: lr;
}
-clock
+clock#clock
{
width: 152px;
margin-left: 3px;
padding-top: 2px;
padding-bottom: 2px;
_s60-format: locale;
- _s60-ampm-font-size: 16px;
- _s60-digital-font-size: 56px;
+ _s60-font-size: 56px;
color: "SKIN(268458534 13056 74)";
background-color: "SKIN(268458534 9916)";
nav-index: appearance;
}
+ampm
+{
+ position: absolute;
+ width: 46px;
+ height: 20px;
+ left: 88px;
+ top: 60px;
+ text-align: right;
+ _s60-font-size: 16px;
+}
+
box.clock_profile
{
background-color: "SKIN(268458534 9916)";
@@ -36,34 +46,22 @@
block-progression: tb;
}
-box#date_container
+clock#date_content
{
width: auto;
height: 26px;
- block-progression: rl;
- margin-bottom: 3px;
- padding-bottom: 2px;
-}
-
-box#date_content
-{
- width: adaptive;
- height: adaptive;
margin-left: auto;
margin-right: auto;
+ margin-bottom: 3px;
+ padding-bottom: 2px;
+ color:"SKIN(268458534 13056 74)";
+ background-color: "SKIN(268458534 9916)";
+ nav-index: appearance;
}
-text#date_text
+date
{
- text-align: center;
- margin-left: 2px;
- margin-right: 2px;
- width: adaptive;
- height: adaptive;
- font-family: EAknLogicalFontSecondaryFont;
- font-size: 3.5u;
- _s60-text-valign: top;
- color:"SKIN(268458534 13056 74)";
+ _s60-font-size: 3.5u;
}
box#profile_softindicator
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/94/profile.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/94/profile.css Tue Sep 14 20:58:58 2010 +0300
@@ -9,20 +9,30 @@
block-progression: lr;
}
-clock
+clock#clock
{
width: 152px;
margin-left: 3px;
padding-top: 2px;
padding-bottom: 2px;
_s60-format: locale;
- _s60-ampm-font-size: 16px;
- _s60-digital-font-size: 56px;
+ _s60-font-size: 56px;
color: "SKIN(268458534 13056 74)";
background-color: "SKIN(268458534 9916)";
nav-index: appearance;
}
+ampm
+{
+ position: absolute;
+ width: 46px;
+ height: 20px;
+ left: 88px;
+ top: 60px;
+ text-align: right;
+ _s60-font-size: 16px;
+}
+
box.clock_profile
{
background-color: "SKIN(268458534 9916)";
@@ -36,34 +46,22 @@
block-progression: tb;
}
-box#date_container
+clock#date_content
{
width: auto;
height: 26px;
- block-progression: rl;
- margin-bottom: 3px;
- padding-bottom: 2px;
-}
-
-box#date_content
-{
- width: adaptive;
- height: adaptive;
margin-left: auto;
margin-right: auto;
+ margin-bottom: 3px;
+ padding-bottom: 2px;
+ color:"SKIN(268458534 13056 74)";
+ background-color: "SKIN(268458534 9916)";
+ nav-index: appearance;
}
-text#date_text
+date
{
- text-align: center;
- margin-left: 2px;
- margin-right: 2px;
- width: adaptive;
- height: adaptive;
- font-family: EAknLogicalFontSecondaryFont;
- font-size: 3.5u;
- _s60-text-valign: top;
- color:"SKIN(268458534 13056 74)";
+ _s60-font-size: 3.5u;
}
box#profile_softindicator
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/loc/templateview.loc Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/loc/templateview.loc Tue Sep 14 20:58:58 2010 +0300
@@ -308,3 +308,15 @@
// w:
// r: TB9.2
#define qtn_hs_text_softkey_call "Call"
+
+// d: Lock keypad
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_lock_keypad "Lock keypad"
+
+// d: Menu
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_apps_menu_skey "Menu"
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/view.dtd Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/view.dtd Tue Sep 14 20:58:58 2010 +0300
@@ -494,3 +494,21 @@
qtn_hs_text_softkey_call.parents ""
-->
<!ENTITY qtn_hs_text_softkey_call "Call">
+
+<!--
+qtn_hs_page_edit_options_delete.attributes
+qtn_hs_page_edit_options_delete.layout "list_single_pane_t1_cp2"
+qtn_hs_page_edit_options_delete.release "TB9.2"
+qtn_hs_page_edit_options_delete.description "Lock keypad"
+qtn_hs_page_edit_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_lock_keypad "Lock keypad">
+
+<!--
+qtn_hs_text_softkey_call.attributes
+qtn_hs_text_softkey_call.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_call.release "TB9.2"
+qtn_hs_text_softkey_call.description "RSK caption"
+qtn_hs_text_softkey_call.parents ""
+-->
+<!ENTITY qtn_hs_apps_menu_skey "Menu">
--- a/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/00/threerows.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/00/threerows.css Tue Sep 14 20:58:58 2010 +0300
@@ -5,29 +5,38 @@
image#image_container
{
- padding-top:8px;
- padding-bottom:8px;
- padding-left:8px;
- padding-right:8px;
- height: 90%;
- width: 20%;
+ height: 70px;
+ width: 70px;
+ margin-top:3px;
+ margin-bottom:3px;
+ margin-left:3px;
+ margin-right:2px;
+ padding-top:3px;
+ padding-bottom:3px;
+ padding-left:3px;
+ padding-right:3px;
+ nav-index:appearance;
_s60-aspect-ratio:preserve;
- nav-index:appearance;
}
box#text_container
{
+ direction: ltr;
block-progression:tb;
+ margin-left:2px;
+ margin-right:3px;
}
text.text_box
{
- padding-left:8px;
- padding-right:8px;
- text-align:left;
+ padding-right:3px;
+ padding-left:3px;
+ padding-top:1px;
+ padding-bottom:1px;
font-family: EAknLogicalFontSecondaryFont;
- font-size: 23px;
- color: "SKIN(268458534 13056 74)";
+ font-size: 3.5u;
+ height:25px;
+ color:"SKIN(268458534 13056 74)";
nav-index:appearance;
_s60-text-valign: top;
}
--- a/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/37/threerows.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/37/threerows.css Tue Sep 14 20:58:58 2010 +0300
@@ -6,30 +6,40 @@
image#image_container
{
- padding-top:8px;
- padding-bottom:8px;
- padding-left:8px;
- padding-right:8px;
- height: 90%;
- width: 20%;
+ height: 70px;
+ width: 70px;
+ margin-top:3px;
+ margin-bottom:3px;
+ margin-left:3px;
+ margin-right:2px;
+ padding-top:3px;
+ padding-bottom:3px;
+ padding-left:3px;
+ padding-right:3px;
+ nav-index:appearance;
_s60-aspect-ratio:preserve;
- nav-index:appearance;
}
box#text_container
{
+ direction: ltr;
block-progression:tb;
+ margin-left:2px;
+ margin-right:3px;
}
text.text_box
{
- padding-left:8px;
- padding-right:8px;
+ padding-right:3px;
+ padding-left:3px;
+ padding-top:1px;
+ padding-bottom:1px;
direction: ltr;
text-align: right;
font-family: EAknLogicalFontSecondaryFont;
- font-size: 23px;
- color: "SKIN(268458534 13056 74)";
+ font-size: 3.5u;
+ height:25px;
+ color:"SKIN(268458534 13056 74)";
nav-index:appearance;
_s60-text-valign: top;
}
--- a/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/50/threerows.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/50/threerows.css Tue Sep 14 20:58:58 2010 +0300
@@ -6,30 +6,40 @@
image#image_container
{
- padding-top:8px;
- padding-bottom:8px;
- padding-left:8px;
- padding-right:8px;
- height: 90%;
- width: 20%;
+ height: 70px;
+ width: 70px;
+ margin-top:3px;
+ margin-bottom:3px;
+ margin-left:3px;
+ margin-right:2px;
+ padding-top:3px;
+ padding-bottom:3px;
+ padding-left:3px;
+ padding-right:3px;
+ nav-index:appearance;
_s60-aspect-ratio:preserve;
- nav-index:appearance;
}
box#text_container
{
+ direction: ltr;
block-progression:tb;
+ margin-left:2px;
+ margin-right:3px;
}
text.text_box
{
- padding-left:8px;
- padding-right:8px;
+ padding-right:3px;
+ padding-left:3px;
+ padding-top:1px;
+ padding-bottom:1px;
direction: ltr;
text-align: right;
font-family: EAknLogicalFontSecondaryFont;
- font-size: 23px;
- color: "SKIN(268458534 13056 74)";
+ font-size: 3.5u;
+ height:25px;
+ color:"SKIN(268458534 13056 74)";
nav-index:appearance;
_s60-text-valign: top;
}
--- a/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/57/threerows.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/57/threerows.css Tue Sep 14 20:58:58 2010 +0300
@@ -6,31 +6,40 @@
image#image_container
{
- padding-top:8px;
- padding-bottom:8px;
- padding-left:8px;
- padding-right:8px;
- height: 90%;
- width: 20%;
+ height: 70px;
+ width: 70px;
+ margin-top:3px;
+ margin-bottom:3px;
+ margin-left:3px;
+ margin-right:2px;
+ padding-top:3px;
+ padding-bottom:3px;
+ padding-left:3px;
+ padding-right:3px;
+ nav-index:appearance;
_s60-aspect-ratio:preserve;
- nav-index:appearance;
}
box#text_container
{
+ direction: ltr;
block-progression:tb;
+ margin-left:2px;
+ margin-right:3px;
}
text.text_box
{
- padding-left:8px;
- padding-right:8px;
+ padding-right:3px;
+ padding-left:3px;
+ padding-top:1px;
+ padding-bottom:1px;
direction: ltr;
text-align: right;
font-family: EAknLogicalFontSecondaryFont;
- font-size: 23px;
- color: "SKIN(268458534 13056 74)";
+ font-size: 3.5u;
+ height:25px;
+ color:"SKIN(268458534 13056 74)";
nav-index:appearance;
_s60-text-valign: top;
}
-
--- a/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/94/threerows.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/94/threerows.css Tue Sep 14 20:58:58 2010 +0300
@@ -6,30 +6,40 @@
image#image_container
{
- padding-top:8px;
- padding-bottom:8px;
- padding-left:8px;
- padding-right:8px;
- height: 90%;
- width: 20%;
+ height: 70px;
+ width: 70px;
+ margin-top:3px;
+ margin-bottom:3px;
+ margin-left:3px;
+ margin-right:2px;
+ padding-top:3px;
+ padding-bottom:3px;
+ padding-left:3px;
+ padding-right:3px;
+ nav-index:appearance;
_s60-aspect-ratio:preserve;
- nav-index:appearance;
}
box#text_container
{
+ direction: ltr;
block-progression:tb;
+ margin-left:2px;
+ margin-right:3px;
}
text.text_box
{
- padding-left:8px;
- padding-right:8px;
+ padding-right:3px;
+ padding-left:3px;
+ padding-top:1px;
+ padding-bottom:1px;
direction: ltr;
text-align: right;
font-family: EAknLogicalFontSecondaryFont;
- font-size: 23px;
- color: "SKIN(268458534 13056 74)";
+ font-size: 3.5u;
+ height:25px;
+ color:"SKIN(268458534 13056 74)";
nav-index:appearance;
_s60-text-valign: top;
}
--- a/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/00/tworows.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/00/tworows.css Tue Sep 14 20:58:58 2010 +0300
@@ -5,29 +5,38 @@
image#image_container
{
- padding-top:8px;
- padding-bottom:8px;
- padding-left:8px;
- padding-right:8px;
- height: 90%;
- width: 20%;
+ height: 70px;
+ width: 70px;
+ margin-top:3px;
+ margin-bottom:3px;
+ margin-left:3px;
+ margin-right:2px;
+ padding-top:3px;
+ padding-bottom:3px;
+ padding-left:3px;
+ padding-right:3px;
+ nav-index:appearance;
_s60-aspect-ratio:preserve;
- nav-index:appearance;
}
box#text_container
{
+ direction: ltr;
block-progression:tb;
+ margin-left:2px;
+ margin-right:3px;
+ margin-top:10px;
}
text.text_box
{
- padding-right:8px;
- padding-left:8px;
- padding-top:8px;
- text-align:left;
+ padding-right:3px;
+ padding-left:3px;
+ padding-top:3px;
+ padding-bottom:3px;
font-family: EAknLogicalFontSecondaryFont;
- font-size: 23px;
+ font-size: 3.5u;
+ height:25px;
color:"SKIN(268458534 13056 74)";
nav-index:appearance;
_s60-text-valign: top;
--- a/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/37/tworows.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/37/tworows.css Tue Sep 14 20:58:58 2010 +0300
@@ -6,30 +6,39 @@
image#image_container
{
- padding-top:8px;
- padding-bottom:8px;
- padding-left:8px;
- padding-right:8px;
- height: 90%;
- width: 20%;
+ height: 70px;
+ width: 70px;
+ margin-top:3px;
+ margin-bottom:3px;
+ margin-left:3px;
+ margin-right:2px;
+ padding-top:3px;
+ padding-bottom:3px;
+ padding-left:3px;
+ padding-right:3px;
+ nav-index:appearance;
_s60-aspect-ratio:preserve;
- nav-index:appearance;
}
box#text_container
{
block-progression:tb;
+ margin-left:2px;
+ margin-right:3px;
+ margin-top:10px;
}
text.text_box
{
- padding-right:8px;
- padding-left:8px;
- padding-top:8px;
+ padding-right:3px;
+ padding-left:3px;
+ padding-top:3px;
+ padding-bottom:3px;
direction: ltr;
text-align: right;
font-family: EAknLogicalFontSecondaryFont;
- font-size: 23px;
+ font-size: 3.5u;
+ height:25px;
color:"SKIN(268458534 13056 74)";
nav-index:appearance;
_s60-text-valign: top;
--- a/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/50/tworows.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/50/tworows.css Tue Sep 14 20:58:58 2010 +0300
@@ -6,30 +6,39 @@
image#image_container
{
- padding-top:8px;
- padding-bottom:8px;
- padding-left:8px;
- padding-right:8px;
- height: 90%;
- width: 20%;
+ height: 70px;
+ width: 70px;
+ margin-top:3px;
+ margin-bottom:3px;
+ margin-left:3px;
+ margin-right:2px;
+ padding-top:3px;
+ padding-bottom:3px;
+ padding-left:3px;
+ padding-right:3px;
+ nav-index:appearance;
_s60-aspect-ratio:preserve;
- nav-index:appearance;
}
box#text_container
{
block-progression:tb;
+ margin-left:2px;
+ margin-right:3px;
+ margin-top:10px;
}
text.text_box
{
- padding-right:8px;
- padding-left:8px;
- padding-top:8px;
+ padding-right:3px;
+ padding-left:3px;
+ padding-top:3px;
+ padding-bottom:3px;
direction: ltr;
text-align: right;
font-family: EAknLogicalFontSecondaryFont;
- font-size: 23px;
+ font-size: 3.5u;
+ height:25px;
color:"SKIN(268458534 13056 74)";
nav-index:appearance;
_s60-text-valign: top;
--- a/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/57/tworows.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/57/tworows.css Tue Sep 14 20:58:58 2010 +0300
@@ -6,30 +6,39 @@
image#image_container
{
- padding-top:8px;
- padding-bottom:8px;
- padding-left:8px;
- padding-right:8px;
- height: 90%;
- width: 20%;
+ height: 70px;
+ width: 70px;
+ margin-top:3px;
+ margin-bottom:3px;
+ margin-left:3px;
+ margin-right:2px;
+ padding-top:3px;
+ padding-bottom:3px;
+ padding-left:3px;
+ padding-right:3px;
+ nav-index:appearance;
_s60-aspect-ratio:preserve;
- nav-index:appearance;
}
box#text_container
{
block-progression:tb;
+ margin-left:2px;
+ margin-right:3px;
+ margin-top:10px;
}
text.text_box
{
- padding-right:8px;
- padding-left:8px;
- padding-top:8px;
+ padding-right:3px;
+ padding-left:3px;
+ padding-top:3px;
+ padding-bottom:3px;
direction: ltr;
text-align: right;
font-family: EAknLogicalFontSecondaryFont;
- font-size: 23px;
+ font-size: 3.5u;
+ height:25px;
color:"SKIN(268458534 13056 74)";
nav-index:appearance;
_s60-text-valign: top;
--- a/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/94/tworows.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/94/tworows.css Tue Sep 14 20:58:58 2010 +0300
@@ -6,30 +6,39 @@
image#image_container
{
- padding-top:8px;
- padding-bottom:8px;
- padding-left:8px;
- padding-right:8px;
- height: 90%;
- width: 20%;
+ height: 70px;
+ width: 70px;
+ margin-top:3px;
+ margin-bottom:3px;
+ margin-left:3px;
+ margin-right:2px;
+ padding-top:3px;
+ padding-bottom:3px;
+ padding-left:3px;
+ padding-right:3px;
+ nav-index:appearance;
_s60-aspect-ratio:preserve;
- nav-index:appearance;
}
box#text_container
{
block-progression:tb;
+ margin-left:2px;
+ margin-right:3px;
+ margin-top:10px;
}
text.text_box
{
- padding-right:8px;
- padding-left:8px;
- padding-top:8px;
+ padding-right:3px;
+ padding-left:3px;
+ padding-top:3px;
+ padding-bottom:3px;
direction: ltr;
text-align: right;
font-family: EAknLogicalFontSecondaryFont;
- font-size: 23px;
+ font-size: 3.5u;
+ height:25px;
color:"SKIN(268458534 13056 74)";
nav-index:appearance;
_s60-text-valign: top;
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/hsps/00/viewconfiguration.xml Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/hsps/00/viewconfiguration.xml Tue Sep 14 20:58:58 2010 +0300
@@ -12,12 +12,44 @@
</settings>
<plugins>
<plugin uid="0x2001cb7c" bundle_id="0" template_id="0" locking_status="locked"/>
- <plugin uid="0x20026f4f" bundle_id="0" template_id="0" locking_status="none"/>
+ <plugin uid="0x20026f4f" bundle_id="0" template_id="0" locking_status="none">
+ <initial_settings>
+ <settings>
+ <!-- Shortcut #1, Phonebook -->
+ <item id="first" name="Shortcut1" >
+ <property name="type" value="application"/>
+ <property name="uid" value="0x101F4CCE"/>
+ <property name="view" value=""/>
+ <property name="param" value=""/>
+ </item>
+ <!-- Shortcut #2, New Message -->
+ <item id="second" name="Shortcut2" >
+ <property name="type" value="shortcut"/>
+ <property name="uid" value="0x99999999"/>
+ <property name="view" value=""/>
+ <property name="param" value="messaging:msg"/>
+ </item>
+ <!-- Shortcut #3, Browser -->
+ <item id="third" name="Shortcut3" >
+ <property name="type" value="application"/>
+ <property name="uid" value="0x10008D39"/>
+ <property name="view" value=""/>
+ <property name="param" value=""/>
+ </item>
+ <!-- Shortcut #4, Calendar -->
+ <item id="fourth" name="Shortcut4" >
+ <property name="type" value="application"/>
+ <property name="uid" value="0x10005901"/>
+ <property name="view" value=""/>
+ <property name="param" value=""/>
+ </item>
+ </settings>
+ </initial_settings>
+ </plugin>
<plugin uid="0x10207c18" bundle_id="0" template_id="0" locking_status="none"/>
<plugin uid="0x2001f481" bundle_id="0" template_id="0" locking_status="none"/>
<plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
<plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
</plugins>
- <settings/>
</control>
</configuration>
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/loc/View.loc Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/loc/View.loc Tue Sep 14 20:58:58 2010 +0300
@@ -308,3 +308,15 @@
// w:
// r: TB9.2
#define qtn_hs_text_softkey_call "Call"
+
+// d: Lock keypad
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_lock_keypad "Lock keypad"
+
+// d: Menu
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_apps_menu_skey "Menu"
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.dtd Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.dtd Tue Sep 14 20:58:58 2010 +0300
@@ -494,3 +494,21 @@
qtn_hs_text_softkey_call.parents ""
-->
<!ENTITY qtn_hs_text_softkey_call "Call">
+
+<!--
+qtn_hs_page_edit_options_delete.attributes
+qtn_hs_page_edit_options_delete.layout "list_single_pane_t1_cp2"
+qtn_hs_page_edit_options_delete.release "TB9.2"
+qtn_hs_page_edit_options_delete.description "Lock keypad"
+qtn_hs_page_edit_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_lock_keypad "Lock keypad">
+
+<!--
+qtn_hs_text_softkey_call.attributes
+qtn_hs_text_softkey_call.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_call.release "TB9.2"
+qtn_hs_text_softkey_call.description "RSK caption"
+qtn_hs_text_softkey_call.parents ""
+-->
+<!ENTITY qtn_hs_apps_menu_skey "Menu">
--- a/idlehomescreen/data/qhd_tch/view_20022fe0/loc/View.loc Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/view_20022fe0/loc/View.loc Tue Sep 14 20:58:58 2010 +0300
@@ -308,3 +308,15 @@
// w:
// r: TB9.2
#define qtn_hs_text_softkey_call "Call"
+
+// d: Lock keypad
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_lock_keypad "Lock keypad"
+
+// d: Menu
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_apps_menu_skey "Menu"
--- a/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/00/View.dtd Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/00/View.dtd Tue Sep 14 20:58:58 2010 +0300
@@ -494,3 +494,21 @@
qtn_hs_text_softkey_call.parents ""
-->
<!ENTITY qtn_hs_text_softkey_call "Call">
+
+<!--
+qtn_hs_page_edit_options_delete.attributes
+qtn_hs_page_edit_options_delete.layout "list_single_pane_t1_cp2"
+qtn_hs_page_edit_options_delete.release "TB9.2"
+qtn_hs_page_edit_options_delete.description "Lock keypad"
+qtn_hs_page_edit_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_lock_keypad "Lock keypad">
+
+<!--
+qtn_hs_text_softkey_call.attributes
+qtn_hs_text_softkey_call.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_call.release "TB9.2"
+qtn_hs_text_softkey_call.description "RSK caption"
+qtn_hs_text_softkey_call.parents ""
+-->
+<!ENTITY qtn_hs_apps_menu_skey "Menu">
--- a/idlehomescreen/data/qhd_tch/view_200286e4/loc/View.loc Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/loc/View.loc Tue Sep 14 20:58:58 2010 +0300
@@ -308,3 +308,15 @@
// w:
// r: TB9.2
#define qtn_hs_text_softkey_call "Call"
+
+// d: Lock keypad
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_lock_keypad "Lock keypad"
+
+// d: Menu
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_apps_menu_skey "Menu"
--- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.dtd Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.dtd Tue Sep 14 20:58:58 2010 +0300
@@ -494,3 +494,21 @@
qtn_hs_text_softkey_call.parents ""
-->
<!ENTITY qtn_hs_text_softkey_call "Call">
+
+<!--
+qtn_hs_page_edit_options_delete.attributes
+qtn_hs_page_edit_options_delete.layout "list_single_pane_t1_cp2"
+qtn_hs_page_edit_options_delete.release "TB9.2"
+qtn_hs_page_edit_options_delete.description "Lock keypad"
+qtn_hs_page_edit_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_lock_keypad "Lock keypad">
+
+<!--
+qtn_hs_text_softkey_call.attributes
+qtn_hs_text_softkey_call.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_call.release "TB9.2"
+qtn_hs_text_softkey_call.description "RSK caption"
+qtn_hs_text_softkey_call.parents ""
+-->
+<!ENTITY qtn_hs_apps_menu_skey "Menu">
--- a/idlehomescreen/data/qhd_tch/view_200286e5/loc/View.loc Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/loc/View.loc Tue Sep 14 20:58:58 2010 +0300
@@ -308,3 +308,15 @@
// w:
// r: TB9.2
#define qtn_hs_text_softkey_call "Call"
+
+// d: Lock keypad
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_lock_keypad "Lock keypad"
+
+// d: Menu
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_apps_menu_skey "Menu"
--- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.dtd Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.dtd Tue Sep 14 20:58:58 2010 +0300
@@ -494,3 +494,21 @@
qtn_hs_text_softkey_call.parents ""
-->
<!ENTITY qtn_hs_text_softkey_call "Call">
+
+<!--
+qtn_hs_page_edit_options_delete.attributes
+qtn_hs_page_edit_options_delete.layout "list_single_pane_t1_cp2"
+qtn_hs_page_edit_options_delete.release "TB9.2"
+qtn_hs_page_edit_options_delete.description "Lock keypad"
+qtn_hs_page_edit_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_lock_keypad "Lock keypad">
+
+<!--
+qtn_hs_text_softkey_call.attributes
+qtn_hs_text_softkey_call.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_call.release "TB9.2"
+qtn_hs_text_softkey_call.description "RSK caption"
+qtn_hs_text_softkey_call.parents ""
+-->
+<!ENTITY qtn_hs_apps_menu_skey "Menu">
--- a/idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286ed.confml Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configuration xmlns="http://www.s60.com/xml/confml/2" name="Banko Homescreen" version="1">
- <feature ref="BlankoHomescreenPlugins" name="Blanko Homescreen Widgets">
- <setting ref="Plugins" name="Widgets" type="sequence">
- <desc>Widgets on Blanko Homescreen</desc>
- <setting ref="Uid" name="Widget" type="string">
- <desc>Widget name</desc>
- <option name="Empty" value="0x2001f47f"/>
- <option name="wrtplugin_1" value="0x20022FD4"/>
- <option name="wrtplugin_2" value="0x20022FD5"/>
- <option name="wrtplugin_3" value="0x20022FD6"/>
- <option name="wrtplugin_4" value="0x20022FD7"/>
- <option name="wrtplugin_5" value="0x20022FD8"/>
- <option name="wrtplugin_6" value="0x20022FD9"/>
- <option name="wrtplugin_7" value="0x20022FDA"/>
- <option name="wrtplugin_8" value="0x20022FDB"/>
- <option name="wrtplugin_9" value="0x2001CB7D"/>
- <option name="wrtplugin_10" value="0x2001CB7E"/>
- <option name="wrtplugin_11" value="0x2001CB7F"/>
- <option name="wrtplugin_12" value="0x200286EE"/>
- </setting>
- <setting ref="BundleIdentifier" name="Bundle Identifier" type="string">
- <desc>Bundle identifier for the (C)WRT widgets. Leave empty if not set.</desc>
- <option name="8TV Catch Up" value="com.nerdattack.widget.8TV"/>
- <option name="Aftonbladet WebbTV" value="apegroup.aftonbladet.webbtv.symbian3"/>
- <option name="Al Jazeera" value="si.inova.verve.aljazeera"/>
- <option name="BBC Arabic Web TV" value="com.nokia.forum.bbcatv1.widget"/>
- <option name="BH TV" value="com.bollywoodhungama.widget.BollywoodHungamaTV"/>
- <option name="Channel NewsAsia" value="Channel.newsasia"/>
- <option name="CNN Video" value="com.cnn"/>
- <option name="DigiturkWebTV" value="com.digiturkwebtv.widget"/>
- <option name="EFE Videos" value="com.ericsson.efe.widget"/>
- <option name="E!" value="com.moderati.eonline"/>
- <option name="Bollywood" value="br.org.indt.widget.eros"/>
- <option name="Ovi Files" value="com.nokia.ss.sas.filesql"/>
- <option name="Hi5" value="com.hi5.widget.Launcher"/>
- <option name="凤凰电视" value="com.ifeng.www.webtv.widget"/>
- <option name="Chat" value="com.nokia.ChatClient"/>
- <option name="芒果 TV" value="com.imgo.tv"/>
- <option name="India Today" value="br.org.indt.widget.indiatoday"/>
- <option name="BBC iPlayer" value="com.bbc.widget.iplayer"/>
- <option name="Contacts' latest activities" value="com.nokia.somawebui.xwidget"/>
- <option name="M1TV" value="com.m1tv.basic.widget"/>
- <option name="Makansutr" value="com.nerdattack.wrt.Makansutra"/>
- <option name="bose" value="com.bose.basic.widget"/>
- <option name="SingTel MTVS" value="com.nokia.widget.sapi.mtvs"/>
- <option name="Nat Geo" value="com.natgeo"/>
- <option name="NRK Mobil-TV" value="no.nrk.mobil.mobiltv.widget"/>
- <option name="ontv" value="ontv.cc.on.tv.widget"/>
- <option name="ovi" value="com.nokia.ovi"/>
- <option name="Movie Teasers" value="com.movieteasers"/>
- <option name="Schweizer Fernsehen" value="com.sftvreader.basic.widget"/>
- <option name="Sky News On Demand" value="com.nerdattack.widget.SKYNEWS"/>
- <option name="Social" value="com.nokia.socialmixer.v1"/>
- <option name="æœç‹å¨±ä¹" value="com.sohu.widget.webtv4ovi"/>
- <option name="SSOUI" value="ovi.serviceui.SSOUI"/>
- <option name="Terra TV" value="com.terra.widget.wrt.tv"/>
- <option name="Terra TV Lat" value="com.terra.widget.wrt.tv.latam"/>
- <option name="topApps" value="com.topApps.basic.widget"/>
- <option name="Tudou" value="com.Tudou.widget"/>
- <option name="tv2news" value="com.nokia.forum.widget.tv2news"/>
- <option name="TV2Play" value="no.tv2.tv2play.widget"/>
- <option name="TV3 Catch Up" value="com.nerdattack.widget.TV3"/>
- <option name="ВеÑти" value="com.vesti.basic.widget"/>
- <option name="Viasat No" value="no.viasat.widget"/>
- <option name="Viasat Swe" value="se.viasat.widget"/>
- <option name="Virtual Malaysia" value="com.nerdattack.widget.VirtualMalaysia"/>
- <option name="央广新浪" value="cn.com.sina.3g"/>
- <option name="Web TV Demo" value="com.nokia.forum.webtv.widget"/>
- <option name="Yle Areena" value="com.tieto.yle"/>
- <option name="优酷" value="com.youku.s605th.webtv"/>
- </setting>
- <setting ref="TemplateIdentifier" name="Template Identifier" type="selection">
- <desc>Templeate identifier for the (C)WRT widgets. None for the native widgets</desc>
- <option name="None" value="0"/>
- <option name="wideimage" value="0x2001f489"/>
- <option name="threerows" value="0x2001f486"/>
- <option name="threetextrows" value="0x2001f487"/>
- <option name="tworows" value="0x2001f488"/>
- <option name="onerow" value="0x2001f480"/>
- </setting>
- <setting ref="LockingStatus" name="locking Status" type="selection">
- <desc>Locking status</desc>
- <option name="None" value="none"/>
- <option name="Locked" value="locked"/>
- </setting>
- </setting>
- </feature>
- <data>
- <!-- <BlankoHomescreenPlugins>
- <Plugins extensionPolicy="replace"><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
- <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
- <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
- <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
- <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
- <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
- </BlankoHomescreenPlugins> -->
- </data>
-</configuration>
\ No newline at end of file
--- a/idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286ed.gcfml Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
- <tag name="target" value="uda"/>
- <tag name="target" value="emmc"/>
- <phase name='post'/> <!-- post phase for making sure that all required data is available -->
-
-<file xmlns="http://www.s60.com/xml/genconfml/1" name="viewconfiguration.xml" target="\private\200159c0\install\view_200286ed\hsps\00\">
- <setting ref="BlankoHomescreenPlugins/Plugins"/>
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:xi="http://www.w3.org/2001/xinclude">
- <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
- <xsl:template match="configuration/data">
- <configuration>
- <control>
- <plugins>
- <xsl:for-each select="BlankoHomescreenPlugins/Plugins">
- <plugin>
- <xsl:attribute name="uid"><xsl:value-of select="Uid"/></xsl:attribute>
- <xsl:attribute name="bundle_id"><xsl:value-of select="BundleIdentifier"/></xsl:attribute>
- <xsl:attribute name="template_id"><xsl:value-of select="TemplateIdentifier"/></xsl:attribute>
- <xsl:attribute name="locking_status"><xsl:value-of select="LockingStatus"/></xsl:attribute>
- </plugin>
- </xsl:for-each>
- </plugins>
- </control>
- </configuration>
- </xsl:template>
- </xsl:stylesheet>
-</file>
-</container>
\ No newline at end of file
Binary file idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286edmanifest.confml has changed
--- a/idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286edmanifest.gcfml Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
- <tag name="target" value="uda"/>
- <tag name="target" value="emmc"/>
-<file xmlns="http://www.s60.com/xml/genconfml/1" name="manifest.dat" target="\private\200159c0\install\view_200286ed\hsps\00\">
- <setting ref="BlankoHomescreenManifest/PackageVersion"/>
- <setting ref="BlankoHomescreenManifest/DeviceFamily"/>
- <setting ref="BlankoHomescreenManifest/ConfigurationType"/>
- <setting ref="BlankoHomescreenManifest/InterfaceUid"/>
- <setting ref="BlankoHomescreenManifest/ProviderUid"/>
- <setting ref="BlankoHomescreenManifest/ConfigurationUid"/>
- <setting ref="BlankoHomescreenManifest/FullName"/>
- <setting ref="BlankoHomescreenManifest/ShortName"/>
- <setting ref="BlankoHomescreenManifest/ConfigurationVersion"/>
- <setting ref="BlankoHomescreenManifest/ConfigurationFile"/>
- <setting ref="BlankoHomescreenManifest/UiResourceFile"/>
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:xi="http://www.w3.org/2001/xinclude">
- <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
- <xsl:template match="configuration/data">
- <package>
- <xsl:attribute name="version"><xsl:value-of select="BlankoHomescreenManifest/PackageVersion"/></xsl:attribute>
- <family>
- <xsl:value-of select="BlankoHomescreenManifest/DeviceFamily"/>
- </family>
- <type>
- <xsl:value-of select="BlankoHomescreenManifest/ConfigurationType"/>
- </type>
- <interfaceuid>
- <xsl:value-of select="BlankoHomescreenManifest/InterfaceUid"/>
- </interfaceuid>
- <provideruid>
- <xsl:value-of select="BlankoHomescreenManifest/ProviderUid"/>
- </provideruid>
- <configurationuid>
- <xsl:value-of select="BlankoHomescreenManifest/ConfigurationUid"/>
- </configurationuid>
- <fullname>
- <xsl:text>&</xsl:text>
- <xsl:value-of select="BlankoHomescreenManifest/FullName"/>
- <xsl:text>;</xsl:text>
- </fullname>
- <shortname>
- <xsl:value-of select="BlankoHomescreenManifest/ShortName"/>
- </shortname>
- <version>
- <xsl:value-of select="BlankoHomescreenManifest/ConfigurationVersion"/>
- </version>
- <filexml>
- <xsl:value-of select="BlankoHomescreenManifest/ConfigurationFile"/>
- </filexml>
- <localization>
- <fileresource>
- <xsl:value-of select="BlankoHomescreenManifest/UiResourceFile"/>
- </fileresource>
- </localization>
- </package>
- </xsl:template>
- </xsl:stylesheet>
-</file>
-</container>
\ No newline at end of file
Binary file idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286edxuikon.confml has changed
--- a/idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286edxuikon.gcfml Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
- <tag name="target" value="uda"/>
- <tag name="target" value="emmc"/>
-<file xmlns="http://www.s60.com/xml/genconfml/1" name="empty.foo" target="\private\200159c0\install\view_200286ed\xuikon\">
- <setting ref="BlankoHomescreenXuikonFolder/FolderCFG"/>
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:xi="http://www.w3.org/2001/xinclude">
- <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
- <xsl:template match="configuration/data">
- <whois>
- <xsl:attribute name="dude"><xsl:value-of select="BlankoHomescreenXuikonFolder/FolderCFG"/></xsl:attribute>
- </whois>
- </xsl:template>
- </xsl:stylesheet>
-</file>
-</container>
\ No newline at end of file
--- a/idlehomescreen/data/qhd_tch/view_200286ed/group/bld.inf Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* The information required for building
-*
-*/
-
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-
-//Confml and cfgml files for the customization
-// starting use confml it is need to remove root_configuration.xml direct exporting (view_200286e5_variant.iby)
-//***********************************
-../conf/view200286ed.confml APP_LAYER_CONFML(view200286ed.confml)
-../conf/view200286ed.gcfml APP_LAYER_GCFML(view200286ed.gcfml)
-../conf/view200286edmanifest.confml APP_LAYER_CONFML(view200286edmanifest.confml)
-../conf/view200286edmanifest.gcfml APP_LAYER_GCFML(view200286edmanifest.gcfml)
-../conf/view200286edxuikon.confml APP_LAYER_CONFML(view200286edxuikon.confml)
-../conf/view200286edxuikon.gcfml APP_LAYER_GCFML(view200286edxuikon.gcfml)
-
-PRJ_MMPFILES
-
-PRJ_TESTMMPFILES
-
-// End of File
Binary file idlehomescreen/data/vga_tch/clockdate_200286e6/gfx/icon.mif has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,71 @@
+/*
+* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+// Support for productization and Carbide.Ui customization
+//********************************************************
+../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/clockdate_200286e6/hsps/manifest.dat
+../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/clockdate_200286e6/hsps/widgetconfiguration.xml
+
+../xuikon/00/clockdate.dat /epoc32/data/Z/resource/homescreen/clockdate_200286e6/xuikon/clockdate_200286e6.dat
+../xuikon/00/clockdate.css /epoc32/data/Z/resource/homescreen/clockdate_200286e6/xuikon/clockdate.css
+../xuikon/00/clockdate.xml /epoc32/data/Z/resource/homescreen/clockdate_200286e6/xuikon/clockdate.xml
+
+// logo icon
+../gfx/icon.mif /epoc32/data/Z/resource/homescreen/clockdate_200286e6/hsps/icon.mif
+
+// Arabic languages
+//*****************
+../xuikon/37/clockdate.css /epoc32/data/Z/resource/homescreen/clockdate_200286e6/xuikon/37/clockdate.css
+../xuikon/50/clockdate.css /epoc32/data/Z/resource/homescreen/clockdate_200286e6/xuikon/50/clockdate.css
+../xuikon/57/clockdate.css /epoc32/data/Z/resource/homescreen/clockdate_200286e6/xuikon/57/clockdate.css
+../xuikon/94/clockdate.css /epoc32/data/Z/resource/homescreen/clockdate_200286e6/xuikon/94/clockdate.css
+
+// Support for S60 localization
+//*****************************
+// export localizable loc files (engineering versions)
+../loc/clockdatewidget.loc APP_LAYER_LOC_EXPORT_PATH(clockdatewidget.loc)
+../loc/clockdateconfiguration.loc APP_LAYER_LOC_EXPORT_PATH(clockdateconfiguration.loc)
+
+// Support for S60 builds
+//***********************
+../rom/clockdatewidget_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(clockdate_200286e6_resources.iby)
+../rom/clockdatewidget_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(clockdate_200286e6_customer.iby)
+../rom/clockdatewidget_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(clockdate_200286e6_variant.iby)
+../rom/clockdatewidget.iby CORE_APP_LAYER_IBY_EXPORT_PATH(clockdate_200286e6.iby)
+
+// Dtd-localization
+//*****************
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME clockdate_200286e6
+OPTION DTD_TYPE widget
+OPTION LOC_FOLDERS yes
+END
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+
+// End of File
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/hsps/00/clockdateconfiguration.dtd Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+============================================================================
+<FileName: "clockdateconfiguration.dtd">
+<PartOf : "clockdateconfiguration">
+
+<FileDescription: "Localization strings for the configuration">
+<FileVersion : >
+
+<Copyright:
+"Copyright � 2007 Nokia Corporation.
+This material, including documentation and any related
+computer programs, is protected by copyright controlled by
+Nokia Corporation. All rights are reserved. Copying,
+including reproducing, storing, adapting or translating, any
+or all of this material requires the prior written consent of
+Nokia Corporation. This material also contains confidential
+information which may not be disclosed to others without the
+prior written consent of Nokia Corporation.">
+============================================================================
+-->
+
+<!-- NOTE: make sure that there is at last one space character (hex 20) after the entity name -->
+
+<!--
+qtn_desktop_configuration_name.attributes
+qtn_desktop_configuration_name.layout "listrow_wgtman_pane_t1"
+qtn_desktop_configuration_name.release "TB9.2"
+qtn_desktop_configuration_name.description "clockdate"
+qtn_desktop_configuration_name.parents ""
+-->
+<!ENTITY qtn_clockdate_configuration_name "Time & date">
+
+<!--
+qtn_desktop_configuration_desc.attributes
+qtn_desktop_configuration_desc.layout "listrow_wgtman_pane_t2"
+qtn_desktop_configuration_desc.release "TB9.2"
+qtn_desktop_configuration_desc.description "clockdate widget description"
+qtn_desktop_configuration_desc.parents ""
+-->
+<!ENTITY qtn_clockdate_configuration_desc "Quick access to time and date.">
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/hsps/00/manifest.dat Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+
+<package version="2.0">
+ <family>vga_tch</family>
+
+ <type>widget</type>
+
+ <!-- interface uid -->
+ <interfaceuid>0x2001f48a</interfaceuid>
+
+ <!-- vendor uid -->
+ <provideruid>0x101fb657</provideruid>
+ <!-- uid -->
+
+ <configurationuid>0x200286e6</configurationuid>
+
+ <fullname>Time and Date</fullname>
+ <shortname>clockdate</shortname>
+ <version>1.0</version>
+
+ <!-- description -->
+ <description>Clock widget</description>
+
+ <!-- configuration -->
+ <filexml>widgetconfiguration.xml</filexml>
+
+ <filelogo>skin(270501603 9360):mif(icon.mif 16384 16385)</filelogo>
+ <!-- Locale specific resources -->
+ <localization>
+ <fileresource tag="xuikon">clockdate.o0000</fileresource>
+ </localization>
+
+</package>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/hsps/00/widgetconfiguration.xml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,5 @@
+<configuration>
+ <control>
+ <settings/>
+ </control>
+</configuration>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/loc/clockdateconfiguration.loc Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Localization strings for project Active Idle 3 (hsps)
+*
+*/
+
+
+// d: clockdate widget name
+// l: listrow_wgtman_pane_t1
+// w:
+// r: TB9.2
+#define qtn_clockdate_configuration_name "Time & date"
+
+// d: clockdate widget description
+// l: wgtman_list_pane_t1
+// w:
+// r: TB9.2
+#define qtn_clockdate_configuration_desc "Quick access to time and date."
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/loc/clockdatewidget.loc Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,17 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Localization strings for project Active Idle 3 (xuikon)
+*
+*/
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/rom/clockdatewidget.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* clockdate widget HSPS-plugin IBY file.
+*
+*/
+
+#ifndef __CLOCKDATEWIDGET_200286e6_IBY__
+#define __CLOCKDATEWIDGET_200286e6_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools
+data=ZPRIVATE\200159c0\install\clockdate_200286e6\hsps\00\manifest.dat \private\200159c0\install\clockdate_200286e6\hsps\00\manifest.dat
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __CLOCKDATEWIDGET_200286e6_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/rom/clockdatewidget_customer.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* clockdate widget HSPS-plugin language specific IBY file.
+*
+*/
+
+#ifndef __CLOCKDATEWIDGET_200286e6_CUSTOMER_IBY__
+#define __CLOCKDATEWIDGET_200286e6_CUSTOMER_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\clockdate_200286e6\xuikon\00\clockdate.o0000 \private\200159c0\install\clockdate_200286e6\xuikon\00\clockdate.o0000
+// data=ZPRIVATE\200159c0\install\clockdate_200286e6\hsps\00\clockdateconfiguration.dtd \private\200159c0\install\clockdate_200286e6\hsps\00\clockdateconfiguration.dtd
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __CLOCKDATEWIDGET_200286e6_CUSTOMER_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/rom/clockdatewidget_resources.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* profile widget HSPS-plugin language specific IBY file.
+*
+*/
+
+#ifndef __CLOCKDATEWIDGET_200286e6_RESOURCES_IBY__
+#define __CLOCKDATEWIDGET_200286e6_RESOURCES_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+data=ZPRIVATE\200159c0\install\clockdate_200286e6\xuikon\00\clockdate.o0000 \private\200159c0\install\clockdate_200286e6\xuikon\00\clockdate.o0000
+data=ZPRIVATE\200159c0\install\clockdate_200286e6\hsps\00\icon.mif \private\200159c0\install\clockdate_200286e6\hsps\00\icon.mif
+// data=ZPRIVATE\200159c0\install\clockdate_200286e6\hsps\00\clockdateconfiguration.dtd \private\200159c0\install\clockdate_200286e6\hsps\00\clockdateconfiguration.dtd
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __CLOCKDATEWIDGET_200286e6_RESOURCES_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/rom/clockdatewidget_variant.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* clockdate widget HSPS-plugin variant specific IBY file.
+*
+*/
+
+#ifndef __clockdateWIDGET_200286e6_VARIANT_IBY__
+#define __clockdateWIDGET_200286e6_VARIANT_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by variation tools, variant specific
+data=ZPRIVATE\200159c0\install\clockdate_200286e6\hsps\00\widgetconfiguration.xml \private\200159c0\install\clockdate_200286e6\hsps\00\widgetconfiguration.xml
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __clockdateWIDGET_200286e6_VARIANT_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,57 @@
+clock#clock
+{
+ width: 176px;
+ height: 115px;
+ _s60-font-size: 48px;
+ color: "SKIN(268458534 13056 74)";
+ background-color: "SKIN(268458534 9916)";
+ nav-index: appearance;
+}
+
+face12
+{
+ position: absolute;
+ top: 14px;
+ left: 19px;
+ width: 102px;
+ height: 59px;
+ text-align: right;
+}
+
+ampm
+{
+ position: absolute;
+ width: 46px;
+ height: 28px;
+ top: 37px;
+ left: 124px;
+ text-align: left;
+ _s60-font-size: 28px;
+}
+
+face24
+{
+ position: absolute;
+ top: 14px;
+ width: auto;
+ height: 59px;
+}
+
+date
+{
+ position: absolute;
+ top: 78px;
+ width: auto;
+ height: 28px;
+ _s60-font-size: 26px;
+}
+
+face
+{
+ width: auto;
+ height: auto;
+
+ margin-left: 6px;
+ margin-right: 6px;
+ margin-bottom: 5px;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.dat Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<data>
+ <AppUid>2001CB4F</AppUid>
+ <Provideruid>101FB657</Provideruid>
+ <ThemeUid>110012F5</ThemeUid>
+ <ThemeFullName>clockdate</ThemeFullName>
+ <ThemeShortName>clockdate</ThemeShortName>
+ <ThemeVersion>1.0</ThemeVersion>
+ <FileXML>clockdate.xml</FileXML>
+ <FileCSS>clockdate.css</FileCSS>
+</data>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.xml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
+ <widget id="clockdate">
+ <clock id="clock" focusable="true" _s60-initial-focus="1">
+ <digital>
+ <face12/>
+ <face24/>
+ <ampm/>
+ <date/>
+ </digital>
+ <analog>
+ <face/>
+ </analog>
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="EventHandler/LaunchApp" uid="0x10005903"/><!--clock application-->
+ </action>
+ </actions>
+ </clock>
+ </widget>
+</xmluiml>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/37/clockdate.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,57 @@
+clock#clock
+{
+ width: 176px;
+ height: 115px;
+ _s60-font-size: 48px;
+ color: "SKIN(268458534 13056 74)";
+ background-color: "SKIN(268458534 9916)";
+ nav-index: appearance;
+}
+
+face12
+{
+ position: absolute;
+ left: 55px;
+ top: 14px;
+ width: 102px;
+ height: 59px;
+ text-align: left;
+}
+
+ampm
+{
+ position: absolute;
+ width: 46px;
+ height: 28px;
+ left: 6px;
+ top: 37px;
+ text-align: right;
+ _s60-font-size: 28px;
+}
+
+face24
+{
+ position: absolute;
+ top: 14px;
+ width: auto;
+ height: 59px;
+}
+
+date
+{
+ position: absolute;
+ top: 78px;
+ width: auto;
+ height: 28px;
+ _s60-font-size: 26px;
+}
+
+face
+{
+ width: auto;
+ height: auto;
+
+ margin-left: 6px;
+ margin-right: 6px;
+ margin-bottom: 5px;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/50/clockdate.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,57 @@
+clock#clock
+{
+ width: 176px;
+ height: 115px;
+ _s60-font-size: 48px;
+ color: "SKIN(268458534 13056 74)";
+ background-color: "SKIN(268458534 9916)";
+ nav-index: appearance;
+}
+
+face12
+{
+ position: absolute;
+ left: 55px;
+ top: 14px;
+ width: 102px;
+ height: 59px;
+ text-align: left;
+}
+
+ampm
+{
+ position: absolute;
+ width: 46px;
+ height: 28px;
+ left: 6px;
+ top: 37px;
+ text-align: right;
+ _s60-font-size: 28px;
+}
+
+face24
+{
+ position: absolute;
+ top: 14px;
+ width: auto;
+ height: 59px;
+}
+
+date
+{
+ position: absolute;
+ top: 78px;
+ width: auto;
+ height: 28px;
+ _s60-font-size: 26px;
+}
+
+face
+{
+ width: auto;
+ height: auto;
+
+ margin-left: 6px;
+ margin-right: 6px;
+ margin-bottom: 5px;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/57/clockdate.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,57 @@
+clock#clock
+{
+ width: 176px;
+ height: 115px;
+ _s60-font-size: 48px;
+ color: "SKIN(268458534 13056 74)";
+ background-color: "SKIN(268458534 9916)";
+ nav-index: appearance;
+}
+
+face12
+{
+ position: absolute;
+ left: 55px;
+ top: 14px;
+ width: 102px;
+ height: 59px;
+ text-align: left;
+}
+
+ampm
+{
+ position: absolute;
+ width: 46px;
+ height: 28px;
+ left: 6px;
+ top: 37px;
+ text-align: right;
+ _s60-font-size: 28px;
+}
+
+face24
+{
+ position: absolute;
+ top: 14px;
+ width: auto;
+ height: 59px;
+}
+
+date
+{
+ position: absolute;
+ top: 78px;
+ width: auto;
+ height: 28px;
+ _s60-font-size: 26px;
+}
+
+face
+{
+ width: auto;
+ height: auto;
+
+ margin-left: 6px;
+ margin-right: 6px;
+ margin-bottom: 5px;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/94/clockdate.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,57 @@
+clock#clock
+{
+ width: 176px;
+ height: 115px;
+ _s60-font-size: 48px;
+ color: "SKIN(268458534 13056 74)";
+ background-color: "SKIN(268458534 9916)";
+ nav-index: appearance;
+}
+
+face12
+{
+ position: absolute;
+ left: 55px;
+ top: 14px;
+ width: 102px;
+ height: 59px;
+ text-align: left;
+}
+
+ampm
+{
+ position: absolute;
+ width: 46px;
+ height: 28px;
+ left: 6px;
+ top: 37px;
+ text-align: right;
+ _s60-font-size: 28px;
+}
+
+face24
+{
+ position: absolute;
+ top: 14px;
+ width: auto;
+ height: 59px;
+}
+
+date
+{
+ position: absolute;
+ top: 78px;
+ width: auto;
+ height: 28px;
+ _s60-font-size: 26px;
+}
+
+face
+{
+ width: auto;
+ height: auto;
+
+ margin-left: 6px;
+ margin-right: 6px;
+ margin-bottom: 5px;
+}
--- a/idlehomescreen/data/vga_tch/desktop_20018eee/hsps/00/widgetconfiguration.xml Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/desktop_20018eee/hsps/00/widgetconfiguration.xml Tue Sep 14 20:58:58 2010 +0300
@@ -4,45 +4,31 @@
<!-- Shortcut #1, Phonebook -->
<item id="first" name="Shortcut1" >
<property name="type" value="application"/>
- <property name="uid" value="0x101F4CCE"/>
+ <property name="uid" value="0x99999990"/>
<property name="view" value=""/>
<property name="param" value=""/>
</item>
- <!-- Shortcut #2, Messaging -->
+ <!-- Shortcut #2, New Message -->
<item id="second" name="Shortcut2" >
<property name="type" value="application"/>
- <property name="uid" value="0x100058C5"/>
+ <property name="uid" value="0x99999990"/>
<property name="view" value=""/>
<property name="param" value=""/>
</item>
<!-- Shortcut #3, Browser -->
<item id="third" name="Shortcut3" >
<property name="type" value="application"/>
- <property name="uid" value="0x10008D39"/>
- <property name="view" value=""/>
- <property name="param" value=""/>
- </item>
- <!-- Shortcut #4, Photos -->
- <item id="fourth" name="Shortcut4" >
- <property name="type" value="application"/>
- <property name="uid" value="0x200009EE"/>
+ <property name="uid" value="0x99999990"/>
<property name="view" value=""/>
<property name="param" value=""/>
</item>
- <!-- Shortcut #5, Calendar -->
- <item id="fifth" name="Shortcut5" >
+ <!-- Shortcut #4, Calendar -->
+ <item id="fourth" name="Shortcut4" >
<property name="type" value="application"/>
- <property name="uid" value="0x10005901"/>
+ <property name="uid" value="0x99999990"/>
<property name="view" value=""/>
<property name="param" value=""/>
</item>
- <!-- Shortcut #6, New message -->
- <item id="sixth" name="Shortcut6" >
- <property name="type" value="shortcut"/>
- <property name="uid" value="0x99999999"/>
- <property name="view" value=""/>
- <property name="param" value="messaging:msg"/>
- </item>
</settings>
</control>
</configuration>
--- a/idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop.iby Tue Sep 14 20:58:58 2010 +0300
@@ -12,20 +12,18 @@
* Contributors:
*
* Description:
-* Top Contacts widget HSPS-plugin core IBY file.
+* Desktop widget HSPS-plugin core IBY file.
*
*/
-#ifdef FF_TOPCONTACTSWIDGET_COMPONENT
+#ifndef __DESKTOP_20018EEE_IBY__
+#define __DESKTOP_20018EEE_IBY__
-#ifndef __TOPCONTACTS_IBY__
-#define __TOPCONTACTS_IBY__
-
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools
-data=ZPRIVATE\200159c0\install\topcontacts\hsps\00\manifest.dat \private\200159c0\install\topcontacts\hsps\00\manifest.dat
+data=ZPRIVATE\200159c0\install\desktop_20018eee\hsps\00\manifest.dat \private\200159c0\install\desktop_20018eee\hsps\00\manifest.dat
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
-#endif // FF_TOPCONTACTSWIDGET_COMPONENT
\ No newline at end of file
+#endif // __DESKTOP_20018EEE_IBY__
\ No newline at end of file
--- a/idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop_customer.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop_customer.iby Tue Sep 14 20:58:58 2010 +0300
@@ -12,22 +12,17 @@
* Contributors:
*
* Description:
-* Top Contacts widget HSPS-plugin customer specific IBY file.
+* Desktop widget HSPS-plugin customer specific IBY file.
*
*/
-#ifdef FF_TOPCONTACTSWIDGET_COMPONENT
-
#ifndef __DESKTOP_20018EEE_CUSTOMER_IBY__
#define __DESKTOP_20018EEE_CUSTOMER_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
-data=ZPRIVATE\200159c0\install\topcontacts\xuikon\00\TopContacts.o0000 \private\200159c0\install\topcontacts\xuikon\00\TopContacts.o0000
-data=ZPRIVATE\200159c0\install\topcontacts\hsps\00\topcontact_hs_widget.dtd \private\200159c0\install\topcontacts\hsps\00\topcontact_hs_widget.dtd
+data=ZPRIVATE\200159c0\install\desktop_20018eee\xuikon\00\Desktop.o0000 \private\200159c0\install\desktop_20018eee\xuikon\00\Desktop.o0000
-#endif // FF_LAYOUT_480_640_VGA3
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __DESKTOP_20018EEE_CUSTOMER_IBY__
-
-#endif // FF_TOPCONTACTSWIDGET_COMPONENT
--- a/idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop_resources.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop_resources.iby Tue Sep 14 20:58:58 2010 +0300
@@ -12,36 +12,30 @@
* Contributors:
*
* Description:
-* Top Contacts widget HSPS-plugin language specific IBY file.
+* Desktop widget HSPS-plugin language specific IBY file.
*
*/
-#ifdef FF_TOPCONTACTSWIDGET_COMPONENT
-
#ifndef __DESKTOP_20018EEE_RESOURCES_IBY__
#define __DESKTOP_20018EEE_RESOURCES_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools, language specific
#if defined (__LOCALES_37_IBY__)
-data=ZPRIVATE\200159c0\install\topcontacts\xuikon\37\topcontacts.o0037 \private\200159c0\install\topcontacts\xuikon\37\topcontacts.o0037
+data=ZPRIVATE\200159c0\install\desktop_20018eee\xuikon\37\Desktop.o0037 \private\200159c0\install\desktop_20018eee\xuikon\37\Desktop.o0037
#endif
#if defined (__LOCALES_50_IBY__)
-data=ZPRIVATE\200159c0\install\topcontacts\xuikon\50\topcontacts.o0050 \private\200159c0\install\topcontacts\xuikon\50\topcontacts.o0050
+data=ZPRIVATE\200159c0\install\desktop_20018eee\xuikon\50\Desktop.o0050 \private\200159c0\install\desktop_20018eee\xuikon\50\Desktop.o0050
#endif
#if defined (__LOCALES_57_IBY__)
-data=ZPRIVATE\200159c0\install\topcontacts\xuikon\57\topcontacts.o0057 \private\200159c0\install\topcontacts\xuikon\57\topcontacts.o0057
+data=ZPRIVATE\200159c0\install\desktop_20018eee\xuikon\57\Desktop.o0057 \private\200159c0\install\desktop_20018eee\xuikon\57\Desktop.o0057
#endif
#if defined (__LOCALES_94_IBY__)
-data=ZPRIVATE\200159c0\install\topcontacts\xuikon\94\topcontacts.o0094 \private\200159c0\install\topcontacts\xuikon\94\topcontacts.o0094
+data=ZPRIVATE\200159c0\install\desktop_20018eee\xuikon\94\Desktop.o0094 \private\200159c0\install\desktop_20018eee\xuikon\94\Desktop.o0094
#endif
-
-data=ZPRIVATE\200159c0\install\topcontacts\hsps\00\topcontact_hs_widget.dtd \private\200159c0\install\topcontacts\hsps\00\topcontact_hs_widget.dtd
-
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __DESKTOP_20018EEE_RESOURCES_IBY__
-#endif // FF_TOPCONTACTSWIDGET_COMPONENT
--- a/idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop_variant.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop_variant.iby Tue Sep 14 20:58:58 2010 +0300
@@ -12,22 +12,18 @@
* Contributors:
*
* Description:
-* Top Contacts widget HSPS-plugin variant specific IBY file.
+* Desktop widget HSPS-plugin variant specific IBY file.
*
*/
-#ifdef FF_TOPCONTACTSWIDGET_COMPONENT
-
#ifndef __DESKTOP_20018EEE_VARIANT_IBY__
#define __DESKTOP_20018EEE_VARIANT_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by variation tools, variant specific
-data=ZPRIVATE\200159c0\install\topcontacts\hsps\00\widgetconfiguration.xml \private\200159c0\install\topcontacts\hsps\00\widgetconfiguration.xml
+data=ZPRIVATE\200159c0\install\desktop_20018eee\hsps\00\widgetconfiguration.xml \private\200159c0\install\desktop_20018eee\hsps\00\widgetconfiguration.xml
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __DESKTOP_20018EEE_VARIANT_IBY__
-
-#endif // FF_TOPCONTACTSWIDGET_COMPONENT
--- a/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/00/desktop.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/00/desktop.css Tue Sep 14 20:58:58 2010 +0300
@@ -1,59 +1,31 @@
widget#desktop_widget
{
- width: auto;
- height: 70px;
-
block-progression: rl;
direction: ltr;
+ color: "SKIN(268458534 13056 74)";
+ background-color: "SKIN(268458534 9916)";
}
button.button
{
- width: 70px;
- height: auto;
-
nav-index: appearance;
-
- margin-left: 4px;
- margin-right: 4px;
-
- background-color: "SKIN(268458534 9906)";
+ width: 105px;
+ height: 105px;
+ margin-top: 5px;
}
button#button1
{
- margin-left: 0px;
-}
-
-button#button6
-{
- margin-right: 0px;
-}
-
-button.button:focus
-{
- focus-background: "SKIN(268458534 5120 9)";
+ margin-left: 10px;
}
image.icon
{
- width: auto;
- height: auto;
-
_s60-aspect-ratio: preserve;
-}
-
-/* For presence */
-image.second_icon
-{
- margin-top:0%;
- width: 25%;
- height: 25%;
- position: absolute;
- bottom: 0%;
- left: 70%;
- top: 3%;
- _s60-aspect-ratio:preserve;
+ padding-left: 5px;
+ padding-top: 5px;
+ width: 95px;
+ height: 95px;
}
tooltip.tooltip
@@ -75,12 +47,14 @@
padding-right: 6px;
}
+
text.tooltiptext
-{
+{
font-family: EAknLogicalFontSecondaryFont;
font-size: 23px;
width: adaptive;
color: "SKIN(268458534 13056 19)";
+ overflow: visible;
}
/*********************
--- a/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/00/desktop.xml Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/00/desktop.xml Tue Sep 14 20:58:58 2010 +0300
@@ -2,23 +2,14 @@
<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
<widget id="desktop_widget" class="desktop_widget">
-
- <!-- Launch service aPI plugin and fetch data from CPS -->
+
<contentsource name="DesktopWidget" value="0x2001CB58"/>
<!-- Shortcut #1 -->
<button id="button1" class="button" focusable="true" _s60-initial-focus="1">
<actions>
<action>
- <trigger name="stylus">
- <property name="eventtype" value="downup" />
- </trigger>
- <trigger name="activate"/>
- <trigger name="keyevent">
- <!-- EStdKeyEnter (enum from e32keys.h) -->
- <property name="scancode" value="3"/>
- <property name="eventtype" value="1"/>
- </trigger>
+ <trigger name="activate"/>
<event name="DesktopWidget/LaunchByIndex(0x1)"/>
</action>
</actions>
@@ -34,21 +25,11 @@
</text>
</tooltip>
</button>
-
-
<!-- Shortcut #2 -->
<button id="button2" class="button" focusable="true">
<actions>
<action>
- <trigger name="stylus">
- <property name="eventtype" value="downup" />
- </trigger>
<trigger name="activate"/>
- <trigger name="keyevent">
- <!-- EStdKeyEnter (enum from e32keys.h) -->
- <property name="scancode" value="3"/>
- <property name="eventtype" value="1"/>
- </trigger>
<event name="DesktopWidget/LaunchByIndex(0x2)"/>
</action>
</actions>
@@ -64,20 +45,11 @@
</text>
</tooltip>
</button>
-
<!-- Shortcut #3 -->
<button id="button3" class="button" focusable="true">
<actions>
<action>
- <trigger name="stylus">
- <property name="eventtype" value="downup" />
- </trigger>
<trigger name="activate"/>
- <trigger name="keyevent">
- <!-- EStdKeyEnter (enum from e32keys.h) -->
- <property name="scancode" value="3"/>
- <property name="eventtype" value="1"/>
- </trigger>
<event name="DesktopWidget/LaunchByIndex(0x3)"/>
</action>
</actions>
@@ -93,20 +65,11 @@
</text>
</tooltip>
</button>
-
<!-- Shortcut #4 -->
<button id="button4" class="button" focusable="true">
<actions>
<action>
- <trigger name="stylus">
- <property name="eventtype" value="downup" />
- </trigger>
<trigger name="activate"/>
- <trigger name="keyevent">
- <!-- EStdKeyEnter (enum from e32keys.h) -->
- <property name="scancode" value="3"/>
- <property name="eventtype" value="1"/>
- </trigger>
<event name="DesktopWidget/LaunchByIndex(0x4)"/>
</action>
</actions>
@@ -123,73 +86,7 @@
</tooltip>
</button>
- <!-- Shortcut #5 -->
- <button id="button5" class="button" focusable="true">
- <actions>
- <action>
- <trigger name="stylus">
- <property name="eventtype" value="downup" />
- </trigger>
- <trigger name="activate"/>
- <trigger name="keyevent">
- <!-- EStdKeyEnter (enum from e32keys.h) -->
- <property name="scancode" value="3"/>
- <property name="eventtype" value="1"/>
- </trigger>
- <event name="DesktopWidget/LaunchByIndex(0x5)"/>
- </action>
- </actions>
- <image id="icon5" class="icon">
- <property class="DesktopWidget/icon" name="ordinal" value="0x5"/>
- </image>
- <image id="presenceicon5" class="second_icon">
- <property class="DesktopWidget/presenceicon" name="ordinal" value="0x5"/>
- </image>
- <tooltip id="tooltip5" class="tooltip" >
- <text id="tooltiptext5" class="tooltiptext" >
- <property class="DesktopWidget/long_name" name="ordinal" value="0x5"/>
- </text>
- </tooltip>
- </button>
-
- <button id="button6" class="button" focusable="true">
- <actions>
- <action>
- <trigger name="stylus">
- <property name="eventtype" value="downup" />
- </trigger>
- <trigger name="activate"/>
- <trigger name="keyevent">
- <!-- EStdKeyEnter (enum from e32keys.h) -->
- <property name="scancode" value="3"/>
- <property name="eventtype" value="1"/>
- </trigger>
- <event name="DesktopWidget/LaunchByIndex(0x6)"/>
- </action>
- </actions>
- <image id="icon6" class="icon">
- <property class="DesktopWidget/icon" name="ordinal" value="0x6"/>
- </image>
- <image id="presenceicon6" class="second_icon">
- <property class="DesktopWidget/presenceicon" name="ordinal" value="0x6"/>
- </image>
- <tooltip id="tooltip6" class="tooltip" >
- <text id="tooltiptext6" class="tooltiptext" >
- <property class="DesktopWidget/long_name" name="ordinal" value="0x6"/>
- </text>
- </tooltip>
- </button>
-
<menuextension>
- <softkey type="middle" target="hs_widget_msk_open"/>
- <menuitem target="hs_widget_menuitem_open">
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="system/activateselecteditem"/>
- </action>
- </actions>
- </menuitem>
<menuitem target="hs_widget_menuitem_settings">
<actions>
<action>
@@ -199,6 +96,5 @@
</actions>
</menuitem>
</menuextension>
-
</widget>
-</xmluiml>
\ No newline at end of file
+</xmluiml>
--- a/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/37/desktop.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/37/desktop.css Tue Sep 14 20:58:58 2010 +0300
@@ -1,66 +1,38 @@
widget#desktop_widget
{
- width: auto;
- height: 70px;
-
block-progression: rl;
direction: rtl;
+ color: "SKIN(268458534 13056 74)";
+ background-color: "SKIN(268458534 9916)";
}
button.button
{
- width: 70px;
- height: auto;
-
nav-index: appearance;
-
- margin-left: 4px;
- margin-right: 4px;
- background-color: "SKIN(268458534 9906)";
+ width: 105px;
+ height: 105px;
+ margin-top: 5px;
}
button#button1
{
- margin-left: 0px;
-}
-
-button#button6
-{
- margin-right: 0px;
-}
-
-button.button:focus
-{
- focus-background: "SKIN(268458534 5120 9)";
+ margin-right: 10px;
}
image.icon
{
- width: auto;
- height: auto;
-
_s60-aspect-ratio: preserve;
-}
-
-/* For presence */
-image.second_icon
-{
- margin-top:0%;
- width: 25%;
- height: 25%;
- position: absolute;
- bottom: 0%;
- left: 70%;
- top: 3%;
- _s60-aspect-ratio:preserve;
+ padding-left: 5px;
+ padding-top: 5px;
+ width: 95px;
+ height: 95px;
}
tooltip.tooltip
{
- width: 15.0u; /* any fixed lenghts works here if the owerflow is set to
- both tooltip and text inside it */
- height: 5.5u;
-
+ width: adaptive;
+ max-width: 350px;
+ height: 33px;
border-style: solid;
border-width: 5px;
@@ -68,23 +40,21 @@
_s60-display-time: 1000000;
background-color:"SKIN(268458534 8480)";
- overflow: visible;
+ display: block;
+ padding-left: 6px;
+ padding-top: 3px;
+ padding-bottom: 3px;
+ padding-right: 6px;
}
text.tooltiptext
-{
- position: static;
+{
font-family: EAknLogicalFontSecondaryFont;
- font-size: 3.5u;
- width: 100%;
- height: 85%;
- text-align: center;
+ font-size: 23px;
+ width: adaptive;
color: "SKIN(268458534 13056 19)";
overflow: visible;
- padding-right: 1u;
- padding-left: 1u;
- padding-bottom: 1u;
}
/*********************
@@ -95,7 +65,7 @@
width: 15.0u;
height: adaptive;
border-style: solid;
- border-width: 5px;
+ border-width: 5px;
/* delay comes from the xSP server */
_s60-start-delay: 0;
_s60-display-time: 60000000; /* 6 sec */
--- a/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/50/desktop.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/50/desktop.css Tue Sep 14 20:58:58 2010 +0300
@@ -1,66 +1,38 @@
widget#desktop_widget
{
- width: auto;
- height: 70px;
-
block-progression: rl;
direction: rtl;
+ color: "SKIN(268458534 13056 74)";
+ background-color: "SKIN(268458534 9916)";
}
button.button
{
- width: 70px;
- height: auto;
-
nav-index: appearance;
-
- margin-left: 4px;
- margin-right: 4px;
- background-color: "SKIN(268458534 9906)";
+ width: 105px;
+ height: 105px;
+ margin-top: 5px;
}
button#button1
{
- margin-left: 0px;
-}
-
-button#button6
-{
- margin-right: 0px;
-}
-
-button.button:focus
-{
- focus-background: "SKIN(268458534 5120 9)";
+ margin-right: 10px;
}
image.icon
{
- width: auto;
- height: auto;
-
_s60-aspect-ratio: preserve;
-}
-
-/* For presence */
-image.second_icon
-{
- margin-top:0%;
- width: 25%;
- height: 25%;
- position: absolute;
- bottom: 0%;
- left: 70%;
- top: 3%;
- _s60-aspect-ratio:preserve;
+ padding-left: 5px;
+ padding-top: 5px;
+ width: 95px;
+ height: 95px;
}
tooltip.tooltip
{
- width: 15.0u; /* any fixed lenghts works here if the owerflow is set to
- both tooltip and text inside it */
- height: 5.5u;
-
+ width: adaptive;
+ max-width: 350px;
+ height: 33px;
border-style: solid;
border-width: 5px;
@@ -68,23 +40,21 @@
_s60-display-time: 1000000;
background-color:"SKIN(268458534 8480)";
- overflow: visible;
+ display: block;
+ padding-left: 6px;
+ padding-top: 3px;
+ padding-bottom: 3px;
+ padding-right: 6px;
}
text.tooltiptext
-{
- position: static;
+{
font-family: EAknLogicalFontSecondaryFont;
- font-size: 3.5u;
- width: 100%;
- height: 85%;
- text-align: center;
+ font-size: 23px;
+ width: adaptive;
color: "SKIN(268458534 13056 19)";
overflow: visible;
- padding-right: 1u;
- padding-left: 1u;
- padding-bottom: 1u;
}
/*********************
--- a/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/57/desktop.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/57/desktop.css Tue Sep 14 20:58:58 2010 +0300
@@ -1,91 +1,60 @@
- widget#desktop_widget
+widget#desktop_widget
{
- width: auto;
- height: 70px;
-
block-progression: rl;
direction: rtl;
+ color: "SKIN(268458534 13056 74)";
+ background-color: "SKIN(268458534 9916)";
}
button.button
{
- width: 70px;
- height: auto;
-
nav-index: appearance;
-
- margin-left: 4px;
- margin-right: 4px;
-
- background-color: "SKIN(268458534 9906)";
+ width: 105px;
+ height: 105px;
+ margin-top: 5px;
}
button#button1
{
- margin-left: 0px;
-}
-
-button#button6
-{
- margin-right: 0px;
-}
-
-button.button:focus
-{
- focus-background: "SKIN(268458534 5120 9)";
+ margin-right: 10px;
}
image.icon
{
- width: auto;
- height: auto;
-
_s60-aspect-ratio: preserve;
-}
-
-/* For presence */
-image.second_icon
-{
- margin-top:0%;
- width: 25%;
- height: 25%;
- position: absolute;
- bottom: 0%;
- left: 70%;
- top: 3%;
- _s60-aspect-ratio:preserve;
+ padding-left: 5px;
+ padding-top: 5px;
+ width: 95px;
+ height: 95px;
}
tooltip.tooltip
{
- width: 15.0u; /* any fixed lenghts works here if the owerflow is set to
- both tooltip and text inside it */
- height: 5.5u;
-
+ width: adaptive;
+ max-width: 350px;
+ height: 33px;
border-style: solid;
- border-width: 5px;
+ border-width: 5px;
_s60-start-delay: 1000000;
_s60-display-time: 1000000;
background-color:"SKIN(268458534 8480)";
- overflow: visible;
+ display: block;
+ padding-left: 6px;
+ padding-top: 3px;
+ padding-bottom: 3px;
+ padding-right: 6px;
}
text.tooltiptext
-{
- position: static;
+{
font-family: EAknLogicalFontSecondaryFont;
- font-size: 3.5u;
- width: 100%;
- height: 85%;
- text-align: center;
+ font-size: 23px;
+ width: adaptive;
color: "SKIN(268458534 13056 19)";
overflow: visible;
- padding-right: 1u;
- padding-left: 1u;
- padding-bottom: 1u;
}
/*********************
--- a/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/94/desktop.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/94/desktop.css Tue Sep 14 20:58:58 2010 +0300
@@ -1,91 +1,60 @@
widget#desktop_widget
{
- width: auto;
- height: 70px;
-
block-progression: rl;
direction: rtl;
+ color: "SKIN(268458534 13056 74)";
+ background-color: "SKIN(268458534 9916)";
}
button.button
{
- width: 70px;
- height: auto;
-
nav-index: appearance;
-
- margin-left: 4px;
- margin-right: 4px;
-
- background-color: "SKIN(268458534 9906)";
+ width: 105px;
+ height: 105px;
+ margin-top: 5px;
}
button#button1
{
- margin-left: 0px;
-}
-
-button#button6
-{
- margin-right: 0px;
-}
-
-button.button:focus
-{
- focus-background: "SKIN(268458534 5120 9)";
+ margin-right: 10px;
}
image.icon
{
- width: auto;
- height: auto;
-
_s60-aspect-ratio: preserve;
-}
-
-/* For presence */
-image.second_icon
-{
- margin-top:0%;
- width: 25%;
- height: 25%;
- position: absolute;
- bottom: 0%;
- left: 70%;
- top: 3%;
- _s60-aspect-ratio:preserve;
+ padding-left: 5px;
+ padding-top: 5px;
+ width: 95px;
+ height: 95px;
}
tooltip.tooltip
{
- width: 15.0u; /* any fixed lenghts works here if the owerflow is set to
- both tooltip and text inside it */
- height: 5.5u;
-
+ width: adaptive;
+ max-width: 350px;
+ height: 33px;
border-style: solid;
- border-width: 5px;
+ border-width: 5px;
_s60-start-delay: 1000000;
_s60-display-time: 1000000;
background-color:"SKIN(268458534 8480)";
- overflow: visible;
+ display: block;
+ padding-left: 6px;
+ padding-top: 3px;
+ padding-bottom: 3px;
+ padding-right: 6px;
}
text.tooltiptext
-{
- position: static;
+{
font-family: EAknLogicalFontSecondaryFont;
- font-size: 3.5u;
- width: 100%;
- height: 85%;
- text-align: center;
+ font-size: 23px;
+ width: adaptive;
color: "SKIN(268458534 13056 19)";
overflow: visible;
- padding-right: 1u;
- padding-left: 1u;
- padding-bottom: 1u;
}
/*********************
--- a/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget.iby Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
#ifndef __DOUBLE_ROW_ICON_WIDGET_2001FDBD_IBY__
#define __DOUBLE_ROW_ICON_WIDGET_2001FDBD_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools
data=ZPRIVATE\200159c0\install\double_row_icon_widget_2001fdbd\hsps\00\manifest.dat \private\200159c0\install\double_row_icon_widget_2001fdbd\hsps\00\manifest.dat
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __DOUBLE_ROW_ICON_WIDGET_2001FDBD_IBY__
--- a/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget_customer.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget_customer.iby Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
#ifndef __DOUBLE_ROW_ICON_WIDGET_2001FDBD_CUSTOMER_IBY__
#define __DOUBLE_ROW_ICON_WIDGET_2001FDBD_CUSTOMER_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools, language specific
data=ZPRIVATE\200159c0\install\double_row_icon_widget_2001fdbd\xuikon\00\double_row_icon_widget.o0000 \private\200159c0\install\double_row_icon_widget_2001fdbd\xuikon\00\double_row_icon_widget.o0000
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __DOUBLE_ROW_ICON_WIDGET_2001FDBD_CUSTOMER_IBY__
--- a/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget_resources.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget_resources.iby Tue Sep 14 20:58:58 2010 +0300
@@ -18,7 +18,7 @@
#ifndef __DOUBLE_ROW_ICON_WIDGET_2001FDBD_RESOURCES_IBY__
#define __DOUBLE_ROW_ICON_WIDGET_2001FDBD_RESOURCES_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools, language specific
#if defined (__LOCALES_37_IBY__)
@@ -34,6 +34,6 @@
data=ZPRIVATE\200159c0\install\double_row_icon_widget_2001fdbd\xuikon\94\double_row_icon_widget.o0094 \private\200159c0\install\double_row_icon_widget_2001fdbd\xuikon\94\double_row_icon_widget.o0094
#endif
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __DOUBLE_ROW_ICON_WIDGET_2001FDBD_RESOURCES_IBY__
--- a/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget_variant.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget_variant.iby Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
#ifndef __DOUBLE_ROW_ICON_WIDGET_2001FDBD_VARIANT_IBY__
#define __DOUBLE_ROW_ICON_WIDGET_2001FDBD_VARIANT_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by variation tools, variant specific
data=ZPRIVATE\200159c0\install\double_row_icon_widget_2001fdbd\hsps\00\widgetconfiguration.xml \private\200159c0\install\double_row_icon_widget_2001fdbd\hsps\00\widgetconfiguration.xml
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __DOUBLE_ROW_ICON_WIDGET_2001FDBD_VARIANT_IBY__
--- a/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget.iby Tue Sep 14 20:58:58 2010 +0300
@@ -18,11 +18,11 @@
#ifndef __DOUBLE_ROW_WIDGET_2001FDC2_IBY__
#define __DOUBLE_ROW_WIDGET_2001FDC2_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools
data=ZPRIVATE\200159c0\install\double_row_widget_2001fdc2\hsps\00\manifest.dat \private\200159c0\install\double_row_widget_2001fdc2\hsps\00\manifest.dat
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __DOUBLE_ROW_WIDGET_2001FDC2_IBY__
--- a/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget_customer.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget_customer.iby Tue Sep 14 20:58:58 2010 +0300
@@ -18,11 +18,11 @@
#ifndef __DOUBLE_ROW_WIDGET_2001FDC2_CUSTOMER_IBY__
#define __DOUBLE_ROW_WIDGET_2001FDC2_CUSTOMER_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FFLAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools, language specific
data=ZPRIVATE\200159c0\install\double_row_widget_2001fdc2\xuikon\00\double_row_widget.o0000 \private\200159c0\install\double_row_widget_2001fdc2\xuikon\00\double_row_widget.o0000
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __DOUBLE_ROW_WIDGET_2001FDC2_CUSTOMER_IBY__
--- a/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget_resources.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget_resources.iby Tue Sep 14 20:58:58 2010 +0300
@@ -18,7 +18,7 @@
#ifndef __DOUBLE_ROW_WIDGET_2001FDC2_RESOURCES_IBY__
#define __DOUBLE_ROW_WIDGET_2001FDC2_RESOURCES_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools, language specific
#if defined (__LOCALES_37_IBY__)
@@ -34,6 +34,6 @@
data=ZPRIVATE\200159c0\install\double_row_widget_2001fdc2\xuikon\94\double_row_widget.o0094 \private\200159c0\install\double_row_widget_2001fdc2\xuikon\94\double_row_widget.o0094
#endif
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __DOUBLE_ROW_WIDGET_2001FDC2_RESOURCES_IBY__
--- a/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget_variant.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget_variant.iby Tue Sep 14 20:58:58 2010 +0300
@@ -18,11 +18,11 @@
#ifndef __DOUBLE_ROW_WIDGET_2001FDC2_VARIANT_IBY__
#define __DOUBLE_ROW_WIDGET_2001FDC2_VARIANT_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by variation tools, variant specific
data=ZPRIVATE\200159c0\install\double_row_widget_2001fdc2\hsps\00\widgetconfiguration.xml \private\200159c0\install\double_row_widget_2001fdc2\hsps\00\widgetconfiguration.xml
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __DOUBLE_ROW_WIDGET_2001FDC2_VARIANT_IBY__
--- a/idlehomescreen/data/vga_tch/group/bld.inf Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
@@ -15,15 +15,20 @@
*
*/
-
+#include "../clockdate_200286e6/group/bld.inf"
+#include "../desktop_20018eee/group/bld.inf"
#include "../double_row_icon_widget_2001fdbd/group/bld.inf"
#include "../double_row_widget_2001fdc2/group/bld.inf"
+#include "../profilemode_200286e7/group/bld.inf"
#include "../root_2001f48f/group/bld.inf"
#include "../single_row_icon_widget_2001fdc0/group/bld.inf"
#include "../single_row_widget_2001fdc1/group/bld.inf"
#include "../triple_row_icon_widget_2001fdbe/group/bld.inf"
#include "../triple_row_widget_2001fdbf/group/bld.inf"
#include "../view1_2001fdb9/group/bld.inf"
+#include "../view2_200286ea/group/bld.inf"
+#include "../view3_200286eb/group/bld.inf"
+#include "../templateview_200286ec/group/bld.inf"
#include "../wideimage_10009dff/group/bld.inf"
PRJ_PLATFORMS
Binary file idlehomescreen/data/vga_tch/profilemode_200286e7/gfx/icon.mif has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,74 @@
+/*
+* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+// Support for productization and Carbide.Ui customization
+//********************************************************
+../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/profilemode_200286e7/hsps/manifest.dat
+../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/profilemode_200286e7/hsps/widgetconfiguration.xml
+// ../hsps/00/profilemodeconfiguration.dtd /epoc32/data/Z/resource/homescreen/profilemode_200286e7/hsps/profilemodeconfiguration.dtd
+
+../xuikon/00/profilemode.dat /epoc32/data/Z/resource/homescreen/profilemode_200286e7/xuikon/profilemode_200286e7.dat
+../xuikon/00/profilemode.css /epoc32/data/Z/resource/homescreen/profilemode_200286e7/xuikon/profilemode.css
+../xuikon/00/profilemode.xml /epoc32/data/Z/resource/homescreen/profilemode_200286e7/xuikon/profilemode.xml
+// ../xuikon/00/profilemodewidget.dtd /epoc32/data/Z/resource/homescreen/profilemode_200286e7/xuikon/profilemodewidget.dtd
+
+// logo icon
+../gfx/icon.mif /epoc32/data/Z/resource/homescreen/profilemode_200286e7/hsps/icon.mif
+
+// Arabic languages
+//*****************
+../xuikon/37/profilemode.css /epoc32/data/Z/resource/homescreen/profilemode_200286e7/xuikon/37/profilemode.css
+../xuikon/50/profilemode.css /epoc32/data/Z/resource/homescreen/profilemode_200286e7/xuikon/50/profilemode.css
+../xuikon/57/profilemode.css /epoc32/data/Z/resource/homescreen/profilemode_200286e7/xuikon/57/profilemode.css
+../xuikon/94/profilemode.css /epoc32/data/Z/resource/homescreen/profilemode_200286e7/xuikon/94/profilemode.css
+
+// Support for S60 localization
+//*****************************
+// export localizable loc files (engineering versions)
+// ../loc/profilemodewidget.loc APP_LAYER_LOC_EXPORT_PATH(profilemodewidget.loc)
+// ../loc/profilemodeconfiguration.loc APP_LAYER_LOC_EXPORT_PATH(profilemodeconfiguration.loc)
+
+// Support for S60 builds
+//***********************
+../rom/profilemodewidget_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(profilemode_200286e7_resources.iby)
+../rom/profilemodewidget_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(profilemode_200286e7_customer.iby)
+../rom/profilemodewidget_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(profilemode_200286e7_variant.iby)
+../rom/profilemodewidget.iby CORE_APP_LAYER_IBY_EXPORT_PATH(profilemode_200286e7.iby)
+
+// Dtd-localization
+//*****************
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME profilemode_200286e7
+OPTION DTD_TYPE widget
+OPTION LOC_FOLDERS yes
+END
+
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+
+// End of File
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/hsps/00/manifest.dat Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+
+<!-- Localization removed until localized strings are available -->
+
+<package version="2.0">
+
+ <family>vga_tch</family>
+
+ <type>widget</type>
+
+ <!-- interface uid -->
+ <interfaceuid>0x2001f48a</interfaceuid>
+
+ <!-- vendor uid -->
+ <provideruid>0x101fb657</provideruid>
+ <!-- uid -->
+
+ <configurationuid>0x200286e7</configurationuid>
+
+ <!-- <filedtd>profilemodeconfiguration.dtd</filedtd> -->
+
+ <!-- <fullname>&qtn_profilemode_configuration_name;</fullname> -->
+ <fullname>Profilemode</fullname>
+
+ <shortname>profilemode</shortname>
+ <version>1.0</version>
+
+ <!-- description -->
+ <!-- <description>&qtn_profilemode_configuration_desc;</description> -->
+ <description>Change and edit active profile</description>
+
+ <!-- configuration -->
+ <filexml>widgetconfiguration.xml</filexml>
+
+ <filelogo>skin(270501603 9360):mif(icon.mif 16384 16385)</filelogo>
+ <!-- Locale specific resources -->
+ <localization>
+ <fileresource tag="xuikon">profilemode.o0000</fileresource>
+ </localization>
+
+</package>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/hsps/00/profilemodeconfiguration.dtd Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+============================================================================
+<FileName: "profilemodeconfiguration.dtd">
+<PartOf : "profilemodeconfiguration">
+
+<FileDescription: "Localization strings for the configuration">
+<FileVersion : >
+
+<Copyright:
+"Copyright � 2007 Nokia Corporation.
+This material, including documentation and any related
+computer programs, is protected by copyright controlled by
+Nokia Corporation. All rights are reserved. Copying,
+including reproducing, storing, adapting or translating, any
+or all of this material requires the prior written consent of
+Nokia Corporation. This material also contains confidential
+information which may not be disclosed to others without the
+prior written consent of Nokia Corporation.">
+============================================================================
+-->
+
+<!-- NOTE: make sure that there is at last one space character (hex 20) after the entity name -->
+
+<!--
+qtn_desktop_configuration_name.attributes
+qtn_desktop_configuration_name.layout "listrow_wgtman_pane_t1"
+qtn_desktop_configuration_name.release "TB9.2"
+qtn_desktop_configuration_name.description "profilemode"
+qtn_desktop_configuration_name.parents ""
+-->
+<!ENTITY qtn_profilemode_configuration_name "Time & profilemode">
+
+<!--
+qtn_desktop_configuration_desc.attributes
+qtn_desktop_configuration_desc.layout "listrow_wgtman_pane_t2"
+qtn_desktop_configuration_desc.release "TB9.2"
+qtn_desktop_configuration_desc.description "profilemode widget description"
+qtn_desktop_configuration_desc.parents ""
+-->
+<!ENTITY qtn_profilemode_configuration_desc "Quick access to time, date and change profilemode.">
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/hsps/00/widgetconfiguration.xml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,5 @@
+<configuration>
+ <control>
+ <settings/>
+ </control>
+</configuration>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/loc/profilemodeconfiguration.loc Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Localization strings for project Active Idle 3 (hsps)
+*
+*/
+
+
+// d: profilemode widget name
+// l: listrow_wgtman_pane_t1
+// w:
+// r: TB9.2
+#define qtn_profilemode_configuration_name "Profile"
+
+// d: profilemode widget description
+// l: wgtman_list_pane_t1
+// w:
+// r: TB9.2
+#define qtn_profilemode_configuration_desc "Quick access to time, date and change profilemode."
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/loc/profilemodewidget.loc Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Localization strings for project Active Idle 3 (xuikon)
+*
+*/
+
+
+// d: Edit active profilemode
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.1
+#define qtn_hs_profilemode_edit "Edit active profilemode"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/rom/profilemodewidget.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* profilemode widget HSPS-plugin IBY file.
+*
+*/
+
+#ifndef __PROFILEMODEWIDGET_200286E7_IBY__
+#define __PROFILEMODEWIDGET_200286E7_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools
+data=ZPRIVATE\200159c0\install\profilemode_200286e7\hsps\00\manifest.dat \private\200159c0\install\profilemode_200286e7\hsps\00\manifest.dat
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __PROFILEMODEWIDGET_200286E7_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/rom/profilemodewidget_customer.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* profilemode widget HSPS-plugin language specific IBY file.
+*
+*/
+
+#ifndef __PROFILEMODEWIDGET_200286E7_CUSTOMER_IBY__
+#define __PROFILEMODEWIDGET_200286E7_CUSTOMER_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\profilemode_200286e7\xuikon\00\profilemode.o0000 \private\200159c0\install\profilemode_200286e7\xuikon\00\profilemode.o0000
+data=ZPRIVATE\200159c0\install\profilemode_200286e7\hsps\00\profilemodeconfiguration.dtd \private\200159c0\install\profilemode_200286e7\hsps\00\profilemodeconfiguration.dtd
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __PROFILEMODEWIDGET_200286E7_CUSTOMER_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/rom/profilemodewidget_resources.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* profilemode widget HSPS-plugin language specific IBY file.
+*
+*/
+
+#ifndef __PROFILEMODEWIDGET_200286E7_RESOURCES_IBY__
+#define __PROFILEMODEWIDGET_200286E7_RESOURCES_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+data=ZPRIVATE\200159c0\install\profilemode_200286e7\xuikon\00\profilemode.o0000 \private\200159c0\install\profilemode_200286e7\xuikon\00\profilemode.o0000
+data=ZPRIVATE\200159c0\install\profilemode_200286e7\hsps\00\icon.mif \private\200159c0\install\profilemode_200286e7\hsps\00\icon.mif
+data=ZPRIVATE\200159c0\install\profilemode_200286e7\hsps\00\profilemodeconfiguration.dtd \private\200159c0\install\profilemode_200286e7\hsps\00\profilemodeconfiguration.dtd
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __PROFILEMODEWIDGET_200286E7_RESOURCES_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/rom/profilemodewidget_variant.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* profilemode widget HSPS-plugin variant specific IBY file.
+*
+*/
+
+#ifndef __PROFILEMODEWIDGET_200286E7_VARIANT_IBY__
+#define __PROFILEMODEWIDGET_200286E7_VARIANT_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by variation tools, variant specific
+data=ZPRIVATE\200159c0\install\profilemode_200286e7\hsps\00\widgetconfiguration.xml \private\200159c0\install\profilemode_200286e7\hsps\00\widgetconfiguration.xml
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __PROFILEMODEWIDGET_200286E7_VARIANT_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/00/profilemode.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,176 @@
+widget#profilewidget
+{
+ background-color: "SKIN(268458534 9916)";
+ direction: ltr;
+ block-progression: tb;
+ nav-index: appearance;
+}
+
+box#marginbox1
+{
+ display: block;
+ width: auto;
+ height: 15px;
+}
+
+box#profileiconbox
+{
+ padding-top: 8px;
+ padding-bottom: 3px;
+ height: 32px;
+ width: auto;
+}
+
+image#profileicon
+{
+ margin-top: auto;
+ margin-bottom: auto;
+ margin-left: auto;
+ margin-right: auto;
+ width: 32px;
+ height: 32px;
+}
+
+box#marginbox2
+{
+ display: block;
+ width: auto;
+ height: 3px;
+}
+
+box#profilenamebox
+{
+ height: 32px;
+ width: auto;
+}
+
+text#profilename
+{
+ /*
+ padding-left: 9px;
+ padding-right: 9px;
+ */
+ height: 32px;
+ text-align: center;
+ display: block;
+ visibility: visible;
+ width: auto;
+ font-family: EAknLogicalFontSecondaryFont;
+ /* font-size: 32px; */
+ font-size: 30px;
+ color: "SKIN(268458534 13056 74)";
+}
+
+/*
+box#profile_softindicator
+{
+ display: none;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-left: 2px;
+ padding-right: 2px;
+ direction: ltr;
+}
+
+image#SatIdleModeIcon
+{
+ display: none;
+ width: 18px;
+ height: 20px;
+ position: static;
+ margin-top: auto;
+}
+*/
+/* Default system profiles */
+text.systemprofileitem
+{
+ display: block;
+}
+
+/* Placeholders for profiles added by user */
+text.userprofileitem
+{
+ display: none;
+}
+
+/******************
+ SOFT INDICATOR WIDGET AREA
+*******************/
+/*
+newsticker.SIText
+{
+ text-align: center;
+ display: block;
+ visibility: visible;
+ width: auto;
+ font-family: EAknLogicalFontSecondaryFont;
+ font-size: 32px;
+ color: "SKIN(268458534 13056 74)";
+
+ white-space-collapse: collapse;
+
+ _s60-scroll-behaviour: scroll-alternate;
+
+ _s60-display-time: 2000;
+ _s60-scroll-loop: false;
+ _s60-start-delay: 0;
+ _s60-restart-after-update: true;
+}
+*/
+
+newsticker#indicator
+{
+ padding-left: 9px;
+ padding-right: 9px;
+ text-align: center;
+ display: none;
+ visibility: visible;
+ width: auto;
+ height: 32px;
+ font-family: EAknLogicalFontSecondaryFont;
+ /* font-size: 32px; */
+ font-size: 30px;
+ color: "SKIN(268458534 13056 74)";
+
+ white-space-collapse: collapse;
+
+ _s60-scroll-behaviour: scroll-alternate;
+
+ _s60-display-time: 2000;
+ _s60-scroll-loop: false;
+ _s60-start-delay: 0;
+ _s60-restart-after-update: true;
+}
+
+box#NT_CUGMCN
+{
+ display: none;
+ text-align: center;
+ margin-left: auto;
+ margin-right: auto;
+ /* width: adaptive; */
+ width: auto;
+ height: auto;
+ block-progression: rl;
+}
+
+box#NT_SATVHZ
+{
+ text-align: center;
+ margin-left: auto;
+ margin-right: auto;
+ /* width: adaptive; */
+ width: auto;
+ height: auto;
+ block-progression: rl;
+}
+
+title#title_vhz
+{
+ display: none;
+}
+
+title#title_sat
+{
+ display: none;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/00/profilemode.dat Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<data>
+ <AppUid>2001CB4F</AppUid>
+ <Provideruid>101FB657</Provideruid>
+ <ThemeUid>110012F5</ThemeUid>
+ <ThemeFullName>profilemode</ThemeFullName>
+ <ThemeShortName>profilemode</ThemeShortName>
+ <ThemeVersion>1.0</ThemeVersion>
+ <FileXML>profilemode.xml</FileXML>
+ <FileCSS>profilemode.css</FileCSS>
+ <!-- <FileDTD>profilemodewidget.dtd</FileDTD> -->
+</data>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/00/profilemode.xml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Localization removed until localized strings are available -->
+<!-- <!DOCTYPE xmluiml SYSTEM "profilewidget.dtd"> -->
+<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
+
+ <widget id="profilewidget" focusable="true">
+
+ <!-- Data plugins in this widget -->
+ <contentsource name="Profile" value="0x10275101"/>
+ <contentsource name="SAT" value="0x102078EB"/>
+ <contentsource name="DeviceStatus" value="0x102750F8"/>
+
+ <desc id="Profile/ActiveProfileGeneralIconResource" path="SKIN(270501603 8586 74)"/>
+ <desc id="Profile/ActiveProfileSilentIconResource" path="SKIN(270501603 8587 74)"/>
+ <desc id="Profile/ActiveProfileTimedIconResource" path="SKIN(270501603 8631 74)"/>
+
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/trydisplayinglistquerydialog">
+ <property name="id" value="profiledialog"/>
+ </event>
+ </action>
+ </actions>
+
+ <box id="marginbox1"/>
+
+ <box id="profileiconbox">
+ <image id="profileicon">
+ <property class="Profile/ActiveProfileIcon"/>
+ </image>
+ </box>
+
+ <box id="marginbox2"/>
+
+ <box id="profilenamebox">
+ <text id="profilename">
+ <property class="Profile/ActiveProfileName"/>
+ </text>
+ </box>
+
+ <newsticker id="indicator" focusable="false">
+
+ <title id="title_cug" titleindex="0">
+ <property class="DeviceStatus/CUGIndicator"/>
+ <property class="policy/emptyContent" name="title_cug" value="display: none;"/>
+ <property class="policy/Content" name="title_cug" value="display: block;"/>
+ <property class="policy/Visibility" name="indicator" value="if (title_cug,title_sat,title_vhz,title_mcn) display: block"/>
+ <property class="policy/Visibility" name="indicator" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: none"/>
+ <property class="policy/Visibility" name="marginbox1" value="if (title_cug,title_sat,title_vhz,title_mcn) display: none"/>
+ <property class="policy/Visibility" name="marginbox1" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: block"/>
+ <property class="policy/Visibility" name="marginbox2" value="if (title_cug,title_sat,title_vhz,title_mcn) display: none"/>
+ <property class="policy/Visibility" name="marginbox2" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: block"/>
+ </title>
+
+ <title id="title_sat" titleindex="1">
+ <property class="SAT/SatIdleModeText"/>
+ <property class="policy/emptyContent" name="title_sat" value="display: none;"/>
+ <property class="policy/Content" name="title_sat" value="display: block;"/>
+ <property class="policy/Visibility" name="indicator" value="if (title_cug,title_sat,title_vhz,title_mcn) display: block"/>
+ <property class="policy/Visibility" name="indicator" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: none"/>
+ <property class="policy/Visibility" name="marginbox1" value="if (title_cug,title_sat,title_vhz,title_mcn) display: none"/>
+ <property class="policy/Visibility" name="marginbox1" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: block"/>
+ <property class="policy/Visibility" name="marginbox2" value="if (title_cug,title_sat,title_vhz,title_mcn) display: none"/>
+ <property class="policy/Visibility" name="marginbox2" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: block"/>
+ </title>
+
+ <title id="title_vhz" titleindex="2">
+ <property class="DeviceStatus/VHZText"/>
+ <property class="policy/emptyContent" name="title_vhz" value="display: none;"/>
+ <property class="policy/Content" name="title_vhz" value="display: block;"/>
+ <property class="policy/Visibility" name="indicator" value="if (title_cug,title_sat,title_vhz,title_mcn) display: block"/>
+ <property class="policy/Visibility" name="indicator" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: none"/>
+ <property class="policy/Visibility" name="marginbox1" value="if (title_cug,title_sat,title_vhz,title_mcn) display: none"/>
+ <property class="policy/Visibility" name="marginbox1" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: block"/>
+ <property class="policy/Visibility" name="marginbox2" value="if (title_cug,title_sat,title_vhz,title_mcn) display: none"/>
+ <property class="policy/Visibility" name="marginbox2" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: block"/>
+ </title>
+
+ <title id="title_mcn" titleindex="3">
+ <property class="DeviceStatus/MCNIndicator"/>
+ <property class="policy/emptyContent" name="title_mcn" value="display: none;"/>
+ <property class="policy/Content" name="title_mcn" value="display: block;"/>
+ <property class="policy/Visibility" name="indicator" value="if (title_cug,title_sat,title_vhz,title_mcn) display: block"/>
+ <property class="policy/Visibility" name="indicator" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: none"/>
+ <property class="policy/Visibility" name="marginbox1" value="if (title_cug,title_sat,title_vhz,title_mcn) display: none"/>
+ <property class="policy/Visibility" name="marginbox1" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: block"/>
+ <property class="policy/Visibility" name="marginbox2" value="if (title_cug,title_sat,title_vhz,title_mcn) display: none"/>
+ <property class="policy/Visibility" name="marginbox2" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: block"/>
+ </title>
+
+ </newsticker>
+
+ <listquerydialog id="profiledialog" display="none">
+ <property class="Profile/ProfileName"/>
+ <!-- <menuitem id="profileseditactive" label="&qtn_hs_profile_edit;"> -->
+ <menuitem id="profileseditactive" label="Edit active profile">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="Profile/EditActiveProfile"/>
+ </action>
+ </actions>
+ </menuitem>
+ <dynmenuitem id="profileitem">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="Profile/SwitchProfileByIndex(#)"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ </listquerydialog>
+ </widget>
+</xmluiml>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/00/profilemodewidget.dtd Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+============================================================================
+<FileName: "profilemode.dtd">
+<PartOf : "AI3">
+
+<FileDescription: "Localization strings for AI3">
+<FileVersion : >
+
+<Copyright:
+"Copyright © 2005 Nokia Corporation.
+This material, including documentation and any related
+computer programs, is protected by copyright controlled by
+Nokia Corporation. All rights are reserved. Copying,
+including reproducing, storing, adapting or translating, any
+or all of this material requires the prior written consent of
+Nokia Corporation. This material also contains confidential
+information which may not be disclosed to others without the
+prior written consent of Nokia Corporation.">
+============================================================================
+-->
+
+<!--
+qtn_hs_profilemode_edit.attributes
+qtn_hs_profilemode_edit.layout "list_single_pane_t1_cp2"
+qtn_hs_profilemode_edit.release "TB9.1"
+qtn_hs_profilemode_edit.description "Edit active profilemode"
+qtn_hs_profilemode_edit.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_profilemode_edit "Edit active profilemode">
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/37/profilemode.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,176 @@
+widget#profilewidget
+{
+ background-color: "SKIN(268458534 9916)";
+ direction: rtl;
+ block-progression: tb;
+ nav-index: appearance;
+}
+
+box#marginbox1
+{
+ display: block;
+ width: auto;
+ height: 15px;
+}
+
+box#profileiconbox
+{
+ padding-top: 8px;
+ padding-bottom: 3px;
+ height: 32px;
+ width: auto;
+}
+
+image#profileicon
+{
+ margin-top: auto;
+ margin-bottom: auto;
+ margin-left: auto;
+ margin-right: auto;
+ width: 32px;
+ height: 32px;
+}
+
+box#marginbox2
+{
+ display: block;
+ width: auto;
+ height: 3px;
+}
+
+box#profilenamebox
+{
+ height: 32px;
+ width: auto;
+}
+
+text#profilename
+{
+ /*
+ padding-left: 9px;
+ padding-right: 9px;
+ */
+ height: 32px;
+ text-align: center;
+ display: block;
+ visibility: visible;
+ width: auto;
+ font-family: EAknLogicalFontSecondaryFont;
+ /* font-size: 32px; */
+ font-size: 30px;
+ color: "SKIN(268458534 13056 74)";
+}
+
+/*
+box#profile_softindicator
+{
+ display: none;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-left: 2px;
+ padding-right: 2px;
+ direction: ltr;
+}
+
+image#SatIdleModeIcon
+{
+ display: none;
+ width: 18px;
+ height: 20px;
+ position: static;
+ margin-top: auto;
+}
+*/
+/* Default system profiles */
+text.systemprofileitem
+{
+ display: block;
+}
+
+/* Placeholders for profiles added by user */
+text.userprofileitem
+{
+ display: none;
+}
+
+/******************
+ SOFT INDICATOR WIDGET AREA
+*******************/
+/*
+newsticker.SIText
+{
+ text-align: center;
+ display: block;
+ visibility: visible;
+ width: auto;
+ font-family: EAknLogicalFontSecondaryFont;
+ font-size: 32px;
+ color: "SKIN(268458534 13056 74)";
+
+ white-space-collapse: collapse;
+
+ _s60-scroll-behaviour: scroll-alternate;
+
+ _s60-display-time: 2000;
+ _s60-scroll-loop: false;
+ _s60-start-delay: 0;
+ _s60-restart-after-update: true;
+}
+*/
+
+newsticker#indicator
+{
+ padding-left: 9px;
+ padding-right: 9px;
+ text-align: center;
+ display: none;
+ visibility: visible;
+ width: auto;
+ height: 32px;
+ font-family: EAknLogicalFontSecondaryFont;
+ /* font-size: 32px; */
+ font-size: 30px;
+ color: "SKIN(268458534 13056 74)";
+
+ white-space-collapse: collapse;
+
+ _s60-scroll-behaviour: scroll-alternate;
+
+ _s60-display-time: 2000;
+ _s60-scroll-loop: false;
+ _s60-start-delay: 0;
+ _s60-restart-after-update: true;
+}
+
+box#NT_CUGMCN
+{
+ display: none;
+ text-align: center;
+ margin-left: auto;
+ margin-right: auto;
+ /* width: adaptive; */
+ width: auto;
+ height: auto;
+ block-progression: rl;
+}
+
+box#NT_SATVHZ
+{
+ text-align: center;
+ margin-left: auto;
+ margin-right: auto;
+ /* width: adaptive; */
+ width: auto;
+ height: auto;
+ block-progression: rl;
+}
+
+title#title_vhz
+{
+ display: none;
+}
+
+title#title_sat
+{
+ display: none;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/50/profilemode.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,176 @@
+widget#profilewidget
+{
+ background-color: "SKIN(268458534 9916)";
+ direction: rtl;
+ block-progression: tb;
+ nav-index: appearance;
+}
+
+box#marginbox1
+{
+ display: block;
+ width: auto;
+ height: 15px;
+}
+
+box#profileiconbox
+{
+ padding-top: 8px;
+ padding-bottom: 3px;
+ height: 32px;
+ width: auto;
+}
+
+image#profileicon
+{
+ margin-top: auto;
+ margin-bottom: auto;
+ margin-left: auto;
+ margin-right: auto;
+ width: 32px;
+ height: 32px;
+}
+
+box#marginbox2
+{
+ display: block;
+ width: auto;
+ height: 3px;
+}
+
+box#profilenamebox
+{
+ height: 32px;
+ width: auto;
+}
+
+text#profilename
+{
+ /*
+ padding-left: 9px;
+ padding-right: 9px;
+ */
+ height: 32px;
+ text-align: center;
+ display: block;
+ visibility: visible;
+ width: auto;
+ font-family: EAknLogicalFontSecondaryFont;
+ /* font-size: 32px; */
+ font-size: 30px;
+ color: "SKIN(268458534 13056 74)";
+}
+
+/*
+box#profile_softindicator
+{
+ display: none;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-left: 2px;
+ padding-right: 2px;
+ direction: ltr;
+}
+
+image#SatIdleModeIcon
+{
+ display: none;
+ width: 18px;
+ height: 20px;
+ position: static;
+ margin-top: auto;
+}
+*/
+/* Default system profiles */
+text.systemprofileitem
+{
+ display: block;
+}
+
+/* Placeholders for profiles added by user */
+text.userprofileitem
+{
+ display: none;
+}
+
+/******************
+ SOFT INDICATOR WIDGET AREA
+*******************/
+/*
+newsticker.SIText
+{
+ text-align: center;
+ display: block;
+ visibility: visible;
+ width: auto;
+ font-family: EAknLogicalFontSecondaryFont;
+ font-size: 32px;
+ color: "SKIN(268458534 13056 74)";
+
+ white-space-collapse: collapse;
+
+ _s60-scroll-behaviour: scroll-alternate;
+
+ _s60-display-time: 2000;
+ _s60-scroll-loop: false;
+ _s60-start-delay: 0;
+ _s60-restart-after-update: true;
+}
+*/
+
+newsticker#indicator
+{
+ padding-left: 9px;
+ padding-right: 9px;
+ text-align: center;
+ display: none;
+ visibility: visible;
+ width: auto;
+ height: 32px;
+ font-family: EAknLogicalFontSecondaryFont;
+ /* font-size: 32px; */
+ font-size: 30px;
+ color: "SKIN(268458534 13056 74)";
+
+ white-space-collapse: collapse;
+
+ _s60-scroll-behaviour: scroll-alternate;
+
+ _s60-display-time: 2000;
+ _s60-scroll-loop: false;
+ _s60-start-delay: 0;
+ _s60-restart-after-update: true;
+}
+
+box#NT_CUGMCN
+{
+ display: none;
+ text-align: center;
+ margin-left: auto;
+ margin-right: auto;
+ /* width: adaptive; */
+ width: auto;
+ height: auto;
+ block-progression: rl;
+}
+
+box#NT_SATVHZ
+{
+ text-align: center;
+ margin-left: auto;
+ margin-right: auto;
+ /* width: adaptive; */
+ width: auto;
+ height: auto;
+ block-progression: rl;
+}
+
+title#title_vhz
+{
+ display: none;
+}
+
+title#title_sat
+{
+ display: none;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/57/profilemode.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,176 @@
+widget#profilewidget
+{
+ background-color: "SKIN(268458534 9916)";
+ direction: rtl;
+ block-progression: tb;
+ nav-index: appearance;
+}
+
+box#marginbox1
+{
+ display: block;
+ width: auto;
+ height: 15px;
+}
+
+box#profileiconbox
+{
+ padding-top: 8px;
+ padding-bottom: 3px;
+ height: 32px;
+ width: auto;
+}
+
+image#profileicon
+{
+ margin-top: auto;
+ margin-bottom: auto;
+ margin-left: auto;
+ margin-right: auto;
+ width: 32px;
+ height: 32px;
+}
+
+box#marginbox2
+{
+ display: block;
+ width: auto;
+ height: 3px;
+}
+
+box#profilenamebox
+{
+ height: 32px;
+ width: auto;
+}
+
+text#profilename
+{
+ /*
+ padding-left: 9px;
+ padding-right: 9px;
+ */
+ height: 32px;
+ text-align: center;
+ display: block;
+ visibility: visible;
+ width: auto;
+ font-family: EAknLogicalFontSecondaryFont;
+ /* font-size: 32px; */
+ font-size: 30px;
+ color: "SKIN(268458534 13056 74)";
+}
+
+/*
+box#profile_softindicator
+{
+ display: none;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-left: 2px;
+ padding-right: 2px;
+ direction: ltr;
+}
+
+image#SatIdleModeIcon
+{
+ display: none;
+ width: 18px;
+ height: 20px;
+ position: static;
+ margin-top: auto;
+}
+*/
+/* Default system profiles */
+text.systemprofileitem
+{
+ display: block;
+}
+
+/* Placeholders for profiles added by user */
+text.userprofileitem
+{
+ display: none;
+}
+
+/******************
+ SOFT INDICATOR WIDGET AREA
+*******************/
+/*
+newsticker.SIText
+{
+ text-align: center;
+ display: block;
+ visibility: visible;
+ width: auto;
+ font-family: EAknLogicalFontSecondaryFont;
+ font-size: 32px;
+ color: "SKIN(268458534 13056 74)";
+
+ white-space-collapse: collapse;
+
+ _s60-scroll-behaviour: scroll-alternate;
+
+ _s60-display-time: 2000;
+ _s60-scroll-loop: false;
+ _s60-start-delay: 0;
+ _s60-restart-after-update: true;
+}
+*/
+
+newsticker#indicator
+{
+ padding-left: 9px;
+ padding-right: 9px;
+ text-align: center;
+ display: none;
+ visibility: visible;
+ width: auto;
+ height: 32px;
+ font-family: EAknLogicalFontSecondaryFont;
+ /* font-size: 32px; */
+ font-size: 30px;
+ color: "SKIN(268458534 13056 74)";
+
+ white-space-collapse: collapse;
+
+ _s60-scroll-behaviour: scroll-alternate;
+
+ _s60-display-time: 2000;
+ _s60-scroll-loop: false;
+ _s60-start-delay: 0;
+ _s60-restart-after-update: true;
+}
+
+box#NT_CUGMCN
+{
+ display: none;
+ text-align: center;
+ margin-left: auto;
+ margin-right: auto;
+ /* width: adaptive; */
+ width: auto;
+ height: auto;
+ block-progression: rl;
+}
+
+box#NT_SATVHZ
+{
+ text-align: center;
+ margin-left: auto;
+ margin-right: auto;
+ /* width: adaptive; */
+ width: auto;
+ height: auto;
+ block-progression: rl;
+}
+
+title#title_vhz
+{
+ display: none;
+}
+
+title#title_sat
+{
+ display: none;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/94/profilemode.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,176 @@
+widget#profilewidget
+{
+ background-color: "SKIN(268458534 9916)";
+ direction: rtl;
+ block-progression: tb;
+ nav-index: appearance;
+}
+
+box#marginbox1
+{
+ display: block;
+ width: auto;
+ height: 15px;
+}
+
+box#profileiconbox
+{
+ padding-top: 8px;
+ padding-bottom: 3px;
+ height: 32px;
+ width: auto;
+}
+
+image#profileicon
+{
+ margin-top: auto;
+ margin-bottom: auto;
+ margin-left: auto;
+ margin-right: auto;
+ width: 32px;
+ height: 32px;
+}
+
+box#marginbox2
+{
+ display: block;
+ width: auto;
+ height: 3px;
+}
+
+box#profilenamebox
+{
+ height: 32px;
+ width: auto;
+}
+
+text#profilename
+{
+ /*
+ padding-left: 9px;
+ padding-right: 9px;
+ */
+ height: 32px;
+ text-align: center;
+ display: block;
+ visibility: visible;
+ width: auto;
+ font-family: EAknLogicalFontSecondaryFont;
+ /* font-size: 32px; */
+ font-size: 30px;
+ color: "SKIN(268458534 13056 74)";
+}
+
+/*
+box#profile_softindicator
+{
+ display: none;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-left: 2px;
+ padding-right: 2px;
+ direction: ltr;
+}
+
+image#SatIdleModeIcon
+{
+ display: none;
+ width: 18px;
+ height: 20px;
+ position: static;
+ margin-top: auto;
+}
+*/
+/* Default system profiles */
+text.systemprofileitem
+{
+ display: block;
+}
+
+/* Placeholders for profiles added by user */
+text.userprofileitem
+{
+ display: none;
+}
+
+/******************
+ SOFT INDICATOR WIDGET AREA
+*******************/
+/*
+newsticker.SIText
+{
+ text-align: center;
+ display: block;
+ visibility: visible;
+ width: auto;
+ font-family: EAknLogicalFontSecondaryFont;
+ font-size: 32px;
+ color: "SKIN(268458534 13056 74)";
+
+ white-space-collapse: collapse;
+
+ _s60-scroll-behaviour: scroll-alternate;
+
+ _s60-display-time: 2000;
+ _s60-scroll-loop: false;
+ _s60-start-delay: 0;
+ _s60-restart-after-update: true;
+}
+*/
+
+newsticker#indicator
+{
+ padding-left: 9px;
+ padding-right: 9px;
+ text-align: center;
+ display: none;
+ visibility: visible;
+ width: auto;
+ height: 32px;
+ font-family: EAknLogicalFontSecondaryFont;
+ /* font-size: 32px; */
+ font-size: 30px;
+ color: "SKIN(268458534 13056 74)";
+
+ white-space-collapse: collapse;
+
+ _s60-scroll-behaviour: scroll-alternate;
+
+ _s60-display-time: 2000;
+ _s60-scroll-loop: false;
+ _s60-start-delay: 0;
+ _s60-restart-after-update: true;
+}
+
+box#NT_CUGMCN
+{
+ display: none;
+ text-align: center;
+ margin-left: auto;
+ margin-right: auto;
+ /* width: adaptive; */
+ width: auto;
+ height: auto;
+ block-progression: rl;
+}
+
+box#NT_SATVHZ
+{
+ text-align: center;
+ margin-left: auto;
+ margin-right: auto;
+ /* width: adaptive; */
+ width: auto;
+ height: auto;
+ block-progression: rl;
+}
+
+title#title_vhz
+{
+ display: none;
+}
+
+title#title_sat
+{
+ display: none;
+}
Binary file idlehomescreen/data/vga_tch/root_2001f48f/conf/root2001f48f.confml has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/root_2001f48f/conf/root2001f48f.gcfml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="core"/>
+ <tag name="target" value="rofs2"/>
+ <tag name="target" value="rofs3"/>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="rootconfiguration.xml" target="\private\200159c0\install\root_2001f48f\hsps\00\">
+ <setting ref="VGA_HSViews/MaxPages"/>
+ <setting ref="VGA_HSViews/Views"/>
+ <setting ref="VGA_HSViews/ItemId"/>
+ <setting ref="VGA_HSViews/PropertyName"/>
+ <setting ref="VGA_HSViews/PropertyValue"/>
+ <xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xi="http://www.w3.org/2001/xinclude">
+ <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+ <xsl:template match="configuration/data">
+ <configuration>
+ <xsl:attribute name="max_child"><xsl:value-of select="VGA_HSViews/MaxPages"/></xsl:attribute>
+ <control>
+ <plugins>
+ <xsl:for-each select="VGA_HSViews/Views">
+ <plugin>
+ <xsl:attribute name="uid"><xsl:value-of select="Uid"/></xsl:attribute>
+ <xsl:attribute name="locking_status"><xsl:value-of select="LockingStatus"/></xsl:attribute>
+ </plugin>
+ </xsl:for-each>
+ </plugins>
+ <settings>
+ <item>
+ <xsl:attribute name="id"><xsl:value-of select="VGA_HSViews/ItemId"/></xsl:attribute>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="VGA_HSViews/PropertyName"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="VGA_HSViews/PropertyValue"/></xsl:attribute>
+ </property>
+ </item>
+
+ </settings>
+ </control>
+
+ </configuration>
+ </xsl:template>
+ </xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
--- a/idlehomescreen/data/vga_tch/root_2001f48f/group/bld.inf Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/root_2001f48f/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
@@ -26,13 +26,16 @@
// Support for productization and Carbide.Ui customization
//********************************************************
../hsps/00/manifest.dat /epoc32/data/z/resource/homescreen/root_2001f48f/hsps/manifest.dat
-../hsps/00/rootconfiguration.xml /epoc32/data/z/resource/homescreen/root_2001f48f/hsps/rootconfiguration.xml
-//../hsps/00/rootconfiguration.dtd /epoc32/data/z/resource/homescreen/root_2001f48f/hsps/rootconfiguration.dtd
+//../hsps/00/rootconfiguration.xml /epoc32/data/z/resource/homescreen/root_2001f48f/hsps/rootconfiguration.xml
../xuikon/00/root.dat /epoc32/data/z/resource/homescreen/root_2001f48f/xuikon/root_2001f48f.dat
../xuikon/00/root.css /epoc32/data/z/resource/homescreen/root_2001f48f/xuikon/root.css
../xuikon/00/root.xml /epoc32/data/z/resource/homescreen/root_2001f48f/xuikon/root.xml
-
+//Confml and cfgml files for the customization
+// starting use confml it is need to remove root_configuration.xml direct exporting (root_2001f482_variant.iby)
+//***********************************
+../conf/root2001f48f.confml APP_LAYER_CONFML(root2001f48f.confml)
+../conf/root2001f48f.gcfml APP_LAYER_GCFML(root2001f48f.gcfml)
// Support for S60 localization
//*****************************
@@ -43,9 +46,9 @@
// Support for S60 builds
//***********************
-../rom/root_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(root_2001f48f_resources.iby)
-../rom/root_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(root_2001f48f_customer.iby)
-../rom/root_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(root_2001f48f_variant.iby)
+//../rom/root_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(root_2001f48f_resources.iby)
+//../rom/root_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(root_2001f48f_customer.iby)
+//../rom/root_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(root_2001f48f_variant.iby)
../rom/root.iby CORE_APP_LAYER_IBY_EXPORT_PATH(root_2001f48f.iby)
--- a/idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/manifest.dat Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/manifest.dat Tue Sep 14 20:58:58 2010 +0300
@@ -23,10 +23,7 @@
<!-- configuration -->
<filexml>rootconfiguration.xml</filexml>
-
- <!-- Name of the localization files -->
- <!--filedtd>rootconfiguration.dtd</filedtd-->
-
+
<!-- Locale independent/common resources -->
<fileresource>root.o0000</fileresource>
--- a/idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/rootconfiguration.dtd Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-============================================================================
-<FileName: "rootconfiguration.dtd">
-<PartOf : "rootconfiguration">
-
-<FileDescription: "Localization strings for the configuration">
-<FileVersion : >
-
-<Copyright:
-"Copyright © 2007 Nokia Corporation.
-This material, including documentation and any related
-computer programs, is protected by copyright controlled by
-Nokia Corporation. All rights are reserved. Copying,
-including reproducing, storing, adapting or translating, any
-or all of this material requires the prior written consent of
-Nokia Corporation. This material also contains confidential
-information which may not be disclosed to others without the
-prior written consent of Nokia Corporation.">
-============================================================================
--->
-
-<!-- NOTE: make sure that there is at last one space character (hex 20) after the entity name -->
-
-<!ENTITY qtn_root_configuration_name "AI3 Root">
--- a/idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/rootconfiguration.xml Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/rootconfiguration.xml Tue Sep 14 20:58:58 2010 +0300
@@ -1,16 +1,17 @@
-<configuration>
+<?xml version="1.0" encoding="UTF-8"?>
- <!-- name = localized name e.g. "classic theme" -->
+<configuration max_child="5">
<control>
<plugins>
- <!-- portrait view -->
- <plugin uid="0x2001fdb9"/>
- <plugin uid="0x2001fdb9"/>
- <plugin uid="0x2001fdb9"/>
- <plugin uid="0x2001fdb9"/>
- <plugin uid="0x2001fdb9"/>
+ <plugin uid="0x2001fdb9" locking_status="locked" />
+ <plugin uid="0x200286ea" locking_status="none" />
+ <plugin uid="0x200286eb" locking_status="none" />
</plugins>
- <settings/>
- </control>
+ <settings>
+ <item id="templateView">
+ <property name="uid" value="0x200286ec" />
+ </item>
+ </settings>
+ </control>
</configuration>
--- a/idlehomescreen/data/vga_tch/root_2001f48f/rom/root.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/root_2001f48f/rom/root.iby Tue Sep 14 20:58:58 2010 +0300
@@ -19,12 +19,12 @@
#ifndef __ROOT_2001F48F_IBY__
#define __ROOT_2001F48F_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools
data=ZPRIVATE\200159c0\install\root_2001f48f\xuikon\00\root.o0000 \private\200159c0\install\root_2001f48f\xuikon\00\root.o0000
data=ZPRIVATE\200159c0\install\root_2001f48f\hsps\00\manifest.dat \private\200159c0\install\root_2001f48f\hsps\00\manifest.dat
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __ROOT_2001F48F_IBY__
--- a/idlehomescreen/data/vga_tch/root_2001f48f/rom/root_customer.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/root_2001f48f/rom/root_customer.iby Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
#ifndef __ROOT_2001F48F_CUSTOMER_IBY__
#define __ROOT_2001F48F_CUSTOMER_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools, language specific
//data=ZPRIVATE\200159c0\install\root_2001f48f\hsps\00\rootconfiguration.dtd \private\200159c0\install\root_2001f48f\hsps\00\rootconfiguration.dtd
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __ROOT_2001F48F_CUSTOMER_IBY__
--- a/idlehomescreen/data/vga_tch/root_2001f48f/rom/root_resources.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/root_2001f48f/rom/root_resources.iby Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
#ifndef __ROOT_2001F48F_RESOURCES_IBY__
#define __ROOT_2001F48F_RESOURCES_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools, language specific
//data=ZPRIVATE\200159c0\install\root_2001f48f\hsps\00\rootconfiguration.dtd \private\200159c0\install\root_2001f48f\hsps\00\rootconfiguration.dtd
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __ROOT_2001F48F_RESOURCES_IBY__
--- a/idlehomescreen/data/vga_tch/root_2001f48f/rom/root_variant.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/root_2001f48f/rom/root_variant.iby Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
#ifndef __ROOT_2001F48F_VARIANT_IBY__
#define __ROOT_2001F48F_VARIANT_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by variation tools, variant specific
data=ZPRIVATE\200159c0\install\root_2001f48f\hsps\00\rootconfiguration.xml \private\200159c0\install\root_2001f48f\hsps\00\rootconfiguration.xml
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __ROOT_2001F48F_VARIANT_IBY__
--- a/idlehomescreen/data/vga_tch/root_2001f48f/xuikon/00/root.xml Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/root_2001f48f/xuikon/00/root.xml Tue Sep 14 20:58:58 2010 +0300
@@ -1,5 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- <!DOCTYPE xmluiml SYSTEM "AI3_Demo.dtd"> -->
<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
<views>
</views>
--- a/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget.iby Tue Sep 14 20:58:58 2010 +0300
@@ -19,10 +19,11 @@
#ifndef __SINGLE_ROW_WIDGET_2001FDC0_IBY__
#define __SINGLE_ROW_WIDGET_2001FDC0_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools
data=ZPRIVATE\200159c0\install\single_row_icon_widget_2001fdc0\hsps\00\manifest.dat \private\200159c0\install\single_row_icon_widget_2001fdc0\hsps\00\manifest.dat
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
#endif // __SINGLE_ROW_WIDGET_2001FDC0_IBY__
--- a/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget_customer.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget_customer.iby Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
#ifndef __SINGLE_ROW_WIDGET_2001FDC0_CUSTOMER_IBY__
#define __SINGLE_ROW_WIDGET_2001FDC0_CUSTOMER_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools, language specific
data=ZPRIVATE\200159c0\install\single_row_icon_widget_2001fdc0\xuikon\00\single_row_icon_widget.o0000 \private\200159c0\install\single_row_icon_widget_2001fdc0\xuikon\00\single_row_icon_widget.o0000
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __SINGLE_ROW_WIDGET_2001FDC0_CUSTOMER_IBY__
--- a/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget_resources.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget_resources.iby Tue Sep 14 20:58:58 2010 +0300
@@ -18,7 +18,7 @@
#ifndef __SINGLE_ROW_WIDGET_2001FDC0_RESOURCES_IBY__
#define __SINGLE_ROW_WIDGET_2001FDC0_RESOURCES_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools, language specific
#if defined (__LOCALES_37_IBY__)
@@ -34,6 +34,6 @@
data=ZPRIVATE\200159c0\install\single_row_icon_widget_2001fdc0\xuikon\94\single_row_icon_widget.o0094 \private\200159c0\install\single_row_icon_widget_2001fdc0\xuikon\94\single_row_icon_widget.o0094
#endif
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __SINGLE_ROW_WIDGET_2001FDC0_RESOURCES_IBY__
--- a/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget_variant.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget_variant.iby Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
#ifndef __SINGLE_ROW_WIDGET_2001FDC0_VARIANT_IBY__
#define __SINGLE_ROW_WIDGET_2001FDC0_VARIANT_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by variation tools, variant specific
data=ZPRIVATE\200159c0\install\single_row_icon_widget_2001fdc0\hsps\00\widgetconfiguration.xml \private\200159c0\install\single_row_icon_widget_2001fdc0\hsps\00\widgetconfiguration.xml
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __SINGLE_ROW_WIDGET_2001FDC0_VARIANT_IBY__
--- a/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget.iby Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
#ifndef __SINGLE_ROW_WIDGET_2001FDC1_IBY__
#define __SINGLE_ROW_WIDGET_2001FDC1_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools
data=ZPRIVATE\200159c0\install\single_row_widget_2001fdc1\hsps\00\manifest.dat \private\200159c0\install\single_row_widget_2001fdc1\hsps\00\manifest.dat
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __SINGLE_ROW_WIDGET_2001FDC1_IBY__
--- a/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget_customer.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget_customer.iby Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
#ifndef __SINGLE_ROW_WIDGET_2001FDC1_CUSTOMER_IBY__
#define __SINGLE_ROW_WIDGET_2001FDC1_CUSTOMER_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools, language specific
data=ZPRIVATE\200159c0\install\single_row_widget_2001fdc1\xuikon\00\single_row_widget.o0000 \private\200159c0\install\single_row_widget_2001fdc1\xuikon\00\single_row_widget.o0000
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __SINGLE_ROW_WIDGET_2001FDC1_CUSTOMER_IBY__
--- a/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget_resources.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget_resources.iby Tue Sep 14 20:58:58 2010 +0300
@@ -18,7 +18,7 @@
#ifndef __SINGLE_ROW_WIDGET_2001FDC1_RESOURCES_IBY__
#define __SINGLE_ROW_WIDGET_2001FDC1_RESOURCES_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools, language specific
#if defined (__LOCALES_37_IBY__)
@@ -34,6 +34,6 @@
data=ZPRIVATE\200159c0\install\single_row_widget_2001fdc1\xuikon\94\single_row_widget.o0094 \private\200159c0\install\single_row_widget_2001fdc1\xuikon\94\single_row_widget.o0094
#endif
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __SINGLE_ROW_WIDGET_2001FDC1_RESOURCES_IBY__
--- a/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget_variant.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget_variant.iby Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
#ifndef __SINGLE_ROW_WIDGET_2001FDC1_VARIANT_IBY__
#define __SINGLE_ROW_WIDGET_2001FDC1_VARIANT_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by variation tools, variant specific
data=ZPRIVATE\200159c0\install\single_row_widget_2001fdc1\hsps\00\widgetconfiguration.xml \private\200159c0\install\single_row_widget_2001fdc1\hsps\00\widgetconfiguration.xml
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __SINGLE_ROW_WIDGET_2001FDC1_VARIANT_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,77 @@
+/*
+* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: The information required for building
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+// Support for productization and Carbide.Ui customization
+//********************************************************
+../hsps/00/manifest.dat /epoc32/data/z/resource/homescreen/tempateview_200286ec/hsps/manifest.dat
+../hsps/00/viewconfiguration.xml /epoc32/data/z/resource/homescreen/tempateview_200286ec/hsps/viewconfiguration.xml
+//../hsps/00/viewconfiguration.dtd /epoc32/data/z/resource/homescreen/tempateview_200286ec/hsps/viewconfiguration.dtd
+
+../xuikon/00/view.dat /epoc32/data/z/resource/homescreen/tempateview_200286ec/xuikon/tempateview_200286ec.dat
+../xuikon/00/view.xml /epoc32/data/z/resource/homescreen/tempateview_200286ec/xuikon/view.xml
+../xuikon/00/view.dtd /epoc32/data/z/resource/homescreen/tempateview_200286ec/xuikon/view.dtd
+../xuikon/00/view.css /epoc32/data/z/resource/homescreen/tempateview_200286ec/xuikon/view.css
+
+// Arabic languages
+//*****************
+../xuikon/37/view.css /epoc32/data/z/resource/homescreen/tempateview_200286ec/xuikon/37/view.css
+../xuikon/50/view.css /epoc32/data/z/resource/homescreen/tempateview_200286ec/xuikon/50/view.css
+../xuikon/57/view.css /epoc32/data/z/resource/homescreen/tempateview_200286ec/xuikon/57/view.css
+../xuikon/94/view.css /epoc32/data/z/resource/homescreen/tempateview_200286ec/xuikon/94/view.css
+
+
+// Support for S60 localization
+//*****************************
+//#ifndef __VIEWCONFIGURATION_LOC__
+//#define __VIEWCONFIGURATION_LOC__
+//../loc/viewconfiguration.loc APP_LAYER_LOC_EXPORT_PATH(viewconfiguration.loc)
+//#endif // __VIEWCONFIGURATION_LOC__
+
+#ifndef __VIEW_LOC__
+#define __VIEW_LOC__
+../loc/view.loc APP_LAYER_LOC_EXPORT_PATH(view.loc)
+#endif // __VIEW_LOC__
+
+// Support for S60 builds
+//***********************
+../rom/view_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(tempateview_200286ec_resources.iby)
+../rom/view_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(tempateview_200286ec_customer.iby)
+../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(tempateview_200286ec_variant.iby)
+../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(tempateview_200286ec.iby)
+
+
+// Dtd-localization
+//*****************
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME tempateview_200286ec
+OPTION DTD_TYPE widget
+END
+
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/hsps/00/manifest.dat Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<package version="2.0">
+
+ <family>vga_tch</family>
+
+ <type>view</type>
+
+ <!-- interface uid -->
+ <interfaceuid>0x2001f48a</interfaceuid>
+
+ <!-- vendor uid -->
+ <provideruid>0x101fb657</provideruid>
+
+ <!-- configuration uid -->
+ <configurationuid>0x200286ec</configurationuid>
+
+ <!-- description -->
+ <fullname>tempateview</fullname>
+ <shortname>ai3_nokia</shortname>
+ <version>1.0</version>
+
+ <!-- configuration -->
+ <filexml>viewconfiguration.xml</filexml>
+
+ <!-- Name of the localization files -->
+ <!--filedtd>viewconfiguration.dtd</filedtd-->
+
+ <!-- Locale specific resources -->
+ <localization>
+ <fileresource>view.o0000</fileresource>
+ </localization>
+
+</package>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/hsps/00/viewconfiguration.dtd Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+============================================================================
+<FileName: "viewconfiguration.dtd">
+
+<FileDescription: "Localization strings for HSPS view configuration">
+<FileVersion : >
+
+<Copyright:
+"Copyright © 2005 Nokia Corporation.
+This material, including documentation and any related
+computer programs, is protected by copyright controlled by
+Nokia Corporation. All rights are reserved. Copying,
+including reproducing, storing, adapting or translating, any
+or all of this material requires the prior written consent of
+Nokia Corporation. This material also contains confidential
+information which may not be disclosed to others without the
+prior written consent of Nokia Corporation.">
+============================================================================
+-->
+
+<!-- LOCALISATION STRINGS -->
+
+<!ENTITY qtn_view_configuration_name "ai3_nokia">
+
+
+<!-- End of File-->
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/hsps/00/viewconfiguration.xml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<configuration max_child="6" xmlns:xi="http://www.w3.org/2001/xinclude">
+ <control>
+ <settings>
+ <item id="hs_vga_tch_view">
+ <property name="use_empty_widget" value="true"/>
+ </item>
+ <item id="wallpaper">
+ <property name="path" value=""/>
+ </item>
+ </settings>
+ <plugins>
+ <plugin uid="0x200286e6" bundle_id="0" template_id="0" locking_status="permanent"/>
+ <plugin uid="0x200286e7" bundle_id="0" template_id="0" locking_status="permanent"/>
+ <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="permanent"/>
+ <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
+ <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
+ <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
+ </plugins>
+ <settings/>
+ </control>
+</configuration>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/loc/view.loc Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,322 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Localization strings for project Active Idle 3
+*
+*/
+
+// d: Help
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_options_help "Help"
+
+// d: Open
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define qtn_msk_open "Open"
+
+// d: Done
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_done "Done"
+
+// d: Open
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_options_open "Open"
+
+// d: Back
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_back "Back"
+
+// d: Empty string
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define shortcut_emptycaption " "
+
+// d: Add page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_add_page "Add page"
+
+// d: Select
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_options_select_widget "Select"
+
+// d: Add content
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_add_widget "Add content"
+
+// d: Access the widget catalog
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_widget_catalog "Widget catalog"
+
+// d: Search
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_search "Search"
+
+// d: Options
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_options "Options"
+
+// d: Refresh
+// l: list_single_pane_t1_cp2/opt3
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_widget "Refresh"
+
+// d: Focused widget
+// l: list_single_popup_submenu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_one_widget "One"
+
+// d: All widgets
+// l: list_single_popup_submenu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_all_widgets "All"
+
+// d: Remove content
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_remove_widget "Remove content"
+
+// d: Hide the content
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_hide_widgets "Hide the content"
+
+// d: Edit contents
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_edit_content "Edit content"
+
+// d: Change Wallpaper
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_wallpaper "Change Wallpaper"
+
+// d: Change Shortcut Settings
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_shortcut_settings "Change Shortcut Settings"
+
+// d: Widget settings
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_widget_settings "Widget settings"
+
+// d: Show widgets
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_show_widgets "Show the content"
+
+// d: Change Home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_page "Change Home screen page"
+
+// d: Change
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define qtn_msk_change "Change"
+
+// d: Show all profiles in Profiles widget
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_show_profiles "Show all profiles"
+
+// d: Right selection key
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_set_right_idle_softkey "Right selection key"
+
+// d: Select
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_select "Select"
+
+// d: Cancel
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_cancel "Cancel"
+
+// d: Options menu item which switches home to online. Web widgets get updates from network.
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_online "Switch Home to online"
+
+// d: Options menu item which switches home to offline. Web widgets are not updated
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_offline "Switch Home to offline"
+
+// d: String which is shown in long tap menu of Home screen if tapped widget has settings
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_settings "Settings"
+
+// d: String which is shown in long tap menu of Home screen if tapped some widget which is removable
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_remove_element "Remove"
+
+// d: String which is shown in long tap menu of Home screen if tapped empty space in home screen
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_add "Add content"
+
+// d: String which is shown in long tap menu of Home screen
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_change_longtap_wallpaper "Change wallpaper"
+
+// d: User can download new HS widgets. String is visible in add content list query
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_download_new_widgets "Download"
+
+// d: Changes focused widget
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_edit_replace "Replace"
+
+// d: deletes current home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_options_delete "Delete page"
+
+// d: creates new home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_options_new "New page"
+
+// d: view title in editing mode
+// l: title_pane_t2
+// w:
+// r: TB9.2
+#define qtn_hs_title_editing_view "Editing view"
+
+// d: Call
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_call "Call"
+
+// d: Added new option menu item to Edit mode for opening the widget catalog,
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_edit_widget_catalog "Widget Catalog"
+
+// d: Deletes the current Home screen page and focus goes to the next available Home screen page in Edit mode
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_edit_options_delete "Delete page"
+
+// d: Done
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_done "Done"
+
+// d: Search
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_search "Search"
+
+// d: Options
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_options "Options"
+
+// d: Back
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_back "Back"
+
+// d: Select
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_select "Select"
+
+// d: Cancel
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_cancel "Cancel"
+
+// d: Call
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_call "Call"
+
+// d: Lock keypad
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_lock_keypad "Lock keypad"
+
+// d: Menu
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_apps_menu_skey "Menu"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/loc/viewconfiguration.loc Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Localization strings for tempateview plugin configuration (HSPS)
+*
+*/
+
+
+<!-- LOCALISATION STRINGS -->
+// d: AI3 View
+// l: ai_gene_pane_1_t1
+// w:
+// r: TB9.2
+//#define qtn_view_configuration_name "AI3 View"
+
+
+<!-- End of File-->
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/rom/view.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: View widget HSPS-plugin IBY file.
+*
+*/
+
+
+#ifndef __AI3VIEW_200286ec_IBY__
+#define __AI3VIEW_200286ec_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools
+data=ZPRIVATE\200159c0\install\tempateview_200286ec\hsps\00\manifest.dat \private\200159c0\install\tempateview_200286ec\hsps\00\manifest.dat
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __AI3VIEW_200286ec_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/rom/view_customer.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: View widget HSPS-plugin language specific IBY file.
+*
+*/
+
+
+#ifndef __AI3VIEW_200286ec_CUSTOMER_IBY__
+#define __AI3VIEW_200286ec_CUSTOMER_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\tempateview_200286ec\xuikon\00\view.o0000 \private\200159c0\install\tempateview_200286ec\xuikon\00\view.o0000
+//data=ZPRIVATE\200159c0\install\tempateview_200286ec\hsps\00\viewconfiguration.dtd \private\200159c0\install\tempateview_200286ec\hsps\00\viewconfiguration.dtd
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __AI3VIEW_200286ec_CUSTOMER_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/rom/view_resources.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: View widget HSPS-plugin language specific IBY file.
+*
+*/
+
+
+#ifndef __AI3VIEW_200286ec_RESOURCES_IBY__
+#define __AI3VIEW_200286ec_RESOURCES_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\tempateview_200286ec\xuikon\00\view.o0000 \private\200159c0\install\tempateview_200286ec\xuikon\00\view.o0000
+//data=ZPRIVATE\200159c0\install\tempateview_200286ec\hsps\00\viewconfiguration.dtd \private\200159c0\install\tempateview_200286ec\hsps\00\viewconfiguration.dtd
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __AI3VIEW_200286ec_RESOURCES_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/rom/view_variant.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: View widget HSPS-plugin variant specific IBY file.
+*
+*/
+
+
+#ifndef __AI3VIEW_200286ec_VARIANT_IBY__
+#define __AI3VIEW_200286ec_VARIANT_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by variation tools, variant specific
+data=ZPRIVATE\200159c0\install\tempateview_200286ec\hsps\00\viewconfiguration.xml \private\200159c0\install\tempateview_200286ec\hsps\00\viewconfiguration.xml
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __AI3VIEW_200286ec_VARIANT_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/00/View.xml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,283 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE xmluiml SYSTEM "View.dtd">
+<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
+ <view id="hs_vga_tch_view">
+ <actions>
+ <action>
+ <!-- End key -->
+ <trigger name="keyevent">
+ <property name="scancode" value="197"/> ><!-- End key -->
+ <property name="eventtype" value="1"/>
+ </trigger>
+ <!-- dismiss if edit mode active -->
+ <event name="system/reportexiteditmode"/>
+ </action>
+ <action>
+ <trigger name="editmode" value="enter"/>
+ <event name="system/set">
+ <property name="name" value="focusable"/>
+ <property name="value" value="true"/>
+ <property name="type" value="string"/>
+ <property name="class" value="plugins"/>
+ </event>
+ <event name="system/seteditmode">
+ <property name="id" value="hs_popup_open_hold"/>
+ </event>
+ </action>
+ <action>
+ <trigger name="editmode" value="exit"/>
+ <event name="system/set">
+ <property name="name" value="focusable"/>
+ <property name="value" value="false"/>
+ <property name="type" value="string"/>
+ <property name="class" value="plugins"/>
+ </event>
+ <event name="system/reseteditmode">
+ <property name="id" value="hs_popup_open_hold"/>
+ </event>
+ </action>
+ <action>
+ <trigger name="swipe" direction="left" conditional="true"/>
+ <event name="system/activatenextview" effectid="1003"/>
+ </action>
+ <action>
+ <trigger name="swipe" direction="right" conditional="true"/>
+ <event name="system/activatepreviousview" effectid="1004"/>
+ </action>
+ <action>
+ <trigger name="screendevicechange" reason="portrait"/>
+ <event name="system/set">
+ <property name="name" value="padding-left"/>
+ <property name="value" value="17px"/>
+ <property name="type" value="numeric"/>
+ <property name="id" value="plugins_container"/>
+ </event>
+ <event name="system/set">
+ <property name="name" value="padding-right"/>
+ <property name="value" value="17px"/>
+ <property name="type" value="numeric"/>
+ <property name="id" value="plugins_container"/>
+ </event>
+ </action>
+ <action>
+ <trigger name="screendevicechange" reason="landscape"/>
+ <event name="system/set">
+ <property name="name" value="padding-left"/>
+ <property name="value" value="0px"/>
+ <property name="type" value="numeric"/>
+ <property name="id" value="plugins_container"/>
+ </event>
+ <event name="system/set">
+ <property name="name" value="padding-right"/>
+ <property name="value" value="0px"/>
+ <property name="type" value="numeric"/>
+ <property name="id" value="plugins_container"/>
+ </event>
+ </action>
+ </actions>
+
+ <!-- Plugins in this view -->
+ <box id="plugins_container">
+ <plugin id="plugin1" class="miniplugins" actionshandler="plugin_actions">
+ </plugin>
+ <plugin id="plugin2" class="miniplugins" actionshandler="plugin_actions">
+ </plugin>
+ <plugin id="plugin3" class="miniplugins" actionshandler="plugin_actions">
+ </plugin>
+ <plugin id="plugin4" class="plugins" actionshandler="plugin_actions">
+ </plugin>
+ <plugin id="plugin5" class="plugins" actionshandler="plugin_actions">
+ </plugin>
+ <plugin id="plugin6" class="plugins" actionshandler="plugin_actions">
+ </plugin>
+ </box>
+
+ <!-- plugins' actions handler -->
+ <actionshandler id="plugin_actions">
+ <actions>
+ <action>
+ <trigger id="hs_popup_open_hold" name="hold" conditional="true" />
+ <event name="system/reportentereditmode" effectid="1005"/>
+ </action>
+ </actions>
+ </actionshandler>
+
+ <!-- Avkon stylus popup menu is not layout capable -->
+ <styluspopup id="hs_popup_menu" display="none">
+ <!-- menuitems controlled by widgets' <menuextension> -->
+ <widgetmenuitem id="hs_popup_widget_settings" source="hs_widget_menuitem_settings" label="&qtn_hs_longtap_settings;" />
+ <widgetmenuitem id="hs_popup_widget_general_1" source="hs_widget_general_stylus_popup_1"/>
+ <widgetmenuitem id="hs_popup_widget_general_2" source="hs_widget_general_stylus_popup_2"/>
+ <!--<widgetmenuitem id="hs_popup_widget_refresh" source="hs_widget_menuitem_refresh" label="Refresh" />-->
+ <!-- "Remove" item initialized in runtime to check whether popup is on top of widget -->
+ <dynmenuitem id="hs_popup_remove_widget" type="hs_remove_widget" label="&qtn_hs_longtap_remove_element;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/removefocusedwidget"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ </styluspopup>
+ <menubar id="hs_menubar">
+ <!-- menu item grouping table is traversed through in run-time always when options menu is launched. -->
+ <menuitemgrouping>
+ <!-- These items are shown when content is visible -->
+ <menuitemgroup id="Menu/NormalMode">
+ <property name="hs_edit_widgets"/>
+ <property name="hs_set_online"/>
+ <property name="hs_set_offline"/>
+ <property name="hs_add_view"/>
+ <property name="hs_remove_view"/>
+ </menuitemgroup>
+ <!-- These items are shown in edit mode, if not otherwise changed in the declaration -->
+ <menuitemgroup id="Menu/EditMode">
+ <property name="hs_widget_catalog"/>
+ <property name="hs_remove_widget"/>
+ <property name="hs_widget_settings"/>
+ <property name="hs_widget_general_1"/>
+ <property name="hs_widget_general_2"/>
+ <property name="hs_add_view"/>
+ <property name="hs_remove_view"/>
+ <property name="hs_change_wallpaper"/>
+ </menuitemgroup>
+ <!-- These items are always shown, if not otherwise changed in the declaration -->
+ <menuitemgroup id="Menu/AlwaysShown">
+ <property name="hs_show_help"/>
+ </menuitemgroup>
+ </menuitemgrouping>
+ <menu id="hs_options_menu">
+ <menuitem id="hs_widget_catalog" label="&qtn_hs_widget_catalog;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/runaddwidgetquery"/>
+ </action>
+ </actions>
+ </menuitem>
+ <!-- menuitems controlled by widgets' <menuextension> element -->
+ <widgetmenuitem id="hs_widget_settings" source="hs_widget_menuitem_settings" label="&qtn_hs_widget_settings;"/>
+ <widgetmenuitem id="hs_widget_general_1" source="hs_widget_general_options_menu_1"/>
+ <widgetmenuitem id="hs_widget_general_2" source="hs_widget_general_options_menu_2"/>
+ <dynmenuitem id="hs_remove_widget" type="hs_remove_widget" label="&qtn_hs_remove_widget;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/removefocusedwidget"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ <!--<widgetmenuitem id="hs_widget_refresh" source="hs_widget_menuitem_refresh" label="&qtn_hs_refresh_widget;" />-->
+ <menuitem id="hs_edit_widgets" label="&qtn_hs_edit_content;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/reportentereditmode" effectid="1005"/>
+ </action>
+ </actions>
+ </menuitem>
+ <menuitem id="hs_change_wallpaper" label="&qtn_hs_change_wallpaper;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <!--Wallpaper-->
+ <event name="system/setwallpaper"/>
+ </action>
+ </actions>
+ </menuitem>
+ <dynmenuitem id="hs_add_view" type="hs_add_view" label="&qtn_hs_page_options_new;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/addview" effectid="1009"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ <dynmenuitem id="hs_remove_view" type="hs_remove_view" label="&qtn_hs_page_options_delete;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/removeview" effectid="1010"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ <dynmenuitem id="hs_set_online" type="hs_online" label="&qtn_hs_online;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="EventHandler/SetOnline"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ <dynmenuitem id="hs_set_offline" type="hs_offline" label="&qtn_hs_offline;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="EventHandler/SetOffline"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ <menuitem id="hs_show_help" label="&qtn_options_help;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="EventHandler/ShowHelp"/>
+ </action>
+ </actions>
+ </menuitem>
+ </menu>
+ <softkey id="lsk" type="left" label="&qtn_hs_text_softkey_options;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/trydisplayingmenu">
+ <property name="id" value="hs_options_menu"/>
+ </event>
+ </action>
+ </actions>
+ </softkey>
+ <softkey id="rsk" type="right" mode="mode_callinactive" label="#Menu">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="EventHandler/LaunchApp" uid="0x101F4CD2"/>
+ </action>
+ </actions>
+ </softkey>
+ <softkey id="rsk" type="right" mode="mode_callactive" label="#Menu">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="EventHandler/LaunchApp" uid="0x101F4CD2"/>
+ </action>
+ </actions>
+ </softkey>
+ <softkey id="rsk_done" type="right" mode="mode_edit" label="&qtn_hs_text_softkey_done;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/reportexiteditmode" effectid="1006"/>
+ </action>
+ </actions>
+ </softkey>
+ <softkey id="msk_ltr" type="middle" label=""> <!--TODO: Remove label when MSK icon available-->
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/activatenextview" effectid="1003"/>
+ </action>
+ </actions>
+ <!--image id="switcher_icon"/-->
+ </softkey>
+ <softkey id="msk_rtl" type="middle" label=""> <!--TODO: Remove label when MSK icon available-->
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/activatepreviousview" effectid="1004"/>
+ </action>
+ </actions>
+ <!--image id="switcher_icon"/-->
+ </softkey>
+ </menubar>
+ </view>
+</xmluiml>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/00/view.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view
+{
+ direction: ltr;
+ block-progression: tb;
+ background-image: wallpaper;
+ swipe: true;
+
+ _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+ direction: ltr;
+ block-progression: tb;
+}
+
+plugin.miniplugins
+{
+ height: 115px;
+ width: 176px;
+
+ margin-top: 9px;
+ margin-left: 9px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+plugin.plugins
+{
+ height: 115px;
+ width: 436px;
+
+ margin-top: 9px;
+ margin-left: 10px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+trigger#hs_popup_open_hold:edit
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+ display: block;
+}
+
+softkey#rsk
+{
+ _s60-longtap: true;
+ _s60-aspect-ratio: preserve;
+}
+
+softkey#msk_ltr
+{
+ display: block;
+}
+
+softkey#msk_rtl
+{
+ display: none;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/00/view.dat Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<data>
+ <AppUid>E029CF57</AppUid>
+ <Provideruid>101FB657</Provideruid>
+ <ThemeUid>11001234</ThemeUid>
+ <ThemeFullName>Nokia</ThemeFullName>
+ <ThemeShortName>view</ThemeShortName>
+ <ThemeVersion>1.0</ThemeVersion>
+ <FileXML>view.xml</FileXML>
+ <FileCSS>view.css</FileCSS>
+ <FileDTD>view.dtd</FileDTD>
+
+</data>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/00/view.dtd Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,514 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+============================================================================
+<FileName: "View.dtd">
+<PartOf : "AI3">
+
+<FileDescription: "Localization strings for AI3">
+<FileVersion : >
+
+<Copyright:
+"Copyright (c) 2005 Nokia Corporation.
+This material, including documentation and any related
+computer programs, is protected by copyright controlled by
+Nokia Corporation. All rights are reserved. Copying,
+including reproducing, storing, adapting or translating, any
+or all of this material requires the prior written consent of
+Nokia Corporation. This material also contains confidential
+information which may not be disclosed to others without the
+prior written consent of Nokia Corporation.">
+============================================================================
+-->
+
+<!--
+qtn_options_help.attributes
+qtn_options_help.layout "list_single_pane_t1_cp2"
+qtn_options_help.release "TB9.2"
+qtn_options_help.description "Help"
+qtn_options_help.grammar "Help"
+qtn_options_help.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_options_help "Help">
+
+<!--
+qtn_msk_open.attributes
+qtn_msk_open.layout "control_pane_t1/opt7"
+qtn_msk_open.release "TB9.2"
+qtn_msk_open.description "Open"
+qtn_msk_open.grammar "Open"
+qtn_msk_open.parents "control_pane"
+-->
+<!ENTITY qtn_msk_open "Open">
+
+<!--
+text_softkey_done.attributes
+text_softkey_done.layout "nhd_control_pane_t2/opt7"
+text_softkey_done.release "TB9.2"
+text_softkey_done.description "Done"
+text_softkey_done.grammar "Done"
+text_softkey_done.parents "control_pane"
+-->
+<!ENTITY text_softkey_done "Done">
+
+<!--
+qtn_options_open.attributes
+qtn_options_open.layout "list_single_pane_t1_cp2"
+qtn_options_open.release "TB9.2"
+qtn_options_open.description "Open"
+qtn_options_open.grammar "Open"
+qtn_options_open.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_options_open "Open">
+
+<!--
+text_softkey_back.attributes
+text_softkey_back.layout "nhd_control_pane_t2/opt7"
+text_softkey_back.release "TB9.2"
+text_softkey_back.description "Back text for SK2"
+text_softkey_back.parents "control_pane"
+-->
+<!ENTITY text_softkey_back "Back">
+
+<!--
+shortcut_EmptyCaption.attributes
+shortcut_EmptyCaption.layout "control_pane_t1/opt7"
+shortcut_EmptyCaption.release "TB9.2"
+shortcut_EmptyCaption.description "Empty shortcut"
+shortcut_EmptyCaption.parents "list_ai2_gene_pane"
+-->
+<!ENTITY shortcut_EmptyCaption " ">
+
+<!--
+qtn_hs_add_page.attributes
+qtn_hs_add_page.layout "list_single_pane_t1_cp2"
+qtn_hs_add_page.release "TB9.2"
+qtn_hs_add_page.description "Add page"
+qtn_hs_add_page.grammar "Add page"
+qtn_hs_add_page.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_add_page "Add page">
+
+<!--
+qtn_options_select_widget.attributes
+qtn_options_select_widget.layout "list_single_pane_t1_cp2"
+qtn_options_select_widget.release "TB9.2"
+qtn_options_select_widget.description "Select"
+qtn_options_select_widget.grammar "Select"
+qtn_options_select_widget.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_options_select_widget "Select">
+
+<!--
+qtn_hs_add_widget.attributes
+qtn_hs_add_widget.layout "list_single_pane_t1_cp2"
+qtn_hs_add_widget.release "TB9.2"
+qtn_hs_add_widget.description "Add content"
+qtn_hs_add_widget.grammar "Add content"
+qtn_hs_add_widget.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_add_widget "Add content">
+
+<!--
+qtn_hs_widget_catalog.attributes
+qtn_hs_widget_catalog.layout "list_single_pane_t1_cp2"
+qtn_hs_widget_catalog.release "TB9.2"
+qtn_hs_widget_catalog.description "Widget catalog"
+qtn_hs_widget_catalog.grammar "Widget catalog"
+qtn_hs_widget_catalog.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_widget_catalog "Widget catalog">
+
+<!--
+text_softkey_search.attributes
+text_softkey_search.layout "nhd_control_pane_t2/opt7"
+text_softkey_search.release "TB9.2"
+text_softkey_search.description "Search"
+text_softkey_search.grammar "Search"
+text_softkey_search.parents "control_pane"
+-->
+<!ENTITY text_softkey_search "Search">
+
+<!--
+text_softkey_options.attributes
+text_softkey_options.layout "nhd_control_pane_t2/opt7"
+text_softkey_options.release "TB9.2"
+text_softkey_options.description "Options"
+text_softkey_options.grammar "Options"
+text_softkey_options.parents "control_pane"
+-->
+<!ENTITY text_softkey_options "Options">
+
+<!--
+qtn_hs_refresh_widget.attributes
+qtn_hs_refresh_widget.layout "list_single_pane_t1_cp2/opt3"
+qtn_hs_refresh_widget.release "TB9.2"
+qtn_hs_refresh_widget.description "Refresh"
+qtn_hs_refresh_widget.grammar "Refresh"
+qtn_hs_refresh_widget.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_refresh_widget "Refresh">
+
+<!--
+qtn_hs_refresh_one_widget.attributes
+qtn_hs_refresh_one_widget.layout "list_single_popup_submenu_pane_t1"
+qtn_hs_refresh_one_widget.release "TB9.2"
+qtn_hs_refresh_one_widget.description "One"
+qtn_hs_refresh_one_widget.grammar "One"
+qtn_hs_refresh_one_widget.parents "list_single_popup_submenu_pane"
+-->
+<!ENTITY qtn_hs_refresh_one_widget "One">
+
+<!--
+qtn_hs_refresh_all_widgets.attributes
+qtn_hs_refresh_all_widgets.layout "list_single_popup_submenu_pane_t1"
+qtn_hs_refresh_all_widgets.release "TB9.2"
+qtn_hs_refresh_all_widgets.description "All"
+qtn_hs_refresh_all_widgets.grammar "All"
+qtn_hs_refresh_all_widgets.parents "list_single_popup_submenu_pane"
+-->
+<!ENTITY qtn_hs_refresh_all_widgets "All">
+
+<!--
+qtn_hs_remove_widget.attributes
+qtn_hs_remove_widget.layout "list_single_pane_t1_cp2"
+qtn_hs_remove_widget.release "TB9.2"
+qtn_hs_remove_widget.description "Remove content"
+qtn_hs_remove_widget.grammar "Remove content"
+qtn_hs_remove_widget.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_remove_widget "Remove content">
+
+<!--
+qtn_hs_hide_widgets.attributes
+qtn_hs_hide_widgets.layout "list_single_pane_t1_cp2"
+qtn_hs_hide_widgets.release "TB9.2"
+qtn_hs_hide_widgets.description "Hide the content"
+qtn_hs_hide_widgets.grammar "Hide the content"
+qtn_hs_hide_widgets.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_hide_widgets "Hide the content">
+
+<!--
+qtn_hs_edit_content.attributes
+qtn_hs_edit_content.layout "list_single_pane_t1_cp2"
+qtn_hs_edit_content.release "TB9.2"
+qtn_hs_edit_content.description "Edit contents"
+qtn_hs_edit_content.grammar "Edit contents"
+qtn_hs_edit_content.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_edit_content "Edit content">
+
+<!--
+qtn_hs_change_wallpaper.attributes
+qtn_hs_change_wallpaper.layout "list_single_pane_t1_cp2"
+qtn_hs_change_wallpaper.release "TB9.2"
+qtn_hs_change_wallpaper.description "Change Wallpaper"
+qtn_hs_change_wallpaper.grammar "Change Wallpaper"
+qtn_hs_change_wallpaper.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_change_wallpaper "Change Wallpaper">
+
+<!--
+qtn_hs_change_shortcut_settings.attributes
+qtn_hs_change_shortcut_settings.layout "list_single_pane_t1_cp2"
+qtn_hs_change_shortcut_settings.release "TB9.2"
+qtn_hs_change_shortcut_settings.description "Change Shortcut Settings"
+qtn_hs_change_shortcut_settings.grammar "Change Shortcut Settings"
+qtn_hs_change_shortcut_settings.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_change_shortcut_settings "Change Shortcut Settings">
+
+<!--
+qtn_hs_widget_settings.attributes
+qtn_hs_widget_settings.layout "list_single_pane_t1_cp2"
+qtn_hs_widget_settings.release "TB9.2"
+qtn_hs_widget_settings.description "Widget settings"
+qtn_hs_widget_settings.grammar "Widget settings"
+qtn_hs_widget_settings.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_widget_settings "Widget settings">
+
+<!--
+qtn_hs_show_widgets.attributes
+qtn_hs_show_widgets.layout "list_single_pane_t1_cp2"
+qtn_hs_show_widgets.release "TB9.2"
+qtn_hs_show_widgets.description "Show widgets"
+qtn_hs_show_widgets.grammar "Show widgets"
+qtn_hs_show_widgets.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_show_widgets "Show the content">
+
+<!--
+qtn_hs_change_page.attributes
+qtn_hs_change_page.layout "list_single_pane_t1_cp2"
+qtn_hs_change_page.release "TB9.2"
+qtn_hs_change_page.description "Change Home screen page"
+qtn_hs_change_page.grammar "Change Home screen page"
+qtn_hs_change_page.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_change_page "Change Home screen page">
+
+<!--
+qtn_msk_change.attributes
+qtn_msk_change.layout "control_pane_t1/opt7"
+qtn_msk_change.release "TB9.2"
+qtn_msk_change.description "Change"
+qtn_msk_change.grammar "Change"
+qtn_msk_change.parents "control_pane"
+-->
+<!ENTITY qtn_msk_change "Change">
+
+<!--
+qtn_hs_show_profiles.attributes
+qtn_hs_show_profiles.layout "list_single_pane_t1_cp2"
+qtn_hs_show_profiles.release "TB9.2"
+qtn_hs_show_profiles.description "Show all profiles"
+qtn_hs_show_profiles.grammar "Show all profiles"
+qtn_hs_show_profiles.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_show_profiles "Show all profiles">
+
+<!--
+qtn_set_right_idle_softkey.attributes
+qtn_set_right_idle_softkey.layout "list_single_pane_t1_cp2"
+qtn_set_right_idle_softkey.release "TB9.2"
+qtn_set_right_idle_softkey.description "Right selection key"
+qtn_set_right_idle_softkey.grammar "Right selection key"
+qtn_set_right_idle_softkey.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_set_right_idle_softkey "Right selection key">
+
+<!--
+text_softkey_select.attributes
+text_softkey_select.layout "nhd_control_pane_t2/opt7"
+text_softkey_select.release "TB9.2"
+text_softkey_select.description "Select"
+text_softkey_select.grammar "Select"
+text_softkey_select.parents "control_pane"
+-->
+<!ENTITY text_softkey_select "Select">
+
+<!--
+text_softkey_cancel.attributes
+text_softkey_cancel.layout "nhd_control_pane_t2/opt7"
+text_softkey_cancel.release "TB9.2"
+text_softkey_cancel.description "Cancel"
+text_softkey_cancel.grammar "Cancel"
+text_softkey_cancel.parents "control_pane"
+-->
+<!ENTITY text_softkey_cancel "Cancel">
+
+<!--
+qtn_hs_online.attributes
+qtn_hs_online.layout "list_single_pane_t1_cp2"
+qtn_hs_online.release "TB9.2"
+qtn_hs_online.description "Online"
+qtn_hs_online.grammar "Online"
+qtn_hs_online.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_online "Switch Home to online">
+
+<!--
+qtn_hs_offline.attributes
+qtn_hs_offline.layout "list_single_pane_t1_cp2"
+qtn_hs_offline.release "TB9.2"
+qtn_hs_offline.description "Offline"
+qtn_hs_offline.grammar "Offline"
+qtn_hs_offline.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_offline "Switch Home to offline">
+
+<!--
+qtn_hs_longtap_settings.attributes
+qtn_hs_longtap_settings.layout "list_single_touch_menu_pane_t1"
+qtn_hs_longtap_settings.release "TB9.2"
+qtn_hs_longtap_settings.description "String which is shown in long tap menu of Home screen if tapped widget has settings."
+qtn_hs_longtap_settings.parents "control_pane"
+-->
+<!ENTITY qtn_hs_longtap_settings "Settings">
+
+<!--
+qtn_hs_longtap_remove_element.attributes
+qtn_hs_longtap_remove_element.layout "list_single_touch_menu_pane_t1"
+qtn_hs_longtap_remove_element.release "TB9.2"
+qtn_hs_longtap_remove_element.description "String which is shown in long tap menu of Home screen if tapped some widget which is removable."
+qtn_hs_longtap_remove_element.parents "control_pane"
+-->
+<!ENTITY qtn_hs_longtap_remove_element "Remove">
+
+<!--
+qtn_hs_longtap_add.attributes
+qtn_hs_longtap_add.layout "list_single_touch_menu_pane_t1"
+qtn_hs_longtap_add.release "TB9.2"
+qtn_hs_longtap_add.description "String which is shown in long tap menu of Home screen if tapped empty space in home screen."
+qtn_hs_longtap_add.parents "control_pane"
+-->
+<!ENTITY qtn_hs_longtap_add "Add content">
+
+<!--
+qtn_hs_change_longtap_wallpaper.attributes
+qtn_hs_change_longtap_wallpaper.layout "list_single_touch_menu_pane_t1"
+qtn_hs_change_longtap_wallpaper.release "TB9.2"
+qtn_hs_change_longtap_wallpaper.description "String which is shown in long tap menu of Home screen."
+qtn_hs_change_longtap_wallpaper.parents "control_pane"
+-->
+<!ENTITY qtn_hs_change_longtap_wallpaper "Change wallpaper">
+
+<!--
+qtn_hs_download_new_widgets.attributes
+qtn_hs_download_new_widgets.layout "list_single_pane_t1_cp2"
+qtn_hs_download_new_widgets.release "TB9.2"
+qtn_hs_download_new_widgets.description "User can download new HS widgets String is visible in add content list query"
+qtn_hs_download_new_widgets.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_download_new_widgets "Download">
+
+<!--
+qtn_hs_edit_replace.attributes
+qtn_hs_edit_replace.layout "list_single_touch_menu_pane_t1"
+qtn_hs_edit_replace.release "TB9.2"
+qtn_hs_edit_replace.description "Changes focused widget"
+qtn_hs_edit_replace.parents ""
+-->
+<!ENTITY qtn_hs_edit_replace "Replace">
+
+<!--
+qtn_hs_page_options_delete.attributes
+qtn_hs_page_options_delete.layout "list_single_pane_t1_cp2"
+qtn_hs_page_options_delete.release "TB9.2"
+qtn_hs_page_options_delete.description "deletes current home screen page"
+qtn_hs_page_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_page_options_delete "Delete page">
+
+<!--
+qtn_hs_page_options_new.attributes
+qtn_hs_page_options_new.layout "list_single_pane_t1_cp2"
+qtn_hs_page_options_new.release "TB9.2"
+qtn_hs_page_options_new.description "creates new home screen page"
+qtn_hs_page_options_new.parents ""
+-->
+<!ENTITY qtn_hs_page_options_new "New page">
+
+<!--
+qtn_hs_title_editing_view.attributes
+qtn_hs_title_editing_view.layout "title_pane_t2"
+qtn_hs_title_editing_view.release "TB9.2"
+qtn_hs_title_editing_view.description "view title in editing mode"
+qtn_hs_title_editing_view.parents ""
+-->
+<!ENTITY qtn_hs_title_editing_view "Editing view">
+
+<!--
+text_softkey_call.attributes
+text_softkey_call.layout "nhd_control_pane_t2/opt7"
+text_softkey_call.release "TB9.2"
+text_softkey_call.description "RSK caption call inactive"
+text_softkey_call.parents ""
+-->
+<!ENTITY text_softkey_call "Call">
+
+<!--
+qtn_hs_edit_widget_catalog.attributes
+qtn_hs_edit_widget_catalog.layout "list_single_pane_t1_cp2"
+qtn_hs_edit_widget_catalog.release "TB9.2"
+qtn_hs_edit_widget_catalog.description "Added new option menu item to Edit mode for opening the widget catalog"
+qtn_hs_edit_widget_catalog.grammar "Widget Catalog"
+qtn_hs_edit_widget_catalog.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_edit_widget_catalog "Widget Catalog">
+
+<!--
+qtn_hs_page_edit_options_delete.attributes
+qtn_hs_page_edit_options_delete.layout "list_single_pane_t1_cp2"
+qtn_hs_page_edit_options_delete.release "TB9.2"
+qtn_hs_page_edit_options_delete.description "Deletes the current Home screen page and focus goes to the next available Home screen page in Edit mode"
+qtn_hs_page_edit_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_page_edit_options_delete "Delete page">
+
+<!--
+qtn_hs_text_softkey_done.attributes
+qtn_hs_text_softkey_done.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_done.release "TB9.2"
+qtn_hs_text_softkey_done.description "Done"
+qtn_hs_text_softkey_done.grammar "Done"
+qtn_hs_text_softkey_done.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_done "Done">
+
+<!--
+qtn_hs_text_softkey_search.attributes
+qtn_hs_text_softkey_search.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_search.release "TB9.2"
+qtn_hs_text_softkey_search.description "Search"
+qtn_hs_text_softkey_search.grammar "Search"
+qtn_hs_text_softkey_search.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_search "Search">
+
+<!--
+qtn_hs_text_softkey_options.attributes
+qtn_hs_text_softkey_options.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_options.release "TB9.2"
+qtn_hs_text_softkey_options.description "Options"
+qtn_hs_text_softkey_options.grammar "Options"
+qtn_hs_text_softkey_options.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_options "Options">
+
+<!--
+qtn_hs_text_softkey_back.attributes
+qtn_hs_text_softkey_back.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_back.release "TB9.2"
+qtn_hs_text_softkey_back.description "Back text for SK2"
+qtn_hs_text_softkey_back.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_back "Back">
+
+<!--
+qtn_hs_text_softkey_select.attributes
+qtn_hs_text_softkey_select.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_select.release "TB9.2"
+qtn_hs_text_softkey_select.description "Select"
+qtn_hs_text_softkey_select.grammar "Select"
+qtn_hs_text_softkey_select.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_select "Select">
+
+<!--
+qtn_hs_text_softkey_cancel.attributes
+qtn_hs_text_softkey_cancel.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_cancel.release "TB9.2"
+qtn_hs_text_softkey_cancel.description "Cancel"
+qtn_hs_text_softkey_cancel.grammar "Cancel"
+qtn_hs_text_softkey_cancel.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_cancel "Cancel">
+
+<!--
+qtn_hs_text_softkey_call.attributes
+qtn_hs_text_softkey_call.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_call.release "TB9.2"
+qtn_hs_text_softkey_call.description "RSK caption call inactive"
+qtn_hs_text_softkey_call.parents ""
+-->
+<!ENTITY qtn_hs_text_softkey_call "Call">
+
+<!--
+qtn_hs_page_edit_options_delete.attributes
+qtn_hs_page_edit_options_delete.layout "list_single_pane_t1_cp2"
+qtn_hs_page_edit_options_delete.release "TB9.2"
+qtn_hs_page_edit_options_delete.description "Lock keypad"
+qtn_hs_page_edit_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_lock_keypad "Lock keypad">
+
+<!--
+qtn_hs_text_softkey_call.attributes
+qtn_hs_text_softkey_call.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_call.release "TB9.2"
+qtn_hs_text_softkey_call.description "RSK caption"
+qtn_hs_text_softkey_call.parents ""
+-->
+<!ENTITY qtn_hs_apps_menu_skey "Menu">
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/37/view.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view
+{
+ direction: rtl;
+ block-progression: tb;
+ background-image: wallpaper;
+ swipe: true;
+
+ _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+ direction: rtl;
+ block-progression: tb;
+}
+
+plugin.miniplugins
+{
+ height: 115px;
+ width: 176px;
+
+ margin-top: 9px;
+ margin-right: 9px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+plugin.plugins
+{
+ height: 115px;
+ width: 436px;
+
+ margin-top: 9px;
+ margin-right: 10px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+trigger#hs_popup_open_hold:edit
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+ display: block;
+}
+
+softkey#rsk
+{
+ _s60-longtap: true;
+ _s60-aspect-ratio: preserve;
+}
+
+softkey#msk_ltr
+{
+ display: block;
+}
+
+softkey#msk_rtl
+{
+ display: none;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/50/view.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view
+{
+ direction: rtl;
+ block-progression: tb;
+ background-image: wallpaper;
+ swipe: true;
+
+ _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+ direction: rtl;
+ block-progression: tb;
+}
+
+plugin.miniplugins
+{
+ height: 115px;
+ width: 176px;
+
+ margin-top: 9px;
+ margin-right: 9px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+plugin.plugins
+{
+ height: 115px;
+ width: 436px;
+
+ margin-top: 9px;
+ margin-right: 10px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+trigger#hs_popup_open_hold:edit
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+ display: block;
+}
+
+softkey#rsk
+{
+ _s60-longtap: true;
+ _s60-aspect-ratio: preserve;
+}
+
+softkey#msk_ltr
+{
+ display: block;
+}
+
+softkey#msk_rtl
+{
+ display: none;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/57/view.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view
+{
+ direction: rtl;
+ block-progression: tb;
+ background-image: wallpaper;
+ swipe: true;
+
+ _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+ direction: rtl;
+ block-progression: tb;
+}
+
+plugin.miniplugins
+{
+ height: 115px;
+ width: 176px;
+
+ margin-top: 9px;
+ margin-right: 9px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+plugin.plugins
+{
+ height: 115px;
+ width: 436px;
+
+ margin-top: 9px;
+ margin-right: 10px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+trigger#hs_popup_open_hold:edit
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+ display: block;
+}
+
+softkey#rsk
+{
+ _s60-longtap: true;
+ _s60-aspect-ratio: preserve;
+}
+
+softkey#msk_ltr
+{
+ display: block;
+}
+
+softkey#msk_rtl
+{
+ display: none;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/94/view.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view
+{
+ direction: rtl;
+ block-progression: tb;
+ background-image: wallpaper;
+ swipe: true;
+
+ _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+ direction: rtl;
+ block-progression: tb;
+}
+
+plugin.miniplugins
+{
+ height: 115px;
+ width: 176px;
+
+ margin-top: 9px;
+ margin-right: 9px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+plugin.plugins
+{
+ height: 115px;
+ width: 436px;
+
+ margin-top: 9px;
+ margin-right: 10px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+trigger#hs_popup_open_hold:edit
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+ display: block;
+}
+
+softkey#rsk
+{
+ _s60-longtap: true;
+ _s60-aspect-ratio: preserve;
+}
+
+softkey#msk_ltr
+{
+ display: block;
+}
+
+softkey#msk_rtl
+{
+ display: none;
+}
+
--- a/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget.iby Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
#ifndef __TRIPLE_ROW_ICON_WIDGET_2001FDBE_IBY__
#define __TRIPLE_ROW_ICON_WIDGET_2001FDBE_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools
data=ZPRIVATE\200159c0\install\triple_row_icon_widget_2001fdbe\hsps\00\manifest.dat \private\200159c0\install\triple_row_icon_widget_2001fdbe\hsps\00\manifest.dat
-
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __TRIPLE_ROW_ICON_WIDGET_2001FDBE_IBY__
--- a/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget_customer.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget_customer.iby Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
#ifndef __TRIPLE_ROW_ICON_WIDGET_2001FDBE_CUSTOMER_IBY__
#define __TRIPLE_ROW_ICON_WIDGET_2001FDBE_CUSTOMER_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools, language specific
data=ZPRIVATE\200159c0\install\triple_row_icon_widget_2001fdbe\xuikon\00\triple_row_icon_widget.o0000 \private\200159c0\install\triple_row_icon_widget_2001fdbe\xuikon\00\triple_row_icon_widget.o0000
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __TRIPLE_ROW_ICON_WIDGET_2001FDBE_CUSTOMER_IBY__
--- a/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget_resources.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget_resources.iby Tue Sep 14 20:58:58 2010 +0300
@@ -18,7 +18,7 @@
#ifndef __TRIPLE_ROW_ICON_WIDGET_2001FDBE_RESOURCES_IBY__
#define __TRIPLE_ROW_ICON_WIDGET_2001FDBE_RESOURCES_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools, language specific
#if defined (__LOCALES_37_IBY__)
@@ -34,6 +34,6 @@
data=ZPRIVATE\200159c0\install\triple_row_icon_widget_2001fdbe\xuikon\94\triple_row_icon_widget.o0094 \private\200159c0\install\triple_row_icon_widget_2001fdbe\xuikon\94\triple_row_icon_widget.o0094
#endif
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __TRIPLE_ROW_ICON_WIDGET_2001FDBE_RESOURCES_IBY__
--- a/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget_variant.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget_variant.iby Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
#ifndef __TRIPLE_ROW_ICON_WIDGET_2001FDBE_VARIANT_IBY__
#define __TRIPLE_ROW_ICON_WIDGET_2001FDBE_VARIANT_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by variation tools, variant specific
data=ZPRIVATE\200159c0\install\triple_row_icon_widget_2001fdbe\hsps\00\widgetconfiguration.xml \private\200159c0\install\triple_row_icon_widget_2001fdbe\hsps\00\widgetconfiguration.xml
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __TRIPLE_ROW_ICON_WIDGET_2001FDBE_VARIANT_IBY__
--- a/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget.iby Tue Sep 14 20:58:58 2010 +0300
@@ -18,11 +18,11 @@
#ifndef __TRIPLE_ROW_WIDGET_2001FDBF_IBY__
#define __TRIPLE_ROW_WIDGET_2001FDBF_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools
data=ZPRIVATE\200159c0\install\triple_row_widget_2001fdbf\hsps\00\manifest.dat \private\200159c0\install\triple_row_widget_2001fdbf\hsps\00\manifest.dat
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __TRIPLE_ROW_WIDGET_2001FDBF_IBY__
--- a/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget_customer.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget_customer.iby Tue Sep 14 20:58:58 2010 +0300
@@ -18,11 +18,11 @@
#ifndef __TRIPLE_ROW_WIDGET_2001FDBF_CUSTOMER_IBY__
#define __TRIPLE_ROW_WIDGET_2001FDBF_CUSTOMER_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools, language specific
-data=ZPRIVATE\200159c0\install\triple_row_widget_2001fdbf\xuikon\00\triple_row_widget_2001fdbf.o0000 \private\200159c0\install\triple_row_widget_2001fdbf\xuikon\00\triple_row_widget.o0000
+data=ZPRIVATE\200159c0\install\triple_row_widget_2001fdbf\xuikon\00\triple_row_widget.o0000 \private\200159c0\install\triple_row_widget_2001fdbf\xuikon\00\triple_row_widget.o0000
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __TRIPLE_ROW_WIDGET_2001FDBF_CUSTOMER_IBY__
--- a/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget_resources.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget_resources.iby Tue Sep 14 20:58:58 2010 +0300
@@ -18,7 +18,7 @@
#ifndef __TRIPLE_ROW_WIDGET_2001FDBF_RESOURCES_IBY__
#define __TRIPLE_ROW_WIDGET_2001FDBF_RESOURCES_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools, language specific
#if defined (__LOCALES_37_IBY__)
@@ -34,6 +34,6 @@
data=ZPRIVATE\200159c0\install\triple_row_widget_2001fdbf\xuikon\94\triple_row_widget.o0094 \private\200159c0\install\triple_row_widget_2001fdbf\xuikon\94\triple_row_widget.o0094
#endif
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __TRIPLE_ROW_WIDGET_2001FDBF_RESOURCES_IBY__
--- a/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget_variant.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget_variant.iby Tue Sep 14 20:58:58 2010 +0300
@@ -18,11 +18,11 @@
#ifndef __TRIPLE_ROW_WIDGET_2001FDBF_VARIANT_IBY__
#define __TRIPLE_ROW_WIDGET_2001FDBF_VARIANT_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by variation tools, variant specific
data=ZPRIVATE\200159c0\install\triple_row_widget_2001fdbf\hsps\00\widgetconfiguration.xml \private\200159c0\install\triple_row_widget_2001fdbf\hsps\00\widgetconfiguration.xml
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __TRIPLE_ROW_WIDGET_2001FDBF_VARIANT_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9.confml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,483 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration name="VGA Homescreen 1" version="1" xmlns="http://www.s60.com/xml/confml/2" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <feature name="VGA Homescreen 1 widgets" ref="VGA_HomescreenPlugins_1">
+ <setting name="Max Widgets" ref="MaxWidgets" type="string">
+ <desc>Maximum widget amount in Homescreen 1 page. Customizable</desc>
+ </setting>
+ <setting name="Use Empty Widgets" readOnly="true" ref="UseEmptyWidgets" type="boolean">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Item id for empty widgets definition in view" readOnly="true" ref="ItemIdEmptyWidgets" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Property name for empty widgets definition in view" readOnly="true" ref="PropertyEmptyWidgets" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="background path" ref="BackGroundPath" type="string">
+ <desc>Path of the Wallpaper resource. Customizable. </desc>
+ </setting>
+ <setting name="Item id wallpaper" readOnly="true" ref="ItemIdWallpaper" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Wallpaper property name" readOnly="true" ref="WallpaperPropertyName" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Widgets" ref="Plugins" type="sequence">
+ <desc>Widgets in the Homescreen 1</desc>
+ <setting name="Widget" ref="Uid" type="string">
+ <desc>Widget name</desc>
+ <option name="Empty" value="0x2001F47F" />
+ <option name="ClockDate" value="0x200286E6" />
+ <option name="Desktop" value="0x20018EEE" />
+ <option name="Profilemode" value="0x200286e7" />
+ <option name="wrtplugin_1" value="0x20022FD4"/>
+ <option name="wrtplugin_2" value="0x20022FD5"/>
+ <option name="wrtplugin_3" value="0x20022FD6"/>
+ <option name="wrtplugin_4" value="0x20022FD7"/>
+ <option name="wrtplugin_5" value="0x20022FD8"/>
+ <option name="wrtplugin_6" value="0x20022FD9"/>
+ <option name="wrtplugin_7" value="0x20022FDA"/>
+ <option name="wrtplugin_8" value="0x20022FDB"/>
+ <option name="wrtplugin_9" value="0x2001CB7D"/>
+ <option name="wrtplugin_10" value="0x2001CB7E"/>
+ <option name="wrtplugin_11" value="0x2001CB7F"/>
+ <option name="wrtplugin_12" value="0x200286EE"/>
+ </setting>
+ <setting name="Bundle Identifier" ref="BundleIdentifier" type="string">
+ <desc>Bundle identifier for the (C)WRT widgets. None for the native widgets</desc>
+ <option name="None / Automatic" value="0" />
+ <option name="8TV Catch Up" value="com.nerdattack.widget.8TV"/>
+ <option name="Aftonbladet WebbTV" value="apegroup.aftonbladet.webbtv.symbian3"/>
+ <option name="Al Jazeera" value="si.inova.verve.aljazeera"/>
+ <option name="BBC Arabic Web TV" value="com.nokia.forum.bbcatv1.widget"/>
+ <option name="BH TV" value="com.bollywoodhungama.widget.BollywoodHungamaTV"/>
+ <option name="Channel NewsAsia" value="Channel.newsasia"/>
+ <option name="CNN Video" value="com.cnn"/>
+ <option name="DigiturkWebTV" value="com.digiturkwebtv.widget"/>
+ <option name="EFE Videos" value="com.ericsson.efe.widget"/>
+ <option name="E!" value="com.moderati.eonline"/>
+ <option name="Bollywood" value="br.org.indt.widget.eros"/>
+ <option name="Ovi Files" value="com.nokia.ss.sas.filesql"/>
+ <option name="Hi5" value="com.hi5.widget.Launcher"/>
+ <option name="凤凰电视" value="com.ifeng.www.webtv.widget"/>
+ <option name="Chat" value="com.nokia.ChatClient"/>
+ <option name="芒果 TV" value="com.imgo.tv"/>
+ <option name="India Today" value="br.org.indt.widget.indiatoday"/>
+ <option name="BBC iPlayer" value="com.bbc.widget.iplayer"/>
+ <option name="Contacts' latest activities" value="com.nokia.somawebui.xwidget"/>
+ <option name="M1TV" value="com.m1tv.basic.widget"/>
+ <option name="Makansutr" value="com.nerdattack.wrt.Makansutra"/>
+ <option name="bose" value="com.bose.basic.widget"/>
+ <option name="SingTel MTVS" value="com.nokia.widget.sapi.mtvs"/>
+ <option name="Nat Geo" value="com.natgeo"/>
+ <option name="NRK Mobil-TV" value="no.nrk.mobil.mobiltv.widget"/>
+ <option name="ontv" value="ontv.cc.on.tv.widget"/>
+ <option name="ovi" value="com.nokia.ovi"/>
+ <option name="Movie Teasers" value="com.movieteasers"/>
+ <option name="Schweizer Fernsehen" value="com.sftvreader.basic.widget"/>
+ <option name="Sky News On Demand" value="com.nerdattack.widget.SKYNEWS"/>
+ <option name="Social" value="com.nokia.socialmixer.v1"/>
+ <option name="æœç‹å¨±ä¹" value="com.sohu.widget.webtv4ovi"/>
+ <option name="SSOUI" value="ovi.serviceui.SSOUI"/>
+ <option name="Terra TV" value="com.terra.widget.wrt.tv"/>
+ <option name="Terra TV Lat" value="com.terra.widget.wrt.tv.latam"/>
+ <option name="topApps" value="com.topApps.basic.widget"/>
+ <option name="Tudou" value="com.Tudou.widget"/>
+ <option name="tv2news" value="com.nokia.forum.widget.tv2news"/>
+ <option name="TV2Play" value="no.tv2.tv2play.widget"/>
+ <option name="TV3 Catch Up" value="com.nerdattack.widget.TV3"/>
+ <option name="ВеÑти" value="com.vesti.basic.widget"/>
+ <option name="Viasat No" value="no.viasat.widget"/>
+ <option name="Viasat Swe" value="se.viasat.widget"/>
+ <option name="Virtual Malaysia" value="com.nerdattack.widget.VirtualMalaysia"/>
+ <option name="央广新浪" value="cn.com.sina.3g"/>
+ <option name="Web TV Demo" value="com.nokia.forum.webtv.widget"/>
+ <option name="Yle Areena" value="com.tieto.yle"/>
+ <option name="优酷" value="com.youku.s605th.webtv"/>
+ </setting>
+ <setting name="Template Identifier" ref="TemplateIdentifier" type="selection">
+ <desc>Templeate identifier for the (C)WRT widgets. None for the native widgets</desc>
+ <option name="None" value="0" />
+ <option name="Single row icon widget template" value="0x2001FDC0" />
+ <option name="Single row widget template" value="0x2001FDC1" />
+ <option name="Double row icon widget template" value="0x2001FDBD" />
+ <option name="Double row widget template" value="0x2001FDC2" />
+ <option name="Triple row icon widget template" value="0x2001FDBE" />
+ <option name="Triple row widget template" value="0x2001FDBF" />
+ <option name="Wideimage template" value="0x10009DFF" />
+ </setting>
+ <setting name="locking Status" ref="LockingStatus" type="selection">
+ <desc>Locking status for the widget 1 in Homescreen 1 page</desc>
+ <option name="None" value="none" />
+ <option name="Locked" value="locked" />
+ <option name="Permanent" value="permanent" />
+ </setting>
+ <setting name="Customize Shortcut widget" ref="ShortcutWidget" type="selection">
+ <desc>Customize enabler for desktop/shortcut widget</desc>
+ <option name="Not Customize desktop Widget" value="0" />
+ <option name="Customize desktop widget" value="1" />
+ </setting>
+ <setting name="Customize 1st Shortcut" ref="Customize1Shortcut" type="selection">
+ <desc>Customize 1st item in desktop widget</desc>
+ <option name="Not Customize 1st shortcut" value="0" />
+ <option name="Customize 1st shortcut" value="1" />
+ </setting>
+ <setting name="1st Shortcut type" ref="Shortcut1Type" type="selection">
+ <desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
+ <option name="Application" value="application" />
+ <option name="Bookmark" value="bookmark" />
+ <option name="Shortcut" value="shortcut" />
+ </setting>
+ <setting name="1st Shortcut Uid" ref="Shortcut1Uid" type="string">
+ <desc>Uid for the application, Menu content Uid for the bookmarks and shortcuts.</desc>
+ </setting>
+ <setting name="1st Shortcut View" ref="Shortcut1View" type="string">
+ <desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
+ </setting>
+ <setting name="1st Shortcut Param" ref="Shortcut1Param" type="string">
+ <desc>Params for shortcut. For example: messaging:msg</desc>
+ </setting>
+ <setting name="Customize 2nd Shortcut" ref="Customize2Shortcut" type="selection">
+ <desc>Customize 2nd item in desktop widget</desc>
+ <option name="Not Customize 2nd shortcut" value="0" />
+ <option name="Customize 2nd shortcut" value="1" />
+ </setting>
+ <setting name="2nd Shortcut Application" ref="Shortcut2Type" type="selection">
+ <desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
+ <option name="Application" value="application" />
+ <option name="Bookmark" value="bookmark" />
+ <option name="Shortcut" value="shortcut" />
+ </setting>
+ <setting name="2nd Shortcut Uid" ref="Shortcut2Uid" type="string">
+ <desc>Uid for the application, Menu content Uid for the bookmarks and shortcuts</desc>
+ </setting>
+ <setting name="2nd Shortcut View" ref="Shortcut2View" type="string">
+ <desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
+ </setting>
+ <setting name="2nd Shortcut Param" ref="Shortcut2Param" type="string">
+ <desc>Params for shortcut. messaging:msg</desc>
+ </setting>
+ <setting name="Customize 3rd Shortcut" ref="Customize3Shortcut" type="selection">
+ <desc>Customize 3rd item in desktop widget</desc>
+ <option name="Not Customize 3rd shortcut" value="0" />
+ <option name="Customize 3rd shortcut" value="1" />
+ </setting>
+ <setting name="3rd Shortcut Application" ref="Shortcut3Type" type="selection">
+ <desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
+ <option name="Application" value="application" />
+ <option name="Bookmark" value="bookmark" />
+ <option name="Shortcut" value="shortcut" />
+ </setting>
+ <setting name="3rd Shortcut Uid" ref="Shortcut3Uid" type="string">
+ <desc>Uid for the application,Menu content Uid for the bookmarks and shortcuts.</desc>
+ </setting>
+ <setting name="3rd Shortcut View" ref="Shortcut3View" type="string">
+ <desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
+ </setting>
+ <setting name="3rd Shortcut Param" ref="Shortcut3Param" type="string">
+ <desc>Params for shortcut. messaging:msg</desc>
+ </setting>
+ <setting name="Customize 4th Shortcut" ref="Customize4Shortcut" type="selection">
+ <desc>Customize 4th item in desktop widget</desc>
+ <option name="Not Customize 4th shortcut" value="0" />
+ <option name="Customize 4th shortcut" value="1" />
+ </setting>
+ <setting name="4th ShortCut Application" ref="Shortcut4Type" type="selection">
+ <desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
+ <option name="Application" value="application" />
+ <option name="Bookmark" value="bookmark" />
+ <option name="Shortcut" value="shortcut" />
+ </setting>
+ <setting name="4th Shortcut Uid" ref="Shortcut4Uid" type="string">
+ <desc>Uid for the application, Menu content ids for the bookmarks and shortcuts </desc>
+ </setting>
+ <setting name="4th Shortcut View" ref="Shortcut4View" type="string">
+ <desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
+ </setting>
+ <setting name="4th Shortcut Param" ref="Shortcut4Param" type="string">
+ <desc>Params for shortcut. messaging:msg</desc>
+ </setting>
+ <setting name="Shortcut1 ItemId" readOnly="true" ref="Shortcut1ItemId" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut1 ItemName" readOnly="true" ref="Shortcut1ItemName" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut2 ItemId" readOnly="true" ref="Shortcut2ItemId" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut2 ItemName" readOnly="true" ref="Shortcut2ItemName" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut3 ItemId" readOnly="true" ref="Shortcut3ItemId" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut3 ItemName" readOnly="true" ref="Shortcut3ItemName" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut4 ItemId" readOnly="true" ref="Shortcut4ItemId" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut4 ItemName" readOnly="true" ref="Shortcut4ItemName" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut PropertyNameType" readOnly="true" ref="ShortcutPropertyNameType" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut PropertyNameUid" readOnly="true" ref="ShortcutPropertyNameUid" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut PropertyNameView" readOnly="true" ref="ShortcutPropertyNameView" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut PropertyNameParam" readOnly="true" ref="ShortcutPropertyNameParam" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ </setting>
+ </feature>
+<data>
+ <VGA_HomescreenPlugins_1>
+ <MaxWidgets>6</MaxWidgets>
+ <UseEmptyWidgets>true</UseEmptyWidgets>
+ <ItemIdEmptyWidgets>hs_vga_tch_view</ItemIdEmptyWidgets>
+ <PropertyEmptyWidgets>use_empty_widget</PropertyEmptyWidgets>
+ <ItemIdWallpaper>wallpaper</ItemIdWallpaper>
+ <WallpaperPropertyName>path</WallpaperPropertyName>
+ <BackGroundPath />
+ <Plugins extensionPolicy="replace">
+ <Uid>0x200286e6</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>permanent</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut />
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ <Plugins>
+ <Uid>0x200286e7</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>permanent</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ <Plugins>
+ <Uid>0x2001f47f</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>permanent</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ <Plugins>
+ <Uid>0x20018EEE</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>none</LockingStatus>
+ <ShortcutWidget>1</ShortcutWidget>
+ <Customize1Shortcut>1</Customize1Shortcut>
+ <Shortcut1Type>application</Shortcut1Type>
+ <Shortcut1Uid>0x101F4CCE</Shortcut1Uid>
+ <Shortcut1View></Shortcut1View>
+ <Shortcut1Param></Shortcut1Param>
+ <Customize2Shortcut>1</Customize2Shortcut>
+ <Shortcut2Type>shortcut</Shortcut2Type>
+ <Shortcut2Uid>0x99999999</Shortcut2Uid>
+ <Shortcut2View></Shortcut2View>
+ <Shortcut2Param>messaging:msg</Shortcut2Param>
+ <Customize3Shortcut>1</Customize3Shortcut>
+ <Shortcut3Type>application</Shortcut3Type>
+ <Shortcut3Uid>0x10008D39</Shortcut3Uid>
+ <Shortcut3View></Shortcut3View>
+ <Shortcut3Param></Shortcut3Param>
+ <Customize4Shortcut>1</Customize4Shortcut>
+ <Shortcut4Type>application</Shortcut4Type>
+ <Shortcut4Uid>0x10005901</Shortcut4Uid>
+ <Shortcut4View></Shortcut4View>
+ <Shortcut4Param></Shortcut4Param>
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ <Plugins>
+ <Uid>0x2001f47f</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>none</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ <Plugins>
+ <Uid>0x2001f47f</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>none</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ </VGA_HomescreenPlugins_1>
+ </data>
+</configuration>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9.gcfml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="core"/>
+ <tag name="target" value="rofs2"/>
+ <tag name="target" value="rofs3"/>
+ <phase name='post'/> <!-- post phase for making sure that data for all homescreen widgets is available in sequence -->
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="viewconfiguration.xml" target="\private\200159c0\install\view1_2001fdb9\hsps\00\">
+ <setting ref="VGA_HomescreenPlugins_1/MaxWidgets"/>
+ <setting ref="VGA_HomescreenPlugins_1/UseEmptyWidgets"/>
+ <setting ref="VGA_HomescreenPlugins_1/ItemIdEmptyWidgets"/>
+ <setting ref="VGA_HomescreenPlugins_1/PropertyEmptyWidgets"/>
+ <setting ref="VGA_HomescreenPlugins_1/BackGroundPath"/>
+ <setting ref="VGA_HomescreenPlugins_1/ItemIdWallpaper"/>
+ <setting ref="VGA_HomescreenPlugins_1/WallpaperPropertyName"/>
+ <setting ref="VGA_HomescreenPlugins_1/Shortcut1ItemId"/>
+ <setting ref="VGA_HomescreenPlugins_1/Shortcut1ItemName"/>
+ <setting ref="VGA_HomescreenPlugins_1/Shortcut2ItemId"/>
+ <setting ref="VGA_HomescreenPlugins_1/Shortcut2ItemName"/>
+ <setting ref="VGA_HomescreenPlugins_1/Shortcut3ItemId"/>
+ <setting ref="VGA_HomescreenPlugins_1/Shortcut3ItemName"/>
+ <setting ref="VGA_HomescreenPlugins_1/Shortcut4ItemId"/>
+ <setting ref="VGA_HomescreenPlugins_1/Shortcut4ItemName"/>
+ <setting ref="VGA_HomescreenPlugins_1/ShortcutPropertyNameType"/>
+ <setting ref="VGA_HomescreenPlugins_1/ShortcutPropertyNameUid"/>
+ <setting ref="VGA_HomescreenPlugins_1/ShortcutPropertyNameView"/>
+ <setting ref="VGA_HomescreenPlugins_1/ShortcutPropertyNameParam"/>
+ <setting ref="VGA_HomescreenPlugins_1/Plugins"/>
+ <xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xi="http://www.w3.org/2001/xinclude">
+ <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+ <xsl:template match="configuration/data">
+ <configuration>
+ <xsl:attribute name="max_child"><xsl:value-of select="VGA_HomescreenPlugins_1/MaxWidgets"/></xsl:attribute>
+ <control>
+ <settings>
+ <item>
+ <xsl:attribute name="id"><xsl:value-of select="VGA_HomescreenPlugins_1/ItemIdEmptyWidgets"/></xsl:attribute>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="VGA_HomescreenPlugins_1/PropertyEmptyWidgets"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="VGA_HomescreenPlugins_1/UseEmptyWidgets"/></xsl:attribute>
+ </property>
+ </item>
+ <item>
+ <xsl:attribute name="id"><xsl:value-of select="VGA_HomescreenPlugins_1/ItemIdWallpaper"/></xsl:attribute>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="VGA_HomescreenPlugins_1/WallpaperPropertyName"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="VGA_HomescreenPlugins_1/BackGroundPath"/></xsl:attribute>
+ </property>
+ </item>
+ </settings>
+ <plugins>
+ <xsl:for-each select="VGA_HomescreenPlugins_1/Plugins">
+ <plugin>
+ <xsl:attribute name="uid"><xsl:value-of select="Uid"/></xsl:attribute>
+ <xsl:attribute name="bundle_id"><xsl:value-of select="BundleIdentifier"/></xsl:attribute>
+ <xsl:attribute name="template_id"><xsl:value-of select="TemplateIdentifier"/></xsl:attribute>
+ <xsl:attribute name="locking_status"><xsl:value-of select="LockingStatus"/></xsl:attribute>
+ <xsl:if test="ShortcutWidget = 1">
+ <initial_settings>
+ <settings>
+ <xsl:if test="Customize1Shortcut = 1">
+ <item>
+ <xsl:attribute name="id"><xsl:value-of select="Shortcut1ItemId"/></xsl:attribute>
+ <xsl:attribute name="name"><xsl:value-of select="Shortcut1ItemName"/></xsl:attribute>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameType"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut1Type"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameUid"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut1Uid"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameView"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut1View"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameParam"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut1Param"/></xsl:attribute>
+ </property>
+ </item>
+ </xsl:if>
+ <xsl:if test="Customize2Shortcut = 1">
+ <item>
+ <xsl:attribute name="id"><xsl:value-of select="Shortcut2ItemId"/></xsl:attribute>
+ <xsl:attribute name="name"><xsl:value-of select="Shortcut2ItemName"/></xsl:attribute>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameType"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut2Type"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameUid"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut2Uid"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameView"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut2View"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameParam"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut2Param"/></xsl:attribute>
+ </property>
+ </item>
+ </xsl:if>
+ <xsl:if test="Customize3Shortcut = 1">
+ <item>
+ <xsl:attribute name="id"><xsl:value-of select="Shortcut3ItemId"/></xsl:attribute>
+ <xsl:attribute name="name"><xsl:value-of select="Shortcut3ItemName"/></xsl:attribute>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameType"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut3Type"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameUid"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut3Uid"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameView"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut3View"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameParam"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut3Param"/></xsl:attribute>
+ </property>
+ </item>
+ </xsl:if>
+ <xsl:if test="Customize4Shortcut = 1">
+ <item>
+ <xsl:attribute name="id"><xsl:value-of select="Shortcut4ItemId"/></xsl:attribute>
+ <xsl:attribute name="name"><xsl:value-of select="Shortcut4ItemName"/></xsl:attribute>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameType"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut4Type"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameUid"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut4Uid"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameView"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut4View"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameParam"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut4Param"/></xsl:attribute>
+ </property>
+ </item>
+ </xsl:if>
+ </settings>
+ </initial_settings>
+ </xsl:if>
+ </plugin>
+ </xsl:for-each>
+ </plugins>
+ </control>
+ </configuration>
+ </xsl:template>
+ </xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
Binary file idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9manifest.confml has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9manifest.gcfml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="core"/>
+ <tag name="target" value="rofs2"/>
+ <tag name="target" value="rofs3"/>
+ <file xmlns="http://www.s60.com/xml/genconfml/1" name="manifest.dat" target="\private\200159c0\install\view1_2001fdb9\hsps\00\">
+ <setting ref="VGAHomescreen1manifest/PackageVersion"/>
+ <setting ref="VGAHomescreen1manifest/DeviceFamily"/>
+ <setting ref="VGAHomescreen1manifest/ConfigurationType"/>
+ <setting ref="VGAHomescreen1manifest/InterfaceUid"/>
+ <setting ref="VGAHomescreen1manifest/ProviderUid"/>
+ <setting ref="VGAHomescreen1manifest/ConfigurationUid"/>
+ <setting ref="VGAHomescreen1manifest/FullName"/>
+ <setting ref="VGAHomescreen1manifest/ShortName"/>
+ <setting ref="VGAHomescreen1manifest/ConfigurationVersion"/>
+ <setting ref="VGAHomescreen1manifest/ConfigurationFile"/>
+ <setting ref="VGAHomescreen1manifest/UiResourceFile"/>
+ <xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xi="http://www.w3.org/2001/xinclude">
+ <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+ <xsl:template match="configuration/data">
+ <package>
+ <xsl:attribute name="version"><xsl:value-of select="VGAHomescreen1manifest/PackageVersion"/></xsl:attribute>
+ <family>
+ <xsl:value-of select="VGAHomescreen1manifest/DeviceFamily"/>
+ </family>
+ <type>
+ <xsl:value-of select="VGAHomescreen1manifest/ConfigurationType"/>
+ </type>
+ <interfaceuid>
+ <xsl:value-of select="VGAHomescreen1manifest/InterfaceUid"/>
+ </interfaceuid>
+ <provideruid>
+ <xsl:value-of select="VGAHomescreen1manifest/ProviderUid"/>
+ </provideruid>
+ <configurationuid>
+ <xsl:value-of select="VGAHomescreen1manifest/ConfigurationUid"/>
+ </configurationuid>
+ <fullname>
+ <!--xsl:text>&</xsl:text-->
+ <xsl:value-of select="VGAHomescreen1manifest/FullName"/>
+ <!--xsl:text>;</xsl:text-->
+ </fullname>
+ <shortname>
+ <xsl:value-of select="VGAHomescreen1manifest/ShortName"/>
+ </shortname>
+ <version>
+ <xsl:value-of select="VGAHomescreen1manifest/ConfigurationVersion"/>
+ </version>
+ <filexml>
+ <xsl:value-of select="VGAHomescreen1manifest/ConfigurationFile"/>
+ </filexml>
+ <localization>
+ <fileresource>
+ <xsl:value-of select="VGAHomescreen1manifest/UiResourceFile"/>
+ </fileresource>
+ </localization>
+ </package>
+ </xsl:template>
+ </xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
Binary file idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9xuikon.confml has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9xuikon.gcfml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="core"/>
+ <tag name="target" value="rofs2"/>
+ <tag name="target" value="rofs3"/>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="empty.foo" target="\private\200159c0\install\view1_2001fdb9\xuikon\">
+ <setting ref="VGAHomescreen1XuikonFolder/FolderCFG"/>
+ <xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xi="http://www.w3.org/2001/xinclude">
+ <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+ <xsl:template match="configuration/data">
+ <whois>
+ <xsl:attribute name="dude"><xsl:value-of select="VGAHomescreen1XuikonFolder/FolderCFG"/></xsl:attribute>
+ </whois>
+ </xsl:template>
+ </xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/group/bld.inf Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
@@ -24,8 +24,8 @@
PRJ_EXPORTS
// Support for productization and Carbide.Ui customization
//********************************************************
-../hsps/00/manifest.dat /epoc32/data/z/resource/homescreen/view1_2001fdb9/hsps/manifest.dat
-../hsps/00/viewconfiguration.xml /epoc32/data/z/resource/homescreen/view1_2001fdb9/hsps/viewconfiguration.xml
+//../hsps/00/manifest.dat /epoc32/data/z/resource/homescreen/view1_2001fdb9/hsps/manifest.dat
+//../hsps/00/viewconfiguration.xml /epoc32/data/z/resource/homescreen/view1_2001fdb9/hsps/viewconfiguration.xml
//../hsps/00/viewconfiguration.dtd /epoc32/data/z/resource/homescreen/view1_2001fdb9/hsps/viewconfiguration.dtd
../xuikon/00/view.dat /epoc32/data/z/resource/homescreen/view1_2001fdb9/xuikon/view1_2001fdb9.dat
@@ -41,6 +41,15 @@
../xuikon/94/view.css /epoc32/data/z/resource/homescreen/view1_2001fdb9/xuikon/94/view.css
+//Confml and cfgml files for the customization
+// starting use confml it is need to remove root_configuration.xml direct exporting (view_200286e4_variant.iby)
+//***********************************
+../conf/view2001fdb9.confml APP_LAYER_CONFML(view2001fdb9.confml)
+../conf/view2001fdb9.gcfml APP_LAYER_GCFML(view2001fdb9.gcfml)
+../conf/view2001fdb9manifest.confml APP_LAYER_CONFML(view2001fdb9manifest.confml)
+../conf/view2001fdb9manifest.gcfml APP_LAYER_GCFML(view2001fdb9manifest.gcfml)
+../conf/view2001fdb9xuikon.confml APP_LAYER_CONFML(view2001fdb9xuikon.confml)
+../conf/view2001fdb9xuikon.gcfml APP_LAYER_GCFML(view2001fdb9xuikon.gcfml)
// Support for S60 localization
//*****************************
//#ifndef __VIEWCONFIGURATION_LOC__
@@ -58,7 +67,7 @@
../rom/view_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9_resources.iby)
../rom/view_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9_customer.iby)
../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9_variant.iby)
-../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9.iby)
+//../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9.iby)
// Dtd-localization
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/hsps/00/viewconfiguration.xml Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/hsps/00/viewconfiguration.xml Tue Sep 14 20:58:58 2010 +0300
@@ -1,13 +1,55 @@
-<configuration>
+<?xml version="1.0" encoding="UTF-8"?>
- <control>
- <plugins>
- <plugin uid="0x2001f490"/>
- <!--plugin uid="0x10207c18"/-->
- <!--plugin uid="0x2001f48d"/-->
- </plugins>
- <settings/>
- </control>
-
-
+<configuration max_child="6" xmlns:xi="http://www.w3.org/2001/xinclude">
+ <control>
+ <settings>
+ <item id="hs_vga_tch_view">
+ <property name="use_empty_widget" value="true"/>
+ </item>
+ <item id="wallpaper">
+ <property name="path" value=""/>
+ </item>
+ </settings>
+ <plugins>
+ <plugin uid="0x200286e6" bundle_id="0" template_id="0" locking_status="permanent"/>
+ <plugin uid="0x200286e7" bundle_id="0" template_id="0" locking_status="permanent"/>
+ <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="permanent"/>
+ <plugin uid="0x20018eee" bundle_id="0" template_id="0" locking_status="none">
+ <initial_settings>
+ <settings>
+ <!-- Shortcut #1, Phonebook -->
+ <item id="first" name="Shortcut1" >
+ <property name="type" value="application"/>
+ <property name="uid" value="0x101F4CCE"/>
+ <property name="view" value=""/>
+ <property name="param" value=""/>
+ </item>
+ <!-- Shortcut #2, New Message -->
+ <item id="second" name="Shortcut2" >
+ <property name="type" value="shortcut"/>
+ <property name="uid" value="0x99999999"/>
+ <property name="view" value=""/>
+ <property name="param" value="messaging:msg"/>
+ </item>
+ <!-- Shortcut #3, Browser -->
+ <item id="third" name="Shortcut3" >
+ <property name="type" value="application"/>
+ <property name="uid" value="0x10008D39"/>
+ <property name="view" value=""/>
+ <property name="param" value=""/>
+ </item>
+ <!-- Shortcut #4, Calendar -->
+ <item id="fourth" name="Shortcut4" >
+ <property name="type" value="application"/>
+ <property name="uid" value="0x10005901"/>
+ <property name="view" value=""/>
+ <property name="param" value=""/>
+ </item>
+ </settings>
+ </initial_settings>
+ </plugin>
+ <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
+ <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
+ </plugins>
+ </control>
</configuration>
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/loc/view.loc Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/loc/view.loc Tue Sep 14 20:58:58 2010 +0300
@@ -308,3 +308,15 @@
// w:
// r: TB9.2
#define qtn_hs_text_softkey_call "Call"
+
+// d: Lock keypad
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_lock_keypad "Lock keypad"
+
+// d: Menu
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_apps_menu_skey "Menu"
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view.iby Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
#ifndef __AI3VIEW_2001FDB9_IBY__
#define __AI3VIEW_2001FDB9_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools
data=ZPRIVATE\200159c0\install\view1_2001fdb9\hsps\00\manifest.dat \private\200159c0\install\view1_2001fdb9\hsps\00\manifest.dat
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __AI3VIEW_2001FDB9_IBY__
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view_customer.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view_customer.iby Tue Sep 14 20:58:58 2010 +0300
@@ -19,12 +19,12 @@
#ifndef __AI3VIEW_2001FDB9_CUSTOMER_IBY__
#define __AI3VIEW_2001FDB9_CUSTOMER_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools, language specific
data=ZPRIVATE\200159c0\install\view1_2001fdb9\xuikon\00\view.o0000 \private\200159c0\install\view1_2001fdb9\xuikon\00\view.o0000
//data=ZPRIVATE\200159c0\install\view1_2001fdb9\hsps\00\viewconfiguration.dtd \private\200159c0\install\view1_2001fdb9\hsps\00\viewconfiguration.dtd
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __AI3VIEW_2001FDB9_CUSTOMER_IBY__
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view_resources.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view_resources.iby Tue Sep 14 20:58:58 2010 +0300
@@ -19,12 +19,12 @@
#ifndef __AI3VIEW_2001FDB9_RESOURCES_IBY__
#define __AI3VIEW_2001FDB9_RESOURCES_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools, language specific
data=ZPRIVATE\200159c0\install\view1_2001fdb9\xuikon\00\view.o0000 \private\200159c0\install\view1_2001fdb9\xuikon\00\view.o0000
//data=ZPRIVATE\200159c0\install\view1_2001fdb9\hsps\00\viewconfiguration.dtd \private\200159c0\install\view1_2001fdb9\hsps\00\viewconfiguration.dtd
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __AI3VIEW_2001FDB9_RESOURCES_IBY__
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view_variant.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view_variant.iby Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
#ifndef __AI3VIEW_2001FDB9_VARIANT_IBY__
#define __AI3VIEW_2001FDB9_VARIANT_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by variation tools, variant specific
data=ZPRIVATE\200159c0\install\view1_2001fdb9\hsps\00\viewconfiguration.xml \private\200159c0\install\view1_2001fdb9\hsps\00\viewconfiguration.xml
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __AI3VIEW_2001FDB9_VARIANT_IBY__
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.css Tue Sep 14 20:58:58 2010 +0300
@@ -1,337 +1,73 @@
-view#homescreen
-{
- position: static;
- display: block;
-
- block-progression: tb;
- direction: ltr;
-
- width: auto;
- height: auto;
-
- background-image: wallpaper;
-
- _s60-status-pane-layout: widescreen-flat-3softkeys;
-}
-
-box#main_container
-{
- position: static;
- display: block;
-
- width: auto;
- height: auto;
-
- margin-top: 5px;
-
- /* These will be set by screendevicechange triggers: */
- /* landscape
- ************
- margin-left: 5px;
- margin-right: 5px;*/
-
- /* portrait
- ***********
- margin-left: 17px;
- margin-right: 17px;*/
-}
-
-box.sub_container
-{
- position: absolute;
- display: block;
-
- /* These will be set by screendevicechange triggers: */
- /* landscape
- ************
- width: 184px;
- height: 106px;*/
-
- /* portrait
- ***********
- width: 223px;
- height: 132px;*/
-}
-
-box#clock_container
-{
- /* This box belongs to class="sub_container" */
- top: 0px;
- left: 0px;
-}
-
-clock#clock
-{
- position: static;
- display: block;
-
- margin-top: 3px;
- margin-bottom: 3px;
- margin-left: 3px;
- margin-right: 3px;
-
- nav-index: appearance;
-
- background-color: "SKIN(268458534 9906)";
- color: "SKIN(268458534 13056 19)";
-
- /* Face is format is fetched from locale */
- _s60-format: locale;
-
- /* These will be set by screendevicechange triggers: */
- /* landscape
- ************
- _s60-ampm-font-size: 3.0u;
- _s60-digital-font-size: 56px;
- _s60-date-font-size: 3.0u;*/
-
- /* portrait
- ***********
- _s60-ampm-font-size: 3.5u;
- _s60-digital-font-size: 56px;
- _s60-date-font-size: 3.5u;*/
-}
-
-clock#clock:focus
-{
- focus-background: "SKIN(268458534 5120 9)";
-}
-
-box#profile_switcher_container
-{
- block-progression: tb;
- direction: ltr;
-
- /* These will be set by screendevicechange triggers: */
- /* landscape
- ************
- top: 106px;
- left: 0px;*/
-
- /* portrait
- ***********
- top: 0px;
- left: 223px;*/
-}
-
-box#profile
+view
{
- position: static;
- display: block;
-
- width: auto;
- height: auto;
-
- margin-top: 3px;
- margin-bottom: 6px;
- margin-left: 3px;
- margin-right: 3px;
-
- background-color: "SKIN(268458534 9906)";
-
- nav-index: appearance;
-}
-
-box#profile:focus
-{
- focus-background: "SKIN(268458534 5120 9)";
-}
-
-/**********************
- * MCN, CUG & Profile *
- **********************/
-box#mcn_cug_profile_container
-{
- width: auto;
- height: auto;
-
-
-}
-
-/*************
- * SAT & VHZ *
- *************/
-box#sat_vhz_container
-{
- display: none;
- width: auto;
- height: auto;
- block-progression: rl;
-}
-
-image#sat_icon
-{
- display: none;
- visibility: hidden;
- width: 18px;
- height: 20px;
- position: static;
- margin-top: auto;
-}
-
-title#sat
-{
- display: none;
-}
-title#vhz
-{
- display: none;
-}
-
+ direction: ltr;
+ block-progression: tb;
+ background-image: wallpaper;
+ swipe: true;
-newsticker.statusindicator
-{
- width: auto;
- height: auto;
-
- text-align: center;
- font-family: EAknLogicalFontSecondaryFont;
- font-size: 3.5u;
- color: "SKIN(268458534 13056 19)";
-
- white-space-collapse: collapse;
-
- _s60-scroll-behaviour: alternate;
- _s60-display-time: 2000;
- _s60-scroll-loop: false;
- _s60-start-delay: 0;
- _s60-restart-after-update: true;
-}
-
-box#switcher
-{
- width: auto;
- height: auto;
-
- block-progression: lr;
-
- margin-top: 6px;
- margin-bottom: 3px;
- margin-left: 3px;
- margin-right: 3px;
-
- background-color: "SKIN(268458534 9906)";
-
- nav-index: appearance;
-}
-
-box#switcher:focus
-{
- focus-background: "SKIN(268458534 5120 9)";
-}
-
-image#switcher_icon
-{
- margin-top: auto;
- margin-bottom: auto;
-
- margin-left: 5px;
- height: 4u;
- width: 4u;
-
- path: "SKIN(270501603 8585 19)";
-}
-
-text#switcher_text
-{
- width: auto;
- height: auto;
-
- text-align: left;
-
- font-size: 3.5u;
- font-family: EAknLogicalFontSecondaryFont;
-
- color:"SKIN(268458534 13056 19)";
+ _s60-status-pane-layout: widescreen-flat-3softkeys;
}
box#plugins_container
{
- position: absolute;
- display: block;
+ direction: ltr;
+ block-progression: tb;
+}
- /* These will be set by screendevicechange triggers: */
- /* landscape
- ************
- top: 0px;
- left: 184px;*/
-
- /* portrait
- ***********
- top: 129px;
- left: 0px;*/
+plugin.miniplugins
+{
+ height: 115px;
+ width: 176px;
- block-progression: tb;
- direction: ltr;
-
- width: 440px;
- height: auto;
-
- padding-left: 3px;
- padding-right: 3px;
+ margin-top: 9px;
+ margin-left: 9px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
}
-/***********
- * Plugins *
- ***********/
-plugin
+plugin.plugins
{
- position: static;
-
- width: auto;
- height: adaptive;
-
- margin-bottom: 6px;
-
- background-color: "SKIN(268458534 9906)";
-
- nav-index: appearance;
+ height: 115px;
+ width: 436px;
+
+ margin-top: 9px;
+ margin-left: 10px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
}
-plugin:focus
+trigger#hs_popup_open_hold:edit
{
- focus-background: "SKIN(268458534 5120 9)";
+ display: none;
}
-plugin:edit
+trigger#hs_popup_open_up
{
- background-color: "SKIN(270501603 8582)";
+ display: none;
}
-/************
- * Profiles *
- ************/
-/* Default system profiles */
-text.systemprofileitem
+trigger#hs_popup_open_up:edit
{
display: block;
}
-/* Placeholders for profiles added by user */
-text.userprofileitem
+softkey#rsk
{
- display: none;
+ _s60-longtap: true;
+ _s60-aspect-ratio: preserve;
}
-/************
- * Softkeys *
- ************/
-softkey.normal_mode_sk
+softkey#msk_ltr
{
display: block;
}
-softkey.normal_mode_sk:edit
+softkey#msk_rtl
{
display: none;
}
-softkey.edit_mode_sk
-{
- display: none;
-}
-
-softkey.edit_mode_sk:edit
-{
- display: block;
-}
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.dtd Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.dtd Tue Sep 14 20:58:58 2010 +0300
@@ -494,3 +494,21 @@
qtn_hs_text_softkey_call.parents ""
-->
<!ENTITY qtn_hs_text_softkey_call "Call">
+
+<!--
+qtn_hs_page_edit_options_delete.attributes
+qtn_hs_page_edit_options_delete.layout "list_single_pane_t1_cp2"
+qtn_hs_page_edit_options_delete.release "TB9.2"
+qtn_hs_page_edit_options_delete.description "Lock keypad"
+qtn_hs_page_edit_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_lock_keypad "Lock keypad">
+
+<!--
+qtn_hs_text_softkey_call.attributes
+qtn_hs_text_softkey_call.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_call.release "TB9.2"
+qtn_hs_text_softkey_call.description "RSK caption"
+qtn_hs_text_softkey_call.parents ""
+-->
+<!ENTITY qtn_hs_apps_menu_skey "Menu">
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.xml Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.xml Tue Sep 14 20:58:58 2010 +0300
@@ -1,751 +1,159 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xmluiml SYSTEM "View.dtd">
<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
- <view id="homescreen">
+ <view id="hs_vga_tch_view">
<actions>
<action>
- <trigger name="screendevicechange" reason="portrait" />
- <!-- main_container -->
+ <!-- End key -->
+ <trigger name="keyevent">
+ <property name="scancode" value="197"/> ><!-- End key -->
+ <property name="eventtype" value="1"/>
+ </trigger>
+ <!-- dismiss if edit mode active -->
+ <event name="system/reportexiteditmode"/>
+ </action>
+ <action>
+ <trigger name="editmode" value="enter"/>
<event name="system/set">
- <property name="name" value="margin-left"/>
- <property name="value" value="17px"/>
- <property name="type" value="numeric"/>
- <property name="id" value="main_container"/>
- </event>
+ <property name="name" value="focusable"/>
+ <property name="value" value="true"/>
+ <property name="type" value="string"/>
+ <property name="class" value="plugins"/>
+ </event>
+ <event name="system/seteditmode">
+ <property name="id" value="hs_popup_open_hold"/>
+ </event>
+ </action>
+ <action>
+ <trigger name="editmode" value="exit"/>
<event name="system/set">
- <property name="name" value="margin-right"/>
+ <property name="name" value="focusable"/>
+ <property name="value" value="false"/>
+ <property name="type" value="string"/>
+ <property name="class" value="plugins"/>
+ </event>
+ <event name="system/reseteditmode">
+ <property name="id" value="hs_popup_open_hold"/>
+ </event>
+ </action>
+ <action>
+ <trigger name="swipe" direction="left" conditional="true"/>
+ <event name="system/activatenextview" effectid="1003"/>
+ </action>
+ <action>
+ <trigger name="swipe" direction="right" conditional="true"/>
+ <event name="system/activatepreviousview" effectid="1004"/>
+ </action>
+ <action>
+ <trigger name="screendevicechange" reason="portrait"/>
+ <event name="system/set">
+ <property name="name" value="padding-left"/>
<property name="value" value="17px"/>
<property name="type" value="numeric"/>
- <property name="id" value="main_container"/>
- </event>
- <!-- class sub_container -->
+ <property name="id" value="plugins_container"/>
+ </event>
<event name="system/set">
- <property name="name" value="width"/>
- <property name="value" value="223px"/>
+ <property name="name" value="padding-right"/>
+ <property name="value" value="17px"/>
<property name="type" value="numeric"/>
- <property name="class" value="sub_container"/>
- </event>
+ <property name="id" value="plugins_container"/>
+ </event>
+ </action>
+ <action>
+ <trigger name="screendevicechange" reason="landscape"/>
<event name="system/set">
- <property name="name" value="height"/>
- <property name="value" value="132px"/>
- <property name="type" value="numeric"/>
- <property name="class" value="sub_container"/>
- </event>
- <!-- profile_switcher_container -->
- <event name="system/set">
- <property name="name" value="top"/>
+ <property name="name" value="padding-left"/>
<property name="value" value="0px"/>
<property name="type" value="numeric"/>
- <property name="id" value="profile_switcher_container"/>
- </event>
+ <property name="id" value="plugins_container"/>
+ </event>
<event name="system/set">
- <property name="name" value="left"/>
- <property name="value" value="223px"/>
- <property name="type" value="numeric"/>
- <property name="id" value="profile_switcher_container"/>
- </event>
- <!-- plugins_container -->
- <event name="system/set">
- <property name="name" value="top"/>
- <property name="value" value="135px"/>
- <property name="type" value="numeric"/>
- <property name="id" value="plugins_container"/>
- </event>
- <event name="system/set">
- <property name="name" value="left"/>
+ <property name="name" value="padding-right"/>
<property name="value" value="0px"/>
<property name="type" value="numeric"/>
<property name="id" value="plugins_container"/>
- </event>
- <!-- clock font sizes -->
- <event name="system/set">
- <property name="name" value="_s60-ampm-font-size"/>
- <property name="value" value="3.5u"/>
- <property name="type" value="numeric"/>
- <property name="id" value="clock"/>
- </event>
- <event name="system/set">
- <property name="name" value="_s60-digital-font-size"/>
- <property name="value" value="72px"/>
- <property name="type" value="numeric"/>
- <property name="id" value="clock"/>
- </event>
- <event name="system/set">
- <property name="name" value="_s60-date-font-size"/>
- <property name="value" value="3.5u"/>
- <property name="type" value="numeric"/>
- <property name="id" value="clock"/>
- </event>
+ </event>
</action>
- <action>
- <trigger name="screendevicechange" reason="landscape" />
- <!-- main_container -->
- <event name="system/set">
- <property name="name" value="margin-left"/>
- <property name="value" value="5px"/>
- <property name="type" value="numeric"/>
- <property name="id" value="main_container"/>
- </event>
- <event name="system/set">
- <property name="name" value="margin-right"/>
- <property name="value" value="5px"/>
- <property name="type" value="numeric"/>
- <property name="id" value="main_container"/>
- </event>
- <!-- class="sub_container" -->
- <event name="system/set">
- <property name="name" value="width"/>
- <property name="value" value="184px"/>
- <property name="type" value="numeric"/>
- <property name="class" value="sub_container"/>
- </event>
- <event name="system/set">
- <property name="name" value="height"/>
- <property name="value" value="106px"/>
- <property name="type" value="numeric"/>
- <property name="class" value="sub_container"/>
- </event>
- <!-- profile_switcher_container -->
- <event name="system/set">
- <property name="name" value="top"/>
- <property name="value" value="106px"/>
- <property name="type" value="numeric"/>
- <property name="id" value="profile_switcher_container"/>
- </event>
- <event name="system/set">
- <property name="name" value="left"/>
- <property name="value" value="0px"/>
- <property name="type" value="numeric"/>
- <property name="id" value="profile_switcher_container"/>
- </event>
- <!-- plugins_container -->
- <event name="system/set">
- <property name="name" value="top"/>
- <property name="value" value="3px"/>
- <property name="type" value="numeric"/>
- <property name="id" value="plugins_container"/>
- </event>
- <event name="system/set">
- <property name="name" value="left"/>
- <property name="value" value="184px"/>
- <property name="type" value="numeric"/>
- <property name="id" value="plugins_container"/>
- </event>
- <!-- clock font sizes -->
- <event name="system/set">
- <property name="name" value="_s60-ampm-font-size"/>
- <property name="value" value="3.0u"/>
- <property name="type" value="numeric"/>
- <property name="id" value="clock"/>
- </event>
- <event name="system/set">
- <property name="name" value="_s60-digital-font-size"/>
- <property name="value" value="56px"/>
- <property name="type" value="numeric"/>
- <property name="id" value="clock"/>
- </event>
- <event name="system/set">
- <property name="name" value="_s60-date-font-size"/>
- <property name="value" value="3.0u"/>
- <property name="type" value="numeric"/>
- <property name="id" value="clock"/>
- </event>
- </action>
- <action>
- <!-- End key, move focus to initial location -->
- <trigger name="keyevent">
- <property name="scancode" value="197"/>
- <property name="eventtype" value="1"/>
- </trigger>
- </action>
- <action>
- <trigger name="viewactivate"/>
- <event name="system/endfullscreeneffect"/>
- </action>
- <action>
- <!-- No widgets in this view -->
- <trigger name="widgetamount" value="0"/>
- <event name="system/set">
- <!-- Hide "hide content" menuitem -->
- <property name="name" value="display"/>
- <property name="value" value="none"/>
- <property name="type" value="string"/>
- <property name="id" value="hs_hide_widgets"/>
- </event>
- <event name="system/set">
- <!-- Hide "show content" menuitem -->
- <property name="name" value="display"/>
- <property name="value" value="none"/>
- <property name="type" value="string"/>
- <property name="id" value="hs_show_widgets"/>
- </event>
- </action>
- <action>
- <!-- At least one widget added to this view -->
- <trigger name="widgetamount" value="1"/>
- <event name="system/set">
- <!-- Show "hide content" menuitem -->
- <property name="name" value="display"/>
- <property name="value" value="block"/>
- <property name="type" value="string"/>
- <property name="id" value="hs_hide_widgets"/>
- </event>
- <event name="system/set">
- <!-- Show "show content" menuitem -->
- <property name="name" value="display"/>
- <property name="value" value="block"/>
- <property name="type" value="string"/>
- <property name="id" value="hs_show_widgets"/>
- </event>
- </action>
</actions>
-
- <!-- Data plugins in this view -->
- <contentsource name="Profile" value="0x10275101" />
- <contentsource name="SAT" value="0x102078EB" />
- <contentsource name="Shortcut" value="0x102750FA" />
- <contentsource name="DeviceStatus" value="0x102750F8" />
-
- <!-- All layout capable elements are inside this container -->
- <box id="main_container">
- <box id="clock_container" class="sub_container">
- <clock id="clock" focusable="true" _s60-initial-focus="1">
- <softkey id="clock_msk_open" type="middle" label="&qtn_msk_open;" />
- <menuitem id="hs_view_open" target="hs_widget_menuitem_open">
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="system/activateselecteditem"/>
- </action>
- </actions>
- </menuitem>
- <text id="Clock/DateInformation" display="none">
- <property id="DeviceStatusDate" class="DeviceStatus/Date" />
- </text>
- <actions>
- <action>
- <trigger name="stylus">
- <property name="eventtype" value="downup" />
- </trigger>
- <trigger name="activate"/>
- <trigger name="keyevent">
- <property name="scancode" value="3"/>
- <!-- enter key / EStdKeyEnter -->
- <property name="eventtype" value="1"/>
- </trigger>
- <event name="Shortcut/LaunchByValue(localapp:0x10005903)" />
- </action>
- </actions>
- </clock>
- </box>
- <box id="profile_switcher_container" class="sub_container">
- <box id="profile" focusable="true">
- <softkey id="profile_msk_select" type="middle" label="&qtn_msk_select;" />
- <menuitem id="hs_view_select" target="hs_widget_menuitem_select">
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="system/activateselecteditem"/>
- </action>
- </actions>
- </menuitem>
- <!-- Profile UI resources -->
- <desc id="Profile/ActiveProfileGeneralIconResource" path="SKIN(270501603 8586 19)"/>
- <desc id="Profile/ActiveProfileSilentIconResource" path="SKIN(270501603 8587 19)"/>
- <desc id="Profile/ActiveProfileTimedIconResource" path="SKIN(270501603 8631 19)"/>
- <actions>
- <!-- Show profile dialog menu -->
- <action>
- <trigger name="activate"/>
- <trigger name="stylus">
- <property name="eventtype" value="downup" />
- </trigger>
- <trigger name="keyevent">
- <property name="scancode" value="3"/>
- <!-- enter key / EStdKeyEnter -->
- <property name="eventtype" value="1"/>
- </trigger>
- <event name="system/trydisplayinglistquerydialog">
- <property name="id" value="profiledialog"/>
- </event>
- </action>
- </actions>
- <!-- MCN, CUG & Profile -->
- <box id="mcn_cug_profile_container">
- <newsticker id="mcn_cug_profile" class="statusindicator">
- <title id="mcn" titleindex="0">
- <property id="MCNIndicator" class="DeviceStatus/MCNIndicator" />
- </title>
- <title id="cug" titleindex="1">
- <property id="CUGIndicator" class="DeviceStatus/CUGIndicator" />
- </title>
- <title id="profile" titleindex="2">
- <property id="ActiveProfileIndicator" class="Profile/ActiveProfileNameAndIconChar" />
- </title>
- </newsticker>
- </box>
- <!-- SAT & VHZ -->
- <box id="sat_vhz_container">
- <image id="sat_icon">
- <property id="Sat_sat_icon" class="SAT/sat_icon" />
- <property class="policy/emptyContent" name="sat_icon" value="display:none"/>
- <property class="policy/emptyContent" name="sat_icon" value="visibility:hidden"/>
- <property class="policy/Content" name="sat_icon" value="display:block"/>
- <property class="policy/Visibility" name="sat_vhz_container" value="if !+(vhz) visibility: visible" />
- </image>
- <newsticker id="sat_vhz" class="statusindicator">
- <actions>
- <action>
- <trigger name="titletoscroll" titleindex="0"/>
- <event name="system/set">
- <property name="name" value="visibility"/>
- <property name="value" value="hidden"/>
- <property name="type" value="string"/>
- <property name="id" value="sat_icon"/>
- </event>
- </action>
- <action>
- <trigger name="titlescrolled" titleindex="0"/>
- <event name="system/set">
- <property name="name" value="visibility"/>
- <property name="value" value="hidden"/>
- <property name="type" value="string"/>
- <property name="id" value="sat_icon"/>
- </event>
- </action>
- <action>
- <trigger name="titletoscroll" titleindex="1"/>
- <event name="system/set">
- <property name="name" value="visibility"/>
- <property name="value" value="visible"/>
- <property name="type" value="string"/>
- <property name="id" value="sat_icon"/>
- </event>
- </action>
- <action>
- <trigger name="titlescrolled" titleindex="1"/>
- <event name="system/set">
- <property name="name" value="visibility"/>
- <property name="value" value="visible"/>
- <property name="type" value="string"/>
- <property name="id" value="sat_icon"/>
- </event>
- </action>
- </actions>
- <title id="vhz" titleindex="0">
- <property id="VHZText" class="DeviceStatus/VHZText" />
- <property class="policy/emptyContent" name="vhz" value="display: none" />
- <property class="policy/Content" name="vhz" value="display: block" />
- <property class="policy/Visibility" name="sat_vhz_container" value="if (vhz,sat,sat_icon) display: block" />
- <property class="policy/Visibility" name="sat_vhz_container" value="if !+(vhz,sat,sat_icon) display: none" />
- </title>
- <title id="sat" titleindex="1">
- <property id="Sat_SatIdleModeText" class="SAT/SatIdleModeText" />
- <property class="policy/emptyContent" name="sat" value="display: none" />
- <property class="policy/Content" name="sat" value="display: block" />
- <property class="policy/Visibility" name="sat_vhz_container" value="if (vhz,sat,sat_icon) display: block" />
- <property class="policy/Visibility" name="sat_vhz_container" value="if !+(vhz,sat,sat_icon) display: none" />
- </title>
- </newsticker>
- </box>
- </box>
- <!-- View switcher -->
- <box id="switcher" focusable="true">
- <softkey id="switcher_msk_select" type="middle" label="&qtn_msk_select;" />
- <menuitem id="hs_view_select" target="hs_widget_menuitem_select">
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="system/activateselecteditem"/>
- </action>
- </actions>
- </menuitem>
- <actions>
- <action>
- <trigger name="activate"/>
- <trigger name="stylus">
- <property name="eventtype" value="downup" />
- </trigger>
- <trigger name="keyevent">
- <property name="scancode" value="3"/>
- <property name="eventtype" value="1"/>
- </trigger>
- <event name="system/activatenextview"/>
- <event name="system/beginfullscreeneffect" effectid="1003"/>
- </action>
- </actions>
- <image id="switcher_icon" />
- <!-- View information is filled in runtime by View Manager -->
- <text id="switcher_text" />
- </box>
- </box>
- <!-- Plugins -->
- <box id="plugins_container">
- <plugin id="plugin1" class="plugins" />
- <plugin id="plugin2" class="plugins" />
- <plugin id="plugin3" class="plugins" />
- <plugin id="plugin4" class="plugins" />
- <plugin id="plugin5" class="plugins" />
- </box>
+
+ <!-- Plugins in this view -->
+ <box id="plugins_container">
+ <plugin id="plugin1" class="miniplugins" actionshandler="plugin_actions">
+ </plugin>
+ <plugin id="plugin2" class="miniplugins" actionshandler="plugin_actions">
+ </plugin>
+ <plugin id="plugin3" class="miniplugins" actionshandler="plugin_actions">
+ </plugin>
+ <plugin id="plugin4" class="plugins" actionshandler="plugin_actions">
+ </plugin>
+ <plugin id="plugin5" class="plugins" actionshandler="plugin_actions">
+ </plugin>
+ <plugin id="plugin6" class="plugins" actionshandler="plugin_actions">
+ </plugin>
</box>
-
- <!-- Profile list query dialog. Avkon dialog is not layout capable -->
- <listquerydialog id="profiledialog" display="none">
- <text id="profileseditactive" class="profileitem">qtn_hs_profile_edit
+
+ <!-- plugins' actions handler -->
+ <actionshandler id="plugin_actions">
+ <actions>
+ <action>
+ <trigger id="hs_popup_open_hold" name="hold" conditional="true" />
+ <event name="system/reportentereditmode" effectid="1005"/>
+ </action>
+ </actions>
+ </actionshandler>
+
+ <!-- Avkon stylus popup menu is not layout capable -->
+ <styluspopup id="hs_popup_menu" display="none">
+ <!-- menuitems controlled by widgets' <menuextension> -->
+ <widgetmenuitem id="hs_popup_widget_settings" source="hs_widget_menuitem_settings" label="&qtn_hs_longtap_settings;" />
+ <widgetmenuitem id="hs_popup_widget_general_1" source="hs_widget_general_stylus_popup_1"/>
+ <widgetmenuitem id="hs_popup_widget_general_2" source="hs_widget_general_stylus_popup_2"/>
+ <!--<widgetmenuitem id="hs_popup_widget_refresh" source="hs_widget_menuitem_refresh" label="Refresh" />-->
+ <!-- "Remove" item initialized in runtime to check whether popup is on top of widget -->
+ <dynmenuitem id="hs_popup_remove_widget" type="hs_remove_widget" label="&qtn_hs_longtap_remove_element;">
<actions>
<action>
<trigger name="activate"/>
- <event name="Profile/EditActiveProfile"/>
- </action>
- </actions>
- </text>
- <text id="profileitem1" class="systemprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="1"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(0)"/>
- </action>
- </actions>
- </text>
- <text id="profileitem2" class="systemprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="2"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(1)"/>
- </action>
- </actions>
- </text>
- <text id="profileitem3" class="systemprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="3"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(2)"/>
- </action>
- </actions>
- </text>
- <text id="profileitem4" class="systemprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="4"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(3)"/>
- </action>
- </actions>
- </text>
- <text id="profileitem5" class="systemprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="5"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(4)"/>
- </action>
- </actions>
- </text>
- <text id="profileitem6" class="systemprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="6"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(5)"/>
- </action>
- </actions>
- </text>
- <!-- Profiles added by user - show only when such profiles exist -->
- <text id="profileitem7" class="userprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="7"/>
- <property class="policy/Content" name="profileitem7" value="display:block"/>
- <property class="policy/emptyContent" name="profileitem7" value="display:none"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(6)"/>
- </action>
- </actions>
- </text>
- <text id="profileitem8" class="userprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="8"/>
- <property class="policy/Content" name="profileitem8" value="display:block"/>
- <property class="policy/emptyContent" name="profileitem8" value="display:none"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(7)"/>
- </action>
- </actions>
- </text>
- <text id="profileitem9" class="userprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="9"/>
- <property class="policy/Content" name="profileitem9" value="display:block"/>
- <property class="policy/emptyContent" name="profileitem9" value="display:none"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(8)"/>
- </action>
- </actions>
- </text>
- <text id="profileitem10" class="userprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="10"/>
- <property class="policy/Content" name="profileitem10" value="display:block"/>
- <property class="policy/emptyContent" name="profileitem10" value="display:none"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(9)"/>
- </action>
- </actions>
- </text>
- <text id="profileitem11" class="userprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="11"/>
- <property class="policy/Content" name="profileitem11" value="display:block"/>
- <property class="policy/emptyContent" name="profileitem11" value="display:none"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(10)"/>
- </action>
- </actions>
- </text>
- <text id="profileitem12" class="userprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="12"/>
- <property class="policy/Content" name="profileitem12" value="display:block"/>
- <property class="policy/emptyContent" name="profileitem12" value="display:none"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(11)"/>
- </action>
- </actions>
- </text>
- <text id="profileitem13" class="userprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="13"/>
- <property class="policy/Content" name="profileitem13" value="display:block"/>
- <property class="policy/emptyContent" name="profileitem13" value="display:none"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(12)"/>
- </action>
- </actions>
- </text>
- <text id="profileitem14" class="userprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="14"/>
- <property class="policy/Content" name="profileitem14" value="display:block"/>
- <property class="policy/emptyContent" name="profileitem14" value="display:none"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(13)"/>
- </action>
- </actions>
- </text>
- <text id="profileitem15" class="userprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="15"/>
- <property class="policy/Content" name="profileitem15" value="display:block"/>
- <property class="policy/emptyContent" name="profileitem15" value="display:none"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(14)"/>
- </action>
- </actions>
- </text>
- <text id="profileitem16" class="userprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="16"/>
- <property class="policy/Content" name="profileitem16" value="display:block"/>
- <property class="policy/emptyContent" name="profileitem16" value="display:none"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(15)"/>
+ <event name="system/removefocusedwidget"/>
</action>
</actions>
- </text>
- <text id="profileitem17" class="userprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="17"/>
- <property class="policy/Content" name="profileitem17" value="display:block"/>
- <property class="policy/emptyContent" name="profileitem17" value="display:none"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(16)"/>
- </action>
- </actions>
- </text>
- <text id="profileitem18" class="userprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="18"/>
- <property class="policy/Content" name="profileitem18" value="display:block"/>
- <property class="policy/emptyContent" name="profileitem18" value="display:none"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(17)"/>
- </action>
- </actions>
- </text>
- <text id="profileitem19" class="userprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="19"/>
- <property class="policy/Content" name="profileitem19" value="display:block"/>
- <property class="policy/emptyContent" name="profileitem19" value="display:none"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(18)"/>
- </action>
- </actions>
- </text>
- <text id="profileitem20" class="userprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="20"/>
- <property class="policy/Content" name="profileitem20" value="display:block"/>
- <property class="policy/emptyContent" name="profileitem20" value="display:none"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(19)"/>
- </action>
- </actions>
- </text>
- <text id="profileitem21" class="userprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="21"/>
- <property class="policy/Content" name="profileitem21" value="display:block"/>
- <property class="policy/emptyContent" name="profileitem21" value="display:none"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(20)"/>
- </action>
- </actions>
- </text>
- <text id="profileitem22" class="userprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="22"/>
- <property class="policy/Content" name="profileitem22" value="display:block"/>
- <property class="policy/emptyContent" name="profileitem22" value="display:none"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(21)"/>
- </action>
- </actions>
- </text>
- <text id="profileitem23" class="userprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="23"/>
- <property class="policy/Content" name="profileitem23" value="display:block"/>
- <property class="policy/emptyContent" name="profileitem23" value="display:none"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(22)"/>
- </action>
- </actions>
- </text>
- <text id="profileitem24" class="userprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="24"/>
- <property class="policy/Content" name="profileitem24" value="display:block"/>
- <property class="policy/emptyContent" name="profileitem24" value="display:none"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(23)"/>
- </action>
- </actions>
- </text>
- <text id="profileitem25" class="userprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="25"/>
- <property class="policy/Content" name="profileitem25" value="display:block"/>
- <property class="policy/emptyContent" name="profileitem25" value="display:none"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(24)"/>
- </action>
- </actions>
- </text>
- <text id="profileitem26" class="userprofileitem">
- <property class="Profile/ProfileName" name="ordinal" value="26"/>
- <property class="policy/Content" name="profileitem26" value="display:block"/>
- <property class="policy/emptyContent" name="profileitem26" value="display:none"/>
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Profile/SwitchProfileByIndex(25)"/>
- </action>
- </actions>
- </text>
- </listquerydialog>
-
- <!-- RSK shortcut, default AppShell -->
- <property class="Settings/Shortcut" name="0x01000101" value="localapp:0x101F4CD2"/>
- <!-- UI resources for RSK shortcut -->
- <desc id="Shortcut/EmptyCaption">&shortcut_emptycaption;</desc>
- <desc id="Shortcut/BackCaption">&qtn_hs_text_softkey_back;</desc>
-
- <menubar id="hs_menubar">
- <!-- menu item grouping table is traversed through in run-time always when options menu is launched. -->
+ </dynmenuitem>
+ </styluspopup>
+ <menubar id="hs_menubar">
+ <!-- menu item grouping table is traversed through in run-time always when options menu is launched. -->
<menuitemgrouping>
- <!-- These items are shown when widget is selected (focus is in widget) -->
- <menuitemgroup id="Menu/WidgetSpecific">
- <property name="hs_widget_select"/>
- <property name="hs_widget_open"/>
- <property name="hs_widget_settings"/>
- <property name="hs_move_widget"/>
- <property name="hs_remove_widget"/>
- </menuitemgroup>
- <!-- These items are shown when view is selected (focus is in view) -->
- <menuitemgroup id="Menu/ViewSpecific">
- <property name="hs_widget_select"/>
- <property name="hs_widget_open"/>
- </menuitemgroup>
- <!-- These items are shown when content is hidden -->
- <menuitemgroup id="Menu/WidgetsHidden">
- <property name="hs_show_widgets"/>
- </menuitemgroup>
<!-- These items are shown when content is visible -->
- <menuitemgroup id="Menu/WidgetsShown">
- <property name="hs_add_widget"/>
- <property name="hs_hide_widgets"/>
- </menuitemgroup>
+ <menuitemgroup id="Menu/NormalMode">
+ <property name="hs_edit_widgets"/>
+ <property name="hs_set_online"/>
+ <property name="hs_set_offline"/>
+ <property name="hs_add_view"/>
+ <property name="hs_remove_view"/>
+ </menuitemgroup>
+ <!-- These items are shown in edit mode, if not otherwise changed in the declaration -->
+ <menuitemgroup id="Menu/EditMode">
+ <property name="hs_widget_catalog"/>
+ <property name="hs_remove_widget"/>
+ <property name="hs_widget_settings"/>
+ <property name="hs_widget_general_1"/>
+ <property name="hs_widget_general_2"/>
+ <property name="hs_add_view"/>
+ <property name="hs_remove_view"/>
+ <property name="hs_change_wallpaper"/>
+ </menuitemgroup>
+ <menuitemgroup id="ContextMenu/EditMode">
+ <property name="hs_remove_widget"/>
+ <property name="hs_widget_settings"/>
+ <property name="hs_widget_general_1"/>
+ <property name="hs_widget_general_2"/>
+ </menuitemgroup>
<!-- These items are always shown, if not otherwise changed in the declaration -->
<menuitemgroup id="Menu/AlwaysShown">
- <property name="hs_lock_keypad"/>
- <property name="hs_change_wallpaper"/>
- <property name="hs_rsk_setting"/>
<property name="hs_show_help"/>
- </menuitemgroup>
- </menuitemgrouping>
- <menu id="options_menu">
- <menuitem id="hs_lock_keypad" label="&qtn_hs_lock_keypad;">
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="Shortcut/LaunchByValue(localapp:keylock?on)" />
- </action>
- </actions>
- </menuitem>
- <!-- widget specified options menu item select -->
- <widgetmenuitem id="hs_widget_select" source="hs_widget_menuitem_select" label="&qtn_options_select_widget;"/>
- <!-- widget specified options menu item open -->
- <widgetmenuitem id="hs_widget_open" source="hs_widget_menuitem_open" label="&qtn_options_open;"/>
- <menuitem id="hs_show_widgets" label="&qtn_hs_show_widgets;">
- <actions>
- <action>
- <trigger name="activate" />
- <event name="system/beginfullscreeneffect" effectid="1508"/>
- <event name="system/togglewidgetsvisibilty"/>
- <event name="system/endfullscreeneffect"/>
- <event name="system/set">
- <!-- Show "add content" menuitem -->
- <property name="name" value="display"/>
- <property name="value" value="block"/>
- <property name="type" value="string"/>
- <property name="id" value="hs_add_widget"/>
- </event>
- </action>
- </actions>
- </menuitem>
- <menuitem id="hs_add_widget" label="&qtn_hs_add_widget;">
+ </menuitemgroup>
+ </menuitemgrouping>
+ <menu id="hs_options_menu">
+ <menuitem id="hs_widget_catalog" label="&qtn_hs_widget_catalog;">
<actions>
<action>
<trigger name="activate"/>
@@ -753,181 +161,129 @@
</action>
</actions>
</menuitem>
- <!-- TODO: implement properly
- <menuitem id="hs_refresh" name="refresh" source="contentmodel" label="&qtn_hs_refresh_widget;">
+ <!-- menuitems controlled by widgets' <menuextension> element -->
+ <widgetmenuitem id="hs_widget_settings" source="hs_widget_menuitem_settings" label="&qtn_hs_widget_settings;"/>
+ <widgetmenuitem id="hs_widget_general_1" source="hs_widget_general_options_menu_1"/>
+ <widgetmenuitem id="hs_widget_general_2" source="hs_widget_general_options_menu_2"/>
+ <dynmenuitem id="hs_remove_widget" type="hs_remove_widget" label="&qtn_hs_remove_widget;">
<actions>
<action>
<trigger name="activate"/>
- <event name="menu_event"/>
- </action>
- </actions>
- </menuitem>-->
- <menuitem id="hs_hide_widgets" label="&qtn_hs_hide_widgets;">
- <actions>
- <action>
- <trigger name="activate" />
- <event name="system/beginfullscreeneffect" effectid="1508"/>
- <event name="system/togglewidgetsvisibilty"/>
- <event name="system/endfullscreeneffect"/>
- <event name="system/set">
- <!-- Hide "add content" menuitem -->
- <property name="name" value="display"/>
- <property name="value" value="none"/>
- <property name="type" value="string"/>
- <property name="id" value="hs_add_widget"/>
- </event>
+ <event name="system/removefocusedwidget"/>
</action>
</actions>
- </menuitem>
- <!-- widget sub-menu -->
- <menu id="hs_widget_submenu" label="&qtn_hs_edit_widget;">
- <!-- settings controlled by widgets -->
- <widgetmenuitem id="hs_widget_settings" source="hs_widget_menuitem_settings" label="&qtn_hs_widget_settings;"/>
- <menuitem id="hs_move_widget" label="&qtn_hs_move_widget;">
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="system/set">
- <property name="name" value="focusable"/>
- <property name="value" value="true"/>
- <property name="type" value="string"/>
- <property name="class" value="plugins"/>
- </event>
- <event name="system/seteditmode">
- <property name="class" value="plugins"/>
- <property name="class" value="normal_mode_sk"/>
- <property name="class" value="edit_mode_sk"/>
- <property name="keymovemode" value="true"/>
- </event>
- </action>
- </actions>
- </menuitem>
- <menuitem id="hs_remove_widget" label="&qtn_hs_remove_widget;">
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="system/removefocusedwidget"/>
- </action>
- </actions>
- </menuitem>
- </menu>
- <!-- Dymanic menu items for web online/offline capability when installing a new internet/web widget -->
- <!--<menuitem id="hs_online" status="online" name="online_offline" source="contentmodel" label="&qtn_hs_online;">
+ </dynmenuitem>
+ <!--<widgetmenuitem id="hs_widget_refresh" source="hs_widget_menuitem_refresh" label="&qtn_hs_refresh_widget;" />-->
+ <menuitem id="hs_edit_widgets" label="&qtn_hs_edit_content;">
<actions>
<action>
<trigger name="activate"/>
- <event name="menu_event"/>
+ <event name="system/reportentereditmode" effectid="1005"/>
</action>
- </actions>
+ </actions>
</menuitem>
- <menuitem id="hs_offline" status="offline" name="online_offline" source="contentmodel" label="&qtn_hs_offline;">
+ <menuitem id="hs_change_wallpaper" label="&qtn_hs_change_wallpaper;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <!--Wallpaper-->
+ <event name="system/setwallpaper"/>
+ </action>
+ </actions>
+ </menuitem>
+ <dynmenuitem id="hs_add_view" type="hs_add_view" label="&qtn_hs_page_options_new;">
<actions>
<action>
<trigger name="activate"/>
- <event name="menu_event"/>
- </action>
- </actions>
- </menuitem> -->
- <menuitem id="hs_change_wallpaper" label ="&qtn_hs_change_wallpaper;">
- <actions>
- <action id="a_setwallpaper">
- <trigger id="t_setwallpaper" name="activate"/>
- <event id="e_setwallpaper" name="setwallpaper_event"/>
+ <event name="system/addview" effectid="1009"/>
</action>
</actions>
- </menuitem>
- <menuitem id="hs_rsk_setting" label="&qtn_hs_options_sk2;">
+ </dynmenuitem>
+ <dynmenuitem id="hs_remove_view" type="hs_remove_view" label="&qtn_hs_page_options_delete;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/removeview" effectid="1010"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ <dynmenuitem id="hs_set_online" type="hs_online" label="&qtn_hs_online;">
<actions>
<action>
<trigger name="activate"/>
- <event name="Shortcut/ShowSetting(0x01000101)" />
+ <event name="EventHandler/SetOnline"/>
</action>
</actions>
- </menuitem>
+ </dynmenuitem>
+ <dynmenuitem id="hs_set_offline" type="hs_offline" label="&qtn_hs_offline;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="EventHandler/SetOffline"/>
+ </action>
+ </actions>
+ </dynmenuitem>
<menuitem id="hs_show_help" label="&qtn_options_help;">
<actions>
- <action id="a_help">
+ <action>
<trigger name="activate"/>
- <event name="help_event"/>
+ <event name="EventHandler/ShowHelp"/>
</action>
</actions>
- </menuitem>
- </menu>
- <!-- softkeys -->
- <widgetsoftkey source="hs_widget_msk_select" label="&qtn_msk_select;"/>
- <widgetsoftkey source="hs_widget_msk_open" label="&qtn_msk_open;"/>
- <softkey id="lsk" type="left" class="normal_mode_sk" label="&qtn_ai_softkey_options;" >
+ </menuitem>
+ </menu>
+ <softkey id="lsk" type="left" label="&qtn_hs_text_softkey_options;">
<actions>
<action>
- <trigger name="stylus"/>
- <trigger name="activate">
- <property name="eventtype" value="2"/>
- </trigger>
+ <trigger name="activate"/>
<event name="system/trydisplayingmenu">
- <property name="id" value="options_menu"/>
- </event>
- </action>
- <action>
- <trigger name="hold"/>
- <event name="Shortcut/LaunchByValue(localapp:0x10201B00?ui=read_new)"/>
- </action>
- </actions>
- </softkey>
- <softkey id="SK2" type="right" class="normal_mode_sk" label="">
- <property class="Shortcut/ShortcutSkCaption" name="ordinal" value="0x01000101"/>
- <!--<property class="Shortcut/ShortcutSkIcon" name="ordinal" value="0x01000101"/>-->
- <actions>
- <action>
- <trigger name="stylus"/>
- <trigger name="activate">
- <property name="eventtype" value="2"/>
- </trigger>
- <event name="Shortcut/LaunchByIndex(0x01000101)"/>
- </action>
- <action>
- <trigger name="hold"/>
- <event name="Shortcut/LaunchByValue(localapp:0x101F8543)"/>
- </action>
- </actions>
- </softkey>
- <softkey id="edit_lsk_ok" type="left" class="edit_mode_sk" label="&qtn_softkey_ok;">
- <actions>
- <action>
- <trigger name="stylus"/>
- <trigger name="activate"/>
- <event name="system/reseteditmode">
- <property name="class" value="plugins"/>
- <property name="class" value="edit_mode_sk"/>
- <property name="class" value="normal_mode_sk"/>
- </event>
- <event name="system/set">
- <property name="name" value="focusable"/>
- <property name="value" value="false"/>
- <property name="type" value="string"/>
- <property name="class" value="plugins"/>
+ <property name="id" value="hs_options_menu"/>
</event>
</action>
</actions>
</softkey>
- <softkey id="edit_msk_ok" type="middle" class="edit_mode_sk" label="#mskdot">
+ <softkey id="rsk" type="right" mode="mode_callinactive" label="#Menu">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="EventHandler/LaunchApp" uid="0x101F4CD2"/>
+ </action>
+ </actions>
+ </softkey>
+ <softkey id="rsk" type="right" mode="mode_callactive" label="#Menu">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="EventHandler/LaunchApp" uid="0x101F4CD2"/>
+ </action>
+ </actions>
+ </softkey>
+ <softkey id="rsk_done" type="right" mode="mode_edit" label="&qtn_hs_text_softkey_done;">
<actions>
<action>
- <trigger name="stylus"/>
<trigger name="activate"/>
- <event name="system/reseteditmode">
- <property name="class" value="plugins"/>
- <property name="class" value="edit_mode_sk"/>
- <property name="class" value="normal_mode_sk"/>
- </event>
- <event name="system/set">
- <property name="name" value="focusable"/>
- <property name="value" value="false"/>
- <property name="type" value="string"/>
- <property name="class" value="plugins"/>
- </event>
+ <event name="system/reportexiteditmode" effectid="1006"/>
</action>
</actions>
</softkey>
- </menubar>
+ <softkey id="msk_ltr" type="middle" label=""> <!--TODO: Remove label when MSK icon available-->
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/activatenextview" effectid="1003"/>
+ </action>
+ </actions>
+ <!--image id="switcher_icon"/-->
+ </softkey>
+ <softkey id="msk_rtl" type="middle" label=""> <!--TODO: Remove label when MSK icon available-->
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/activatepreviousview" effectid="1004"/>
+ </action>
+ </actions>
+ <!--image id="switcher_icon"/-->
+ </softkey>
+ </menubar>
</view>
</xmluiml>
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/37/view.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/37/view.css Tue Sep 14 20:58:58 2010 +0300
@@ -1,543 +1,73 @@
-view {
- display: block;
- position: static;
- width: 100%;
- height: 100%;
+view
+{
direction: rtl;
block-progression: tb;
background-image: wallpaper;
- nav-index: appearance;
- _s60-focus-visibility: true;
- _s60-status-pane-layout: widescreen-flat-3softkeys;
-
-}
-
-trigger.western{
- display: none;
-}
-
-
-/** Softkeys **/
-softkey.normal_mode_sk
-{
- display: block;
-}
-
-softkey.normal_mode_sk:edit
-{
- display: none;
-}
+ swipe: true;
-softkey.edit_mode_sk
-{
- display: none;
-}
-
-softkey.edit_mode_sk:edit
-{
- display: block;
-}
-
-/** General **/
-
-plugin.widget_full_width{
- /* every plug-in decides its own height */
- height: adaptive;
- background-color: "SKIN(268458534 9906)";
- background-size: 100%;
- width: 100%;
-/* padding-left: 1.7u;
- padding-right: 1.7u;*/
- margin-bottom: 0.55u;
- nav-index: auto;
-}
-
-plugin.widget_full_width:focus {
- focus-background:"SKIN(268458534 9896)";
+ _s60-status-pane-layout: widescreen-flat-3softkeys;
}
-plugin:edit {
- background-color:"SKIN(270501603 8582)";
-}
-
-text{
- text-align: center;
- font-family: tahoma;
- font-size: 3.0u;
- /*color:"SKIN(268458534 13056 19)";*/
- color: white;
-}
-
-/************
-Page switcher
-*************
-
-text#switchertext{
- position: static;
- text-align: right;
- margin-left: 6.0u;
-}
-
-image#switcherimage{
- position: absolute;
- top: 1.4u;
- left: 2.5u;
- height: 3.5u;
- width: 3.0u;
- _s60-aspect-ratio: preserve;
-}
-*/
-
-
-/******************
-container areas
-******************/
-box#mainbox{
- width: 100%;
- height: 100%;
-}
-
-box.profile_date
+box#plugins_container
{
- background-color: "SKIN(268458534 9916)";
- nav-index: appearance;
- height: auto;
-}
-
-box.profile_date:focus
-{
- background-color: "SKIN(268458534 5120 9)";
+ direction: rtl;
+ block-progression: tb;
}
-
-/*********************************************
-Clock Profiles - portrait specific containers
-**********************************************/
+plugin.miniplugins
+{
+ height: 115px;
+ width: 176px;
-box#clock_profiles_portrait{
- display: block;
- visibility: visible;
- direction: rtl;
- block-progression: rl;
- padding-left: 1.7u;
- padding-right: 1.7u;
- margin-bottom: 0.55u;
- height:13.86u;
- visualisationaware:true;
-}
+ margin-top: 9px;
+ margin-right: 9px;
+
+ _s60-longtap: true;
-box#profiles_pages_portrait{
- block-progression: tb;
- direction: rtl;
- height: adaptive;
-}
-
-box#clock_container_portrait{
- display: block;
- visibility: visible;
- position: static;
nav-index: appearance;
- block-progression: tb;
- background-color: "SKIN(268458534 9906)";
-
- margin-left: 0.7u;
- visualisationaware:true;
- _s60-initial-focus: 1;
-}
-
-box#clock_container_portrait:focus{
- background-color: "SKIN(268458534 5120 9)";
-}
-
-clock#clock_portrait{
- display: block;
- visibility: visible;
- position: static;
- width: auto;
- /*height: 70%;*/
- height: auto;
- direction: rtl;
- block-progression: tb;
- background: none;
- nav-index: appearance;
- _s60-format: locale;
- _s60-ampm-font-size: 16px;
- _s60-digital-font-size: 56px;
- color: white;
}
-box#date_container_portrait
-{
- width: auto;
- direction: rtl;
- block-progression: rl;
- height: 4.05u;
- margin-bottom: 0.55u;
- padding-top: 3px;
- visualisationaware:true;
-}
-
-box#date_content_portrait
+plugin.plugins
{
- width: adaptive;
- height: adaptive;
-}
+ height: 115px;
+ width: 436px;
-text#datetext2_portrait
-{
- text-align: center;
- width: auto;
- height: auto;
- font-family: EAknLogicalFontPrimaryFont;
- font-size: 3u;
- color: white;
+ margin-top: 9px;
+ margin-right: 10px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
}
-box#profile_softindicator_portrait
-{
- width: auto;
- direction: rtl;
- block-progression: tb;
- background-color: "SKIN(268458534 9906)";
- nav-index: appearance;
- height: 9.0u;
- visualisationaware:true;
-}
-
-box#NT_CUGMCN_portrait
-{
- text-align: center;
- width: adaptive;
- height: auto;
- block-progression: rl;
-}
-
-
-box#NT_SATVHZ_portrait
-{
- display: none;
- text-align: center;
- width: adaptive;
- height: auto;
- block-progression: rl;
-}
-
-title#title_vhz_portrait
-{
- display: none;
-}
-
-title#title_sat_portrait
+trigger#hs_popup_open_hold:edit
{
display: none;
}
-/*********************************************
-Clock Profiles - landscape specific containers
-**********************************************/
-
-box#clock_profiles_landscape{
- display: block;
- visibility: visible;
- direction: rtl;
- block-progression: tb;
- width: 30%;
- height: 100%;
- padding-left: 5px;
- padding-top: 5px;
- visualisationaware:true;
-}
-
-box#profiles_pages_landscape{
- block-progression: tb;
- direction: rtl;
- height: adaptive;
-}
-
-box#clock_container_landscape{
-
- display: block;
- visibility: visible;
- position: static;
- nav-index: appearance;
- block-progression: tb;
- background-color: "SKIN(268458534 9906)";
- height: 10.74u;
- width: auto;
- margin-bottom: 0.55u;
- visualisationaware:true;
- _s60-initial-focus: 2;
-}
-
-box#clock_container_landscape:focus{
- background-color: "SKIN(268458534 5120 9)";
-}
-
-box#date_container_landscape
+trigger#hs_popup_open_up
{
- width: auto;
- direction: rtl;
- block-progression: rl;
- height: 6.7u;
- margin-bottom: 0.55u;
- visualisationaware:true;
-}
-
-box#profile_softindicator_landscape
-{
- width: auto;
- direction: rtl;
- block-progression: tb;
- background-color: "SKIN(268458534 9906)";
- nav-index: appearance;
- height: 6.7u;
- margin-bottom: 0.55u;
- visualisationaware:true;
-}
-
-clock#clock_landscape{
- display: block;
- visibility: visible;
- position: static;
- width: 100%;
- height: auto;
- direction: rtl;
- block-progression: tb;
- background: none;
- nav-index: appearance;
- _s60-format: locale;
- _s60-ampm-font-size: 16px;
- _s60-digital-font-size: 56px;
- color: white;
+ display: none;
}
-clock:focus{
- background-color: "SKIN(268458534 5120 9)";
-}
-/* Date in the clock widget */
-text#datetext{
- nav-index: appearance;
- text-align: center;
- padding-top: 0.5u;
- padding-bottom: 0.5u;
- width: 100%;
- height: 24%;
- font-family: EAknLogicalFontPrimaryFont;
- font-size: 3u;
- color: white;
-}
-/* Date in the clock widget */
-text#datetext:focus{
- background-color: "SKIN(268458534 5120 9)";
-}
-
-/* Date in separate widget above profiles */
-
-box#date_content_landscape
-{
- width: inherit;
- height: inherit;
-}
-
-text#datetext2_landscape
-{
- text-align: center;
- width: auto;
- height: auto;
- font-family: EAknLogicalFontPrimaryFont;
- font-size: 3u;
- color: white;
-}
-
-box#profile_softindicator:focus
-{
- focus-background:"SKIN(268458534 5120 9)";
-}
-
-image#profileicon {
- display: block;
- visibility: hidden;
- width: 18px;
- height: 20px;
- position: static;
- margin-top: auto;
- z-index: 2;
-}
-
-image#SatIdleModeIcon
-{
- display: block;
- visibility: hidden;
- width: 18px;
- height: 20px;
- position: static;
- margin-top: auto;
-}
-
-text#profiletext
-{
- text-align: center;
- margin-left: 2px;
- margin-right: 2px;
- width: adaptive;
- height: adaptive;
- font-family: EAknLogicalFontPrimaryFont;
- font-size: 3u;
- color:"SKIN(268458534 13056 19)";
-}
-
-/* Profiles dialog */
-listquerydialog#profiledialog
-{
- /* Avkon dialog is not layout capable */
- display: none;
-}
-
-/* Default system profiles */
-text.systemprofileitem
+trigger#hs_popup_open_up:edit
{
display: block;
}
-/* Placeholders for profiles added by user */
-text.userprofileitem
+softkey#rsk
{
- display: none;
-}
-
-/******************
- SOFT INDICATOR WIDGET AREA
-*******************/
-
-newsticker.SIText {
- text-align: center;
- display: block;
- visibility: visible;
- width: auto;
- margin-left: 2px;
- margin-right: 2px;
- font-family: EAknLogicalFontPrimaryFont;
- font-size: 3u;
- white-space-collapse: collapse;
- _s60-scroll-behaviour: alternate;
- /*_s60-scroll-behaviour: scroll;*/
- _s60-display-time: 2000;
- _s60-scroll-loop: false;
- _s60-start-delay: 0;
- _s60-restart-after-update: true;
- color: white;
- /*color:"SKIN(268458534 13056 19)";*/
+ _s60-longtap: true;
+ _s60-aspect-ratio: preserve;
}
-box#NT_CUGMCN_landscape
+softkey#msk_ltr
{
- text-align: center;
- margin-left: auto;
- margin-right: auto;
- width: adaptive;
- height: auto;
- block-progression: rl;
+ display: block;
}
-box#NT_SATVHZ_landscape
-{
- display: none;
- text-align: center;
- margin-left: auto;
- margin-right: auto;
- width: adaptive;
- height: auto;
- block-progression: rl;
-}
-
-title#title_vhz_landscape
-{
- display: none;
-}
-
-title#title_sat_landscape
-{
- display: none;
-}
-
-image#SatIdleModeIcon_portrait
-{
- display: none;
-}
-
-image#SatIdleModeIcon_landscape
+softkey#msk_rtl
{
display: none;
}
-/************
-Page switcher
-*************
-box#switcher{
- display: block;
- visibility: visible;
- block-progression: rl;
- direction: ltr;
- height: 4.5u;
- background-color: "SKIN(268458534 9906)";
- background-size: 100%;
- margin-top: 0.55u;
-}
-
-box#switcher:focus {
- background-color: "SKIN(268458534 5120 9)";
-}
-
-text#switchertext
-{
- text-align: center;
- margin-left: auto;
- margin-right: auto;
- width: adaptive;
- height: 3.5u;
- font-family: EAknLogicalFontPrimaryFont;
- font-size: 3u;
- color:"SKIN(268458534 13056 19)";
- color: white;
- padding-top: 0.5u;
- padding-bottom: 0.5u;
-}
-
-image#switcherimage
-{
- position: static;
- height: 3.5u;
- width: 3.5u;
- margin-top: 0.5u;
- margin-left: 2u;
-}
-*/
-
-menuitem#webonlineitem
-{
- display: block;
-}
-
-menuitem#webonlineitem:edit
-{
- display: none;
-}
-
-menuitem#webofflineitem
-{
- display: block;
-}
-
-menuitem#webofflineitem:edit
-{
- display: none;
-}
-
-box#main_plugins{
- block-progression: tb;
- display: block;
- visibility: visible;
- padding-left: 1.7u;
- padding-right: 1.7u;
-}
-
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/50/view.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/50/view.css Tue Sep 14 20:58:58 2010 +0300
@@ -1,543 +1,73 @@
-view {
- display: block;
- position: static;
- width: 100%;
- height: 100%;
+view
+{
direction: rtl;
block-progression: tb;
background-image: wallpaper;
- nav-index: appearance;
- _s60-focus-visibility: true;
- _s60-status-pane-layout: widescreen-flat-3softkeys;
-
-}
-
-trigger.western{
- display: none;
-}
-
-
-/** Softkeys **/
-softkey.normal_mode_sk
-{
- display: block;
-}
-
-softkey.normal_mode_sk:edit
-{
- display: none;
-}
+ swipe: true;
-softkey.edit_mode_sk
-{
- display: none;
-}
-
-softkey.edit_mode_sk:edit
-{
- display: block;
-}
-
-/** General **/
-
-plugin.widget_full_width{
- /* every plug-in decides its own height */
- height: adaptive;
- background-color: "SKIN(268458534 9906)";
- background-size: 100%;
- width: 100%;
-/* padding-left: 1.7u;
- padding-right: 1.7u;*/
- margin-bottom: 0.55u;
- nav-index: auto;
-}
-
-plugin.widget_full_width:focus {
- focus-background:"SKIN(268458534 9896)";
+ _s60-status-pane-layout: widescreen-flat-3softkeys;
}
-plugin:edit {
- background-color:"SKIN(270501603 8582)";
-}
-
-text{
- text-align: center;
- font-family: tahoma;
- font-size: 3.0u;
- /*color:"SKIN(268458534 13056 19)";*/
- color: white;
-}
-
-/************
-Page switcher
-*************
-
-text#switchertext{
- position: static;
- text-align: right;
- margin-left: 6.0u;
-}
-
-image#switcherimage{
- position: absolute;
- top: 1.4u;
- left: 2.5u;
- height: 3.5u;
- width: 3.0u;
- _s60-aspect-ratio: preserve;
-}
-*/
-
-
-/******************
-container areas
-******************/
-box#mainbox{
- width: 100%;
- height: 100%;
-}
-
-box.profile_date
+box#plugins_container
{
- background-color: "SKIN(268458534 9916)";
- nav-index: appearance;
- height: auto;
-}
-
-box.profile_date:focus
-{
- background-color: "SKIN(268458534 5120 9)";
+ direction: rtl;
+ block-progression: tb;
}
-
-/*********************************************
-Clock Profiles - portrait specific containers
-**********************************************/
+plugin.miniplugins
+{
+ height: 115px;
+ width: 176px;
-box#clock_profiles_portrait{
- display: block;
- visibility: visible;
- direction: rtl;
- block-progression: rl;
- padding-left: 1.7u;
- padding-right: 1.7u;
- margin-bottom: 0.55u;
- height:13.86u;
- visualisationaware:true;
-}
+ margin-top: 9px;
+ margin-right: 9px;
+
+ _s60-longtap: true;
-box#profiles_pages_portrait{
- block-progression: tb;
- direction: rtl;
- height: adaptive;
-}
-
-box#clock_container_portrait{
- display: block;
- visibility: visible;
- position: static;
nav-index: appearance;
- block-progression: tb;
- background-color: "SKIN(268458534 9906)";
-
- margin-left: 0.7u;
- visualisationaware:true;
- _s60-initial-focus: 1;
-}
-
-box#clock_container_portrait:focus{
- background-color: "SKIN(268458534 5120 9)";
-}
-
-clock#clock_portrait{
- display: block;
- visibility: visible;
- position: static;
- width: auto;
- /*height: 70%;*/
- height: auto;
- direction: rtl;
- block-progression: tb;
- background: none;
- nav-index: appearance;
- _s60-format: locale;
- _s60-ampm-font-size: 16px;
- _s60-digital-font-size: 56px;
- color: white;
}
-box#date_container_portrait
-{
- width: auto;
- direction: rtl;
- block-progression: rl;
- height: 4.05u;
- margin-bottom: 0.55u;
- padding-top: 3px;
- visualisationaware:true;
-}
-
-box#date_content_portrait
+plugin.plugins
{
- width: adaptive;
- height: adaptive;
-}
+ height: 115px;
+ width: 436px;
-text#datetext2_portrait
-{
- text-align: center;
- width: auto;
- height: auto;
- font-family: EAknLogicalFontPrimaryFont;
- font-size: 3u;
- color: white;
+ margin-top: 9px;
+ margin-right: 10px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
}
-box#profile_softindicator_portrait
-{
- width: auto;
- direction: rtl;
- block-progression: tb;
- background-color: "SKIN(268458534 9906)";
- nav-index: appearance;
- height: 9.0u;
- visualisationaware:true;
-}
-
-box#NT_CUGMCN_portrait
-{
- text-align: center;
- width: adaptive;
- height: auto;
- block-progression: rl;
-}
-
-
-box#NT_SATVHZ_portrait
-{
- display: none;
- text-align: center;
- width: adaptive;
- height: auto;
- block-progression: rl;
-}
-
-title#title_vhz_portrait
-{
- display: none;
-}
-
-title#title_sat_portrait
+trigger#hs_popup_open_hold:edit
{
display: none;
}
-/*********************************************
-Clock Profiles - landscape specific containers
-**********************************************/
-
-box#clock_profiles_landscape{
- display: block;
- visibility: visible;
- direction: rtl;
- block-progression: tb;
- width: 30%;
- height: 100%;
- padding-left: 5px;
- padding-top: 5px;
- visualisationaware:true;
-}
-
-box#profiles_pages_landscape{
- block-progression: tb;
- direction: rtl;
- height: adaptive;
-}
-
-box#clock_container_landscape{
-
- display: block;
- visibility: visible;
- position: static;
- nav-index: appearance;
- block-progression: tb;
- background-color: "SKIN(268458534 9906)";
- height: 10.74u;
- width: auto;
- margin-bottom: 0.55u;
- visualisationaware:true;
- _s60-initial-focus: 2;
-}
-
-box#clock_container_landscape:focus{
- background-color: "SKIN(268458534 5120 9)";
-}
-
-box#date_container_landscape
+trigger#hs_popup_open_up
{
- width: auto;
- direction: rtl;
- block-progression: rl;
- height: 6.7u;
- margin-bottom: 0.55u;
- visualisationaware:true;
-}
-
-box#profile_softindicator_landscape
-{
- width: auto;
- direction: rtl;
- block-progression: tb;
- background-color: "SKIN(268458534 9906)";
- nav-index: appearance;
- height: 6.7u;
- margin-bottom: 0.55u;
- visualisationaware:true;
-}
-
-clock#clock_landscape{
- display: block;
- visibility: visible;
- position: static;
- width: 100%;
- height: auto;
- direction: rtl;
- block-progression: tb;
- background: none;
- nav-index: appearance;
- _s60-format: locale;
- _s60-ampm-font-size: 16px;
- _s60-digital-font-size: 56px;
- color: white;
+ display: none;
}
-clock:focus{
- background-color: "SKIN(268458534 5120 9)";
-}
-/* Date in the clock widget */
-text#datetext{
- nav-index: appearance;
- text-align: center;
- padding-top: 0.5u;
- padding-bottom: 0.5u;
- width: 100%;
- height: 24%;
- font-family: EAknLogicalFontPrimaryFont;
- font-size: 3u;
- color: white;
-}
-/* Date in the clock widget */
-text#datetext:focus{
- background-color: "SKIN(268458534 5120 9)";
-}
-
-/* Date in separate widget above profiles */
-
-box#date_content_landscape
-{
- width: inherit;
- height: inherit;
-}
-
-text#datetext2_landscape
-{
- text-align: center;
- width: auto;
- height: auto;
- font-family: EAknLogicalFontPrimaryFont;
- font-size: 3u;
- color: white;
-}
-
-box#profile_softindicator:focus
-{
- focus-background:"SKIN(268458534 5120 9)";
-}
-
-image#profileicon {
- display: block;
- visibility: hidden;
- width: 18px;
- height: 20px;
- position: static;
- margin-top: auto;
- z-index: 2;
-}
-
-image#SatIdleModeIcon
-{
- display: block;
- visibility: hidden;
- width: 18px;
- height: 20px;
- position: static;
- margin-top: auto;
-}
-
-text#profiletext
-{
- text-align: center;
- margin-left: 2px;
- margin-right: 2px;
- width: adaptive;
- height: adaptive;
- font-family: EAknLogicalFontPrimaryFont;
- font-size: 3u;
- color:"SKIN(268458534 13056 19)";
-}
-
-/* Profiles dialog */
-listquerydialog#profiledialog
-{
- /* Avkon dialog is not layout capable */
- display: none;
-}
-
-/* Default system profiles */
-text.systemprofileitem
+trigger#hs_popup_open_up:edit
{
display: block;
}
-/* Placeholders for profiles added by user */
-text.userprofileitem
+softkey#rsk
{
- display: none;
-}
-
-/******************
- SOFT INDICATOR WIDGET AREA
-*******************/
-
-newsticker.SIText {
- text-align: center;
- display: block;
- visibility: visible;
- width: auto;
- margin-left: 2px;
- margin-right: 2px;
- font-family: EAknLogicalFontPrimaryFont;
- font-size: 3u;
- white-space-collapse: collapse;
- _s60-scroll-behaviour: alternate;
- /*_s60-scroll-behaviour: scroll;*/
- _s60-display-time: 2000;
- _s60-scroll-loop: false;
- _s60-start-delay: 0;
- _s60-restart-after-update: true;
- color: white;
- /*color:"SKIN(268458534 13056 19)";*/
+ _s60-longtap: true;
+ _s60-aspect-ratio: preserve;
}
-box#NT_CUGMCN_landscape
+softkey#msk_ltr
{
- text-align: center;
- margin-left: auto;
- margin-right: auto;
- width: adaptive;
- height: auto;
- block-progression: rl;
+ display: block;
}
-box#NT_SATVHZ_landscape
-{
- display: none;
- text-align: center;
- margin-left: auto;
- margin-right: auto;
- width: adaptive;
- height: auto;
- block-progression: rl;
-}
-
-title#title_vhz_landscape
-{
- display: none;
-}
-
-title#title_sat_landscape
-{
- display: none;
-}
-
-image#SatIdleModeIcon_portrait
-{
- display: none;
-}
-
-image#SatIdleModeIcon_landscape
+softkey#msk_rtl
{
display: none;
}
-/************
-Page switcher
-*************
-box#switcher{
- display: block;
- visibility: visible;
- block-progression: rl;
- direction: ltr;
- height: 4.5u;
- background-color: "SKIN(268458534 9906)";
- background-size: 100%;
- margin-top: 0.55u;
-}
-
-box#switcher:focus {
- background-color: "SKIN(268458534 5120 9)";
-}
-
-text#switchertext
-{
- text-align: center;
- margin-left: auto;
- margin-right: auto;
- width: adaptive;
- height: 3.5u;
- font-family: EAknLogicalFontPrimaryFont;
- font-size: 3u;
- color:"SKIN(268458534 13056 19)";
- color: white;
- padding-top: 0.5u;
- padding-bottom: 0.5u;
-}
-
-image#switcherimage
-{
- position: static;
- height: 3.5u;
- width: 3.5u;
- margin-top: 0.5u;
- margin-left: 2u;
-}
-*/
-
-menuitem#webonlineitem
-{
- display: block;
-}
-
-menuitem#webonlineitem:edit
-{
- display: none;
-}
-
-menuitem#webofflineitem
-{
- display: block;
-}
-
-menuitem#webofflineitem:edit
-{
- display: none;
-}
-
-box#main_plugins{
- block-progression: tb;
- display: block;
- visibility: visible;
- padding-left: 1.7u;
- padding-right: 1.7u;
-}
-
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/57/view.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/57/view.css Tue Sep 14 20:58:58 2010 +0300
@@ -1,543 +1,73 @@
-view {
- display: block;
- position: static;
- width: 100%;
- height: 100%;
+view
+{
direction: rtl;
block-progression: tb;
background-image: wallpaper;
- nav-index: appearance;
- _s60-focus-visibility: true;
- _s60-status-pane-layout: widescreen-flat-3softkeys;
-
-}
-
-trigger.western{
- display: none;
-}
-
-
-/** Softkeys **/
-softkey.normal_mode_sk
-{
- display: block;
-}
-
-softkey.normal_mode_sk:edit
-{
- display: none;
-}
+ swipe: true;
-softkey.edit_mode_sk
-{
- display: none;
-}
-
-softkey.edit_mode_sk:edit
-{
- display: block;
-}
-
-/** General **/
-
-plugin.widget_full_width{
- /* every plug-in decides its own height */
- height: adaptive;
- background-color: "SKIN(268458534 9906)";
- background-size: 100%;
- width: 100%;
-/* padding-left: 1.7u;
- padding-right: 1.7u;*/
- margin-bottom: 0.55u;
- nav-index: auto;
-}
-
-plugin.widget_full_width:focus {
- focus-background:"SKIN(268458534 9896)";
+ _s60-status-pane-layout: widescreen-flat-3softkeys;
}
-plugin:edit {
- background-color:"SKIN(270501603 8582)";
-}
-
-text{
- text-align: center;
- font-family: tahoma;
- font-size: 3.0u;
- /*color:"SKIN(268458534 13056 19)";*/
- color: white;
-}
-
-/************
-Page switcher
-*************
-
-text#switchertext{
- position: static;
- text-align: right;
- margin-left: 6.0u;
-}
-
-image#switcherimage{
- position: absolute;
- top: 1.4u;
- left: 2.5u;
- height: 3.5u;
- width: 3.0u;
- _s60-aspect-ratio: preserve;
-}
-*/
-
-
-/******************
-container areas
-******************/
-box#mainbox{
- width: 100%;
- height: 100%;
-}
-
-box.profile_date
+box#plugins_container
{
- background-color: "SKIN(268458534 9916)";
- nav-index: appearance;
- height: auto;
-}
-
-box.profile_date:focus
-{
- background-color: "SKIN(268458534 5120 9)";
+ direction: rtl;
+ block-progression: tb;
}
-
-/*********************************************
-Clock Profiles - portrait specific containers
-**********************************************/
+plugin.miniplugins
+{
+ height: 115px;
+ width: 176px;
-box#clock_profiles_portrait{
- display: block;
- visibility: visible;
- direction: rtl;
- block-progression: rl;
- padding-left: 1.7u;
- padding-right: 1.7u;
- margin-bottom: 0.55u;
- height:13.86u;
- visualisationaware:true;
-}
+ margin-top: 9px;
+ margin-right: 9px;
+
+ _s60-longtap: true;
-box#profiles_pages_portrait{
- block-progression: tb;
- direction: rtl;
- height: adaptive;
-}
-
-box#clock_container_portrait{
- display: block;
- visibility: visible;
- position: static;
nav-index: appearance;
- block-progression: tb;
- background-color: "SKIN(268458534 9906)";
-
- margin-left: 0.7u;
- visualisationaware:true;
- _s60-initial-focus: 1;
-}
-
-box#clock_container_portrait:focus{
- background-color: "SKIN(268458534 5120 9)";
-}
-
-clock#clock_portrait{
- display: block;
- visibility: visible;
- position: static;
- width: auto;
- /*height: 70%;*/
- height: auto;
- direction: rtl;
- block-progression: tb;
- background: none;
- nav-index: appearance;
- _s60-format: locale;
- _s60-ampm-font-size: 16px;
- _s60-digital-font-size: 56px;
- color: white;
}
-box#date_container_portrait
-{
- width: auto;
- direction: rtl;
- block-progression: rl;
- height: 4.05u;
- margin-bottom: 0.55u;
- padding-top: 3px;
- visualisationaware:true;
-}
-
-box#date_content_portrait
+plugin.plugins
{
- width: adaptive;
- height: adaptive;
-}
+ height: 115px;
+ width: 436px;
-text#datetext2_portrait
-{
- text-align: center;
- width: auto;
- height: auto;
- font-family: EAknLogicalFontPrimaryFont;
- font-size: 3u;
- color: white;
+ margin-top: 9px;
+ margin-right: 10px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
}
-box#profile_softindicator_portrait
-{
- width: auto;
- direction: rtl;
- block-progression: tb;
- background-color: "SKIN(268458534 9906)";
- nav-index: appearance;
- height: 9.0u;
- visualisationaware:true;
-}
-
-box#NT_CUGMCN_portrait
-{
- text-align: center;
- width: adaptive;
- height: auto;
- block-progression: rl;
-}
-
-
-box#NT_SATVHZ_portrait
-{
- display: none;
- text-align: center;
- width: adaptive;
- height: auto;
- block-progression: rl;
-}
-
-title#title_vhz_portrait
-{
- display: none;
-}
-
-title#title_sat_portrait
+trigger#hs_popup_open_hold:edit
{
display: none;
}
-/*********************************************
-Clock Profiles - landscape specific containers
-**********************************************/
-
-box#clock_profiles_landscape{
- display: block;
- visibility: visible;
- direction: rtl;
- block-progression: tb;
- width: 30%;
- height: 100%;
- padding-left: 5px;
- padding-top: 5px;
- visualisationaware:true;
-}
-
-box#profiles_pages_landscape{
- block-progression: tb;
- direction: rtl;
- height: adaptive;
-}
-
-box#clock_container_landscape{
-
- display: block;
- visibility: visible;
- position: static;
- nav-index: appearance;
- block-progression: tb;
- background-color: "SKIN(268458534 9906)";
- height: 10.74u;
- width: auto;
- margin-bottom: 0.55u;
- visualisationaware:true;
- _s60-initial-focus: 2;
-}
-
-box#clock_container_landscape:focus{
- background-color: "SKIN(268458534 5120 9)";
-}
-
-box#date_container_landscape
+trigger#hs_popup_open_up
{
- width: auto;
- direction: rtl;
- block-progression: rl;
- height: 6.7u;
- margin-bottom: 0.55u;
- visualisationaware:true;
-}
-
-box#profile_softindicator_landscape
-{
- width: auto;
- direction: rtl;
- block-progression: tb;
- background-color: "SKIN(268458534 9906)";
- nav-index: appearance;
- height: 6.7u;
- margin-bottom: 0.55u;
- visualisationaware:true;
-}
-
-clock#clock_landscape{
- display: block;
- visibility: visible;
- position: static;
- width: 100%;
- height: auto;
- direction: rtl;
- block-progression: tb;
- background: none;
- nav-index: appearance;
- _s60-format: locale;
- _s60-ampm-font-size: 16px;
- _s60-digital-font-size: 56px;
- color: white;
+ display: none;
}
-clock:focus{
- background-color: "SKIN(268458534 5120 9)";
-}
-/* Date in the clock widget */
-text#datetext{
- nav-index: appearance;
- text-align: center;
- padding-top: 0.5u;
- padding-bottom: 0.5u;
- width: 100%;
- height: 24%;
- font-family: EAknLogicalFontPrimaryFont;
- font-size: 3u;
- color: white;
-}
-/* Date in the clock widget */
-text#datetext:focus{
- background-color: "SKIN(268458534 5120 9)";
-}
-
-/* Date in separate widget above profiles */
-
-box#date_content_landscape
-{
- width: inherit;
- height: inherit;
-}
-
-text#datetext2_landscape
-{
- text-align: center;
- width: auto;
- height: auto;
- font-family: EAknLogicalFontPrimaryFont;
- font-size: 3u;
- color: white;
-}
-
-box#profile_softindicator:focus
-{
- focus-background:"SKIN(268458534 5120 9)";
-}
-
-image#profileicon {
- display: block;
- visibility: hidden;
- width: 18px;
- height: 20px;
- position: static;
- margin-top: auto;
- z-index: 2;
-}
-
-image#SatIdleModeIcon
-{
- display: block;
- visibility: hidden;
- width: 18px;
- height: 20px;
- position: static;
- margin-top: auto;
-}
-
-text#profiletext
-{
- text-align: center;
- margin-left: 2px;
- margin-right: 2px;
- width: adaptive;
- height: adaptive;
- font-family: EAknLogicalFontPrimaryFont;
- font-size: 3u;
- color:"SKIN(268458534 13056 19)";
-}
-
-/* Profiles dialog */
-listquerydialog#profiledialog
-{
- /* Avkon dialog is not layout capable */
- display: none;
-}
-
-/* Default system profiles */
-text.systemprofileitem
+trigger#hs_popup_open_up:edit
{
display: block;
}
-/* Placeholders for profiles added by user */
-text.userprofileitem
+softkey#rsk
{
- display: none;
-}
-
-/******************
- SOFT INDICATOR WIDGET AREA
-*******************/
-
-newsticker.SIText {
- text-align: center;
- display: block;
- visibility: visible;
- width: auto;
- margin-left: 2px;
- margin-right: 2px;
- font-family: EAknLogicalFontPrimaryFont;
- font-size: 3u;
- white-space-collapse: collapse;
- _s60-scroll-behaviour: alternate;
- /*_s60-scroll-behaviour: scroll;*/
- _s60-display-time: 2000;
- _s60-scroll-loop: false;
- _s60-start-delay: 0;
- _s60-restart-after-update: true;
- color: white;
- /*color:"SKIN(268458534 13056 19)";*/
+ _s60-longtap: true;
+ _s60-aspect-ratio: preserve;
}
-box#NT_CUGMCN_landscape
+softkey#msk_ltr
{
- text-align: center;
- margin-left: auto;
- margin-right: auto;
- width: adaptive;
- height: auto;
- block-progression: rl;
+ display: block;
}
-box#NT_SATVHZ_landscape
-{
- display: none;
- text-align: center;
- margin-left: auto;
- margin-right: auto;
- width: adaptive;
- height: auto;
- block-progression: rl;
-}
-
-title#title_vhz_landscape
-{
- display: none;
-}
-
-title#title_sat_landscape
-{
- display: none;
-}
-
-image#SatIdleModeIcon_portrait
-{
- display: none;
-}
-
-image#SatIdleModeIcon_landscape
+softkey#msk_rtl
{
display: none;
}
-/************
-Page switcher
-*************
-box#switcher{
- display: block;
- visibility: visible;
- block-progression: rl;
- direction: ltr;
- height: 4.5u;
- background-color: "SKIN(268458534 9906)";
- background-size: 100%;
- margin-top: 0.55u;
-}
-
-box#switcher:focus {
- background-color: "SKIN(268458534 5120 9)";
-}
-
-text#switchertext
-{
- text-align: center;
- margin-left: auto;
- margin-right: auto;
- width: adaptive;
- height: 3.5u;
- font-family: EAknLogicalFontPrimaryFont;
- font-size: 3u;
- color:"SKIN(268458534 13056 19)";
- color: white;
- padding-top: 0.5u;
- padding-bottom: 0.5u;
-}
-
-image#switcherimage
-{
- position: static;
- height: 3.5u;
- width: 3.5u;
- margin-top: 0.5u;
- margin-left: 2u;
-}
-*/
-
-menuitem#webonlineitem
-{
- display: block;
-}
-
-menuitem#webonlineitem:edit
-{
- display: none;
-}
-
-menuitem#webofflineitem
-{
- display: block;
-}
-
-menuitem#webofflineitem:edit
-{
- display: none;
-}
-
-box#main_plugins{
- block-progression: tb;
- display: block;
- visibility: visible;
- padding-left: 1.7u;
- padding-right: 1.7u;
-}
-
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/94/view.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/94/view.css Tue Sep 14 20:58:58 2010 +0300
@@ -1,543 +1,73 @@
-view {
- display: block;
- position: static;
- width: 100%;
- height: 100%;
+view
+{
direction: rtl;
block-progression: tb;
background-image: wallpaper;
- nav-index: appearance;
- _s60-focus-visibility: true;
- _s60-status-pane-layout: widescreen-flat-3softkeys;
-
-}
-
-trigger.western{
- display: none;
-}
-
-
-/** Softkeys **/
-softkey.normal_mode_sk
-{
- display: block;
-}
-
-softkey.normal_mode_sk:edit
-{
- display: none;
-}
+ swipe: true;
-softkey.edit_mode_sk
-{
- display: none;
-}
-
-softkey.edit_mode_sk:edit
-{
- display: block;
-}
-
-/** General **/
-
-plugin.widget_full_width{
- /* every plug-in decides its own height */
- height: adaptive;
- background-color: "SKIN(268458534 9906)";
- background-size: 100%;
- width: 100%;
-/* padding-left: 1.7u;
- padding-right: 1.7u;*/
- margin-bottom: 0.55u;
- nav-index: auto;
-}
-
-plugin.widget_full_width:focus {
- focus-background:"SKIN(268458534 9896)";
+ _s60-status-pane-layout: widescreen-flat-3softkeys;
}
-plugin:edit {
- background-color:"SKIN(270501603 8582)";
-}
-
-text{
- text-align: center;
- font-family: tahoma;
- font-size: 3.0u;
- /*color:"SKIN(268458534 13056 19)";*/
- color: white;
-}
-
-/************
-Page switcher
-*************
-
-text#switchertext{
- position: static;
- text-align: right;
- margin-left: 6.0u;
-}
-
-image#switcherimage{
- position: absolute;
- top: 1.4u;
- left: 2.5u;
- height: 3.5u;
- width: 3.0u;
- _s60-aspect-ratio: preserve;
-}
-*/
-
-
-/******************
-container areas
-******************/
-box#mainbox{
- width: 100%;
- height: 100%;
-}
-
-box.profile_date
+box#plugins_container
{
- background-color: "SKIN(268458534 9916)";
- nav-index: appearance;
- height: auto;
-}
-
-box.profile_date:focus
-{
- background-color: "SKIN(268458534 5120 9)";
+ direction: rtl;
+ block-progression: tb;
}
-
-/*********************************************
-Clock Profiles - portrait specific containers
-**********************************************/
+plugin.miniplugins
+{
+ height: 115px;
+ width: 176px;
-box#clock_profiles_portrait{
- display: block;
- visibility: visible;
- direction: rtl;
- block-progression: rl;
- padding-left: 1.7u;
- padding-right: 1.7u;
- margin-bottom: 0.55u;
- height:13.86u;
- visualisationaware:true;
-}
+ margin-top: 9px;
+ margin-right: 9px;
+
+ _s60-longtap: true;
-box#profiles_pages_portrait{
- block-progression: tb;
- direction: rtl;
- height: adaptive;
-}
-
-box#clock_container_portrait{
- display: block;
- visibility: visible;
- position: static;
nav-index: appearance;
- block-progression: tb;
- background-color: "SKIN(268458534 9906)";
-
- margin-left: 0.7u;
- visualisationaware:true;
- _s60-initial-focus: 1;
-}
-
-box#clock_container_portrait:focus{
- background-color: "SKIN(268458534 5120 9)";
-}
-
-clock#clock_portrait{
- display: block;
- visibility: visible;
- position: static;
- width: auto;
- /*height: 70%;*/
- height: auto;
- direction: rtl;
- block-progression: tb;
- background: none;
- nav-index: appearance;
- _s60-format: locale;
- _s60-ampm-font-size: 16px;
- _s60-digital-font-size: 56px;
- color: white;
}
-box#date_container_portrait
-{
- width: auto;
- direction: rtl;
- block-progression: rl;
- height: 4.05u;
- margin-bottom: 0.55u;
- padding-top: 3px;
- visualisationaware:true;
-}
-
-box#date_content_portrait
+plugin.plugins
{
- width: adaptive;
- height: adaptive;
-}
+ height: 115px;
+ width: 436px;
-text#datetext2_portrait
-{
- text-align: center;
- width: auto;
- height: auto;
- font-family: EAknLogicalFontPrimaryFont;
- font-size: 3u;
- color: white;
+ margin-top: 9px;
+ margin-right: 10px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
}
-box#profile_softindicator_portrait
-{
- width: auto;
- direction: rtl;
- block-progression: tb;
- background-color: "SKIN(268458534 9906)";
- nav-index: appearance;
- height: 9.0u;
- visualisationaware:true;
-}
-
-box#NT_CUGMCN_portrait
-{
- text-align: center;
- width: adaptive;
- height: auto;
- block-progression: rl;
-}
-
-
-box#NT_SATVHZ_portrait
-{
- display: none;
- text-align: center;
- width: adaptive;
- height: auto;
- block-progression: rl;
-}
-
-title#title_vhz_portrait
-{
- display: none;
-}
-
-title#title_sat_portrait
+trigger#hs_popup_open_hold:edit
{
display: none;
}
-/*********************************************
-Clock Profiles - landscape specific containers
-**********************************************/
-
-box#clock_profiles_landscape{
- display: block;
- visibility: visible;
- direction: rtl;
- block-progression: tb;
- width: 30%;
- height: 100%;
- padding-left: 5px;
- padding-top: 5px;
- visualisationaware:true;
-}
-
-box#profiles_pages_landscape{
- block-progression: tb;
- direction: rtl;
- height: adaptive;
-}
-
-box#clock_container_landscape{
-
- display: block;
- visibility: visible;
- position: static;
- nav-index: appearance;
- block-progression: tb;
- background-color: "SKIN(268458534 9906)";
- height: 10.74u;
- width: auto;
- margin-bottom: 0.55u;
- visualisationaware:true;
- _s60-initial-focus: 2;
-}
-
-box#clock_container_landscape:focus{
- background-color: "SKIN(268458534 5120 9)";
-}
-
-box#date_container_landscape
+trigger#hs_popup_open_up
{
- width: auto;
- direction: rtl;
- block-progression: rl;
- height: 6.7u;
- margin-bottom: 0.55u;
- visualisationaware:true;
-}
-
-box#profile_softindicator_landscape
-{
- width: auto;
- direction: rtl;
- block-progression: tb;
- background-color: "SKIN(268458534 9906)";
- nav-index: appearance;
- height: 6.7u;
- margin-bottom: 0.55u;
- visualisationaware:true;
-}
-
-clock#clock_landscape{
- display: block;
- visibility: visible;
- position: static;
- width: 100%;
- height: auto;
- direction: rtl;
- block-progression: tb;
- background: none;
- nav-index: appearance;
- _s60-format: locale;
- _s60-ampm-font-size: 16px;
- _s60-digital-font-size: 56px;
- color: white;
+ display: none;
}
-clock:focus{
- background-color: "SKIN(268458534 5120 9)";
-}
-/* Date in the clock widget */
-text#datetext{
- nav-index: appearance;
- text-align: center;
- padding-top: 0.5u;
- padding-bottom: 0.5u;
- width: 100%;
- height: 24%;
- font-family: EAknLogicalFontPrimaryFont;
- font-size: 3u;
- color: white;
-}
-/* Date in the clock widget */
-text#datetext:focus{
- background-color: "SKIN(268458534 5120 9)";
-}
-
-/* Date in separate widget above profiles */
-
-box#date_content_landscape
-{
- width: inherit;
- height: inherit;
-}
-
-text#datetext2_landscape
-{
- text-align: center;
- width: auto;
- height: auto;
- font-family: EAknLogicalFontPrimaryFont;
- font-size: 3u;
- color: white;
-}
-
-box#profile_softindicator:focus
-{
- focus-background:"SKIN(268458534 5120 9)";
-}
-
-image#profileicon {
- display: block;
- visibility: hidden;
- width: 18px;
- height: 20px;
- position: static;
- margin-top: auto;
- z-index: 2;
-}
-
-image#SatIdleModeIcon
-{
- display: block;
- visibility: hidden;
- width: 18px;
- height: 20px;
- position: static;
- margin-top: auto;
-}
-
-text#profiletext
-{
- text-align: center;
- margin-left: 2px;
- margin-right: 2px;
- width: adaptive;
- height: adaptive;
- font-family: EAknLogicalFontPrimaryFont;
- font-size: 3u;
- color:"SKIN(268458534 13056 19)";
-}
-
-/* Profiles dialog */
-listquerydialog#profiledialog
-{
- /* Avkon dialog is not layout capable */
- display: none;
-}
-
-/* Default system profiles */
-text.systemprofileitem
+trigger#hs_popup_open_up:edit
{
display: block;
}
-/* Placeholders for profiles added by user */
-text.userprofileitem
+softkey#rsk
{
- display: none;
-}
-
-/******************
- SOFT INDICATOR WIDGET AREA
-*******************/
-
-newsticker.SIText {
- text-align: center;
- display: block;
- visibility: visible;
- width: auto;
- margin-left: 2px;
- margin-right: 2px;
- font-family: EAknLogicalFontPrimaryFont;
- font-size: 3u;
- white-space-collapse: collapse;
- _s60-scroll-behaviour: alternate;
- /*_s60-scroll-behaviour: scroll;*/
- _s60-display-time: 2000;
- _s60-scroll-loop: false;
- _s60-start-delay: 0;
- _s60-restart-after-update: true;
- color: white;
- /*color:"SKIN(268458534 13056 19)";*/
+ _s60-longtap: true;
+ _s60-aspect-ratio: preserve;
}
-box#NT_CUGMCN_landscape
+softkey#msk_ltr
{
- text-align: center;
- margin-left: auto;
- margin-right: auto;
- width: adaptive;
- height: auto;
- block-progression: rl;
+ display: block;
}
-box#NT_SATVHZ_landscape
-{
- display: none;
- text-align: center;
- margin-left: auto;
- margin-right: auto;
- width: adaptive;
- height: auto;
- block-progression: rl;
-}
-
-title#title_vhz_landscape
-{
- display: none;
-}
-
-title#title_sat_landscape
-{
- display: none;
-}
-
-image#SatIdleModeIcon_portrait
-{
- display: none;
-}
-
-image#SatIdleModeIcon_landscape
+softkey#msk_rtl
{
display: none;
}
-/************
-Page switcher
-*************
-box#switcher{
- display: block;
- visibility: visible;
- block-progression: rl;
- direction: ltr;
- height: 4.5u;
- background-color: "SKIN(268458534 9906)";
- background-size: 100%;
- margin-top: 0.55u;
-}
-
-box#switcher:focus {
- background-color: "SKIN(268458534 5120 9)";
-}
-
-text#switchertext
-{
- text-align: center;
- margin-left: auto;
- margin-right: auto;
- width: adaptive;
- height: 3.5u;
- font-family: EAknLogicalFontPrimaryFont;
- font-size: 3u;
- color:"SKIN(268458534 13056 19)";
- color: white;
- padding-top: 0.5u;
- padding-bottom: 0.5u;
-}
-
-image#switcherimage
-{
- position: static;
- height: 3.5u;
- width: 3.5u;
- margin-top: 0.5u;
- margin-left: 2u;
-}
-*/
-
-menuitem#webonlineitem
-{
- display: block;
-}
-
-menuitem#webonlineitem:edit
-{
- display: none;
-}
-
-menuitem#webofflineitem
-{
- display: block;
-}
-
-menuitem#webofflineitem:edit
-{
- display: none;
-}
-
-box#main_plugins{
- block-progression: tb;
- display: block;
- visibility: visible;
- padding-left: 1.7u;
- padding-right: 1.7u;
-}
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286ea.confml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,483 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration name="VGA Homescreen 2" version="1" xmlns="http://www.s60.com/xml/confml/2" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <feature name="VGA Homescreen 2 widgets" ref="VGA_HomescreenPlugins_2">
+ <setting name="Max Widgets" ref="MaxWidgets" type="string">
+ <desc>Maximum widget amount in Homescreen 2 page. Customizable</desc>
+ </setting>
+ <setting name="Use Empty Widgets" readOnly="true" ref="UseEmptyWidgets" type="boolean">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Item id for empty widgets definition in view" readOnly="true" ref="ItemIdEmptyWidgets" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Property name for empty widgets definition in view" readOnly="true" ref="PropertyEmptyWidgets" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="background path" ref="BackGroundPath" type="string">
+ <desc>Path of the Wallpaper resource. Customizable. </desc>
+ </setting>
+ <setting name="Item id wallpaper" readOnly="true" ref="ItemIdWallpaper" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Wallpaper property name" readOnly="true" ref="WallpaperPropertyName" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Widgets" ref="Plugins" type="sequence">
+ <desc>Widgets in the Homescreen 2</desc>
+ <setting name="Widget" ref="Uid" type="string">
+ <desc>Widget name</desc>
+ <option name="Empty" value="0x2001f47f" />
+ <option name="ClockDate" value="0x200286E6" />
+ <option name="Desktop" value="0x20018EEE" />
+ <option name="Profilemode" value="0x200286e7" />
+ <option name="wrtplugin_1" value="0x20022FD4"/>
+ <option name="wrtplugin_2" value="0x20022FD5"/>
+ <option name="wrtplugin_3" value="0x20022FD6"/>
+ <option name="wrtplugin_4" value="0x20022FD7"/>
+ <option name="wrtplugin_5" value="0x20022FD8"/>
+ <option name="wrtplugin_6" value="0x20022FD9"/>
+ <option name="wrtplugin_7" value="0x20022FDA"/>
+ <option name="wrtplugin_8" value="0x20022FDB"/>
+ <option name="wrtplugin_9" value="0x2001CB7D"/>
+ <option name="wrtplugin_10" value="0x2001CB7E"/>
+ <option name="wrtplugin_11" value="0x2001CB7F"/>
+ <option name="wrtplugin_12" value="0x200286EE"/>
+ </setting>
+ <setting name="Bundle Identifier" ref="BundleIdentifier" type="string">
+ <desc>Bundle identifier for the (C)WRT widgets. None for the native widgets</desc>
+ <option name="None / Automatic" value="0" />
+ <option name="8TV Catch Up" value="com.nerdattack.widget.8TV"/>
+ <option name="Aftonbladet WebbTV" value="apegroup.aftonbladet.webbtv.symbian3"/>
+ <option name="Al Jazeera" value="si.inova.verve.aljazeera"/>
+ <option name="BBC Arabic Web TV" value="com.nokia.forum.bbcatv1.widget"/>
+ <option name="BH TV" value="com.bollywoodhungama.widget.BollywoodHungamaTV"/>
+ <option name="Channel NewsAsia" value="Channel.newsasia"/>
+ <option name="CNN Video" value="com.cnn"/>
+ <option name="DigiturkWebTV" value="com.digiturkwebtv.widget"/>
+ <option name="EFE Videos" value="com.ericsson.efe.widget"/>
+ <option name="E!" value="com.moderati.eonline"/>
+ <option name="Bollywood" value="br.org.indt.widget.eros"/>
+ <option name="Ovi Files" value="com.nokia.ss.sas.filesql"/>
+ <option name="Hi5" value="com.hi5.widget.Launcher"/>
+ <option name="凤凰电视" value="com.ifeng.www.webtv.widget"/>
+ <option name="Chat" value="com.nokia.ChatClient"/>
+ <option name="芒果 TV" value="com.imgo.tv"/>
+ <option name="India Today" value="br.org.indt.widget.indiatoday"/>
+ <option name="BBC iPlayer" value="com.bbc.widget.iplayer"/>
+ <option name="Contacts' latest activities" value="com.nokia.somawebui.xwidget"/>
+ <option name="M1TV" value="com.m1tv.basic.widget"/>
+ <option name="Makansutr" value="com.nerdattack.wrt.Makansutra"/>
+ <option name="bose" value="com.bose.basic.widget"/>
+ <option name="SingTel MTVS" value="com.nokia.widget.sapi.mtvs"/>
+ <option name="Nat Geo" value="com.natgeo"/>
+ <option name="NRK Mobil-TV" value="no.nrk.mobil.mobiltv.widget"/>
+ <option name="ontv" value="ontv.cc.on.tv.widget"/>
+ <option name="ovi" value="com.nokia.ovi"/>
+ <option name="Movie Teasers" value="com.movieteasers"/>
+ <option name="Schweizer Fernsehen" value="com.sftvreader.basic.widget"/>
+ <option name="Sky News On Demand" value="com.nerdattack.widget.SKYNEWS"/>
+ <option name="Social" value="com.nokia.socialmixer.v1"/>
+ <option name="æœç‹å¨±ä¹" value="com.sohu.widget.webtv4ovi"/>
+ <option name="SSOUI" value="ovi.serviceui.SSOUI"/>
+ <option name="Terra TV" value="com.terra.widget.wrt.tv"/>
+ <option name="Terra TV Lat" value="com.terra.widget.wrt.tv.latam"/>
+ <option name="topApps" value="com.topApps.basic.widget"/>
+ <option name="Tudou" value="com.Tudou.widget"/>
+ <option name="tv2news" value="com.nokia.forum.widget.tv2news"/>
+ <option name="TV2Play" value="no.tv2.tv2play.widget"/>
+ <option name="TV3 Catch Up" value="com.nerdattack.widget.TV3"/>
+ <option name="ВеÑти" value="com.vesti.basic.widget"/>
+ <option name="Viasat No" value="no.viasat.widget"/>
+ <option name="Viasat Swe" value="se.viasat.widget"/>
+ <option name="Virtual Malaysia" value="com.nerdattack.widget.VirtualMalaysia"/>
+ <option name="央广新浪" value="cn.com.sina.3g"/>
+ <option name="Web TV Demo" value="com.nokia.forum.webtv.widget"/>
+ <option name="Yle Areena" value="com.tieto.yle"/>
+ <option name="优酷" value="com.youku.s605th.webtv"/>
+ </setting>
+ <setting name="Template Identifier" ref="TemplateIdentifier" type="selection">
+ <desc>Templeate identifier for the (C)WRT widgets. None for the native widgets</desc>
+ <option name="None" value="0" />
+ <option name="Single row icon widget template" value="0x2001FDC0" />
+ <option name="Single row widget template" value="0x2001FDC1" />
+ <option name="Double row icon widget template" value="0x2001FDBD" />
+ <option name="Double row widget template" value="0x2001FDC2" />
+ <option name="Triple row icon widget template" value="0x2001FDBE" />
+ <option name="Triple row widget template" value="0x2001FDBF" />
+ <option name="Wideimage template" value="0x10009DFF" />
+ </setting>
+ <setting name="locking Status" ref="LockingStatus" type="selection">
+ <desc>Locking status for the widget 1 in Homescreen 2 page</desc>
+ <option name="None" value="none" />
+ <option name="Locked" value="locked" />
+ <option name="Permanent" value="permanent" />
+ </setting>
+ <setting name="Customize Shortcut widget" ref="ShortcutWidget" type="selection">
+ <desc>Customize enabler for desktop/shortcut widget</desc>
+ <option name="Not Customize desktop Widget" value="0" />
+ <option name="Customize desktop widget" value="1" />
+ </setting>
+ <setting name="Customize 1st Shortcut" ref="Customize1Shortcut" type="selection">
+ <desc>Customize 1st item in desktop widget</desc>
+ <option name="Not Customize 1st shortcut" value="0" />
+ <option name="Customize 1st shortcut" value="1" />
+ </setting>
+ <setting name="1st Shortcut type" ref="Shortcut1Type" type="selection">
+ <desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
+ <option name="Application" value="application" />
+ <option name="Bookmark" value="bookmark" />
+ <option name="Shortcut" value="shortcut" />
+ </setting>
+ <setting name="1st Shortcut Uid" ref="Shortcut1Uid" type="string">
+ <desc>Uid for the application, Menu content Uid for the bookmarks and shortcuts.</desc>
+ </setting>
+ <setting name="1st Shortcut View" ref="Shortcut1View" type="string">
+ <desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
+ </setting>
+ <setting name="1st Shortcut Param" ref="Shortcut1Param" type="string">
+ <desc>Params for shortcut. For example: messaging:msg</desc>
+ </setting>
+ <setting name="Customize 2nd Shortcut" ref="Customize2Shortcut" type="selection">
+ <desc>Customize 2nd item in desktop widget</desc>
+ <option name="Not Customize 2nd shortcut" value="0" />
+ <option name="Customize 2nd shortcut" value="1" />
+ </setting>
+ <setting name="2nd Shortcut Application" ref="Shortcut2Type" type="selection">
+ <desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
+ <option name="Application" value="application" />
+ <option name="Bookmark" value="bookmark" />
+ <option name="Shortcut" value="shortcut" />
+ </setting>
+ <setting name="2nd Shortcut Uid" ref="Shortcut2Uid" type="string">
+ <desc>Uid for the application, Menu content Uid for the bookmarks and shortcuts</desc>
+ </setting>
+ <setting name="2nd Shortcut View" ref="Shortcut2View" type="string">
+ <desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
+ </setting>
+ <setting name="2nd Shortcut Param" ref="Shortcut2Param" type="string">
+ <desc>Params for shortcut. messaging:msg</desc>
+ </setting>
+ <setting name="Customize 3rd Shortcut" ref="Customize3Shortcut" type="selection">
+ <desc>Customize 3rd item in desktop widget</desc>
+ <option name="Not Customize 3rd shortcut" value="0" />
+ <option name="Customize 3rd shortcut" value="1" />
+ </setting>
+ <setting name="3rd Shortcut Application" ref="Shortcut3Type" type="selection">
+ <desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
+ <option name="Application" value="application" />
+ <option name="Bookmark" value="bookmark" />
+ <option name="Shortcut" value="shortcut" />
+ </setting>
+ <setting name="3rd Shortcut Uid" ref="Shortcut3Uid" type="string">
+ <desc>Uid for the application,Menu content Uid for the bookmarks and shortcuts.</desc>
+ </setting>
+ <setting name="3rd Shortcut View" ref="Shortcut3View" type="string">
+ <desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
+ </setting>
+ <setting name="3rd Shortcut Param" ref="Shortcut3Param" type="string">
+ <desc>Params for shortcut. messaging:msg</desc>
+ </setting>
+ <setting name="Customize 4th Shortcut" ref="Customize4Shortcut" type="selection">
+ <desc>Customize 4th item in desktop widget</desc>
+ <option name="Not Customize 4th shortcut" value="0" />
+ <option name="Customize 4th shortcut" value="1" />
+ </setting>
+ <setting name="4th ShortCut Application" ref="Shortcut4Type" type="selection">
+ <desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
+ <option name="Application" value="application" />
+ <option name="Bookmark" value="bookmark" />
+ <option name="Shortcut" value="shortcut" />
+ </setting>
+ <setting name="4th Shortcut Uid" ref="Shortcut4Uid" type="string">
+ <desc>Uid for the application, Menu content ids for the bookmarks and shortcuts </desc>
+ </setting>
+ <setting name="4th Shortcut View" ref="Shortcut4View" type="string">
+ <desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
+ </setting>
+ <setting name="4th Shortcut Param" ref="Shortcut4Param" type="string">
+ <desc>Params for shortcut. messaging:msg</desc>
+ </setting>
+ <setting name="Shortcut1 ItemId" readOnly="true" ref="Shortcut1ItemId" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut1 ItemName" readOnly="true" ref="Shortcut1ItemName" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut2 ItemId" readOnly="true" ref="Shortcut2ItemId" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut2 ItemName" readOnly="true" ref="Shortcut2ItemName" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut3 ItemId" readOnly="true" ref="Shortcut3ItemId" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut3 ItemName" readOnly="true" ref="Shortcut3ItemName" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut4 ItemId" readOnly="true" ref="Shortcut4ItemId" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut4 ItemName" readOnly="true" ref="Shortcut4ItemName" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut PropertyNameType" readOnly="true" ref="ShortcutPropertyNameType" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut PropertyNameUid" readOnly="true" ref="ShortcutPropertyNameUid" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut PropertyNameView" readOnly="true" ref="ShortcutPropertyNameView" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut PropertyNameParam" readOnly="true" ref="ShortcutPropertyNameParam" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ </setting>
+ </feature>
+<data>
+ <VGA_HomescreenPlugins_2>
+ <MaxWidgets>6</MaxWidgets>
+ <UseEmptyWidgets>true</UseEmptyWidgets>
+ <ItemIdEmptyWidgets>hs_vga_tch_view</ItemIdEmptyWidgets>
+ <PropertyEmptyWidgets>use_empty_widget</PropertyEmptyWidgets>
+ <ItemIdWallpaper>wallpaper</ItemIdWallpaper>
+ <WallpaperPropertyName>path</WallpaperPropertyName>
+ <BackGroundPath />
+ <Plugins extensionPolicy="replace">
+ <Uid>0x200286e6</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>permanent</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ <Plugins>
+ <Uid>0x200286e7</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>permanent</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ <Plugins>
+ <Uid>0x2001f47f</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>permanent</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ <Plugins>
+ <Uid>0x2001f47f</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>permanent</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ <Plugins>
+ <Uid>0x2001f47f</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>permanent</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ <Plugins>
+ <Uid>0x2001f47f</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>none</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ </VGA_HomescreenPlugins_2>
+ </data>
+</configuration>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286ea.gcfml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="core"/>
+ <tag name="target" value="rofs2"/>
+ <tag name="target" value="rofs3"/>
+ <phase name='post'/> <!-- post phase for making sure that data for all homescreen widgets is available in sequence -->
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="viewconfiguration.xml" target="\private\200159c0\install\view2_200286ea\hsps\00\">
+ <setting ref="VGA_HomescreenPlugins_2/MaxWidgets"/>
+ <setting ref="VGA_HomescreenPlugins_2/UseEmptyWidgets"/>
+ <setting ref="VGA_HomescreenPlugins_2/ItemIdEmptyWidgets"/>
+ <setting ref="VGA_HomescreenPlugins_2/PropertyEmptyWidgets"/>
+ <setting ref="VGA_HomescreenPlugins_2/BackGroundPath"/>
+ <setting ref="VGA_HomescreenPlugins_2/ItemIdWallpaper"/>
+ <setting ref="VGA_HomescreenPlugins_2/WallpaperPropertyName"/>
+ <setting ref="VGA_HomescreenPlugins_2/Shortcut1ItemId"/>
+ <setting ref="VGA_HomescreenPlugins_2/Shortcut1ItemName"/>
+ <setting ref="VGA_HomescreenPlugins_2/Shortcut2ItemId"/>
+ <setting ref="VGA_HomescreenPlugins_2/Shortcut2ItemName"/>
+ <setting ref="VGA_HomescreenPlugins_2/Shortcut3ItemId"/>
+ <setting ref="VGA_HomescreenPlugins_2/Shortcut3ItemName"/>
+ <setting ref="VGA_HomescreenPlugins_2/Shortcut4ItemId"/>
+ <setting ref="VGA_omescreenPlugins_2/Shortcut4ItemName"/>
+ <setting ref="VGA_HomescreenPlugins_2/ShortcutPropertyNameType"/>
+ <setting ref="VGA_HomescreenPlugins_2/ShortcutPropertyNameUid"/>
+ <setting ref="VGA_HomescreenPlugins_2/ShortcutPropertyNameView"/>
+ <setting ref="VGA_HomescreenPlugins_2/ShortcutPropertyNameParam"/>
+ <setting ref="VGA_HomescreenPlugins_2/Plugins"/>
+ <xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xi="http://www.w3.org/2001/xinclude">
+ <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+ <xsl:template match="configuration/data">
+ <configuration>
+ <xsl:attribute name="max_child"><xsl:value-of select="VGA_HomescreenPlugins_2/MaxWidgets"/></xsl:attribute>
+ <control>
+ <settings>
+ <item>
+ <xsl:attribute name="id"><xsl:value-of select="VGA_HomescreenPlugins_2/ItemIdEmptyWidgets"/></xsl:attribute>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="VGA_HomescreenPlugins_2/PropertyEmptyWidgets"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="VGA_HomescreenPlugins_2/UseEmptyWidgets"/></xsl:attribute>
+ </property>
+ </item>
+ <item>
+ <xsl:attribute name="id"><xsl:value-of select="VGA_HomescreenPlugins_2/ItemIdWallpaper"/></xsl:attribute>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="VGA_HomescreenPlugins_2/WallpaperPropertyName"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="VGA_HomescreenPlugins_2/BackGroundPath"/></xsl:attribute>
+ </property>
+ </item>
+ </settings>
+ <plugins>
+ <xsl:for-each select="VGA_HomescreenPlugins_2/Plugins">
+ <plugin>
+ <xsl:attribute name="uid"><xsl:value-of select="Uid"/></xsl:attribute>
+ <xsl:attribute name="bundle_id"><xsl:value-of select="BundleIdentifier"/></xsl:attribute>
+ <xsl:attribute name="template_id"><xsl:value-of select="TemplateIdentifier"/></xsl:attribute>
+ <xsl:attribute name="locking_status"><xsl:value-of select="LockingStatus"/></xsl:attribute>
+ <xsl:if test="ShortcutWidget = 1">
+ <initial_settings>
+ <settings>
+ <xsl:if test="Customize1Shortcut = 1">
+ <item>
+ <xsl:attribute name="id"><xsl:value-of select="Shortcut1ItemId"/></xsl:attribute>
+ <xsl:attribute name="name"><xsl:value-of select="Shortcut1ItemName"/></xsl:attribute>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameType"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut1Type"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameUid"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut1Uid"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameView"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut1View"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameParam"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut1Param"/></xsl:attribute>
+ </property>
+ </item>
+ </xsl:if>
+ <xsl:if test="Customize2Shortcut = 1">
+ <item>
+ <xsl:attribute name="id"><xsl:value-of select="Shortcut2ItemId"/></xsl:attribute>
+ <xsl:attribute name="name"><xsl:value-of select="Shortcut2ItemName"/></xsl:attribute>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameType"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut2Type"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameUid"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut2Uid"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameView"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut2View"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameParam"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut2Param"/></xsl:attribute>
+ </property>
+ </item>
+ </xsl:if>
+ <xsl:if test="Customize3Shortcut = 1">
+ <item>
+ <xsl:attribute name="id"><xsl:value-of select="Shortcut3ItemId"/></xsl:attribute>
+ <xsl:attribute name="name"><xsl:value-of select="Shortcut3ItemName"/></xsl:attribute>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameType"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut3Type"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameUid"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut3Uid"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameView"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut3View"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameParam"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut3Param"/></xsl:attribute>
+ </property>
+ </item>
+ </xsl:if>
+ <xsl:if test="Customize4Shortcut = 1">
+ <item>
+ <xsl:attribute name="id"><xsl:value-of select="Shortcut4ItemId"/></xsl:attribute>
+ <xsl:attribute name="name"><xsl:value-of select="Shortcut4ItemName"/></xsl:attribute>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameType"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut4Type"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameUid"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut4Uid"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameView"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut4View"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameParam"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut4Param"/></xsl:attribute>
+ </property>
+ </item>
+ </xsl:if>
+ </settings>
+ </initial_settings>
+ </xsl:if>
+ </plugin>
+ </xsl:for-each>
+ </plugins>
+ </control>
+ </configuration>
+ </xsl:template>
+ </xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
Binary file idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eamanifest.confml has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eamanifest.gcfml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="core"/>
+ <tag name="target" value="rofs2"/>
+ <tag name="target" value="rofs3"/>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="manifest.dat" target="\private\200159c0\install\view2_200286ea\hsps\00\">
+ <setting ref="VGAHomescreen2manifest/PackageVersion"/>
+ <setting ref="VGAHomescreen2manifest/DeviceFamily"/>
+ <setting ref="VGAHomescreen2manifest/ConfigurationType"/>
+ <setting ref="VGAHomescreen2manifest/InterfaceUid"/>
+ <setting ref="VGAHomescreen2manifest/ProviderUid"/>
+ <setting ref="VGAHomescreen2manifest/ConfigurationUid"/>
+ <setting ref="VGAHomescreen2manifest/FullName"/>
+ <setting ref="VGAHomescreen2manifest/ShortName"/>
+ <setting ref="VGAHomescreen2manifest/ConfigurationVersion"/>
+ <setting ref="VGAHomescreen2manifest/ConfigurationFile"/>
+ <setting ref="VGAHomescreen2manifest/UiResourceFile"/>
+ <xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xi="http://www.w3.org/2001/xinclude">
+ <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+ <xsl:template match="configuration/data">
+ <package>
+ <xsl:attribute name="version"><xsl:value-of select="VGAHomescreen2manifest/PackageVersion"/></xsl:attribute>
+ <family>
+ <xsl:value-of select="VGAHomescreen2manifest/DeviceFamily"/>
+ </family>
+ <type>
+ <xsl:value-of select="VGAHomescreen2manifest/ConfigurationType"/>
+ </type>
+ <interfaceuid>
+ <xsl:value-of select="VGAHomescreen2manifest/InterfaceUid"/>
+ </interfaceuid>
+ <provideruid>
+ <xsl:value-of select="VGAHomescreen2manifest/ProviderUid"/>
+ </provideruid>
+ <configurationuid>
+ <xsl:value-of select="VGAHomescreen2manifest/ConfigurationUid"/>
+ </configurationuid>
+ <fullname>
+ <!--xsl:text>&</xsl:text-->
+ <xsl:value-of select="VGAHomescreen2manifest/FullName"/>
+ <!--xsl:text>;</xsl:text-->
+ </fullname>
+ <shortname>
+ <xsl:value-of select="VGAHomescreen2manifest/ShortName"/>
+ </shortname>
+ <version>
+ <xsl:value-of select="VGAHomescreen2manifest/ConfigurationVersion"/>
+ </version>
+ <filexml>
+ <xsl:value-of select="VGAHomescreen2manifest/ConfigurationFile"/>
+ </filexml>
+ <localization>
+ <fileresource>
+ <xsl:value-of select="VGAHomescreen2manifest/UiResourceFile"/>
+ </fileresource>
+ </localization>
+ </package>
+ </xsl:template>
+ </xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
Binary file idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eaxuikon.confml has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eaxuikon.gcfml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="core"/>
+ <tag name="target" value="rofs2"/>
+ <tag name="target" value="rofs3"/>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="empty.foo" target="\private\200159c0\install\view2_200286ea\xuikon\">
+ <setting ref="VGAHomescreen2XuikonFolder/FolderCFG"/>
+ <xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xi="http://www.w3.org/2001/xinclude">
+ <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+ <xsl:template match="configuration/data">
+ <whois>
+ <xsl:attribute name="dude"><xsl:value-of select="VGAHomescreen2XuikonFolder/FolderCFG"/></xsl:attribute>
+ </whois>
+ </xsl:template>
+ </xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,86 @@
+/*
+* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: The information required for building
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+// Support for productization and Carbide.Ui customization
+//********************************************************
+//../hsps/00/manifest.dat /epoc32/data/z/resource/homescreen/view2_200286ea/hsps/manifest.dat
+//../hsps/00/viewconfiguration.xml /epoc32/data/z/resource/homescreen/view2_200286ea/hsps/viewconfiguration.xml
+//../hsps/00/viewconfiguration.dtd /epoc32/data/z/resource/homescreen/view2_200286ea/hsps/viewconfiguration.dtd
+
+../xuikon/00/view.dat /epoc32/data/z/resource/homescreen/view2_200286ea/xuikon/view2_200286ea.dat
+../xuikon/00/view.xml /epoc32/data/z/resource/homescreen/view2_200286ea/xuikon/view.xml
+../xuikon/00/view.dtd /epoc32/data/z/resource/homescreen/view2_200286ea/xuikon/view.dtd
+../xuikon/00/view.css /epoc32/data/z/resource/homescreen/view2_200286ea/xuikon/view.css
+
+// Arabic languages
+//*****************
+../xuikon/37/view.css /epoc32/data/z/resource/homescreen/view2_200286ea/xuikon/37/view.css
+../xuikon/50/view.css /epoc32/data/z/resource/homescreen/view2_200286ea/xuikon/50/view.css
+../xuikon/57/view.css /epoc32/data/z/resource/homescreen/view2_200286ea/xuikon/57/view.css
+../xuikon/94/view.css /epoc32/data/z/resource/homescreen/view2_200286ea/xuikon/94/view.css
+
+
+//Confml and cfgml files for the customization
+// starting use confml it is need to remove root_configuration.xml direct exporting (view_200286e4_variant.iby)
+//***********************************
+../conf/view200286ea.confml APP_LAYER_CONFML(view200286ea.confml)
+../conf/view200286ea.gcfml APP_LAYER_GCFML(view200286ea.gcfml)
+../conf/view200286eamanifest.confml APP_LAYER_CONFML(view200286eamanifest.confml)
+../conf/view200286eamanifest.gcfml APP_LAYER_GCFML(view200286eamanifest.gcfml)
+../conf/view200286eaxuikon.confml APP_LAYER_CONFML(view200286eaxuikon.confml)
+../conf/view200286eaxuikon.gcfml APP_LAYER_GCFML(view200286eaxuikon.gcfml)
+// Support for S60 localization
+//*****************************
+//#ifndef __VIEWCONFIGURATION_LOC__
+//#define __VIEWCONFIGURATION_LOC__
+//../loc/viewconfiguration.loc APP_LAYER_LOC_EXPORT_PATH(viewconfiguration.loc)
+//#endif // __VIEWCONFIGURATION_LOC__
+
+#ifndef __VIEW_LOC__
+#define __VIEW_LOC__
+../loc/view.loc APP_LAYER_LOC_EXPORT_PATH(view.loc)
+#endif // __VIEW_LOC__
+
+// Support for S60 builds
+//***********************
+../rom/view_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(view2_200286ea_resources.iby)
+../rom/view_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view2_200286ea_customer.iby)
+../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view2_200286ea_variant.iby)
+//../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view2_200286ea.iby)
+
+
+// Dtd-localization
+//*****************
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME view2_200286ea
+OPTION DTD_TYPE widget
+END
+
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/hsps/00/manifest.dat Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<package version="2.0">
+
+ <family>vga_tch</family>
+
+ <type>view</type>
+
+ <!-- interface uid -->
+ <interfaceuid>0x2001f48a</interfaceuid>
+
+ <!-- vendor uid -->
+ <provideruid>0x101fb657</provideruid>
+
+ <!-- configuration uid -->
+ <configurationuid>0x200286ea</configurationuid>
+
+ <!-- description -->
+ <fullname>view2</fullname>
+ <shortname>ai3_nokia</shortname>
+ <version>1.0</version>
+
+ <!-- configuration -->
+ <filexml>viewconfiguration.xml</filexml>
+
+ <!-- Name of the localization files -->
+ <!--filedtd>viewconfiguration.dtd</filedtd-->
+
+ <!-- Locale specific resources -->
+ <localization>
+ <fileresource>view.o0000</fileresource>
+ </localization>
+
+</package>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/hsps/00/viewconfiguration.dtd Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+============================================================================
+<FileName: "viewconfiguration.dtd">
+
+<FileDescription: "Localization strings for HSPS view configuration">
+<FileVersion : >
+
+<Copyright:
+"Copyright © 2005 Nokia Corporation.
+This material, including documentation and any related
+computer programs, is protected by copyright controlled by
+Nokia Corporation. All rights are reserved. Copying,
+including reproducing, storing, adapting or translating, any
+or all of this material requires the prior written consent of
+Nokia Corporation. This material also contains confidential
+information which may not be disclosed to others without the
+prior written consent of Nokia Corporation.">
+============================================================================
+-->
+
+<!-- LOCALISATION STRINGS -->
+
+<!ENTITY qtn_view_configuration_name "ai3_nokia">
+
+
+<!-- End of File-->
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/hsps/00/viewconfiguration.xml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<configuration max_child="6" xmlns:xi="http://www.w3.org/2001/xinclude">
+ <control>
+ <settings>
+ <item id="hs_vga_tch_view">
+ <property name="use_empty_widget" value="true"/>
+ </item>
+ <item id="wallpaper">
+ <property name="path" value=""/>
+ </item>
+ </settings>
+ <plugins>
+ <plugin uid="0x200286e6" bundle_id="0" template_id="0" locking_status="permanent"/>
+ <plugin uid="0x200286e7" bundle_id="0" template_id="0" locking_status="permanent"/>
+ <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="permanent"/>
+ <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
+ <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
+ <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
+ </plugins>
+ </control>
+</configuration>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/loc/view.loc Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,322 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Localization strings for project Active Idle 3
+*
+*/
+
+// d: Help
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_options_help "Help"
+
+// d: Open
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define qtn_msk_open "Open"
+
+// d: Done
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_done "Done"
+
+// d: Open
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_options_open "Open"
+
+// d: Back
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_back "Back"
+
+// d: Empty string
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define shortcut_emptycaption " "
+
+// d: Add page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_add_page "Add page"
+
+// d: Select
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_options_select_widget "Select"
+
+// d: Add content
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_add_widget "Add content"
+
+// d: Access the widget catalog
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_widget_catalog "Widget catalog"
+
+// d: Search
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_search "Search"
+
+// d: Options
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_options "Options"
+
+// d: Refresh
+// l: list_single_pane_t1_cp2/opt3
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_widget "Refresh"
+
+// d: Focused widget
+// l: list_single_popup_submenu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_one_widget "One"
+
+// d: All widgets
+// l: list_single_popup_submenu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_all_widgets "All"
+
+// d: Remove content
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_remove_widget "Remove content"
+
+// d: Hide the content
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_hide_widgets "Hide the content"
+
+// d: Edit contents
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_edit_content "Edit content"
+
+// d: Change Wallpaper
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_wallpaper "Change Wallpaper"
+
+// d: Change Shortcut Settings
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_shortcut_settings "Change Shortcut Settings"
+
+// d: Widget settings
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_widget_settings "Widget settings"
+
+// d: Show widgets
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_show_widgets "Show the content"
+
+// d: Change Home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_page "Change Home screen page"
+
+// d: Change
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define qtn_msk_change "Change"
+
+// d: Show all profiles in Profiles widget
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_show_profiles "Show all profiles"
+
+// d: Right selection key
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_set_right_idle_softkey "Right selection key"
+
+// d: Select
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_select "Select"
+
+// d: Cancel
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_cancel "Cancel"
+
+// d: Options menu item which switches home to online. Web widgets get updates from network.
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_online "Switch Home to online"
+
+// d: Options menu item which switches home to offline. Web widgets are not updated
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_offline "Switch Home to offline"
+
+// d: String which is shown in long tap menu of Home screen if tapped widget has settings
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_settings "Settings"
+
+// d: String which is shown in long tap menu of Home screen if tapped some widget which is removable
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_remove_element "Remove"
+
+// d: String which is shown in long tap menu of Home screen if tapped empty space in home screen
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_add "Add content"
+
+// d: String which is shown in long tap menu of Home screen
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_change_longtap_wallpaper "Change wallpaper"
+
+// d: User can download new HS widgets. String is visible in add content list query
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_download_new_widgets "Download"
+
+// d: Changes focused widget
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_edit_replace "Replace"
+
+// d: deletes current home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_options_delete "Delete page"
+
+// d: creates new home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_options_new "New page"
+
+// d: view title in editing mode
+// l: title_pane_t2
+// w:
+// r: TB9.2
+#define qtn_hs_title_editing_view "Editing view"
+
+// d: Call
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_call "Call"
+
+// d: Added new option menu item to Edit mode for opening the widget catalog,
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_edit_widget_catalog "Widget Catalog"
+
+// d: Deletes the current Home screen page and focus goes to the next available Home screen page in Edit mode
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_edit_options_delete "Delete page"
+
+// d: Done
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_done "Done"
+
+// d: Search
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_search "Search"
+
+// d: Options
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_options "Options"
+
+// d: Back
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_back "Back"
+
+// d: Select
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_select "Select"
+
+// d: Cancel
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_cancel "Cancel"
+
+// d: Call
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_call "Call"
+
+// d: Lock keypad
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_lock_keypad "Lock keypad"
+
+// d: Menu
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_apps_menu_skey "Menu"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/loc/viewconfiguration.loc Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Localization strings for view2 plugin configuration (HSPS)
+*
+*/
+
+
+<!-- LOCALISATION STRINGS -->
+// d: AI3 View
+// l: ai_gene_pane_1_t1
+// w:
+// r: TB9.2
+//#define qtn_view_configuration_name "AI3 View"
+
+
+<!-- End of File-->
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/rom/view.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: View widget HSPS-plugin IBY file.
+*
+*/
+
+
+#ifndef __AI3VIEW_200286EA_IBY__
+#define __AI3VIEW_200286EA_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools
+data=ZPRIVATE\200159c0\install\view2_200286ea\hsps\00\manifest.dat \private\200159c0\install\view2_200286ea\hsps\00\manifest.dat
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __AI3VIEW_200286EA_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/rom/view_customer.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: View widget HSPS-plugin language specific IBY file.
+*
+*/
+
+
+#ifndef __AI3VIEW_200286EA_CUSTOMER_IBY__
+#define __AI3VIEW_200286EA_CUSTOMER_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\view2_200286ea\xuikon\00\view.o0000 \private\200159c0\install\view2_200286ea\xuikon\00\view.o0000
+//data=ZPRIVATE\200159c0\install\view2_200286ea\hsps\00\viewconfiguration.dtd \private\200159c0\install\view2_200286ea\hsps\00\viewconfiguration.dtd
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __AI3VIEW_200286EA_CUSTOMER_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/rom/view_resources.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: View widget HSPS-plugin language specific IBY file.
+*
+*/
+
+
+#ifndef __AI3VIEW_200286EA_RESOURCES_IBY__
+#define __AI3VIEW_200286EA_RESOURCES_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\view2_200286ea\xuikon\00\view.o0000 \private\200159c0\install\view2_200286ea\xuikon\00\view.o0000
+//data=ZPRIVATE\200159c0\install\view2_200286ea\hsps\00\viewconfiguration.dtd \private\200159c0\install\view2_200286ea\hsps\00\viewconfiguration.dtd
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __AI3VIEW_200286EA_RESOURCES_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/rom/view_variant.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: View widget HSPS-plugin variant specific IBY file.
+*
+*/
+
+
+#ifndef __AI3VIEW_200286EA_VARIANT_IBY__
+#define __AI3VIEW_200286EA_VARIANT_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by variation tools, variant specific
+data=ZPRIVATE\200159c0\install\view2_200286ea\hsps\00\viewconfiguration.xml \private\200159c0\install\view2_200286ea\hsps\00\viewconfiguration.xml
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __AI3VIEW_200286EA_VARIANT_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/00/View.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view
+{
+ direction: ltr;
+ block-progression: tb;
+ background-image: wallpaper;
+ swipe: true;
+
+ _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+ direction: ltr;
+ block-progression: tb;
+}
+
+plugin.miniplugins
+{
+ height: 115px;
+ width: 176px;
+
+ margin-top: 9px;
+ margin-left: 9px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+plugin.plugins
+{
+ height: 115px;
+ width: 436px;
+
+ margin-top: 9px;
+ margin-left: 10px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+trigger#hs_popup_open_hold:edit
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+ display: block;
+}
+
+softkey#rsk
+{
+ _s60-longtap: true;
+ _s60-aspect-ratio: preserve;
+}
+
+softkey#msk_ltr
+{
+ display: block;
+}
+
+softkey#msk_rtl
+{
+ display: none;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/00/View.xml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,289 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE xmluiml SYSTEM "View.dtd">
+<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
+ <view id="hs_vga_tch_view">
+ <actions>
+ <action>
+ <!-- End key -->
+ <trigger name="keyevent">
+ <property name="scancode" value="197"/> ><!-- End key -->
+ <property name="eventtype" value="1"/>
+ </trigger>
+ <!-- dismiss if edit mode active -->
+ <event name="system/reportexiteditmode"/>
+ </action>
+ <action>
+ <trigger name="editmode" value="enter"/>
+ <event name="system/set">
+ <property name="name" value="focusable"/>
+ <property name="value" value="true"/>
+ <property name="type" value="string"/>
+ <property name="class" value="plugins"/>
+ </event>
+ <event name="system/seteditmode">
+ <property name="id" value="hs_popup_open_hold"/>
+ </event>
+ </action>
+ <action>
+ <trigger name="editmode" value="exit"/>
+ <event name="system/set">
+ <property name="name" value="focusable"/>
+ <property name="value" value="false"/>
+ <property name="type" value="string"/>
+ <property name="class" value="plugins"/>
+ </event>
+ <event name="system/reseteditmode">
+ <property name="id" value="hs_popup_open_hold"/>
+ </event>
+ </action>
+ <action>
+ <trigger name="swipe" direction="left" conditional="true"/>
+ <event name="system/activatenextview" effectid="1003"/>
+ </action>
+ <action>
+ <trigger name="swipe" direction="right" conditional="true"/>
+ <event name="system/activatepreviousview" effectid="1004"/>
+ </action>
+ <action>
+ <trigger name="screendevicechange" reason="portrait"/>
+ <event name="system/set">
+ <property name="name" value="padding-left"/>
+ <property name="value" value="17px"/>
+ <property name="type" value="numeric"/>
+ <property name="id" value="plugins_container"/>
+ </event>
+ <event name="system/set">
+ <property name="name" value="padding-right"/>
+ <property name="value" value="17px"/>
+ <property name="type" value="numeric"/>
+ <property name="id" value="plugins_container"/>
+ </event>
+ </action>
+ <action>
+ <trigger name="screendevicechange" reason="landscape"/>
+ <event name="system/set">
+ <property name="name" value="padding-left"/>
+ <property name="value" value="0px"/>
+ <property name="type" value="numeric"/>
+ <property name="id" value="plugins_container"/>
+ </event>
+ <event name="system/set">
+ <property name="name" value="padding-right"/>
+ <property name="value" value="0px"/>
+ <property name="type" value="numeric"/>
+ <property name="id" value="plugins_container"/>
+ </event>
+ </action>
+ </actions>
+
+ <!-- Plugins in this view -->
+ <box id="plugins_container">
+ <plugin id="plugin1" class="miniplugins" actionshandler="plugin_actions">
+ </plugin>
+ <plugin id="plugin2" class="miniplugins" actionshandler="plugin_actions">
+ </plugin>
+ <plugin id="plugin3" class="miniplugins" actionshandler="plugin_actions">
+ </plugin>
+ <plugin id="plugin4" class="plugins" actionshandler="plugin_actions">
+ </plugin>
+ <plugin id="plugin5" class="plugins" actionshandler="plugin_actions">
+ </plugin>
+ <plugin id="plugin6" class="plugins" actionshandler="plugin_actions">
+ </plugin>
+ </box>
+
+ <!-- plugins' actions handler -->
+ <actionshandler id="plugin_actions">
+ <actions>
+ <action>
+ <trigger id="hs_popup_open_hold" name="hold" conditional="true" />
+ <event name="system/reportentereditmode" effectid="1005"/>
+ </action>
+ </actions>
+ </actionshandler>
+
+ <!-- Avkon stylus popup menu is not layout capable -->
+ <styluspopup id="hs_popup_menu" display="none">
+ <!-- menuitems controlled by widgets' <menuextension> -->
+ <widgetmenuitem id="hs_popup_widget_settings" source="hs_widget_menuitem_settings" label="&qtn_hs_longtap_settings;" />
+ <widgetmenuitem id="hs_popup_widget_general_1" source="hs_widget_general_stylus_popup_1"/>
+ <widgetmenuitem id="hs_popup_widget_general_2" source="hs_widget_general_stylus_popup_2"/>
+ <!--<widgetmenuitem id="hs_popup_widget_refresh" source="hs_widget_menuitem_refresh" label="Refresh" />-->
+ <!-- "Remove" item initialized in runtime to check whether popup is on top of widget -->
+ <dynmenuitem id="hs_popup_remove_widget" type="hs_remove_widget" label="&qtn_hs_longtap_remove_element;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/removefocusedwidget"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ </styluspopup>
+ <menubar id="hs_menubar">
+ <!-- menu item grouping table is traversed through in run-time always when options menu is launched. -->
+ <menuitemgrouping>
+ <!-- These items are shown when content is visible -->
+ <menuitemgroup id="Menu/NormalMode">
+ <property name="hs_edit_widgets"/>
+ <property name="hs_set_online"/>
+ <property name="hs_set_offline"/>
+ <property name="hs_add_view"/>
+ <property name="hs_remove_view"/>
+ </menuitemgroup>
+ <!-- These items are shown in edit mode, if not otherwise changed in the declaration -->
+ <menuitemgroup id="Menu/EditMode">
+ <property name="hs_widget_catalog"/>
+ <property name="hs_remove_widget"/>
+ <property name="hs_widget_settings"/>
+ <property name="hs_widget_general_1"/>
+ <property name="hs_widget_general_2"/>
+ <property name="hs_add_view"/>
+ <property name="hs_remove_view"/>
+ <property name="hs_change_wallpaper"/>
+ </menuitemgroup>
+ <menuitemgroup id="ContextMenu/EditMode">
+ <property name="hs_remove_widget"/>
+ <property name="hs_widget_settings"/>
+ <property name="hs_widget_general_1"/>
+ <property name="hs_widget_general_2"/>
+ </menuitemgroup>
+ <!-- These items are always shown, if not otherwise changed in the declaration -->
+ <menuitemgroup id="Menu/AlwaysShown">
+ <property name="hs_show_help"/>
+ </menuitemgroup>
+ </menuitemgrouping>
+ <menu id="hs_options_menu">
+ <menuitem id="hs_widget_catalog" label="&qtn_hs_widget_catalog;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/runaddwidgetquery"/>
+ </action>
+ </actions>
+ </menuitem>
+ <!-- menuitems controlled by widgets' <menuextension> element -->
+ <widgetmenuitem id="hs_widget_settings" source="hs_widget_menuitem_settings" label="&qtn_hs_widget_settings;"/>
+ <widgetmenuitem id="hs_widget_general_1" source="hs_widget_general_options_menu_1"/>
+ <widgetmenuitem id="hs_widget_general_2" source="hs_widget_general_options_menu_2"/>
+ <dynmenuitem id="hs_remove_widget" type="hs_remove_widget" label="&qtn_hs_remove_widget;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/removefocusedwidget"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ <!--<widgetmenuitem id="hs_widget_refresh" source="hs_widget_menuitem_refresh" label="&qtn_hs_refresh_widget;" />-->
+ <menuitem id="hs_edit_widgets" label="&qtn_hs_edit_content;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/reportentereditmode" effectid="1005"/>
+ </action>
+ </actions>
+ </menuitem>
+ <menuitem id="hs_change_wallpaper" label="&qtn_hs_change_wallpaper;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <!--Wallpaper-->
+ <event name="system/setwallpaper"/>
+ </action>
+ </actions>
+ </menuitem>
+ <dynmenuitem id="hs_add_view" type="hs_add_view" label="&qtn_hs_page_options_new;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/addview" effectid="1009"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ <dynmenuitem id="hs_remove_view" type="hs_remove_view" label="&qtn_hs_page_options_delete;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/removeview" effectid="1010"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ <dynmenuitem id="hs_set_online" type="hs_online" label="&qtn_hs_online;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="EventHandler/SetOnline"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ <dynmenuitem id="hs_set_offline" type="hs_offline" label="&qtn_hs_offline;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="EventHandler/SetOffline"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ <menuitem id="hs_show_help" label="&qtn_options_help;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="EventHandler/ShowHelp"/>
+ </action>
+ </actions>
+ </menuitem>
+ </menu>
+ <softkey id="lsk" type="left" label="&qtn_hs_text_softkey_options;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/trydisplayingmenu">
+ <property name="id" value="hs_options_menu"/>
+ </event>
+ </action>
+ </actions>
+ </softkey>
+ <softkey id="rsk" type="right" mode="mode_callinactive" label="#Menu">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="EventHandler/LaunchApp" uid="0x101F4CD2"/>
+ </action>
+ </actions>
+ </softkey>
+ <softkey id="rsk" type="right" mode="mode_callactive" label="#Menu">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="EventHandler/LaunchApp" uid="0x101F4CD2"/>
+ </action>
+ </actions>
+ </softkey>
+ <softkey id="rsk_done" type="right" mode="mode_edit" label="&qtn_hs_text_softkey_done;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/reportexiteditmode" effectid="1006"/>
+ </action>
+ </actions>
+ </softkey>
+ <softkey id="msk_ltr" type="middle" label=""> <!--TODO: Remove label when MSK icon available-->
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/activatenextview" effectid="1003"/>
+ </action>
+ </actions>
+ <!--image id="switcher_icon"/-->
+ </softkey>
+ <softkey id="msk_rtl" type="middle" label=""> <!--TODO: Remove label when MSK icon available-->
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/activatepreviousview" effectid="1004"/>
+ </action>
+ </actions>
+ <!--image id="switcher_icon"/-->
+ </softkey>
+ </menubar>
+ </view>
+</xmluiml>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/00/view.dat Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<data>
+ <AppUid>E029CF57</AppUid>
+ <Provideruid>101FB657</Provideruid>
+ <ThemeUid>11001234</ThemeUid>
+ <ThemeFullName>Nokia</ThemeFullName>
+ <ThemeShortName>view</ThemeShortName>
+ <ThemeVersion>1.0</ThemeVersion>
+ <FileXML>view.xml</FileXML>
+ <FileCSS>view.css</FileCSS>
+ <FileDTD>view.dtd</FileDTD>
+
+</data>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/00/view.dtd Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,514 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+============================================================================
+<FileName: "View.dtd">
+<PartOf : "AI3">
+
+<FileDescription: "Localization strings for AI3">
+<FileVersion : >
+
+<Copyright:
+"Copyright (c) 2005 Nokia Corporation.
+This material, including documentation and any related
+computer programs, is protected by copyright controlled by
+Nokia Corporation. All rights are reserved. Copying,
+including reproducing, storing, adapting or translating, any
+or all of this material requires the prior written consent of
+Nokia Corporation. This material also contains confidential
+information which may not be disclosed to others without the
+prior written consent of Nokia Corporation.">
+============================================================================
+-->
+
+<!--
+qtn_options_help.attributes
+qtn_options_help.layout "list_single_pane_t1_cp2"
+qtn_options_help.release "TB9.2"
+qtn_options_help.description "Help"
+qtn_options_help.grammar "Help"
+qtn_options_help.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_options_help "Help">
+
+<!--
+qtn_msk_open.attributes
+qtn_msk_open.layout "control_pane_t1/opt7"
+qtn_msk_open.release "TB9.2"
+qtn_msk_open.description "Open"
+qtn_msk_open.grammar "Open"
+qtn_msk_open.parents "control_pane"
+-->
+<!ENTITY qtn_msk_open "Open">
+
+<!--
+text_softkey_done.attributes
+text_softkey_done.layout "nhd_control_pane_t2/opt7"
+text_softkey_done.release "TB9.2"
+text_softkey_done.description "Done"
+text_softkey_done.grammar "Done"
+text_softkey_done.parents "control_pane"
+-->
+<!ENTITY text_softkey_done "Done">
+
+<!--
+qtn_options_open.attributes
+qtn_options_open.layout "list_single_pane_t1_cp2"
+qtn_options_open.release "TB9.2"
+qtn_options_open.description "Open"
+qtn_options_open.grammar "Open"
+qtn_options_open.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_options_open "Open">
+
+<!--
+text_softkey_back.attributes
+text_softkey_back.layout "nhd_control_pane_t2/opt7"
+text_softkey_back.release "TB9.2"
+text_softkey_back.description "Back text for SK2"
+text_softkey_back.parents "control_pane"
+-->
+<!ENTITY text_softkey_back "Back">
+
+<!--
+shortcut_EmptyCaption.attributes
+shortcut_EmptyCaption.layout "control_pane_t1/opt7"
+shortcut_EmptyCaption.release "TB9.2"
+shortcut_EmptyCaption.description "Empty shortcut"
+shortcut_EmptyCaption.parents "list_ai2_gene_pane"
+-->
+<!ENTITY shortcut_EmptyCaption " ">
+
+<!--
+qtn_hs_add_page.attributes
+qtn_hs_add_page.layout "list_single_pane_t1_cp2"
+qtn_hs_add_page.release "TB9.2"
+qtn_hs_add_page.description "Add page"
+qtn_hs_add_page.grammar "Add page"
+qtn_hs_add_page.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_add_page "Add page">
+
+<!--
+qtn_options_select_widget.attributes
+qtn_options_select_widget.layout "list_single_pane_t1_cp2"
+qtn_options_select_widget.release "TB9.2"
+qtn_options_select_widget.description "Select"
+qtn_options_select_widget.grammar "Select"
+qtn_options_select_widget.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_options_select_widget "Select">
+
+<!--
+qtn_hs_add_widget.attributes
+qtn_hs_add_widget.layout "list_single_pane_t1_cp2"
+qtn_hs_add_widget.release "TB9.2"
+qtn_hs_add_widget.description "Add content"
+qtn_hs_add_widget.grammar "Add content"
+qtn_hs_add_widget.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_add_widget "Add content">
+
+<!--
+qtn_hs_widget_catalog.attributes
+qtn_hs_widget_catalog.layout "list_single_pane_t1_cp2"
+qtn_hs_widget_catalog.release "TB9.2"
+qtn_hs_widget_catalog.description "Widget catalog"
+qtn_hs_widget_catalog.grammar "Widget catalog"
+qtn_hs_widget_catalog.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_widget_catalog "Widget catalog">
+
+<!--
+text_softkey_search.attributes
+text_softkey_search.layout "nhd_control_pane_t2/opt7"
+text_softkey_search.release "TB9.2"
+text_softkey_search.description "Search"
+text_softkey_search.grammar "Search"
+text_softkey_search.parents "control_pane"
+-->
+<!ENTITY text_softkey_search "Search">
+
+<!--
+text_softkey_options.attributes
+text_softkey_options.layout "nhd_control_pane_t2/opt7"
+text_softkey_options.release "TB9.2"
+text_softkey_options.description "Options"
+text_softkey_options.grammar "Options"
+text_softkey_options.parents "control_pane"
+-->
+<!ENTITY text_softkey_options "Options">
+
+<!--
+qtn_hs_refresh_widget.attributes
+qtn_hs_refresh_widget.layout "list_single_pane_t1_cp2/opt3"
+qtn_hs_refresh_widget.release "TB9.2"
+qtn_hs_refresh_widget.description "Refresh"
+qtn_hs_refresh_widget.grammar "Refresh"
+qtn_hs_refresh_widget.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_refresh_widget "Refresh">
+
+<!--
+qtn_hs_refresh_one_widget.attributes
+qtn_hs_refresh_one_widget.layout "list_single_popup_submenu_pane_t1"
+qtn_hs_refresh_one_widget.release "TB9.2"
+qtn_hs_refresh_one_widget.description "One"
+qtn_hs_refresh_one_widget.grammar "One"
+qtn_hs_refresh_one_widget.parents "list_single_popup_submenu_pane"
+-->
+<!ENTITY qtn_hs_refresh_one_widget "One">
+
+<!--
+qtn_hs_refresh_all_widgets.attributes
+qtn_hs_refresh_all_widgets.layout "list_single_popup_submenu_pane_t1"
+qtn_hs_refresh_all_widgets.release "TB9.2"
+qtn_hs_refresh_all_widgets.description "All"
+qtn_hs_refresh_all_widgets.grammar "All"
+qtn_hs_refresh_all_widgets.parents "list_single_popup_submenu_pane"
+-->
+<!ENTITY qtn_hs_refresh_all_widgets "All">
+
+<!--
+qtn_hs_remove_widget.attributes
+qtn_hs_remove_widget.layout "list_single_pane_t1_cp2"
+qtn_hs_remove_widget.release "TB9.2"
+qtn_hs_remove_widget.description "Remove content"
+qtn_hs_remove_widget.grammar "Remove content"
+qtn_hs_remove_widget.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_remove_widget "Remove content">
+
+<!--
+qtn_hs_hide_widgets.attributes
+qtn_hs_hide_widgets.layout "list_single_pane_t1_cp2"
+qtn_hs_hide_widgets.release "TB9.2"
+qtn_hs_hide_widgets.description "Hide the content"
+qtn_hs_hide_widgets.grammar "Hide the content"
+qtn_hs_hide_widgets.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_hide_widgets "Hide the content">
+
+<!--
+qtn_hs_edit_content.attributes
+qtn_hs_edit_content.layout "list_single_pane_t1_cp2"
+qtn_hs_edit_content.release "TB9.2"
+qtn_hs_edit_content.description "Edit contents"
+qtn_hs_edit_content.grammar "Edit contents"
+qtn_hs_edit_content.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_edit_content "Edit content">
+
+<!--
+qtn_hs_change_wallpaper.attributes
+qtn_hs_change_wallpaper.layout "list_single_pane_t1_cp2"
+qtn_hs_change_wallpaper.release "TB9.2"
+qtn_hs_change_wallpaper.description "Change Wallpaper"
+qtn_hs_change_wallpaper.grammar "Change Wallpaper"
+qtn_hs_change_wallpaper.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_change_wallpaper "Change Wallpaper">
+
+<!--
+qtn_hs_change_shortcut_settings.attributes
+qtn_hs_change_shortcut_settings.layout "list_single_pane_t1_cp2"
+qtn_hs_change_shortcut_settings.release "TB9.2"
+qtn_hs_change_shortcut_settings.description "Change Shortcut Settings"
+qtn_hs_change_shortcut_settings.grammar "Change Shortcut Settings"
+qtn_hs_change_shortcut_settings.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_change_shortcut_settings "Change Shortcut Settings">
+
+<!--
+qtn_hs_widget_settings.attributes
+qtn_hs_widget_settings.layout "list_single_pane_t1_cp2"
+qtn_hs_widget_settings.release "TB9.2"
+qtn_hs_widget_settings.description "Widget settings"
+qtn_hs_widget_settings.grammar "Widget settings"
+qtn_hs_widget_settings.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_widget_settings "Widget settings">
+
+<!--
+qtn_hs_show_widgets.attributes
+qtn_hs_show_widgets.layout "list_single_pane_t1_cp2"
+qtn_hs_show_widgets.release "TB9.2"
+qtn_hs_show_widgets.description "Show widgets"
+qtn_hs_show_widgets.grammar "Show widgets"
+qtn_hs_show_widgets.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_show_widgets "Show the content">
+
+<!--
+qtn_hs_change_page.attributes
+qtn_hs_change_page.layout "list_single_pane_t1_cp2"
+qtn_hs_change_page.release "TB9.2"
+qtn_hs_change_page.description "Change Home screen page"
+qtn_hs_change_page.grammar "Change Home screen page"
+qtn_hs_change_page.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_change_page "Change Home screen page">
+
+<!--
+qtn_msk_change.attributes
+qtn_msk_change.layout "control_pane_t1/opt7"
+qtn_msk_change.release "TB9.2"
+qtn_msk_change.description "Change"
+qtn_msk_change.grammar "Change"
+qtn_msk_change.parents "control_pane"
+-->
+<!ENTITY qtn_msk_change "Change">
+
+<!--
+qtn_hs_show_profiles.attributes
+qtn_hs_show_profiles.layout "list_single_pane_t1_cp2"
+qtn_hs_show_profiles.release "TB9.2"
+qtn_hs_show_profiles.description "Show all profiles"
+qtn_hs_show_profiles.grammar "Show all profiles"
+qtn_hs_show_profiles.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_show_profiles "Show all profiles">
+
+<!--
+qtn_set_right_idle_softkey.attributes
+qtn_set_right_idle_softkey.layout "list_single_pane_t1_cp2"
+qtn_set_right_idle_softkey.release "TB9.2"
+qtn_set_right_idle_softkey.description "Right selection key"
+qtn_set_right_idle_softkey.grammar "Right selection key"
+qtn_set_right_idle_softkey.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_set_right_idle_softkey "Right selection key">
+
+<!--
+text_softkey_select.attributes
+text_softkey_select.layout "nhd_control_pane_t2/opt7"
+text_softkey_select.release "TB9.2"
+text_softkey_select.description "Select"
+text_softkey_select.grammar "Select"
+text_softkey_select.parents "control_pane"
+-->
+<!ENTITY text_softkey_select "Select">
+
+<!--
+text_softkey_cancel.attributes
+text_softkey_cancel.layout "nhd_control_pane_t2/opt7"
+text_softkey_cancel.release "TB9.2"
+text_softkey_cancel.description "Cancel"
+text_softkey_cancel.grammar "Cancel"
+text_softkey_cancel.parents "control_pane"
+-->
+<!ENTITY text_softkey_cancel "Cancel">
+
+<!--
+qtn_hs_online.attributes
+qtn_hs_online.layout "list_single_pane_t1_cp2"
+qtn_hs_online.release "TB9.2"
+qtn_hs_online.description "Online"
+qtn_hs_online.grammar "Online"
+qtn_hs_online.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_online "Switch Home to online">
+
+<!--
+qtn_hs_offline.attributes
+qtn_hs_offline.layout "list_single_pane_t1_cp2"
+qtn_hs_offline.release "TB9.2"
+qtn_hs_offline.description "Offline"
+qtn_hs_offline.grammar "Offline"
+qtn_hs_offline.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_offline "Switch Home to offline">
+
+<!--
+qtn_hs_longtap_settings.attributes
+qtn_hs_longtap_settings.layout "list_single_touch_menu_pane_t1"
+qtn_hs_longtap_settings.release "TB9.2"
+qtn_hs_longtap_settings.description "String which is shown in long tap menu of Home screen if tapped widget has settings."
+qtn_hs_longtap_settings.parents "control_pane"
+-->
+<!ENTITY qtn_hs_longtap_settings "Settings">
+
+<!--
+qtn_hs_longtap_remove_element.attributes
+qtn_hs_longtap_remove_element.layout "list_single_touch_menu_pane_t1"
+qtn_hs_longtap_remove_element.release "TB9.2"
+qtn_hs_longtap_remove_element.description "String which is shown in long tap menu of Home screen if tapped some widget which is removable."
+qtn_hs_longtap_remove_element.parents "control_pane"
+-->
+<!ENTITY qtn_hs_longtap_remove_element "Remove">
+
+<!--
+qtn_hs_longtap_add.attributes
+qtn_hs_longtap_add.layout "list_single_touch_menu_pane_t1"
+qtn_hs_longtap_add.release "TB9.2"
+qtn_hs_longtap_add.description "String which is shown in long tap menu of Home screen if tapped empty space in home screen."
+qtn_hs_longtap_add.parents "control_pane"
+-->
+<!ENTITY qtn_hs_longtap_add "Add content">
+
+<!--
+qtn_hs_change_longtap_wallpaper.attributes
+qtn_hs_change_longtap_wallpaper.layout "list_single_touch_menu_pane_t1"
+qtn_hs_change_longtap_wallpaper.release "TB9.2"
+qtn_hs_change_longtap_wallpaper.description "String which is shown in long tap menu of Home screen."
+qtn_hs_change_longtap_wallpaper.parents "control_pane"
+-->
+<!ENTITY qtn_hs_change_longtap_wallpaper "Change wallpaper">
+
+<!--
+qtn_hs_download_new_widgets.attributes
+qtn_hs_download_new_widgets.layout "list_single_pane_t1_cp2"
+qtn_hs_download_new_widgets.release "TB9.2"
+qtn_hs_download_new_widgets.description "User can download new HS widgets String is visible in add content list query"
+qtn_hs_download_new_widgets.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_download_new_widgets "Download">
+
+<!--
+qtn_hs_edit_replace.attributes
+qtn_hs_edit_replace.layout "list_single_touch_menu_pane_t1"
+qtn_hs_edit_replace.release "TB9.2"
+qtn_hs_edit_replace.description "Changes focused widget"
+qtn_hs_edit_replace.parents ""
+-->
+<!ENTITY qtn_hs_edit_replace "Replace">
+
+<!--
+qtn_hs_page_options_delete.attributes
+qtn_hs_page_options_delete.layout "list_single_pane_t1_cp2"
+qtn_hs_page_options_delete.release "TB9.2"
+qtn_hs_page_options_delete.description "deletes current home screen page"
+qtn_hs_page_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_page_options_delete "Delete page">
+
+<!--
+qtn_hs_page_options_new.attributes
+qtn_hs_page_options_new.layout "list_single_pane_t1_cp2"
+qtn_hs_page_options_new.release "TB9.2"
+qtn_hs_page_options_new.description "creates new home screen page"
+qtn_hs_page_options_new.parents ""
+-->
+<!ENTITY qtn_hs_page_options_new "New page">
+
+<!--
+qtn_hs_title_editing_view.attributes
+qtn_hs_title_editing_view.layout "title_pane_t2"
+qtn_hs_title_editing_view.release "TB9.2"
+qtn_hs_title_editing_view.description "view title in editing mode"
+qtn_hs_title_editing_view.parents ""
+-->
+<!ENTITY qtn_hs_title_editing_view "Editing view">
+
+<!--
+text_softkey_call.attributes
+text_softkey_call.layout "nhd_control_pane_t2/opt7"
+text_softkey_call.release "TB9.2"
+text_softkey_call.description "RSK caption call inactive"
+text_softkey_call.parents ""
+-->
+<!ENTITY text_softkey_call "Call">
+
+<!--
+qtn_hs_edit_widget_catalog.attributes
+qtn_hs_edit_widget_catalog.layout "list_single_pane_t1_cp2"
+qtn_hs_edit_widget_catalog.release "TB9.2"
+qtn_hs_edit_widget_catalog.description "Added new option menu item to Edit mode for opening the widget catalog"
+qtn_hs_edit_widget_catalog.grammar "Widget Catalog"
+qtn_hs_edit_widget_catalog.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_edit_widget_catalog "Widget Catalog">
+
+<!--
+qtn_hs_page_edit_options_delete.attributes
+qtn_hs_page_edit_options_delete.layout "list_single_pane_t1_cp2"
+qtn_hs_page_edit_options_delete.release "TB9.2"
+qtn_hs_page_edit_options_delete.description "Deletes the current Home screen page and focus goes to the next available Home screen page in Edit mode"
+qtn_hs_page_edit_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_page_edit_options_delete "Delete page">
+
+<!--
+qtn_hs_text_softkey_done.attributes
+qtn_hs_text_softkey_done.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_done.release "TB9.2"
+qtn_hs_text_softkey_done.description "Done"
+qtn_hs_text_softkey_done.grammar "Done"
+qtn_hs_text_softkey_done.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_done "Done">
+
+<!--
+qtn_hs_text_softkey_search.attributes
+qtn_hs_text_softkey_search.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_search.release "TB9.2"
+qtn_hs_text_softkey_search.description "Search"
+qtn_hs_text_softkey_search.grammar "Search"
+qtn_hs_text_softkey_search.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_search "Search">
+
+<!--
+qtn_hs_text_softkey_options.attributes
+qtn_hs_text_softkey_options.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_options.release "TB9.2"
+qtn_hs_text_softkey_options.description "Options"
+qtn_hs_text_softkey_options.grammar "Options"
+qtn_hs_text_softkey_options.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_options "Options">
+
+<!--
+qtn_hs_text_softkey_back.attributes
+qtn_hs_text_softkey_back.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_back.release "TB9.2"
+qtn_hs_text_softkey_back.description "Back text for SK2"
+qtn_hs_text_softkey_back.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_back "Back">
+
+<!--
+qtn_hs_text_softkey_select.attributes
+qtn_hs_text_softkey_select.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_select.release "TB9.2"
+qtn_hs_text_softkey_select.description "Select"
+qtn_hs_text_softkey_select.grammar "Select"
+qtn_hs_text_softkey_select.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_select "Select">
+
+<!--
+qtn_hs_text_softkey_cancel.attributes
+qtn_hs_text_softkey_cancel.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_cancel.release "TB9.2"
+qtn_hs_text_softkey_cancel.description "Cancel"
+qtn_hs_text_softkey_cancel.grammar "Cancel"
+qtn_hs_text_softkey_cancel.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_cancel "Cancel">
+
+<!--
+qtn_hs_text_softkey_call.attributes
+qtn_hs_text_softkey_call.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_call.release "TB9.2"
+qtn_hs_text_softkey_call.description "RSK caption call inactive"
+qtn_hs_text_softkey_call.parents ""
+-->
+<!ENTITY qtn_hs_text_softkey_call "Call">
+
+<!--
+qtn_hs_page_edit_options_delete.attributes
+qtn_hs_page_edit_options_delete.layout "list_single_pane_t1_cp2"
+qtn_hs_page_edit_options_delete.release "TB9.2"
+qtn_hs_page_edit_options_delete.description "Lock keypad"
+qtn_hs_page_edit_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_lock_keypad "Lock keypad">
+
+<!--
+qtn_hs_text_softkey_call.attributes
+qtn_hs_text_softkey_call.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_call.release "TB9.2"
+qtn_hs_text_softkey_call.description "RSK caption"
+qtn_hs_text_softkey_call.parents ""
+-->
+<!ENTITY qtn_hs_apps_menu_skey "Menu">
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/37/view.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view
+{
+ direction: rtl;
+ block-progression: tb;
+ background-image: wallpaper;
+ swipe: true;
+
+ _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+ direction: rtl;
+ block-progression: tb;
+}
+
+plugin.miniplugins
+{
+ height: 115px;
+ width: 176px;
+
+ margin-top: 9px;
+ margin-right: 9px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+plugin.plugins
+{
+ height: 115px;
+ width: 436px;
+
+ margin-top: 9px;
+ margin-right: 10px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+trigger#hs_popup_open_hold:edit
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+ display: block;
+}
+
+softkey#rsk
+{
+ _s60-longtap: true;
+ _s60-aspect-ratio: preserve;
+}
+
+softkey#msk_ltr
+{
+ display: block;
+}
+
+softkey#msk_rtl
+{
+ display: none;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/50/view.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view
+{
+ direction: rtl;
+ block-progression: tb;
+ background-image: wallpaper;
+ swipe: true;
+
+ _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+ direction: rtl;
+ block-progression: tb;
+}
+
+plugin.miniplugins
+{
+ height: 115px;
+ width: 176px;
+
+ margin-top: 9px;
+ margin-right: 9px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+plugin.plugins
+{
+ height: 115px;
+ width: 436px;
+
+ margin-top: 9px;
+ margin-right: 10px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+trigger#hs_popup_open_hold:edit
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+ display: block;
+}
+
+softkey#rsk
+{
+ _s60-longtap: true;
+ _s60-aspect-ratio: preserve;
+}
+
+softkey#msk_ltr
+{
+ display: block;
+}
+
+softkey#msk_rtl
+{
+ display: none;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/57/view.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view
+{
+ direction: rtl;
+ block-progression: tb;
+ background-image: wallpaper;
+ swipe: true;
+
+ _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+ direction: rtl;
+ block-progression: tb;
+}
+
+plugin.miniplugins
+{
+ height: 115px;
+ width: 176px;
+
+ margin-top: 9px;
+ margin-right: 9px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+plugin.plugins
+{
+ height: 115px;
+ width: 436px;
+
+ margin-top: 9px;
+ margin-right: 10px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+trigger#hs_popup_open_hold:edit
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+ display: block;
+}
+
+softkey#rsk
+{
+ _s60-longtap: true;
+ _s60-aspect-ratio: preserve;
+}
+
+softkey#msk_ltr
+{
+ display: block;
+}
+
+softkey#msk_rtl
+{
+ display: none;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/94/view.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view
+{
+ direction: rtl;
+ block-progression: tb;
+ background-image: wallpaper;
+ swipe: true;
+
+ _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+ direction: rtl;
+ block-progression: tb;
+}
+
+plugin.miniplugins
+{
+ height: 115px;
+ width: 176px;
+
+ margin-top: 9px;
+ margin-right: 9px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+plugin.plugins
+{
+ height: 115px;
+ width: 436px;
+
+ margin-top: 9px;
+ margin-right: 10px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+trigger#hs_popup_open_hold:edit
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+ display: block;
+}
+
+softkey#rsk
+{
+ _s60-longtap: true;
+ _s60-aspect-ratio: preserve;
+}
+
+softkey#msk_ltr
+{
+ display: block;
+}
+
+softkey#msk_rtl
+{
+ display: none;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286eb.confml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,483 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration name="Homescreen 3" version="1" xmlns="http://www.s60.com/xml/confml/2" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <feature name="VGA Homescreen 3 widgets" ref="VGA_HomescreenPlugins_3">
+ <setting name="Max Widgets" ref="MaxWidgets" type="string">
+ <desc>Maximum widget amount in Homescreen 3 page. Customizable</desc>
+ </setting>
+ <setting name="Use Empty Widgets" readOnly="true" ref="UseEmptyWidgets" type="boolean">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Item id for empty widgets definition in view" readOnly="true" ref="ItemIdEmptyWidgets" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Property name for empty widgets definition in view" readOnly="true" ref="PropertyEmptyWidgets" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="background path" ref="BackGroundPath" type="string">
+ <desc>Path of the Wallpaper resource. Customizable. </desc>
+ </setting>
+ <setting name="Item id wallpaper" readOnly="true" ref="ItemIdWallpaper" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Wallpaper property name" readOnly="true" ref="WallpaperPropertyName" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Widgets" ref="Plugins" type="sequence">
+ <desc>Widgets in the Homescreen 3</desc>
+ <setting name="Widget" ref="Uid" type="string">
+ <desc>Widget name</desc>
+ <option name="Empty" value="0x2001f47f" />
+ <option name="ClockDate" value="0x200286E6" />
+ <option name="Desktop" value="0x20018EEE" />
+ <option name="Profilemode" value="0x200286e7" />
+ <option name="wrtplugin_1" value="0x20022FD4"/>
+ <option name="wrtplugin_2" value="0x20022FD5"/>
+ <option name="wrtplugin_3" value="0x20022FD6"/>
+ <option name="wrtplugin_4" value="0x20022FD7"/>
+ <option name="wrtplugin_5" value="0x20022FD8"/>
+ <option name="wrtplugin_6" value="0x20022FD9"/>
+ <option name="wrtplugin_7" value="0x20022FDA"/>
+ <option name="wrtplugin_8" value="0x20022FDB"/>
+ <option name="wrtplugin_9" value="0x2001CB7D"/>
+ <option name="wrtplugin_10" value="0x2001CB7E"/>
+ <option name="wrtplugin_11" value="0x2001CB7F"/>
+ <option name="wrtplugin_12" value="0x200286EE"/>
+ </setting>
+ <setting name="Bundle Identifier" ref="BundleIdentifier" type="string">
+ <desc>Bundle identifier for the (C)WRT widgets. None for the native widgets</desc>
+ <option name="None / Automatic" value="0" />
+ <option name="8TV Catch Up" value="com.nerdattack.widget.8TV"/>
+ <option name="Aftonbladet WebbTV" value="apegroup.aftonbladet.webbtv.symbian3"/>
+ <option name="Al Jazeera" value="si.inova.verve.aljazeera"/>
+ <option name="BBC Arabic Web TV" value="com.nokia.forum.bbcatv1.widget"/>
+ <option name="BH TV" value="com.bollywoodhungama.widget.BollywoodHungamaTV"/>
+ <option name="Channel NewsAsia" value="Channel.newsasia"/>
+ <option name="CNN Video" value="com.cnn"/>
+ <option name="DigiturkWebTV" value="com.digiturkwebtv.widget"/>
+ <option name="EFE Videos" value="com.ericsson.efe.widget"/>
+ <option name="E!" value="com.moderati.eonline"/>
+ <option name="Bollywood" value="br.org.indt.widget.eros"/>
+ <option name="Ovi Files" value="com.nokia.ss.sas.filesql"/>
+ <option name="Hi5" value="com.hi5.widget.Launcher"/>
+ <option name="凤凰电视" value="com.ifeng.www.webtv.widget"/>
+ <option name="Chat" value="com.nokia.ChatClient"/>
+ <option name="芒果 TV" value="com.imgo.tv"/>
+ <option name="India Today" value="br.org.indt.widget.indiatoday"/>
+ <option name="BBC iPlayer" value="com.bbc.widget.iplayer"/>
+ <option name="Contacts' latest activities" value="com.nokia.somawebui.xwidget"/>
+ <option name="M1TV" value="com.m1tv.basic.widget"/>
+ <option name="Makansutr" value="com.nerdattack.wrt.Makansutra"/>
+ <option name="bose" value="com.bose.basic.widget"/>
+ <option name="SingTel MTVS" value="com.nokia.widget.sapi.mtvs"/>
+ <option name="Nat Geo" value="com.natgeo"/>
+ <option name="NRK Mobil-TV" value="no.nrk.mobil.mobiltv.widget"/>
+ <option name="ontv" value="ontv.cc.on.tv.widget"/>
+ <option name="ovi" value="com.nokia.ovi"/>
+ <option name="Movie Teasers" value="com.movieteasers"/>
+ <option name="Schweizer Fernsehen" value="com.sftvreader.basic.widget"/>
+ <option name="Sky News On Demand" value="com.nerdattack.widget.SKYNEWS"/>
+ <option name="Social" value="com.nokia.socialmixer.v1"/>
+ <option name="æœç‹å¨±ä¹" value="com.sohu.widget.webtv4ovi"/>
+ <option name="SSOUI" value="ovi.serviceui.SSOUI"/>
+ <option name="Terra TV" value="com.terra.widget.wrt.tv"/>
+ <option name="Terra TV Lat" value="com.terra.widget.wrt.tv.latam"/>
+ <option name="topApps" value="com.topApps.basic.widget"/>
+ <option name="Tudou" value="com.Tudou.widget"/>
+ <option name="tv2news" value="com.nokia.forum.widget.tv2news"/>
+ <option name="TV2Play" value="no.tv2.tv2play.widget"/>
+ <option name="TV3 Catch Up" value="com.nerdattack.widget.TV3"/>
+ <option name="ВеÑти" value="com.vesti.basic.widget"/>
+ <option name="Viasat No" value="no.viasat.widget"/>
+ <option name="Viasat Swe" value="se.viasat.widget"/>
+ <option name="Virtual Malaysia" value="com.nerdattack.widget.VirtualMalaysia"/>
+ <option name="央广新浪" value="cn.com.sina.3g"/>
+ <option name="Web TV Demo" value="com.nokia.forum.webtv.widget"/>
+ <option name="Yle Areena" value="com.tieto.yle"/>
+ <option name="优酷" value="com.youku.s605th.webtv"/>
+ </setting>
+ <setting name="Template Identifier" ref="TemplateIdentifier" type="selection">
+ <desc>Templeate identifier for the (C)WRT widgets. None for the native widgets</desc>
+ <option name="None" value="0" />
+ <option name="Single row icon widget template" value="0x2001FDC0" />
+ <option name="Single row widget template" value="0x2001FDC1" />
+ <option name="Double row icon widget template" value="0x2001FDBD" />
+ <option name="Double row widget template" value="0x2001FDC2" />
+ <option name="Triple row icon widget template" value="0x2001FDBE" />
+ <option name="Triple row widget template" value="0x2001FDBF" />
+ <option name="Wideimage template" value="0x10009DFF" />
+ </setting>
+ <setting name="locking Status" ref="LockingStatus" type="selection">
+ <desc>Locking status for the widget 1 in Homescreen 3 page</desc>
+ <option name="None" value="none" />
+ <option name="Locked" value="locked" />
+ <option name="Permanent" value="permanent" />
+ </setting>
+ <setting name="Customize Shortcut widget" ref="ShortcutWidget" type="selection">
+ <desc>Customize enabler for desktop/shortcut widget</desc>
+ <option name="Not Customize desktop Widget" value="0" />
+ <option name="Customize desktop widget" value="1" />
+ </setting>
+ <setting name="Customize 1st Shortcut" ref="Customize1Shortcut" type="selection">
+ <desc>Customize 1st item in desktop widget</desc>
+ <option name="Not Customize 1st shortcut" value="0" />
+ <option name="Customize 1st shortcut" value="1" />
+ </setting>
+ <setting name="1st Shortcut type" ref="Shortcut1Type" type="selection">
+ <desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
+ <option name="Application" value="application" />
+ <option name="Bookmark" value="bookmark" />
+ <option name="Shortcut" value="shortcut" />
+ </setting>
+ <setting name="1st Shortcut Uid" ref="Shortcut1Uid" type="string">
+ <desc>Uid for the application, Menu content Uid for the bookmarks and shortcuts.</desc>
+ </setting>
+ <setting name="1st Shortcut View" ref="Shortcut1View" type="string">
+ <desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
+ </setting>
+ <setting name="1st Shortcut Param" ref="Shortcut1Param" type="string">
+ <desc>Params for shortcut. For example: messaging:msg</desc>
+ </setting>
+ <setting name="Customize 2nd Shortcut" ref="Customize2Shortcut" type="selection">
+ <desc>Customize 2nd item in desktop widget</desc>
+ <option name="Not Customize 2nd shortcut" value="0" />
+ <option name="Customize 2nd shortcut" value="1" />
+ </setting>
+ <setting name="2nd Shortcut Application" ref="Shortcut2Type" type="selection">
+ <desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
+ <option name="Application" value="application" />
+ <option name="Bookmark" value="bookmark" />
+ <option name="Shortcut" value="shortcut" />
+ </setting>
+ <setting name="2nd Shortcut Uid" ref="Shortcut2Uid" type="string">
+ <desc>Uid for the application, Menu content Uid for the bookmarks and shortcuts</desc>
+ </setting>
+ <setting name="2nd Shortcut View" ref="Shortcut2View" type="string">
+ <desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
+ </setting>
+ <setting name="2nd Shortcut Param" ref="Shortcut2Param" type="string">
+ <desc>Params for shortcut. messaging:msg</desc>
+ </setting>
+ <setting name="Customize 3rd Shortcut" ref="Customize3Shortcut" type="selection">
+ <desc>Customize 3rd item in desktop widget</desc>
+ <option name="Not Customize 3rd shortcut" value="0" />
+ <option name="Customize 3rd shortcut" value="1" />
+ </setting>
+ <setting name="3rd Shortcut Application" ref="Shortcut3Type" type="selection">
+ <desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
+ <option name="Application" value="application" />
+ <option name="Bookmark" value="bookmark" />
+ <option name="Shortcut" value="shortcut" />
+ </setting>
+ <setting name="3rd Shortcut Uid" ref="Shortcut3Uid" type="string">
+ <desc>Uid for the application,Menu content Uid for the bookmarks and shortcuts.</desc>
+ </setting>
+ <setting name="3rd Shortcut View" ref="Shortcut3View" type="string">
+ <desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
+ </setting>
+ <setting name="3rd Shortcut Param" ref="Shortcut3Param" type="string">
+ <desc>Params for shortcut. messaging:msg</desc>
+ </setting>
+ <setting name="Customize 4th Shortcut" ref="Customize4Shortcut" type="selection">
+ <desc>Customize 4th item in desktop widget</desc>
+ <option name="Not Customize 4th shortcut" value="0" />
+ <option name="Customize 4th shortcut" value="1" />
+ </setting>
+ <setting name="4th ShortCut Application" ref="Shortcut4Type" type="selection">
+ <desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
+ <option name="Application" value="application" />
+ <option name="Bookmark" value="bookmark" />
+ <option name="Shortcut" value="shortcut" />
+ </setting>
+ <setting name="4th Shortcut Uid" ref="Shortcut4Uid" type="string">
+ <desc>Uid for the application, Menu content ids for the bookmarks and shortcuts </desc>
+ </setting>
+ <setting name="4th Shortcut View" ref="Shortcut4View" type="string">
+ <desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
+ </setting>
+ <setting name="4th Shortcut Param" ref="Shortcut4Param" type="string">
+ <desc>Params for shortcut. messaging:msg</desc>
+ </setting>
+ <setting name="Shortcut1 ItemId" readOnly="true" ref="Shortcut1ItemId" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut1 ItemName" readOnly="true" ref="Shortcut1ItemName" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut2 ItemId" readOnly="true" ref="Shortcut2ItemId" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut2 ItemName" readOnly="true" ref="Shortcut2ItemName" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut3 ItemId" readOnly="true" ref="Shortcut3ItemId" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut3 ItemName" readOnly="true" ref="Shortcut3ItemName" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut4 ItemId" readOnly="true" ref="Shortcut4ItemId" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut4 ItemName" readOnly="true" ref="Shortcut4ItemName" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut PropertyNameType" readOnly="true" ref="ShortcutPropertyNameType" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut PropertyNameUid" readOnly="true" ref="ShortcutPropertyNameUid" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut PropertyNameView" readOnly="true" ref="ShortcutPropertyNameView" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Shortcut PropertyNameParam" readOnly="true" ref="ShortcutPropertyNameParam" type="string">
+ <desc>Not customizable!</desc>
+ </setting>
+ </setting>
+ </feature>
+<data>
+ <VGA_HomescreenPlugins_3>
+ <MaxWidgets>6</MaxWidgets>
+ <UseEmptyWidgets>true</UseEmptyWidgets>
+ <ItemIdEmptyWidgets>hs_vga_tch_view</ItemIdEmptyWidgets>
+ <PropertyEmptyWidgets>use_empty_widget</PropertyEmptyWidgets>
+ <ItemIdWallpaper>wallpaper</ItemIdWallpaper>
+ <WallpaperPropertyName>path</WallpaperPropertyName>
+ <BackGroundPath />
+ <Plugins extensionPolicy="replace">
+ <Uid>0x2001f47f</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>permanent</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ <Plugins>
+ <Uid>0x2001f47f</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>permanent</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ <Plugins>
+ <Uid>0x2001f47f</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>permanent</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ <Plugins>
+ <Uid>0x2001f47f</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>permanent</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ <Plugins>
+ <Uid>0x2001f47f</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>permanent</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ <Plugins>
+ <Uid>0x2001f47f</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>permanent</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ </VGA_HomescreenPlugins_3>
+ </data>
+</configuration>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286eb.gcfml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="core"/>
+ <tag name="target" value="rofs2"/>
+ <tag name="target" value="rofs3"/>
+ <phase name='post'/> <!-- post phase for making sure that data for all homescreen widgets is available in sequence -->
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="viewconfiguration.xml" target="\private\200159c0\install\view3_200286eb\hsps\00\">
+ <setting ref="VGA_HomescreenPlugins_3/MaxWidgets"/>
+ <setting ref="VGA_HomescreenPlugins_3/UseEmptyWidgets"/>
+ <setting ref="VGA_HomescreenPlugins_3/ItemIdEmptyWidgets"/>
+ <setting ref="VGA_HomescreenPlugins_3/PropertyEmptyWidgets"/>
+ <setting ref="VGA_HomescreenPlugins_3/BackGroundPath"/>
+ <setting ref="VGA_HomescreenPlugins_3/ItemIdWallpaper"/>
+ <setting ref="VGA_HomescreenPlugins_3/WallpaperPropertyName"/>
+ <setting ref="VGA_HomescreenPlugins_3/Shortcut1ItemId"/>
+ <setting ref="VGA_HomescreenPlugins_3/Shortcut1ItemName"/>
+ <setting ref="VGA_HomescreenPlugins_3/Shortcut2ItemId"/>
+ <setting ref="VGA_HomescreenPlugins_3/Shortcut2ItemName"/>
+ <setting ref="VGA_HomescreenPlugins_3/Shortcut3ItemId"/>
+ <setting ref="VGA_HomescreenPlugins_3/Shortcut3ItemName"/>
+ <setting ref="VGA_HomescreenPlugins_3/Shortcut4ItemId"/>
+ <setting ref="VGA_HomescreenPlugins_3/Shortcut4ItemName"/>
+ <setting ref="VGA_HomescreenPlugins_3/ShortcutPropertyNameType"/>
+ <setting ref="VGA_HomescreenPlugins_3/ShortcutPropertyNameUid"/>
+ <setting ref="VGA_HomescreenPlugins_3/ShortcutPropertyNameView"/>
+ <setting ref="VGA_HomescreenPlugins_3/ShortcutPropertyNameParam"/>
+ <setting ref="VGA_HomescreenPlugins_3/Plugins"/>
+ <xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xi="http://www.w3.org/2001/xinclude">
+ <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+ <xsl:template match="configuration/data">
+ <configuration>
+ <xsl:attribute name="max_child"><xsl:value-of select="VGA_HomescreenPlugins_3/MaxWidgets"/></xsl:attribute>
+ <control>
+ <settings>
+ <item>
+ <xsl:attribute name="id"><xsl:value-of select="VGA_HomescreenPlugins_3/ItemIdEmptyWidgets"/></xsl:attribute>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="VGA_HomescreenPlugins_3/PropertyEmptyWidgets"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="VGA_HomescreenPlugins_3/UseEmptyWidgets"/></xsl:attribute>
+ </property>
+ </item>
+ <item>
+ <xsl:attribute name="id"><xsl:value-of select="VGA_HomescreenPlugins_3/ItemIdWallpaper"/></xsl:attribute>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="VGA_HomescreenPlugins_3/WallpaperPropertyName"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="VGA_HomescreenPlugins_3/BackGroundPath"/></xsl:attribute>
+ </property>
+ </item>
+ </settings>
+ <plugins>
+ <xsl:for-each select="VGA_HomescreenPlugins_3/Plugins">
+ <plugin>
+ <xsl:attribute name="uid"><xsl:value-of select="Uid"/></xsl:attribute>
+ <xsl:attribute name="bundle_id"><xsl:value-of select="BundleIdentifier"/></xsl:attribute>
+ <xsl:attribute name="template_id"><xsl:value-of select="TemplateIdentifier"/></xsl:attribute>
+ <xsl:attribute name="locking_status"><xsl:value-of select="LockingStatus"/></xsl:attribute>
+ <xsl:if test="ShortcutWidget = 1">
+ <initial_settings>
+ <settings>
+ <xsl:if test="Customize1Shortcut = 1">
+ <item>
+ <xsl:attribute name="id"><xsl:value-of select="Shortcut1ItemId"/></xsl:attribute>
+ <xsl:attribute name="name"><xsl:value-of select="Shortcut1ItemName"/></xsl:attribute>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameType"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut1Type"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameUid"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut1Uid"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameView"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut1View"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameParam"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut1Param"/></xsl:attribute>
+ </property>
+ </item>
+ </xsl:if>
+ <xsl:if test="Customize2Shortcut = 1">
+ <item>
+ <xsl:attribute name="id"><xsl:value-of select="Shortcut2ItemId"/></xsl:attribute>
+ <xsl:attribute name="name"><xsl:value-of select="Shortcut2ItemName"/></xsl:attribute>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameType"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut2Type"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameUid"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut2Uid"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameView"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut2View"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameParam"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut2Param"/></xsl:attribute>
+ </property>
+ </item>
+ </xsl:if>
+ <xsl:if test="Customize3Shortcut = 1">
+ <item>
+ <xsl:attribute name="id"><xsl:value-of select="Shortcut3ItemId"/></xsl:attribute>
+ <xsl:attribute name="name"><xsl:value-of select="Shortcut3ItemName"/></xsl:attribute>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameType"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut3Type"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameUid"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut3Uid"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameView"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut3View"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameParam"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut3Param"/></xsl:attribute>
+ </property>
+ </item>
+ </xsl:if>
+ <xsl:if test="Customize4Shortcut = 1">
+ <item>
+ <xsl:attribute name="id"><xsl:value-of select="Shortcut4ItemId"/></xsl:attribute>
+ <xsl:attribute name="name"><xsl:value-of select="Shortcut4ItemName"/></xsl:attribute>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameType"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut4Type"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameUid"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut4Uid"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameView"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut4View"/></xsl:attribute>
+ </property>
+ <property>
+ <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameParam"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="Shortcut4Param"/></xsl:attribute>
+ </property>
+ </item>
+ </xsl:if>
+ </settings>
+ </initial_settings>
+ </xsl:if>
+ </plugin>
+ </xsl:for-each>
+ </plugins>
+ </control>
+ </configuration>
+ </xsl:template>
+ </xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
Binary file idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebmanifest.confml has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebmanifest.gcfml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="core"/>
+ <tag name="target" value="rofs2"/>
+ <tag name="target" value="rofs3"/>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="manifest.dat" target="\private\200159c0\install\view3_200286eb\hsps\00\">
+ <setting ref="VGAHomescreen3manifest/PackageVersion"/>
+ <setting ref="VGAHomescreen3manifest/DeviceFamily"/>
+ <setting ref="VGAHomescreen3manifest/ConfigurationType"/>
+ <setting ref="VGAHomescreen3manifest/InterfaceUid"/>
+ <setting ref="VGAHomescreen3manifest/ProviderUid"/>
+ <setting ref="VGAHomescreen3manifest/ConfigurationUid"/>
+ <setting ref="VGAHomescreen3manifest/FullName"/>
+ <setting ref="VGAHomescreen3manifest/ShortName"/>
+ <setting ref="VGAHomescreen3manifest/ConfigurationVersion"/>
+ <setting ref="VGAHomescreen3manifest/ConfigurationFile"/>
+ <setting ref="VGAHomescreen3manifest/UiResourceFile"/>
+ <xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xi="http://www.w3.org/2001/xinclude">
+ <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+ <xsl:template match="configuration/data">
+ <package>
+ <xsl:attribute name="version"><xsl:value-of select="VGAHomescreen3manifest/PackageVersion"/></xsl:attribute>
+ <family>
+ <xsl:value-of select="VGAHomescreen3manifest/DeviceFamily"/>
+ </family>
+ <type>
+ <xsl:value-of select="VGAHomescreen3manifest/ConfigurationType"/>
+ </type>
+ <interfaceuid>
+ <xsl:value-of select="VGAHomescreen3manifest/InterfaceUid"/>
+ </interfaceuid>
+ <provideruid>
+ <xsl:value-of select="VGAHomescreen3manifest/ProviderUid"/>
+ </provideruid>
+ <configurationuid>
+ <xsl:value-of select="VGAHomescreen3manifest/ConfigurationUid"/>
+ </configurationuid>
+ <fullname>
+ <!--xsl:text>&</xsl:text-->
+ <xsl:value-of select="VGAHomescreen3manifest/FullName"/>
+ <!--xsl:text>;</xsl:text-->
+ </fullname>
+ <shortname>
+ <xsl:value-of select="VGAHomescreen3manifest/ShortName"/>
+ </shortname>
+ <version>
+ <xsl:value-of select="VGAHomescreen3manifest/ConfigurationVersion"/>
+ </version>
+ <filexml>
+ <xsl:value-of select="VGAHomescreen3manifest/ConfigurationFile"/>
+ </filexml>
+ <localization>
+ <fileresource>
+ <xsl:value-of select="VGAHomescreen3manifest/UiResourceFile"/>
+ </fileresource>
+ </localization>
+ </package>
+ </xsl:template>
+ </xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
Binary file idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebxuikon.confml has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebxuikon.gcfml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="core"/>
+ <tag name="target" value="rofs2"/>
+ <tag name="target" value="rofs3"/>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="empty.foo" target="\private\200159c0\install\view3_200286eb\xuikon\">
+ <setting ref="VGAHomescreen3XuikonFolder/FolderCFG"/>
+ <xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xi="http://www.w3.org/2001/xinclude">
+ <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+ <xsl:template match="configuration/data">
+ <whois>
+ <xsl:attribute name="dude"><xsl:value-of select="VGAHomescreen3XuikonFolder/FolderCFG"/></xsl:attribute>
+ </whois>
+ </xsl:template>
+ </xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,85 @@
+/*
+* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: The information required for building
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+// Support for productization and Carbide.Ui customization
+//********************************************************
+//../hsps/00/manifest.dat /epoc32/data/z/resource/homescreen/view3_200286eb/hsps/manifest.dat
+//../hsps/00/viewconfiguration.xml /epoc32/data/z/resource/homescreen/view3_200286eb/hsps/viewconfiguration.xml
+//../hsps/00/viewconfiguration.dtd /epoc32/data/z/resource/homescreen/view3_200286eb/hsps/viewconfiguration.dtd
+
+../xuikon/00/view.dat /epoc32/data/z/resource/homescreen/view3_200286eb/xuikon/view3_200286eb.dat
+../xuikon/00/view.xml /epoc32/data/z/resource/homescreen/view3_200286eb/xuikon/view.xml
+../xuikon/00/view.dtd /epoc32/data/z/resource/homescreen/view3_200286eb/xuikon/view.dtd
+../xuikon/00/view.css /epoc32/data/z/resource/homescreen/view3_200286eb/xuikon/view.css
+
+// Arabic languages
+//*****************
+../xuikon/37/view.css /epoc32/data/z/resource/homescreen/view3_200286eb/xuikon/37/view.css
+../xuikon/50/view.css /epoc32/data/z/resource/homescreen/view3_200286eb/xuikon/50/view.css
+../xuikon/57/view.css /epoc32/data/z/resource/homescreen/view3_200286eb/xuikon/57/view.css
+../xuikon/94/view.css /epoc32/data/z/resource/homescreen/view3_200286eb/xuikon/94/view.css
+
+
+//Confml and cfgml files for the customization
+//***********************************
+../conf/view200286eb.confml APP_LAYER_CONFML(view200286eb.confml)
+../conf/view200286eb.gcfml APP_LAYER_GCFML(view200286eb.gcfml)
+../conf/view200286ebmanifest.confml APP_LAYER_CONFML(view200286ebmanifest.confml)
+../conf/view200286ebmanifest.gcfml APP_LAYER_GCFML(view200286ebmanifest.gcfml)
+../conf/view200286ebxuikon.confml APP_LAYER_CONFML(view200286ebxuikon.confml)
+../conf/view200286ebxuikon.gcfml APP_LAYER_GCFML(view200286ebxuikon.gcfml)
+// Support for S60 localization
+//*****************************
+//#ifndef __VIEWCONFIGURATION_LOC__
+//#define __VIEWCONFIGURATION_LOC__
+//../loc/viewconfiguration.loc APP_LAYER_LOC_EXPORT_PATH(viewconfiguration.loc)
+//#endif // __VIEWCONFIGURATION_LOC__
+
+#ifndef __VIEW_LOC__
+#define __VIEW_LOC__
+../loc/view.loc APP_LAYER_LOC_EXPORT_PATH(view.loc)
+#endif // __VIEW_LOC__
+
+// Support for S60 builds
+//***********************
+../rom/view_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(view3_200286eb_resources.iby)
+../rom/view_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view3_200286eb_customer.iby)
+../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view3_200286eb_variant.iby)
+//../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view3_200286eb.iby)
+
+
+// Dtd-localization
+//*****************
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME view3_200286eb
+OPTION DTD_TYPE widget
+END
+
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/hsps/00/manifest.dat Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<package version="2.0">
+
+ <family>vga_tch</family>
+
+ <type>view</type>
+
+ <!-- interface uid -->
+ <interfaceuid>0x2001f48a</interfaceuid>
+
+ <!-- vendor uid -->
+ <provideruid>0x101fb657</provideruid>
+
+ <!-- configuration uid -->
+ <configurationuid>0x200286eb</configurationuid>
+
+ <!-- description -->
+ <fullname>view3</fullname>
+ <shortname>ai3_nokia</shortname>
+ <version>1.0</version>
+
+ <!-- configuration -->
+ <filexml>viewconfiguration.xml</filexml>
+
+ <!-- Name of the localization files -->
+ <!--filedtd>viewconfiguration.dtd</filedtd-->
+
+ <!-- Locale specific resources -->
+ <localization>
+ <fileresource>view.o0000</fileresource>
+ </localization>
+
+</package>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/hsps/00/viewconfiguration.dtd Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+============================================================================
+<FileName: "viewconfiguration.dtd">
+
+<FileDescription: "Localization strings for HSPS view configuration">
+<FileVersion : >
+
+<Copyright:
+"Copyright © 2005 Nokia Corporation.
+This material, including documentation and any related
+computer programs, is protected by copyright controlled by
+Nokia Corporation. All rights are reserved. Copying,
+including reproducing, storing, adapting or translating, any
+or all of this material requires the prior written consent of
+Nokia Corporation. This material also contains confidential
+information which may not be disclosed to others without the
+prior written consent of Nokia Corporation.">
+============================================================================
+-->
+
+<!-- LOCALISATION STRINGS -->
+
+<!ENTITY qtn_view_configuration_name "ai3_nokia">
+
+
+<!-- End of File-->
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/hsps/00/viewconfiguration.xml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<configuration max_child="6" xmlns:xi="http://www.w3.org/2001/xinclude">
+ <control>
+ <settings>
+ <item id="hs_vga_tch_view">
+ <property name="use_empty_widget" value="true"/>
+ </item>
+ <item id="wallpaper">
+ <property name="path" value=""/>
+ </item>
+ </settings>
+ <plugins>
+ <plugin uid="0x200286e6" bundle_id="0" template_id="0" locking_status="permanent"/>
+ <plugin uid="0x200286e7" bundle_id="0" template_id="0" locking_status="permanent"/>
+ <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="permanent"/>
+ <plugin uid="0x20018eee" bundle_id="0" template_id="0" locking_status="none"/>
+ <plugin uid="0x20018eee" bundle_id="0" template_id="0" locking_status="none"/>
+ <plugin uid="0x20018eee" bundle_id="0" template_id="0" locking_status="none"/>
+ </plugins>
+ </control>
+</configuration>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/loc/view.loc Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,322 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Localization strings for project Active Idle 3
+*
+*/
+
+// d: Help
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_options_help "Help"
+
+// d: Open
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define qtn_msk_open "Open"
+
+// d: Done
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_done "Done"
+
+// d: Open
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_options_open "Open"
+
+// d: Back
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_back "Back"
+
+// d: Empty string
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define shortcut_emptycaption " "
+
+// d: Add page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_add_page "Add page"
+
+// d: Select
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_options_select_widget "Select"
+
+// d: Add content
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_add_widget "Add content"
+
+// d: Access the widget catalog
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_widget_catalog "Widget catalog"
+
+// d: Search
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_search "Search"
+
+// d: Options
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_options "Options"
+
+// d: Refresh
+// l: list_single_pane_t1_cp2/opt3
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_widget "Refresh"
+
+// d: Focused widget
+// l: list_single_popup_submenu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_one_widget "One"
+
+// d: All widgets
+// l: list_single_popup_submenu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_all_widgets "All"
+
+// d: Remove content
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_remove_widget "Remove content"
+
+// d: Hide the content
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_hide_widgets "Hide the content"
+
+// d: Edit contents
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_edit_content "Edit content"
+
+// d: Change Wallpaper
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_wallpaper "Change Wallpaper"
+
+// d: Change Shortcut Settings
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_shortcut_settings "Change Shortcut Settings"
+
+// d: Widget settings
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_widget_settings "Widget settings"
+
+// d: Show widgets
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_show_widgets "Show the content"
+
+// d: Change Home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_page "Change Home screen page"
+
+// d: Change
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define qtn_msk_change "Change"
+
+// d: Show all profiles in Profiles widget
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_show_profiles "Show all profiles"
+
+// d: Right selection key
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_set_right_idle_softkey "Right selection key"
+
+// d: Select
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_select "Select"
+
+// d: Cancel
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_cancel "Cancel"
+
+// d: Options menu item which switches home to online. Web widgets get updates from network.
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_online "Switch Home to online"
+
+// d: Options menu item which switches home to offline. Web widgets are not updated
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_offline "Switch Home to offline"
+
+// d: String which is shown in long tap menu of Home screen if tapped widget has settings
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_settings "Settings"
+
+// d: String which is shown in long tap menu of Home screen if tapped some widget which is removable
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_remove_element "Remove"
+
+// d: String which is shown in long tap menu of Home screen if tapped empty space in home screen
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_add "Add content"
+
+// d: String which is shown in long tap menu of Home screen
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_change_longtap_wallpaper "Change wallpaper"
+
+// d: User can download new HS widgets. String is visible in add content list query
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_download_new_widgets "Download"
+
+// d: Changes focused widget
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_edit_replace "Replace"
+
+// d: deletes current home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_options_delete "Delete page"
+
+// d: creates new home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_options_new "New page"
+
+// d: view title in editing mode
+// l: title_pane_t2
+// w:
+// r: TB9.2
+#define qtn_hs_title_editing_view "Editing view"
+
+// d: Call
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_call "Call"
+
+// d: Added new option menu item to Edit mode for opening the widget catalog,
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_edit_widget_catalog "Widget Catalog"
+
+// d: Deletes the current Home screen page and focus goes to the next available Home screen page in Edit mode
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_edit_options_delete "Delete page"
+
+// d: Done
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_done "Done"
+
+// d: Search
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_search "Search"
+
+// d: Options
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_options "Options"
+
+// d: Back
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_back "Back"
+
+// d: Select
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_select "Select"
+
+// d: Cancel
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_cancel "Cancel"
+
+// d: Call
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_call "Call"
+
+// d: Lock keypad
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_lock_keypad "Lock keypad"
+
+// d: Menu
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_apps_menu_skey "Menu"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/loc/viewconfiguration.loc Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Localization strings for view3 plugin configuration (HSPS)
+*
+*/
+
+
+<!-- LOCALISATION STRINGS -->
+// d: AI3 View
+// l: ai_gene_pane_1_t1
+// w:
+// r: TB9.2
+//#define qtn_view_configuration_name "AI3 View"
+
+
+<!-- End of File-->
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/rom/view.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: View widget HSPS-plugin IBY file.
+*
+*/
+
+
+#ifndef __AI3VIEW_200286EB_IBY__
+#define __AI3VIEW_200286EB_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools
+data=ZPRIVATE\200159c0\install\view3_200286eb\hsps\00\manifest.dat \private\200159c0\install\view3_200286eb\hsps\00\manifest.dat
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __AI3VIEW_200286EB_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/rom/view_customer.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: View widget HSPS-plugin language specific IBY file.
+*
+*/
+
+
+#ifndef __AI3VIEW_200286EB_CUSTOMER_IBY__
+#define __AI3VIEW_200286EB_CUSTOMER_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\view3_200286eb\xuikon\00\view.o0000 \private\200159c0\install\view3_200286eb\xuikon\00\view.o0000
+//data=ZPRIVATE\200159c0\install\view3_200286eb\hsps\00\viewconfiguration.dtd \private\200159c0\install\view3_200286eb\hsps\00\viewconfiguration.dtd
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __AI3VIEW_200286EB_CUSTOMER_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/rom/view_resources.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: View widget HSPS-plugin language specific IBY file.
+*
+*/
+
+
+#ifndef __AI3VIEW_200286EB_RESOURCES_IBY__
+#define __AI3VIEW_200286EB_RESOURCES_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\view3_200286eb\xuikon\00\view.o0000 \private\200159c0\install\view3_200286eb\xuikon\00\view.o0000
+//data=ZPRIVATE\200159c0\install\view3_200286eb\hsps\00\viewconfiguration.dtd \private\200159c0\install\view3_200286eb\hsps\00\viewconfiguration.dtd
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __AI3VIEW_200286EB_RESOURCES_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/rom/view_variant.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: View widget HSPS-plugin variant specific IBY file.
+*
+*/
+
+
+#ifndef __AI3VIEW_200286EB_VARIANT_IBY__
+#define __AI3VIEW_200286EB_VARIANT_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by variation tools, variant specific
+data=ZPRIVATE\200159c0\install\view3_200286eb\hsps\00\viewconfiguration.xml \private\200159c0\install\view3_200286eb\hsps\00\viewconfiguration.xml
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __AI3VIEW_200286EB_VARIANT_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/00/View.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view
+{
+ direction: ltr;
+ block-progression: tb;
+ background-image: wallpaper;
+ swipe: true;
+
+ _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+ direction: ltr;
+ block-progression: tb;
+}
+
+plugin.miniplugins
+{
+ height: 115px;
+ width: 176px;
+
+ margin-top: 9px;
+ margin-left: 9px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+plugin.plugins
+{
+ height: 115px;
+ width: 436px;
+
+ margin-top: 9px;
+ margin-left: 10px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+trigger#hs_popup_open_hold:edit
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+ display: block;
+}
+
+softkey#rsk
+{
+ _s60-longtap: true;
+ _s60-aspect-ratio: preserve;
+}
+
+softkey#msk_ltr
+{
+ display: block;
+}
+
+softkey#msk_rtl
+{
+ display: none;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/00/View.xml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,289 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE xmluiml SYSTEM "View.dtd">
+<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
+ <view id="hs_vga_tch_view">
+ <actions>
+ <action>
+ <!-- End key -->
+ <trigger name="keyevent">
+ <property name="scancode" value="197"/> ><!-- End key -->
+ <property name="eventtype" value="1"/>
+ </trigger>
+ <!-- dismiss if edit mode active -->
+ <event name="system/reportexiteditmode"/>
+ </action>
+ <action>
+ <trigger name="editmode" value="enter"/>
+ <event name="system/set">
+ <property name="name" value="focusable"/>
+ <property name="value" value="true"/>
+ <property name="type" value="string"/>
+ <property name="class" value="plugins"/>
+ </event>
+ <event name="system/seteditmode">
+ <property name="id" value="hs_popup_open_hold"/>
+ </event>
+ </action>
+ <action>
+ <trigger name="editmode" value="exit"/>
+ <event name="system/set">
+ <property name="name" value="focusable"/>
+ <property name="value" value="false"/>
+ <property name="type" value="string"/>
+ <property name="class" value="plugins"/>
+ </event>
+ <event name="system/reseteditmode">
+ <property name="id" value="hs_popup_open_hold"/>
+ </event>
+ </action>
+ <action>
+ <trigger name="swipe" direction="left" conditional="true"/>
+ <event name="system/activatenextview" effectid="1003"/>
+ </action>
+ <action>
+ <trigger name="swipe" direction="right" conditional="true"/>
+ <event name="system/activatepreviousview" effectid="1004"/>
+ </action>
+ <action>
+ <trigger name="screendevicechange" reason="portrait"/>
+ <event name="system/set">
+ <property name="name" value="padding-left"/>
+ <property name="value" value="17px"/>
+ <property name="type" value="numeric"/>
+ <property name="id" value="plugins_container"/>
+ </event>
+ <event name="system/set">
+ <property name="name" value="padding-right"/>
+ <property name="value" value="17px"/>
+ <property name="type" value="numeric"/>
+ <property name="id" value="plugins_container"/>
+ </event>
+ </action>
+ <action>
+ <trigger name="screendevicechange" reason="landscape"/>
+ <event name="system/set">
+ <property name="name" value="padding-left"/>
+ <property name="value" value="0px"/>
+ <property name="type" value="numeric"/>
+ <property name="id" value="plugins_container"/>
+ </event>
+ <event name="system/set">
+ <property name="name" value="padding-right"/>
+ <property name="value" value="0px"/>
+ <property name="type" value="numeric"/>
+ <property name="id" value="plugins_container"/>
+ </event>
+ </action>
+ </actions>
+
+ <!-- Plugins in this view -->
+ <box id="plugins_container">
+ <plugin id="plugin1" class="miniplugins" actionshandler="plugin_actions">
+ </plugin>
+ <plugin id="plugin2" class="miniplugins" actionshandler="plugin_actions">
+ </plugin>
+ <plugin id="plugin3" class="miniplugins" actionshandler="plugin_actions">
+ </plugin>
+ <plugin id="plugin4" class="plugins" actionshandler="plugin_actions">
+ </plugin>
+ <plugin id="plugin5" class="plugins" actionshandler="plugin_actions">
+ </plugin>
+ <plugin id="plugin6" class="plugins" actionshandler="plugin_actions">
+ </plugin>
+ </box>
+
+ <!-- plugins' actions handler -->
+ <actionshandler id="plugin_actions">
+ <actions>
+ <action>
+ <trigger id="hs_popup_open_hold" name="hold" conditional="true" />
+ <event name="system/reportentereditmode" effectid="1005"/>
+ </action>
+ </actions>
+ </actionshandler>
+
+ <!-- Avkon stylus popup menu is not layout capable -->
+ <styluspopup id="hs_popup_menu" display="none">
+ <!-- menuitems controlled by widgets' <menuextension> -->
+ <widgetmenuitem id="hs_popup_widget_settings" source="hs_widget_menuitem_settings" label="&qtn_hs_longtap_settings;" />
+ <widgetmenuitem id="hs_popup_widget_general_1" source="hs_widget_general_stylus_popup_1"/>
+ <widgetmenuitem id="hs_popup_widget_general_2" source="hs_widget_general_stylus_popup_2"/>
+ <!--<widgetmenuitem id="hs_popup_widget_refresh" source="hs_widget_menuitem_refresh" label="Refresh" />-->
+ <!-- "Remove" item initialized in runtime to check whether popup is on top of widget -->
+ <dynmenuitem id="hs_popup_remove_widget" type="hs_remove_widget" label="&qtn_hs_longtap_remove_element;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/removefocusedwidget"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ </styluspopup>
+ <menubar id="hs_menubar">
+ <!-- menu item grouping table is traversed through in run-time always when options menu is launched. -->
+ <menuitemgrouping>
+ <!-- These items are shown when content is visible -->
+ <menuitemgroup id="Menu/NormalMode">
+ <property name="hs_edit_widgets"/>
+ <property name="hs_set_online"/>
+ <property name="hs_set_offline"/>
+ <property name="hs_add_view"/>
+ <property name="hs_remove_view"/>
+ </menuitemgroup>
+ <!-- These items are shown in edit mode, if not otherwise changed in the declaration -->
+ <menuitemgroup id="Menu/EditMode">
+ <property name="hs_widget_catalog"/>
+ <property name="hs_remove_widget"/>
+ <property name="hs_widget_settings"/>
+ <property name="hs_widget_general_1"/>
+ <property name="hs_widget_general_2"/>
+ <property name="hs_add_view"/>
+ <property name="hs_remove_view"/>
+ <property name="hs_change_wallpaper"/>
+ </menuitemgroup>
+ <menuitemgroup id="ContextMenu/EditMode">
+ <property name="hs_remove_widget"/>
+ <property name="hs_widget_settings"/>
+ <property name="hs_widget_general_1"/>
+ <property name="hs_widget_general_2"/>
+ </menuitemgroup>
+ <!-- These items are always shown, if not otherwise changed in the declaration -->
+ <menuitemgroup id="Menu/AlwaysShown">
+ <property name="hs_show_help"/>
+ </menuitemgroup>
+ </menuitemgrouping>
+ <menu id="hs_options_menu">
+ <menuitem id="hs_widget_catalog" label="&qtn_hs_widget_catalog;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/runaddwidgetquery"/>
+ </action>
+ </actions>
+ </menuitem>
+ <!-- menuitems controlled by widgets' <menuextension> element -->
+ <widgetmenuitem id="hs_widget_settings" source="hs_widget_menuitem_settings" label="&qtn_hs_widget_settings;"/>
+ <widgetmenuitem id="hs_widget_general_1" source="hs_widget_general_options_menu_1"/>
+ <widgetmenuitem id="hs_widget_general_2" source="hs_widget_general_options_menu_2"/>
+ <dynmenuitem id="hs_remove_widget" type="hs_remove_widget" label="&qtn_hs_remove_widget;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/removefocusedwidget"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ <!--<widgetmenuitem id="hs_widget_refresh" source="hs_widget_menuitem_refresh" label="&qtn_hs_refresh_widget;" />-->
+ <menuitem id="hs_edit_widgets" label="&qtn_hs_edit_content;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/reportentereditmode" effectid="1005"/>
+ </action>
+ </actions>
+ </menuitem>
+ <menuitem id="hs_change_wallpaper" label="&qtn_hs_change_wallpaper;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <!--Wallpaper-->
+ <event name="system/setwallpaper"/>
+ </action>
+ </actions>
+ </menuitem>
+ <dynmenuitem id="hs_add_view" type="hs_add_view" label="&qtn_hs_page_options_new;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/addview" effectid="1009"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ <dynmenuitem id="hs_remove_view" type="hs_remove_view" label="&qtn_hs_page_options_delete;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/removeview" effectid="1010"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ <dynmenuitem id="hs_set_online" type="hs_online" label="&qtn_hs_online;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="EventHandler/SetOnline"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ <dynmenuitem id="hs_set_offline" type="hs_offline" label="&qtn_hs_offline;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="EventHandler/SetOffline"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ <menuitem id="hs_show_help" label="&qtn_options_help;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="EventHandler/ShowHelp"/>
+ </action>
+ </actions>
+ </menuitem>
+ </menu>
+ <softkey id="lsk" type="left" label="&qtn_hs_text_softkey_options;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/trydisplayingmenu">
+ <property name="id" value="hs_options_menu"/>
+ </event>
+ </action>
+ </actions>
+ </softkey>
+ <softkey id="rsk" type="right" mode="mode_callinactive" label="#Menu">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="EventHandler/LaunchApp" uid="0x101F4CD2"/>
+ </action>
+ </actions>
+ </softkey>
+ <softkey id="rsk" type="right" mode="mode_callactive" label="#Menu">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="EventHandler/LaunchApp" uid="0x101F4CD2"/>
+ </action>
+ </actions>
+ </softkey>
+ <softkey id="rsk_done" type="right" mode="mode_edit" label="&qtn_hs_text_softkey_done;">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/reportexiteditmode" effectid="1006"/>
+ </action>
+ </actions>
+ </softkey>
+ <softkey id="msk_ltr" type="middle" label=""> <!--TODO: Remove label when MSK icon available-->
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/activatenextview" effectid="1003"/>
+ </action>
+ </actions>
+ <!--image id="switcher_icon"/-->
+ </softkey>
+ <softkey id="msk_rtl" type="middle" label=""> <!--TODO: Remove label when MSK icon available-->
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="system/activatepreviousview" effectid="1004"/>
+ </action>
+ </actions>
+ <!--image id="switcher_icon"/-->
+ </softkey>
+ </menubar>
+ </view>
+</xmluiml>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/00/view.dat Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<data>
+ <AppUid>E029CF57</AppUid>
+ <Provideruid>101FB657</Provideruid>
+ <ThemeUid>11001234</ThemeUid>
+ <ThemeFullName>Nokia</ThemeFullName>
+ <ThemeShortName>view</ThemeShortName>
+ <ThemeVersion>1.0</ThemeVersion>
+ <FileXML>view.xml</FileXML>
+ <FileCSS>view.css</FileCSS>
+ <FileDTD>view.dtd</FileDTD>
+
+</data>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/00/view.dtd Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,514 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+============================================================================
+<FileName: "View.dtd">
+<PartOf : "AI3">
+
+<FileDescription: "Localization strings for AI3">
+<FileVersion : >
+
+<Copyright:
+"Copyright (c) 2005 Nokia Corporation.
+This material, including documentation and any related
+computer programs, is protected by copyright controlled by
+Nokia Corporation. All rights are reserved. Copying,
+including reproducing, storing, adapting or translating, any
+or all of this material requires the prior written consent of
+Nokia Corporation. This material also contains confidential
+information which may not be disclosed to others without the
+prior written consent of Nokia Corporation.">
+============================================================================
+-->
+
+<!--
+qtn_options_help.attributes
+qtn_options_help.layout "list_single_pane_t1_cp2"
+qtn_options_help.release "TB9.2"
+qtn_options_help.description "Help"
+qtn_options_help.grammar "Help"
+qtn_options_help.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_options_help "Help">
+
+<!--
+qtn_msk_open.attributes
+qtn_msk_open.layout "control_pane_t1/opt7"
+qtn_msk_open.release "TB9.2"
+qtn_msk_open.description "Open"
+qtn_msk_open.grammar "Open"
+qtn_msk_open.parents "control_pane"
+-->
+<!ENTITY qtn_msk_open "Open">
+
+<!--
+text_softkey_done.attributes
+text_softkey_done.layout "nhd_control_pane_t2/opt7"
+text_softkey_done.release "TB9.2"
+text_softkey_done.description "Done"
+text_softkey_done.grammar "Done"
+text_softkey_done.parents "control_pane"
+-->
+<!ENTITY text_softkey_done "Done">
+
+<!--
+qtn_options_open.attributes
+qtn_options_open.layout "list_single_pane_t1_cp2"
+qtn_options_open.release "TB9.2"
+qtn_options_open.description "Open"
+qtn_options_open.grammar "Open"
+qtn_options_open.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_options_open "Open">
+
+<!--
+text_softkey_back.attributes
+text_softkey_back.layout "nhd_control_pane_t2/opt7"
+text_softkey_back.release "TB9.2"
+text_softkey_back.description "Back text for SK2"
+text_softkey_back.parents "control_pane"
+-->
+<!ENTITY text_softkey_back "Back">
+
+<!--
+shortcut_EmptyCaption.attributes
+shortcut_EmptyCaption.layout "control_pane_t1/opt7"
+shortcut_EmptyCaption.release "TB9.2"
+shortcut_EmptyCaption.description "Empty shortcut"
+shortcut_EmptyCaption.parents "list_ai2_gene_pane"
+-->
+<!ENTITY shortcut_EmptyCaption " ">
+
+<!--
+qtn_hs_add_page.attributes
+qtn_hs_add_page.layout "list_single_pane_t1_cp2"
+qtn_hs_add_page.release "TB9.2"
+qtn_hs_add_page.description "Add page"
+qtn_hs_add_page.grammar "Add page"
+qtn_hs_add_page.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_add_page "Add page">
+
+<!--
+qtn_options_select_widget.attributes
+qtn_options_select_widget.layout "list_single_pane_t1_cp2"
+qtn_options_select_widget.release "TB9.2"
+qtn_options_select_widget.description "Select"
+qtn_options_select_widget.grammar "Select"
+qtn_options_select_widget.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_options_select_widget "Select">
+
+<!--
+qtn_hs_add_widget.attributes
+qtn_hs_add_widget.layout "list_single_pane_t1_cp2"
+qtn_hs_add_widget.release "TB9.2"
+qtn_hs_add_widget.description "Add content"
+qtn_hs_add_widget.grammar "Add content"
+qtn_hs_add_widget.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_add_widget "Add content">
+
+<!--
+qtn_hs_widget_catalog.attributes
+qtn_hs_widget_catalog.layout "list_single_pane_t1_cp2"
+qtn_hs_widget_catalog.release "TB9.2"
+qtn_hs_widget_catalog.description "Widget catalog"
+qtn_hs_widget_catalog.grammar "Widget catalog"
+qtn_hs_widget_catalog.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_widget_catalog "Widget catalog">
+
+<!--
+text_softkey_search.attributes
+text_softkey_search.layout "nhd_control_pane_t2/opt7"
+text_softkey_search.release "TB9.2"
+text_softkey_search.description "Search"
+text_softkey_search.grammar "Search"
+text_softkey_search.parents "control_pane"
+-->
+<!ENTITY text_softkey_search "Search">
+
+<!--
+text_softkey_options.attributes
+text_softkey_options.layout "nhd_control_pane_t2/opt7"
+text_softkey_options.release "TB9.2"
+text_softkey_options.description "Options"
+text_softkey_options.grammar "Options"
+text_softkey_options.parents "control_pane"
+-->
+<!ENTITY text_softkey_options "Options">
+
+<!--
+qtn_hs_refresh_widget.attributes
+qtn_hs_refresh_widget.layout "list_single_pane_t1_cp2/opt3"
+qtn_hs_refresh_widget.release "TB9.2"
+qtn_hs_refresh_widget.description "Refresh"
+qtn_hs_refresh_widget.grammar "Refresh"
+qtn_hs_refresh_widget.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_refresh_widget "Refresh">
+
+<!--
+qtn_hs_refresh_one_widget.attributes
+qtn_hs_refresh_one_widget.layout "list_single_popup_submenu_pane_t1"
+qtn_hs_refresh_one_widget.release "TB9.2"
+qtn_hs_refresh_one_widget.description "One"
+qtn_hs_refresh_one_widget.grammar "One"
+qtn_hs_refresh_one_widget.parents "list_single_popup_submenu_pane"
+-->
+<!ENTITY qtn_hs_refresh_one_widget "One">
+
+<!--
+qtn_hs_refresh_all_widgets.attributes
+qtn_hs_refresh_all_widgets.layout "list_single_popup_submenu_pane_t1"
+qtn_hs_refresh_all_widgets.release "TB9.2"
+qtn_hs_refresh_all_widgets.description "All"
+qtn_hs_refresh_all_widgets.grammar "All"
+qtn_hs_refresh_all_widgets.parents "list_single_popup_submenu_pane"
+-->
+<!ENTITY qtn_hs_refresh_all_widgets "All">
+
+<!--
+qtn_hs_remove_widget.attributes
+qtn_hs_remove_widget.layout "list_single_pane_t1_cp2"
+qtn_hs_remove_widget.release "TB9.2"
+qtn_hs_remove_widget.description "Remove content"
+qtn_hs_remove_widget.grammar "Remove content"
+qtn_hs_remove_widget.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_remove_widget "Remove content">
+
+<!--
+qtn_hs_hide_widgets.attributes
+qtn_hs_hide_widgets.layout "list_single_pane_t1_cp2"
+qtn_hs_hide_widgets.release "TB9.2"
+qtn_hs_hide_widgets.description "Hide the content"
+qtn_hs_hide_widgets.grammar "Hide the content"
+qtn_hs_hide_widgets.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_hide_widgets "Hide the content">
+
+<!--
+qtn_hs_edit_content.attributes
+qtn_hs_edit_content.layout "list_single_pane_t1_cp2"
+qtn_hs_edit_content.release "TB9.2"
+qtn_hs_edit_content.description "Edit contents"
+qtn_hs_edit_content.grammar "Edit contents"
+qtn_hs_edit_content.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_edit_content "Edit content">
+
+<!--
+qtn_hs_change_wallpaper.attributes
+qtn_hs_change_wallpaper.layout "list_single_pane_t1_cp2"
+qtn_hs_change_wallpaper.release "TB9.2"
+qtn_hs_change_wallpaper.description "Change Wallpaper"
+qtn_hs_change_wallpaper.grammar "Change Wallpaper"
+qtn_hs_change_wallpaper.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_change_wallpaper "Change Wallpaper">
+
+<!--
+qtn_hs_change_shortcut_settings.attributes
+qtn_hs_change_shortcut_settings.layout "list_single_pane_t1_cp2"
+qtn_hs_change_shortcut_settings.release "TB9.2"
+qtn_hs_change_shortcut_settings.description "Change Shortcut Settings"
+qtn_hs_change_shortcut_settings.grammar "Change Shortcut Settings"
+qtn_hs_change_shortcut_settings.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_change_shortcut_settings "Change Shortcut Settings">
+
+<!--
+qtn_hs_widget_settings.attributes
+qtn_hs_widget_settings.layout "list_single_pane_t1_cp2"
+qtn_hs_widget_settings.release "TB9.2"
+qtn_hs_widget_settings.description "Widget settings"
+qtn_hs_widget_settings.grammar "Widget settings"
+qtn_hs_widget_settings.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_widget_settings "Widget settings">
+
+<!--
+qtn_hs_show_widgets.attributes
+qtn_hs_show_widgets.layout "list_single_pane_t1_cp2"
+qtn_hs_show_widgets.release "TB9.2"
+qtn_hs_show_widgets.description "Show widgets"
+qtn_hs_show_widgets.grammar "Show widgets"
+qtn_hs_show_widgets.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_show_widgets "Show the content">
+
+<!--
+qtn_hs_change_page.attributes
+qtn_hs_change_page.layout "list_single_pane_t1_cp2"
+qtn_hs_change_page.release "TB9.2"
+qtn_hs_change_page.description "Change Home screen page"
+qtn_hs_change_page.grammar "Change Home screen page"
+qtn_hs_change_page.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_change_page "Change Home screen page">
+
+<!--
+qtn_msk_change.attributes
+qtn_msk_change.layout "control_pane_t1/opt7"
+qtn_msk_change.release "TB9.2"
+qtn_msk_change.description "Change"
+qtn_msk_change.grammar "Change"
+qtn_msk_change.parents "control_pane"
+-->
+<!ENTITY qtn_msk_change "Change">
+
+<!--
+qtn_hs_show_profiles.attributes
+qtn_hs_show_profiles.layout "list_single_pane_t1_cp2"
+qtn_hs_show_profiles.release "TB9.2"
+qtn_hs_show_profiles.description "Show all profiles"
+qtn_hs_show_profiles.grammar "Show all profiles"
+qtn_hs_show_profiles.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_show_profiles "Show all profiles">
+
+<!--
+qtn_set_right_idle_softkey.attributes
+qtn_set_right_idle_softkey.layout "list_single_pane_t1_cp2"
+qtn_set_right_idle_softkey.release "TB9.2"
+qtn_set_right_idle_softkey.description "Right selection key"
+qtn_set_right_idle_softkey.grammar "Right selection key"
+qtn_set_right_idle_softkey.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_set_right_idle_softkey "Right selection key">
+
+<!--
+text_softkey_select.attributes
+text_softkey_select.layout "nhd_control_pane_t2/opt7"
+text_softkey_select.release "TB9.2"
+text_softkey_select.description "Select"
+text_softkey_select.grammar "Select"
+text_softkey_select.parents "control_pane"
+-->
+<!ENTITY text_softkey_select "Select">
+
+<!--
+text_softkey_cancel.attributes
+text_softkey_cancel.layout "nhd_control_pane_t2/opt7"
+text_softkey_cancel.release "TB9.2"
+text_softkey_cancel.description "Cancel"
+text_softkey_cancel.grammar "Cancel"
+text_softkey_cancel.parents "control_pane"
+-->
+<!ENTITY text_softkey_cancel "Cancel">
+
+<!--
+qtn_hs_online.attributes
+qtn_hs_online.layout "list_single_pane_t1_cp2"
+qtn_hs_online.release "TB9.2"
+qtn_hs_online.description "Online"
+qtn_hs_online.grammar "Online"
+qtn_hs_online.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_online "Switch Home to online">
+
+<!--
+qtn_hs_offline.attributes
+qtn_hs_offline.layout "list_single_pane_t1_cp2"
+qtn_hs_offline.release "TB9.2"
+qtn_hs_offline.description "Offline"
+qtn_hs_offline.grammar "Offline"
+qtn_hs_offline.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_offline "Switch Home to offline">
+
+<!--
+qtn_hs_longtap_settings.attributes
+qtn_hs_longtap_settings.layout "list_single_touch_menu_pane_t1"
+qtn_hs_longtap_settings.release "TB9.2"
+qtn_hs_longtap_settings.description "String which is shown in long tap menu of Home screen if tapped widget has settings."
+qtn_hs_longtap_settings.parents "control_pane"
+-->
+<!ENTITY qtn_hs_longtap_settings "Settings">
+
+<!--
+qtn_hs_longtap_remove_element.attributes
+qtn_hs_longtap_remove_element.layout "list_single_touch_menu_pane_t1"
+qtn_hs_longtap_remove_element.release "TB9.2"
+qtn_hs_longtap_remove_element.description "String which is shown in long tap menu of Home screen if tapped some widget which is removable."
+qtn_hs_longtap_remove_element.parents "control_pane"
+-->
+<!ENTITY qtn_hs_longtap_remove_element "Remove">
+
+<!--
+qtn_hs_longtap_add.attributes
+qtn_hs_longtap_add.layout "list_single_touch_menu_pane_t1"
+qtn_hs_longtap_add.release "TB9.2"
+qtn_hs_longtap_add.description "String which is shown in long tap menu of Home screen if tapped empty space in home screen."
+qtn_hs_longtap_add.parents "control_pane"
+-->
+<!ENTITY qtn_hs_longtap_add "Add content">
+
+<!--
+qtn_hs_change_longtap_wallpaper.attributes
+qtn_hs_change_longtap_wallpaper.layout "list_single_touch_menu_pane_t1"
+qtn_hs_change_longtap_wallpaper.release "TB9.2"
+qtn_hs_change_longtap_wallpaper.description "String which is shown in long tap menu of Home screen."
+qtn_hs_change_longtap_wallpaper.parents "control_pane"
+-->
+<!ENTITY qtn_hs_change_longtap_wallpaper "Change wallpaper">
+
+<!--
+qtn_hs_download_new_widgets.attributes
+qtn_hs_download_new_widgets.layout "list_single_pane_t1_cp2"
+qtn_hs_download_new_widgets.release "TB9.2"
+qtn_hs_download_new_widgets.description "User can download new HS widgets String is visible in add content list query"
+qtn_hs_download_new_widgets.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_download_new_widgets "Download">
+
+<!--
+qtn_hs_edit_replace.attributes
+qtn_hs_edit_replace.layout "list_single_touch_menu_pane_t1"
+qtn_hs_edit_replace.release "TB9.2"
+qtn_hs_edit_replace.description "Changes focused widget"
+qtn_hs_edit_replace.parents ""
+-->
+<!ENTITY qtn_hs_edit_replace "Replace">
+
+<!--
+qtn_hs_page_options_delete.attributes
+qtn_hs_page_options_delete.layout "list_single_pane_t1_cp2"
+qtn_hs_page_options_delete.release "TB9.2"
+qtn_hs_page_options_delete.description "deletes current home screen page"
+qtn_hs_page_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_page_options_delete "Delete page">
+
+<!--
+qtn_hs_page_options_new.attributes
+qtn_hs_page_options_new.layout "list_single_pane_t1_cp2"
+qtn_hs_page_options_new.release "TB9.2"
+qtn_hs_page_options_new.description "creates new home screen page"
+qtn_hs_page_options_new.parents ""
+-->
+<!ENTITY qtn_hs_page_options_new "New page">
+
+<!--
+qtn_hs_title_editing_view.attributes
+qtn_hs_title_editing_view.layout "title_pane_t2"
+qtn_hs_title_editing_view.release "TB9.2"
+qtn_hs_title_editing_view.description "view title in editing mode"
+qtn_hs_title_editing_view.parents ""
+-->
+<!ENTITY qtn_hs_title_editing_view "Editing view">
+
+<!--
+text_softkey_call.attributes
+text_softkey_call.layout "nhd_control_pane_t2/opt7"
+text_softkey_call.release "TB9.2"
+text_softkey_call.description "RSK caption call inactive"
+text_softkey_call.parents ""
+-->
+<!ENTITY text_softkey_call "Call">
+
+<!--
+qtn_hs_edit_widget_catalog.attributes
+qtn_hs_edit_widget_catalog.layout "list_single_pane_t1_cp2"
+qtn_hs_edit_widget_catalog.release "TB9.2"
+qtn_hs_edit_widget_catalog.description "Added new option menu item to Edit mode for opening the widget catalog"
+qtn_hs_edit_widget_catalog.grammar "Widget Catalog"
+qtn_hs_edit_widget_catalog.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_edit_widget_catalog "Widget Catalog">
+
+<!--
+qtn_hs_page_edit_options_delete.attributes
+qtn_hs_page_edit_options_delete.layout "list_single_pane_t1_cp2"
+qtn_hs_page_edit_options_delete.release "TB9.2"
+qtn_hs_page_edit_options_delete.description "Deletes the current Home screen page and focus goes to the next available Home screen page in Edit mode"
+qtn_hs_page_edit_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_page_edit_options_delete "Delete page">
+
+<!--
+qtn_hs_text_softkey_done.attributes
+qtn_hs_text_softkey_done.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_done.release "TB9.2"
+qtn_hs_text_softkey_done.description "Done"
+qtn_hs_text_softkey_done.grammar "Done"
+qtn_hs_text_softkey_done.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_done "Done">
+
+<!--
+qtn_hs_text_softkey_search.attributes
+qtn_hs_text_softkey_search.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_search.release "TB9.2"
+qtn_hs_text_softkey_search.description "Search"
+qtn_hs_text_softkey_search.grammar "Search"
+qtn_hs_text_softkey_search.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_search "Search">
+
+<!--
+qtn_hs_text_softkey_options.attributes
+qtn_hs_text_softkey_options.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_options.release "TB9.2"
+qtn_hs_text_softkey_options.description "Options"
+qtn_hs_text_softkey_options.grammar "Options"
+qtn_hs_text_softkey_options.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_options "Options">
+
+<!--
+qtn_hs_text_softkey_back.attributes
+qtn_hs_text_softkey_back.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_back.release "TB9.2"
+qtn_hs_text_softkey_back.description "Back text for SK2"
+qtn_hs_text_softkey_back.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_back "Back">
+
+<!--
+qtn_hs_text_softkey_select.attributes
+qtn_hs_text_softkey_select.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_select.release "TB9.2"
+qtn_hs_text_softkey_select.description "Select"
+qtn_hs_text_softkey_select.grammar "Select"
+qtn_hs_text_softkey_select.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_select "Select">
+
+<!--
+qtn_hs_text_softkey_cancel.attributes
+qtn_hs_text_softkey_cancel.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_cancel.release "TB9.2"
+qtn_hs_text_softkey_cancel.description "Cancel"
+qtn_hs_text_softkey_cancel.grammar "Cancel"
+qtn_hs_text_softkey_cancel.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_cancel "Cancel">
+
+<!--
+qtn_hs_text_softkey_call.attributes
+qtn_hs_text_softkey_call.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_call.release "TB9.2"
+qtn_hs_text_softkey_call.description "RSK caption call inactive"
+qtn_hs_text_softkey_call.parents ""
+-->
+<!ENTITY qtn_hs_text_softkey_call "Call">
+
+<!--
+qtn_hs_page_edit_options_delete.attributes
+qtn_hs_page_edit_options_delete.layout "list_single_pane_t1_cp2"
+qtn_hs_page_edit_options_delete.release "TB9.2"
+qtn_hs_page_edit_options_delete.description "Lock keypad"
+qtn_hs_page_edit_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_lock_keypad "Lock keypad">
+
+<!--
+qtn_hs_text_softkey_call.attributes
+qtn_hs_text_softkey_call.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_call.release "TB9.2"
+qtn_hs_text_softkey_call.description "RSK caption"
+qtn_hs_text_softkey_call.parents ""
+-->
+<!ENTITY qtn_hs_apps_menu_skey "Menu">
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/37/view.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view
+{
+ direction: rtl;
+ block-progression: tb;
+ background-image: wallpaper;
+ swipe: true;
+
+ _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+ direction: rtl;
+ block-progression: tb;
+}
+
+plugin.miniplugins
+{
+ height: 115px;
+ width: 176px;
+
+ margin-top: 9px;
+ margin-right: 9px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+plugin.plugins
+{
+ height: 115px;
+ width: 436px;
+
+ margin-top: 9px;
+ margin-right: 10px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+trigger#hs_popup_open_hold:edit
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+ display: block;
+}
+
+softkey#rsk
+{
+ _s60-longtap: true;
+ _s60-aspect-ratio: preserve;
+}
+
+softkey#msk_ltr
+{
+ display: block;
+}
+
+softkey#msk_rtl
+{
+ display: none;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/50/view.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view
+{
+ direction: rtl;
+ block-progression: tb;
+ background-image: wallpaper;
+ swipe: true;
+
+ _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+ direction: rtl;
+ block-progression: tb;
+}
+
+plugin.miniplugins
+{
+ height: 115px;
+ width: 176px;
+
+ margin-top: 9px;
+ margin-right: 9px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+plugin.plugins
+{
+ height: 115px;
+ width: 436px;
+
+ margin-top: 9px;
+ margin-right: 10px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+trigger#hs_popup_open_hold:edit
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+ display: block;
+}
+
+softkey#rsk
+{
+ _s60-longtap: true;
+ _s60-aspect-ratio: preserve;
+}
+
+softkey#msk_ltr
+{
+ display: block;
+}
+
+softkey#msk_rtl
+{
+ display: none;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/57/view.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view
+{
+ direction: rtl;
+ block-progression: tb;
+ background-image: wallpaper;
+ swipe: true;
+
+ _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+ direction: rtl;
+ block-progression: tb;
+}
+
+plugin.miniplugins
+{
+ height: 115px;
+ width: 176px;
+
+ margin-top: 9px;
+ margin-right: 9px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+plugin.plugins
+{
+ height: 115px;
+ width: 436px;
+
+ margin-top: 9px;
+ margin-right: 10px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+trigger#hs_popup_open_hold:edit
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+ display: block;
+}
+
+softkey#rsk
+{
+ _s60-longtap: true;
+ _s60-aspect-ratio: preserve;
+}
+
+softkey#msk_ltr
+{
+ display: block;
+}
+
+softkey#msk_rtl
+{
+ display: none;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/94/view.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view
+{
+ direction: rtl;
+ block-progression: tb;
+ background-image: wallpaper;
+ swipe: true;
+
+ _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+ direction: rtl;
+ block-progression: tb;
+}
+
+plugin.miniplugins
+{
+ height: 115px;
+ width: 176px;
+
+ margin-top: 9px;
+ margin-right: 9px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+plugin.plugins
+{
+ height: 115px;
+ width: 436px;
+
+ margin-top: 9px;
+ margin-right: 10px;
+
+ _s60-longtap: true;
+
+ nav-index: appearance;
+}
+
+trigger#hs_popup_open_hold:edit
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up
+{
+ display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+ display: block;
+}
+
+softkey#rsk
+{
+ _s60-longtap: true;
+ _s60-aspect-ratio: preserve;
+}
+
+softkey#msk_ltr
+{
+ display: block;
+}
+
+softkey#msk_rtl
+{
+ display: none;
+}
+
--- a/idlehomescreen/data/vga_tch/wideimage_10009dff/group/bld.inf Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
@@ -11,11 +11,11 @@
*
* Contributors:
*
-* Description: The information required for building
+* Description:
+* The information required for building
*
*/
-
#include <platform_paths.hrh>
PRJ_PLATFORMS
@@ -24,28 +24,26 @@
PRJ_EXPORTS
// Support for productization and Carbide.Ui customization
//********************************************************
-../hsps/00/manifest.dat /epoc32/data/z/resource/homescreen/wideimage_10009dff/hsps/manifest.dat
-../hsps/00/widgetconfiguration.xml /epoc32/data/z/resource/homescreen/wideimage_10009dff/hsps/widgetconfiguration.xml
+../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/wideimage_10009dff/hsps/manifest.dat
+../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/wideimage_10009dff/hsps/widgetconfiguration.xml
+../xuikon/00/wideimage.dat /epoc32/data/Z/resource/homescreen/wideimage_10009dff/xuikon/wideimage_10009dff.dat
+../xuikon/00/wideimage.css /epoc32/data/Z/resource/homescreen/wideimage_10009dff/xuikon/wideimage.css
+../xuikon/00/wideimage.xml /epoc32/data/Z/resource/homescreen/wideimage_10009dff/xuikon/wideimage.xml
-../xuikon/00/wideimage.dat /epoc32/data/z/resource/homescreen/wideimage_10009dff/xuikon/wideimage_10009dff.dat
-../xuikon/00/wideimage.css /epoc32/data/z/resource/homescreen/wideimage_10009dff/xuikon/wideimage.css
-../xuikon/00/wideimage.xml /epoc32/data/z/resource/homescreen/wideimage_10009dff/xuikon/wideimage.xml
-../xuikon/00/wideimage.dtd /epoc32/data/z/resource/homescreen/wideimage_10009dff/xuikon/wideimage.dtd
+// Arabic languages
+//*****************
+//../xuikon/37/wideimage.css /epoc32/data/Z/resource/homescreen/wideimage_10009dff/xuikon/37/wideimage.css
+//../xuikon/50/wideimage.css /epoc32/data/Z/resource/homescreen/wideimage_10009dff/xuikon/50/wideimage.css
+//../xuikon/57/wideimage.css /epoc32/data/Z/resource/homescreen/wideimage_10009dff/xuikon/57/wideimage.css
+//../xuikon/94/wideimage.css /epoc32/data/Z/resource/homescreen/wideimage_10009dff/xuikon/94/wideimage.css
// Support for S60 builds
//***********************
../rom/wideimage_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(wideimage_10009dff_resources.iby)
../rom/wideimage_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(wideimage_10009dff_customer.iby)
-../rom/wideimage_variant.iby CUSTOMER_VARIANT_APP_LAYER_IBY_EXPORT_PATH(wideimage_10009dff_variant.iby)
+../rom/wideimage_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(wideimage_10009dff_variant.iby)
../rom/wideimage.iby CORE_APP_LAYER_IBY_EXPORT_PATH(wideimage_10009dff.iby)
-// Support for S60 localization
-//*****************************
-#ifndef __WIDEIMAGE_LOC__
-#define __WIDEIMAGE_LOC__
-../loc/wideimage.loc APP_LAYER_LOC_EXPORT_PATH(wideimage.loc)
-#endif // __WIDEIMAGE_LOC__
-
// Dtd-localization
//*****************
PRJ_EXTENSIONS
@@ -61,7 +59,3 @@
PRJ_TESTMMPFILES
// End of File
-
-
-
-
--- a/idlehomescreen/data/vga_tch/wideimage_10009dff/hsps/00/widgetconfiguration.xml Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/hsps/00/widgetconfiguration.xml Tue Sep 14 20:58:58 2010 +0300
@@ -1,24 +1,9 @@
<configuration>
<control>
<settings>
- <item id="wideimage_widget" name="ContentSource" >
- <property name="name" value=""/>
- </item>
-
- <item id="pub_id" name="publisher">
- <property name="value" value=""/> <!--Def value "Test_Publisher"-->
- </item>
-
- <item id="prop1" name="contentdata" >
- <property name="class" value="image1"/> <!-- Template designer choice -->
- </item>
-
- <!-- Template designer choice -->
- <item id="p_trigger" name="pubtrigger" >
- <property name="name" value="selected"/>
- </item>
-
-
+ <item id="pub_id" name="ContentSource">
+ <property name="value" value=""/>
+ </item>
</settings>
</control>
</configuration>
--- a/idlehomescreen/data/vga_tch/wideimage_10009dff/loc/wideimage.loc Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-/*
-* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Localization strings for WideImage widget (Xuikon)
-*
-*/
-
-// d: Loading content
-// l: ai_gene_pane_1_t1/opt4
-// w:
-// r: TB9.2
-#define qtn_ai_loading_content "Loading content..."
\ No newline at end of file
--- a/idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage.iby Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
#ifndef __WIDEIMAGE_10009DFF_IBY__
#define __WIDEIMAGE_10009DFF_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools
data=ZPRIVATE\200159c0\install\wideimage_10009dff\hsps\00\manifest.dat \private\200159c0\install\wideimage_10009dff\hsps\00\manifest.dat
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __WIDEIMAGE_10009DFF_IBY__
--- a/idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage_customer.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage_customer.iby Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
#ifndef __WIDEIMAGE_10009DFF_CUSTOMER_IBY__
#define __WIDEIMAGE_10009DFF_CUSTOMER_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools, language specific
data=ZPRIVATE\200159c0\install\wideimage_10009dff\xuikon\00\wideimage.o0000 \private\200159c0\install\wideimage_10009dff\xuikon\00\wideimage.o0000
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __WIDEIMAGE_10009DFF_CUSTOMER_IBY__
--- a/idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage_resources.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage_resources.iby Tue Sep 14 20:58:58 2010 +0300
@@ -18,11 +18,11 @@
#ifndef __WIDEIMAGE_10009DFF_RESOURCES_IBY__
#define __WIDEIMAGE_10009DFF_RESOURCES_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by DTD-localization tools, language specific
-data=ZPRIVATE\200159c0\install\wideimage_10009dff\xuikon\00\wideimage.o0000 \private\200159c0\install\wideimage_10009dff\xuikon\00\wideimage.o0000
+//data=ZPRIVATE\200159c0\install\wideimage_10009dff\xuikon\00\wideimage.o0000 \private\200159c0\install\wideimage_10009dff\xuikon\00\wideimage.o0000
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __WIDEIMAGE_10009DFF_RESOURCES_IBY__
--- a/idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage_variant.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage_variant.iby Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
#ifndef __WIDEIMAGE_10009DFF_VARIANT_IBY__
#define __WIDEIMAGE_10009DFF_VARIANT_IBY__
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
// Enabled by variation tools, variant specific
data=ZPRIVATE\200159c0\install\wideimage_10009dff\hsps\00\widgetconfiguration.xml \private\200159c0\install\wideimage_10009dff\hsps\00\widgetconfiguration.xml
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
#endif // __WIDEIMAGE_10009DFF_VARIANT_IBY__
--- a/idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.css Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.css Tue Sep 14 20:58:58 2010 +0300
@@ -1,45 +1,53 @@
-widget{
- width:auto;
- height:60px;
- }
-
-box#image_container:focus {
- background-image: "SKIN(268458534 24576)";
- background-color: "SKIN(268458534 5120 9)";
-}
-
-box#image_container:hold
+widget#wideimage_template
{
- background-color: "SKIN(268458534 5120 9)";
+ nav-index: appearance;
+ block-progression:rl;
+ direction: ltr;
}
box#image_container
{
- padding-top : 2px;
- padding-bottom: 2px;
- padding-left : 10px;
- padding-right : 10px;
- direction: ltr;
- nav-index:appearance;
+ /* Will be updated by content policy */
+ display: none;
+}
+box#default_container
+{
+ /* Will be updated by content policy */
+ display: block;
+}
+
+image#w_default_image
+{
+ padding-top:9px;
+ padding-bottom:9px;
+ padding-left:9px;
+ padding-right:9px;
+ height: 105px;
+ width: 105px;
}
-image#wide_image
+text#w_default_text
{
- display: none;
- width:auto;
- height:auto;
- /*_s60-aspect-ratio:preserve;*/
+ padding-left:9px;
+ padding-right:9px;
+ height : 10u;
+ font-line-space: 15;
+ direction: ltr;
+ text-align:left;
+ text-overflow-mode: wrap;
+ font-family: EAknLogicalFontSecondaryFont;
+ font-size: 4u;
+ color: "SKIN(268458534 13056 74)";
}
-text#wide_text
+animation#loading
{
- display: block;
- width:auto;
- height:auto;
- padding-left: 5px;
- font-family: EAknLogicalFontSecondaryFont;
- font-size:18px;
- color:white;
+ position: absolute;
+ top: 9px;
+ left: 401px;
+ right:9px;
+ width:30px;
+ height:30px;
+ /* Will be updated by dataplugin */
+ display: none;
}
-
-
--- a/idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.dat Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.dat Tue Sep 14 20:58:58 2010 +0300
@@ -8,5 +8,4 @@
<ThemeVersion>1.0</ThemeVersion>
<FileXML>wideimage.xml</FileXML>
<FileCSS>wideimage.css</FileCSS>
- <FileDTD>wideimage.dtd</FileDTD>
</data>
\ No newline at end of file
--- a/idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.dtd Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-============================================================================
-<FileName: "wideimage.dtd">
-<PartOf : "AI3">
-
-<FileDescription: "Localization strings for AI3">
-<FileVersion : >
-
-<Copyright:
-"Copyright © 2005 Nokia Corporation.
-This material, including documentation and any related
-computer programs, is protected by copyright controlled by
-Nokia Corporation. All rights are reserved. Copying,
-including reproducing, storing, adapting or translating, any
-or all of this material requires the prior written consent of
-Nokia Corporation. This material also contains confidential
-information which may not be disclosed to others without the
-prior written consent of Nokia Corporation.">
-============================================================================
--->
-
-
-<!--
-qtn_ai_loading_content.attributes
-qtn_ai_loading_content.layout "ai_gene_pane_1_t1/opt4"
-qtn_ai_loading_content.release "5.0"
-qtn_ai_loading_content.description "Shows information text for slow loading widgets"
-qtn_ai_loading_content.parents "ai_gene_pane_1"
--->
-<!ENTITY qtn_ai_loading_content "Loading content...">
-
-
-
-
-
--- a/idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.xml Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.xml Tue Sep 14 20:58:58 2010 +0300
@@ -1,43 +1,62 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE xmluiml SYSTEM "wideimage.dtd">
<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
- <widget>
- <contentsource id="wideimage_widget" class="ContentSource" name="" value="0x20019594"/>
+ <widget id="wideimage_template" focusable="true" _s60-initial-focus="1">
+
+ <!-- Data plugin in this widget -->
+ <contentsource id="wrt_plugin" name="WRTWidget" value="0x200286DD" />
<configuration name="service" value="Service.ContentPublishing"/>
<configuration name="interface" value="IContentPublishing"/>
<configuration name="command" value="GetList"/>
<configuration id="pub_id" name="publisher" value=""/>
-
- <box id="image_container" sizeaware="true" focusable="true" _s60-initial-focus="1">
- <!-- Template designer choice -->
+
<actions>
- <action>
- <trigger name="stylus">
- <property name="eventtype" value="downup" />
- </trigger>
- <trigger name="activate"/>
- <trigger name="keyevent">
- <property name="scancode" value="3"/>
- <property name="eventtype" value="1"/>
- </trigger>
- <event id="p_trigger" name=""/>
- </action>
-
- <action>
- <trigger name="sizechanged"/>
- <event name="ui/setelementsizetocps(image_container)"/>
+ <action>
+ <trigger name="activate"/>
+ <event id="w_trigger" name="WRTWidget/publisher(selected)" />
</action>
</actions>
- <image id="wide_image">
- <configuration name="content_type" value="row1"/>
- <!-- Template designer choice -->
- <property id="prop1" class=""/>
- <property class="policy/emptyContent" name="wide_image" value="display: none;"/>
- <property class="policy/Content" name="wide_image" value="display: block;"/>
- <property class="policy/emptyContent" name="wide_text" value="display: block;"/>
- <property class="policy/Content" name="wide_text" value="display: none;"/>
- </image>
- <text id="wide_text">&qtn_ai_loading_content;</text>
- </box>
+ <box id="default_container" _s60-initial-focus="1">
+ <image id="w_default_image">
+ <property id="default_image" class="WRTWidget/def_image"/>
+ </image>
+ <text id="w_default_text">
+ <property id="default_text" class="WRTWidget/def_text"/>
+ </text>
+ </box>
+ <box id="image_container" sizeaware="true" _s60-initial-focus="1">
+ <actions>
+ <action>
+ <trigger name="sizechanged"/>
+ <event name="ui/setelementsizetocps(container)"/>
+ </action>
+ </actions>
+ <image id="wide_image">
+ <property id="w_image" class="WRTWidget/image1"/>
+ <property class="policy/emptyContent" name="image_container" value="display: none;"/>
+ <property class="policy/Content" name="image_container" value="display: block;"/>
+ <property class="policy/Content" name="default_container" value="display: none;"/>
+ </image>
+ </box>
+ <animation id="loading"/>
+ <menuextension>
+ <!-- dynmenuitems are mapped to HS view.xml menu based on target attribute.
+ HS view.xml provides localisation for predined items: "settings" and "refresh". -->
+ <dynmenuitem type="widgetsettings" target="hs_widget_menuitem_settings">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="menuitem(widgetsettings)" destination="wideimage_plugin"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ <dynmenuitem type="refresh" target="hs_widget_menuitem_refresh">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="menuitem(refresh)" destination="wideimage_plugin"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ </menuextension>
</widget>
</xmluiml>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: Carousel widget for Symbian Homescreen
+ *
+ */
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+ARMV5 WINSCW
+
+#include "../widget/group/bld.inf"
+#include "../renderer/group/bld.inf"
+#include "../publisher/group/bld.inf"
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/data/carouselplugin.rss Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,63 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Registry info
+ *
+*/
+
+
+// INCLUDES
+#include <ecom/registryinfov2.rh>
+#include <hscontentpublisheruid.hrh>
+#include "carouselpluginuids.hrh"
+
+
+// -----------------------------------------------------------------------------
+//
+// registry_info
+// Registry information required for identifying the ECOM component
+//
+// -----------------------------------------------------------------------------
+//
+
+RESOURCE REGISTRY_INFO registry_info
+{
+ resource_format_version = RESOURCE_FORMAT_VERSION_2;
+
+ dll_uid = AI_UID_ECOM_DLL_CONTENTPUBLISHER_CAROUSELPLUGIN;
+
+ // Declare array of interface info
+ interfaces =
+ {
+ INTERFACE_INFO
+ {
+ // UID of interface that is implemented
+ interface_uid = HS_UID_ECOM_INTERFACE_CONTENTPUBLISHER;
+
+ implementations =
+ {
+ IMPLEMENTATION_INFO
+ {
+ implementation_uid = AI_UID_ECOM_IMPLEMENTATION_CONTENTPUBLISHER_CAROUSELPLUGIN;
+ version_no = 1;
+ display_name = "carpub";
+ default_data = "";
+ opaque_data = "";
+ }
+ };
+ }
+ };
+}
+
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/data/carouselpluginres.rss Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,90 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Resource definitions for carousel plug-in settings
+*
+*/
+
+
+#include <eikon.rh>
+#include <avkon.rsg>
+#include <avkon.rh>
+#include <appinfo.rh>
+#include <avkon.loc>
+
+#include <carouselplugin.loc>
+
+
+NAME MCPL
+
+RESOURCE RSS_SIGNATURE { }
+
+RESOURCE TBUF { buf="CCPL"; }
+
+//----------------------------------------------------
+// EIK_APP_INFO
+// Contains application information.
+//----------------------------------------------------
+//
+RESOURCE EIK_APP_INFO
+{
+}
+
+//----------------------------------------------------
+// R_MCS_DISABLE_OPEN_ITEM
+// Dialog text: Item cannot be run because of backup
+// state
+//----------------------------------------------------
+//
+RESOURCE TBUF r_mcs_disable_open_item
+{
+ buf = qtn_mcs_disable_open_item;
+}
+
+//----------------------------------------------------
+// R_MCS_DISABLE_OPEN_ITEM_MISSING
+// Dialog text: Item cannot be opened because of it is
+// missing
+//----------------------------------------------------
+//
+RESOURCE TBUF r_mcs_disable_open_item_missing
+{
+ buf = qtn_mcs_disable_open_item_missing;
+}
+
+
+//----------------------------------------------------
+// R_MCS_DISABLE_OPEN_ITEM_DLG
+// Contains application information.
+//----------------------------------------------------
+//
+RESOURCE DIALOG r_mcs_disable_open_item_dlg
+{
+ flags = EAknWarningNoteFlags | EEikDialogFlagWait;
+ buttons = R_AVKON_SOFTKEYS_OK_EMPTY;
+ items =
+ {
+ DLG_LINE
+ {
+ type = EAknCtNote;
+ id = EGeneralNote;
+ control = AVKON_NOTE
+ {
+ layout = EGeneralLayout;
+ animation = R_QGN_NOTE_INFO_ANIM;
+ };
+ }
+ };
+}
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/data/carouselpluginuids.hrh Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,37 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: UIDs for the Active Idle subsystem components.
+*
+*/
+
+
+#ifndef CAROUSELPLUGINUIDS_HRH
+#define CAROUSELPLUGINUIDS_HRH
+
+/**
+ * Ecom dll uid for MCS plug-in.
+ */
+#define AI_UID_ECOM_DLL_CONTENTPUBLISHER_CAROUSELPLUGIN 0xE001CB57
+
+/**
+ * Ecom implementation uid for MCS plug-in.
+ */
+#define AI_UID_ECOM_IMPLEMENTATION_CONTENTPUBLISHER_CAROUSELPLUGIN 0xE001CB58
+
+/**
+ * Ecom implementation uid for MCS settings plug-in.
+ */
+#define AI_UID_ECOM_IMPLEMENTATION_SETTINGS_MCSPLUGIN 0x20022FDD
+
+#endif //CAROUSELPLUGINUIDS_HRH
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,51 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: The build information file of carousel Plugin
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+../loc/carouselplugin.loc MW_LAYER_LOC_EXPORT_PATH(carouselplugin.loc)
+
+
+../rom/carouselplugin_resources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(carouselplugin_resources.iby)
+../rom/carouselplugin.iby CORE_MW_LAYER_IBY_EXPORT_PATH(carouselplugin.iby)
+
+
+
+
+PRJ_EXTENSIONS
+
+START EXTENSION s60/mifconv
+OPTION TARGETFILE carouselplugin.mif
+OPTION HEADERFILE carouselplugin.mbg
+OPTION SOURCES -c8,8 qgn_prop_ai_shortcut -c8,8 qgn_menu_url \
+ -c8,8 qgn_menu_mce_sel_mes -c8,8 qgn_menu_mce_syncmail \
+ -c8,8 qgn_menu_am -c8,8 qgn_prop_cp_conn_shortcut \
+ -c8,8 qgn_prop_psln_ai_sub -c8,8 qgn_mcsplugin_log_out
+END
+
+
+PRJ_MMPFILES
+carouselplugin.mmp
+
+
+// End of File.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/group/carouselplugin.mmp Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,83 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Project definition file for project ProfilePlugin
+*
+*/
+
+#include <platform_paths.hrh>
+#include <data_caging_paths.hrh>
+
+#include "../data/carouselpluginuids.hrh"
+
+TARGET carouselplugin.dll
+TARGETTYPE PLUGIN
+UID 0x10009D8D AI_UID_ECOM_DLL_CONTENTPUBLISHER_CAROUSELPLUGIN
+
+CAPABILITY CAP_ECOM_PLUGIN
+VENDORID VID_DEFAULT
+
+SOURCEPATH ../src
+SOURCE carouselplugin.cpp
+SOURCE carouselpluginengine.cpp
+SOURCE carouselplugindata.cpp
+SOURCE carouselpluginwatcher.cpp
+
+USERINCLUDE ../inc
+USERINCLUDE ../loc
+USERINCLUDE ../data
+
+APP_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH ../data
+START RESOURCE carouselplugin.rss
+HEADER
+TARGETPATH ECOM_RESOURCE_DIR
+END
+
+START RESOURCE carouselpluginres.rss
+HEADER
+TARGET carouselpluginres.rsc
+TARGETPATH RESOURCE_FILES_DIR
+LANGUAGE_IDS
+END
+LIBRARY euser.lib
+LIBRARY mcsmenu.lib
+LIBRARY mcsextendedmenu.lib
+LIBRARY egul.lib
+LIBRARY cone.lib
+LIBRARY ecom.lib
+LIBRARY aiutils.lib
+LIBRARY aknskins.lib
+LIBRARY aknicon.lib
+LIBRARY mcsmenuutils.lib
+LIBRARY hspluginsettings.lib
+LIBRARY msgs.lib
+LIBRARY apgrfx.lib
+LIBRARY apparc.lib
+
+
+LIBRARY bafl.lib
+LIBRARY avkon.lib
+LIBRARY eikcoctl.lib
+LIBRARY eikcore.lib
+LIBRARY efsrv.lib
+LIBRARY fbscli.lib
+LIBRARY gslauncher.lib
+LIBRARY eikdlg.lib
+LIBRARY commonengine.lib
+LIBRARY favouritesengine.lib
+LIBRARY viewcli.lib
+LIBRARY gfxtrans.lib
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/inc/carouselplugin.h Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,158 @@
+/*
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Plug-in main class
+*
+*/
+
+
+#ifndef CMCSPLUGIN_H
+#define CMCSPLUGIN_H
+
+// System includes
+
+// User includes
+#include <hscontentpublisher.h>
+#include <aicontentmodel.h>
+
+// Forward declarations
+class MAiContentObserver;
+class MAiContentItemIterator;
+class CCarouselPluginEngine;
+class CCarouselData;
+
+
+/**
+ * @ingroup group_mcsplugin
+ *
+ * MCS Plug-in main class
+ *
+ * @since S60 5.2
+ */
+NONSHARABLE_CLASS( CCarouselPlugin ) : public CHsContentPublisher
+ {
+public:
+ // constructor and destructor
+
+ static CCarouselPlugin* NewL();
+
+ ~CCarouselPlugin();
+
+private:
+ // constructors
+
+ /**
+ * C++ default constructor
+ */
+ CCarouselPlugin();
+
+ /**
+ * 2nd phase constructor
+ */
+ void ConstructL();
+
+public:
+ // from CHsContentPublisher
+
+ /**
+ * @see CHsContentPublisher
+ */
+ void Start( TStartReason aReason );
+
+ /**
+ * @see CHsContentPublisher
+ */
+ void Stop( TStopReason aReason );
+
+ /**
+ * @see CHsContentPublisher
+ */
+ void Resume( TResumeReason aReason );
+
+ /**
+ * @see CHsContentPublisher
+ */
+ void Suspend( TSuspendReason aReason );
+
+ /**
+ * @see CHsContentPublisher
+ */
+ void SubscribeL( MAiContentObserver& aObserver );
+
+ /**
+ * @see CHsContentPublisher
+ */
+ void ConfigureL( RAiSettingsItemArray& aSettings );
+
+ /**
+ * @see CHsContentPublisher
+ */
+ TAny* GetProperty( TProperty aProperty );
+
+ /**
+ * @see CHsContentPublisher
+ */
+ void HandleEvent( const TDesC& aEventName, const TDesC& aParam );
+
+public:
+ // new functions
+
+ /**
+ * Publishes data
+ */
+ void PublishL();
+
+private:
+ // new functions
+
+ /**
+ * CompareItems
+ */
+ static TInt CompareItems( const MAiPluginSettings& aFirst,
+ const MAiPluginSettings& aSecond );
+
+ /**
+ * Publishes content for one menu item
+ */
+ void PublishLItemL( MAiContentObserver& aObserver, CCarouselData& aDataItem, TInt aIndex );
+
+ void PublishEditorItemsL();
+
+ /**
+ * Delete content model
+ */
+ void DeleteContentModel();
+
+ /**
+ * Determines if dirty items exists
+ */
+ TBool PublishRequired() const;
+
+private:
+ // data
+
+ /** Iterator for plugin content, owned */
+ MAiContentItemIterator* iContent;
+ /** Number of data in the content model */
+ TInt iDataCount;
+ /** Dynamic content model, owned */
+ TAiContentItem* iContentModel;
+ /** Plugin engine, owned */
+ CCarouselPluginEngine* iEngine;
+ /** Array of content observers, not owned */
+ RPointerArray<MAiContentObserver> iObservers;
+ };
+
+#endif // CMCSPLUGIN_H
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/inc/carouselplugindata.h Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,274 @@
+/*
+* Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Plug-in data class
+*
+*/
+
+
+#ifndef CMCSPLUGINDATA_H
+#define CMCSPLUGINDATA_H
+
+// INCLUDE FILES
+#include <e32base.h>
+#include <badesca.h>
+#include <mhomescreensettingsobserver.h>
+#include <hspluginsettings.h>
+#include <propertymap.h>
+#include <mcsmenu.h>
+
+class TMenuItem;
+class CCarouselPluginEngine;
+
+/**
+ * @ingroup group_mcsplugin
+ *
+ * Stores the MCS Menu Items and keeps track whether
+ * item needs to be published or not.
+ *
+ * @since S60 v9.1
+ */
+NONSHARABLE_CLASS( CCarouselData ) : public CBase
+ {
+public:
+ CCarouselData();
+
+ ~CCarouselData();
+
+ /**
+ * SetMenuItem
+ *
+ * @param aMenuItem
+ */
+ void SetMenuItem( TMenuItem& aMenuItem );
+
+ /**
+ * MenuItem
+ *
+ * @return TMenuItem
+ */
+ TMenuItem& MenuItem();
+
+ /**
+ * Name of the item.
+ */
+ TDesC& Name();
+
+ /**
+ * Set name of the item,
+ */
+ void SetNameL( const TDesC& aName );
+
+ /**
+ * Value of the item. Used for bookmark url.
+ */
+ TDesC& Value();
+
+ /*
+ * Set value of the item.
+ */
+ void SetValueL( const TDesC& aValue );
+
+ /**
+ * SetDirty
+ *
+ * @param aDirty
+ * @return TBool
+ */
+ void SetDirty( TBool aDirty );
+
+ /**
+ * IsDirty
+ *
+ * @return TBool
+ */
+ TBool IsDirty() const;
+
+private:
+ /**
+ * iMenuItem
+ */
+ TMenuItem iMenuItem;
+
+ /**
+ * Item name, own
+ */
+ HBufC* iName;
+
+ /**
+ * Item value, own
+ */
+ HBufC* iValue;
+
+ /**
+ * iDirty
+ */
+ TBool iDirty;
+ };
+
+/**
+ * @ingroup group_mcsplugin
+ *
+ * Plug-in data class
+ *
+ * @since
+ */
+NONSHARABLE_CLASS( CCarouselPluginData ) : public CBase,
+ public HSPluginSettingsIf::MHomeScreenSettingsObserver
+ {
+
+public:
+
+ /**
+ * Part of the two phased constuction
+ *
+ * @param aEngine
+ * @param aInstanceUid
+ * @return Pointer to the created CMCSPluginData object
+ */
+ static CCarouselPluginData* NewL( CCarouselPluginEngine& aEngine,
+ const TDesC8& aInstanceUid );
+
+ /**
+ * Constructor
+ *
+ * @param aEngine
+ * @param aInstanceUid
+ * @return none
+ */
+ CCarouselPluginData( CCarouselPluginEngine& aEngine, const TDesC8& aInstanceUid );
+
+ /**
+ * Destructor
+ *
+ * @param none
+ * @return none
+ */
+ ~CCarouselPluginData();
+
+ /**
+ * DataItem
+ *
+ * @param aIndex
+ * @return TMCSData&
+ */
+ CCarouselData& DataItemL( TInt aIndex );
+
+ /**
+ * Saves 'Undefined' menu item into settings when mailbox is deleted
+ *
+ * @param aIndex
+ * @param aMenuItem
+ */
+ void SaveUndefinedItemL( const TInt& aIndex );
+
+ /**
+ * DataCount
+ *
+ * @return TInt
+ */
+ TInt DataCount(){ return iData.Count();};
+
+ /**
+ * Gets the instance specific settings from HSPS and creates data items
+ */
+ void UpdateDataL();
+
+ /**
+ * Removes data item from data list and saves new setting into HSPS
+ */
+ void RemoveDataL( TInt aId );
+
+ // From MHomeScreenSettingsObserver
+ /**
+ * SettingsChangedL
+ *
+ * @param aEvent
+ * @param aPluginName
+ * @param aPluginUid
+ * @param aPluginId
+ */
+ void SettingsChangedL( const TDesC8& aEvent, const TDesC8& aPluginName,
+ const TDesC8& aPluginUid, const TDesC8& aPluginId );
+
+private:
+
+ /**
+ * Part of the two phased construction
+ *
+ * @param void
+ * @return void
+ */
+ void ConstructL();
+
+ /**
+ * GetMenuDataL
+ * @param aProperties
+ * @return TMenuItem
+ */
+ CCarouselData* GetMenuDataL(
+ RPointerArray<HSPluginSettingsIf::CPropertyMap>& aProperties );
+
+ /**
+ * Get bookmark data item
+ * @param aUid, used for bookmark uid
+ * @param aView, used for bookmark url
+ * @param aParam, used for bookmark name
+ * @param aData, is filled with appropriate values
+ */
+ void GetBkmDataL( const TDesC8& aUid, const TDesC8& aView, const TDesC8& aParam, CCarouselData& aData );
+
+ /**
+ * Get folder data item
+ * @param aParam, is used for folder id (in MCS)
+ * @param aData, is filled with appropriate values
+ */
+ void GetFolderData( const TDesC8& aParam, CCarouselData& aData );
+
+ /**
+ * Get mailbox data item
+ * @param aUid, uid of the mailbox in messaging application
+ * @param aParam, name of the mailbox
+ * @param aData, is filled with appropriate values
+ */
+ void GetMailboxDataL( const TDesC8& aUid, const TDesC8& aParam, CCarouselData& aData );
+
+ /**
+ * Get MCS data item
+ * @param aProperties, Properties are used to filter correct item from MCS.
+ * @param aData, is filled with appropriate values
+ */
+ void GetMCSDataL(
+ RPointerArray<HSPluginSettingsIf::CPropertyMap>& aProperties, CCarouselData& aData );
+
+private: // data
+
+ // Menu items, which are defined in settings
+ // Own
+ RPointerArray<CCarouselData> iData;
+
+ // Plugin settings. NOT OWNED!
+ HSPluginSettingsIf::CHomescreenSettings* iPluginSettings;
+
+ // Reference to MCS plug-in engine
+ CCarouselPluginEngine& iEngine;
+
+ // Reference to instance uid of HSPS widget
+ const TDesC8& iInstanceUid;
+
+ // MCS resource handle, owned
+ RMenu iMenu;
+
+ };
+
+#endif // CMCSPLUGINDATA_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/inc/carouselpluginengine.h Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,250 @@
+/*
+* Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+#ifndef CMCSPLUGINENGINE_H
+#define CMCSPLUGINENGINE_H
+
+// System includes
+#include <e32base.h>
+#include <mcsmenu.h>
+#include <mcsmenuitem.h>
+#include <mcsmenunotifier.h>
+#include <msvapi.h>
+
+// User includes
+#include "carouselpluginwatcher.h"
+
+// Forward declarations
+class CGulIcon;
+class CCarouselPluginData;
+class CCarouselData;
+class CCarouselPlugin;
+
+
+/**
+ * @ingroup group_mcsplugin
+ *
+ * MCSPluginEngine class
+ *
+ * @since S60 5.2
+ */
+NONSHARABLE_CLASS( CCarouselPluginEngine ) : public CBase,
+ public MCarouselPluginWatcherObserver,
+ public MMsvSessionObserver
+ {
+public:
+ // constructor and destructor
+
+ /**
+ * Part of the two phased constuction
+ *
+ * @param aPlugin
+ * @param aInstanceUid
+ * @return Pointer to the created CMCSPluginEngine object
+ */
+ static CCarouselPluginEngine* NewL( CCarouselPlugin& aPlugin,
+ const TDesC8& aInstanceUid );
+
+ /**
+ * Destructor
+ *
+ * @param none
+ * @return none
+ */
+ ~CCarouselPluginEngine();
+
+private:
+ // constructors
+
+ /**
+ * C++ default constructor
+ */
+ CCarouselPluginEngine( CCarouselPlugin& aPlugin, const TDesC8& aInstanceUid );
+
+ /*
+ * 2nd phase constructor
+ */
+ void ConstructL();
+
+public:
+ // new functions
+
+ /**
+ * Gets the menu data.
+ *
+ * @param aIndex
+ * @return TMCSData&
+ */
+ CCarouselData& MenuDataL( const TInt& aIndex );
+
+ /** Gets the menu item count
+ *
+ * @return TInt
+ */
+ TInt MenuItemCount();
+
+ /**
+ * Finds the menu item header for given filter.
+ *
+ * @param aFilter
+ * @return TMenuItem
+ */
+ TMenuItem FindMenuItemL( CMenuFilter& aFilter );
+
+ /**
+ * Retrieves the menu item object from MCS.
+ *
+ * @param aMenuItem
+ * @return CMenuItem*
+ */
+ CMenuItem* FetchMenuItemL( CCarouselData& aData);
+
+ /**
+ * Returns icon for given menu item and given attribute
+ *
+ * @param aMenuItem
+ * @param aAttr
+ * @return CGulIcon*
+ */
+ CGulIcon* ItemIconL( CMenuItem* aMenuItem, const TDesC& aAttr );
+
+ /**
+ * Returns text for given menu item and given attribute
+ *
+ * @param aMenuItem
+ * @param aAttr
+ */
+ TPtrC ItemTextL( CMenuItem* aMenuItem, const TDesC& aAttr );
+
+ /**
+ * Launches menu item
+ *
+ * @param aIndex
+ */
+ void LaunchItemL( const TInt& aIndex );
+
+ /**
+ * Set backup/restore state
+ *
+ * @param aBackupRestore ETrue if backup/restore is ongoing
+ * @return void
+ */
+ void SetBackupRestore( TBool aBackupRestore );
+
+ /**
+ * ShowSettingsL
+ */
+ void ShowSettingsL();
+
+private:
+ // from MMCSPluginWatcherObserver
+
+ /**
+ * @see MMCSPluginWatcherObserver
+ */
+ void HandleNotifyL();
+
+private:
+ // from MMsvSessionObserver
+
+ /**
+ * @see MMsvSessionObserver
+ */
+ void HandleSessionEventL( TMsvSessionEvent aEvent, TAny* aArg1,
+ TAny* aArg2, TAny* aArg3 );
+
+private:
+ // new functions
+
+ /**
+ * InitL
+ */
+ void InitL();
+
+ /**
+ * Tells the settings container to start observing
+ * for changes in mailbox db and changes in MCS.
+ */
+ void StartObservingL();
+
+ /**
+ * Tells the settings container to stop observing
+ * for changes in mailbox db.
+ */
+ void StopObserving();
+
+ /**
+ * ConstructMenuItemForIconL
+ *
+ * @param aPath
+ * @param aMenuItem
+ * @return TBool
+ */
+ TBool ConstructMenuItemForIconL(
+ const TDesC& aPath, CMenuItem& aMenuItem );
+
+ /**
+ * Creates bookmark specific MCS menu item.
+ */
+ CMenuItem* CreateBkmItemL( CCarouselData& aData );
+
+ /**
+ * Creates mailbox specific MCS menu item.
+ */
+ CMenuItem* CreateMailboxItemL( CCarouselData& aData );
+
+ void LaunchFolderItemL( CCarouselData& aData );
+
+ void LaunchBookmarkItemL( CCarouselData& aData );
+
+ void LaunchMailboxItemL( CCarouselData& aData );
+
+ void LaunchMCSItemL( CCarouselData& aData );
+
+private:
+ // data
+
+ /** Plugin data, owned */
+ CCarouselPluginData* iPluginData;
+ /** MCS resource handle, owned */
+ RMenu iMenu;
+ /** MCS change notifier handle, owned */
+ RMenuNotifier iNotifier;
+ /** MCS asynchronous operation watcher, owned */
+ CCarouselPluginWatcher* iWatcher;
+ /** MCS change notifier watcher, owned */
+ CCarouselPluginWatcher* iNotifyWatcher;
+ /** MCS plugin, not owned */
+ CCarouselPlugin& iPlugin;
+ /** Reference to plugin owned instanceUid */
+ const TDesC8& iInstanceUid;
+ /** Flag Indicating that backup/restore is in progress */
+ TBool iBackupRestore;
+ /** Offset of resource file */
+ TInt iResourceOffset;
+ /** Message server session, owned */
+ CMsvSession* iMsvSession;
+ /** "Undefined" menu item, owned */
+ CMenuItem* iUndefinedItem;
+ /** "Undefined" menu item header */
+ TMenuItem iUndefinedItemHeader;
+ };
+
+#endif // CMCSPLUGINENGINE_H
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/inc/carouselpluginwatcher.h Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,152 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef __MCSPLUGINWATCHER_H
+#define __MCSPLUGINWATCHER_H
+
+#include <e32base.h>
+
+class CMenuOperation;
+class CCarouselPluginEngine;
+
+/**
+ * @ingroup group_mcsplugin
+ *
+ * MCS Plugin Watcher Observer
+ *
+ * @since S60 9.1
+ */
+class MCarouselPluginWatcherObserver
+ {
+ public:
+ /**
+ * HandleNotifyL
+ */
+ virtual void HandleNotifyL() = 0;
+ };
+
+/**
+ * @ingroup group_mcsplugin
+ *
+ * This class implements MCS menu action watcher for async calls.
+ *
+ * @since S60 9.1
+ */
+class CCarouselPluginWatcher: public CActive
+ {
+ public:
+
+ /**
+ * enum Type
+ */
+ enum Type
+ {
+ EOperation,
+ ENotify
+ };
+
+ /**
+ * Two-phased constructor.
+ *
+ * @param aType
+ */
+ static CCarouselPluginWatcher* NewL( const Type& aType );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CCarouselPluginWatcher();
+
+ /**
+ * Watch menu operation or notification.
+ *
+ * @param aOperation
+ */
+ void Watch( CMenuOperation* aOperation = NULL );
+
+ /**
+ * WatchNotify
+ *
+ * @param aObserver
+ */
+ void WatchNotify( MCarouselPluginWatcherObserver* aObserver );
+
+ /**
+ * StopAndWatch
+ *
+ * @param aOperation
+ * @param aWaitScheduler
+ */
+ void StopAndWatch( CMenuOperation* aOperation,
+ CActiveSchedulerWait* aWaitScheduler );
+
+ /**
+ * GetStatus
+ */
+ TInt GetStatus();
+
+ private:
+
+ /**
+ * Default constructor.
+ *
+ * @param aType
+ */
+ CCarouselPluginWatcher( const Type& aType );
+
+ /**
+ * ConstructL
+ */
+ void ConstructL();
+
+ /**
+ * Inherited from CActive class
+ */
+ void RunL();
+
+ /**
+ * Inherited from CActive class
+ */
+ void DoCancel();
+
+ private:
+
+ /**
+ * Menu operation
+ * Owned
+ */
+ CMenuOperation* iOperation;
+
+ /**
+ * Wait scheduler
+ * Not owned
+ */
+ CActiveSchedulerWait* iWaitScheduler;
+
+ /**
+ * Observer reference
+ * Not owned
+ */
+ MCarouselPluginWatcherObserver* iObserver;
+
+ /**
+ * iType
+ */
+ Type iType;
+ };
+
+#endif /*__MCSPLUGINWATCHER_H*/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/loc/carouselplugin.loc Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,34 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Localization strings for project carousel Plugin
+*
+*/
+
+// d: A dialog which is shown to user when (s)he is trying to
+// d: launch shortcut item during backup state.
+// l: popup_note_window
+// w:
+// r: tb9.2
+//
+#define qtn_mcs_disable_open_item "Application cannot be opened during backup"
+
+// d: A dialog which is shown to user when (s)he is trying to
+// d: launch shortcut item which is missing from menu.
+// l: popup_note_window
+// w:
+// r: tb9.2
+//
+#define qtn_mcs_disable_open_item_missing "Shortcut cannot be opened because item is missing. Try to insert memory card which contains the item or reinstall the application."
+
+//End file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/rom/carouselplugin.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: IBY file for carousel plug-in
+*
+*/
+
+
+#ifndef CAROUSELPLUGIN_IBY
+#define CAROUSELPLUGIN_IBY
+#include <bldvariant.hrh>
+
+data=DATAZ_\BITMAP_DIR\carouselplugin.mif BITMAP_DIR\carouselplugin.mif
+
+ECOM_PLUGIN(carouselplugin.dll, carouselplugin.rsc)
+
+#endif // CAROUSELPLUGIN_IBY
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/rom/carouselplugin_resources.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: IBY file for Profile plug-in
+*
+*/
+
+
+#ifndef CAROUSELPLUGIN_RESOURCES_IBY
+#define CAROUSELPLUGIN_RESOURCES_IBY
+
+#include <data_caging_paths_for_iby.hrh>
+
+data=DATAZ_\RESOURCE_FILES_DIR\carouselpluginres.rsc RESOURCE_FILES_DIR\carouselpluginres.rsc
+
+#endif // CAROUSELPLUGIN_RESOURCES_IBY
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/src/carouselplugin.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,502 @@
+/*
+* Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: MCS plugin publisher
+*
+*/
+
+// System includes
+#include <ecom/ecom.h>
+#include <ecom/implementationproxy.h>
+#include <gulicon.h>
+#include <mcsmenuitem.h>
+
+// User includes
+#include <aicontentobserver.h>
+#include <aistrcnv.h>
+#include <aiutility.h>
+#include <aipluginsettings.h>
+#include "carouselpluginuids.hrh"
+#include "carouselplugin.h"
+#include "carouselplugindata.h"
+#include "carouselpluginengine.h"
+
+// Constants
+const TUint KPluginNameSeprator = '/';
+
+const TInt KImplUidMCSPlugin = AI_UID_ECOM_IMPLEMENTATION_CONTENTPUBLISHER_CAROUSELPLUGIN;
+
+_LIT( KEventNameLaunchByIndex, "LaunchByIndex" );
+_LIT( KEventNameShowSettings, "ShowSettings" );
+_LIT( KContentItemTypeText, "text" );
+_LIT( KContentItemTypeImage, "image" );
+_LIT( KContentItemTypeData, "data" );
+
+const TImplementationProxy KImplementationTable[] =
+ {
+ IMPLEMENTATION_PROXY_ENTRY( KImplUidMCSPlugin, CCarouselPlugin::NewL )
+ };
+
+class CPublishItem : public CBase
+ {
+public:
+ ~CPublishItem();
+ CPublishItem();
+
+ CGulIcon* icon;
+ HBufC* text;
+ TBool last;
+ };
+
+CPublishItem::CPublishItem()
+ {
+
+ }
+
+CPublishItem::~CPublishItem()
+ {
+ delete text;
+ }
+
+// ======== LOCAL FUNCTIONS ========
+
+// ======== MEMBER FUNCTIONS ========
+// ----------------------------------------------------------------------------
+// CMCSPlugin::NewL
+//
+// ----------------------------------------------------------------------------
+//
+CCarouselPlugin* CCarouselPlugin::NewL()
+ {
+ CCarouselPlugin* self = new ( ELeave ) CCarouselPlugin;
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+
+ return self;
+ }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::CMCSPlugin
+//
+// ----------------------------------------------------------------------------
+//
+CCarouselPlugin::CCarouselPlugin()
+ {
+ }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::ConstructL
+//
+// ----------------------------------------------------------------------------
+//
+void CCarouselPlugin::ConstructL()
+ {
+ }
+
+// ----------------------------------------------------------------------------
+// Destructor
+// Deletes all data created to heap
+// ----------------------------------------------------------------------------
+//
+CCarouselPlugin::~CCarouselPlugin()
+ {
+ Release( iContent );
+
+ delete iEngine;
+ iObservers.Close();
+
+ DeleteContentModel();
+ }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::PublishL
+// Publishes the all the items
+// ----------------------------------------------------------------------------
+//
+void CCarouselPlugin::PublishL()
+ {
+ TInt err( KErrNone );
+ TInt observers( iObservers.Count() );
+ TInt transactionId( reinterpret_cast<TInt>( this ) );
+ TInt menuItems ( iEngine->MenuItemCount() );
+
+ for ( TInt i = 0; i < observers; i++ )
+ {
+ MAiContentObserver* observer( iObservers[ i ] );
+ err = observer->StartTransaction( transactionId );
+
+ if ( err == KErrNotSupported )
+ {
+ return;
+ }
+
+ // Publish content to all items
+ for ( TInt j = 0; j < menuItems; j++ )
+ {
+ // Index has to start from 1 ( j + 1 )
+ PublishLItemL( *observer, iEngine->MenuDataL( j ), ( j + 1 ) );
+ }// shortcut count
+
+ if ( err == KErrNone )
+ {
+ err = observer->Commit( transactionId );
+
+ if ( err == KErrNotSupported )
+ {
+ return;
+ }
+ }
+ }//observers
+
+ // Set all items not dirty.
+ for ( TInt j = 0; j < menuItems; j++ )
+ {
+ iEngine->MenuDataL( j ).SetDirty( EFalse );
+ }
+ }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::PublishLItemL
+// Publishes one item to given index
+// ----------------------------------------------------------------------------
+//
+void CCarouselPlugin::PublishLItemL( MAiContentObserver& aObserver,
+ CCarouselData& aData, TInt aIndex )
+ {
+ if( !aData.IsDirty() )
+ {
+ return;
+ }
+
+ CMenuItem* item = iEngine->FetchMenuItemL( aData );
+ CleanupStack::PushL( item );
+
+ if ( iContentModel[0].type == KAiContentTypeData )
+ {
+ if(TPtrC16( ( const TText16* ) iContentModel[ 0 ].cid ) == _L("widget") )
+ {
+ CGulIcon* icon( iEngine->ItemIconL( item, _L("icon")));
+ icon->SetBitmapsOwnedExternally( ETrue );
+ aObserver.Publish( *this, 0, TPckgC<TAny*>( icon ), aIndex - 1 );
+ }
+ }
+ CleanupStack::PopAndDestroy( item );
+ }
+
+// ----------------------------------------------------------------------------
+// PublishEditorItemsL
+//
+// ----------------------------------------------------------------------------
+//
+void CCarouselPlugin::PublishEditorItemsL()
+ {/*
+ RArray<TMenuItem> items = iEngine->MenuItemsL();
+ CleanupClosePushL( items );
+
+ TInt count( items.Count());
+ for( TInt i = 0; i < count; i++ )
+ {
+ CMenuItem* item( iEngine->FetchMenuItemL( items[i]));
+ CleanupStack::PushL( item );
+ CGulIcon* icon( iEngine->ItemIconL( *item, _L("icon")));
+ TPtrC name( iEngine->ItemTextL( *item, _L("long_name") ));
+ CPublishItem* pItem = new CPublishItem;
+ pItem->icon = icon;
+ pItem->text = name.AllocL();
+ if( i < count - 1 )
+ {
+ pItem->last = EFalse;
+ }
+ else
+ {
+ pItem->last = ETrue;
+ }
+ iObservers[0]->Publish( *this, 0, TPckgC<TAny*>( pItem), i );
+ delete pItem;
+ CleanupStack::PopAndDestroy( item );
+ }
+ CleanupStack::PopAndDestroy( &items );
+ */
+ }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::Start
+//
+// ----------------------------------------------------------------------------
+//
+void CCarouselPlugin::Start( TStartReason /*aReason*/ )
+ {
+
+ }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::Stop
+//
+// ----------------------------------------------------------------------------
+//
+void CCarouselPlugin::Stop( TStopReason /*aReason*/ )
+ {
+
+ }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::Resume
+//
+// ----------------------------------------------------------------------------
+//
+void CCarouselPlugin::Resume( TResumeReason aReason )
+ {
+ if ( aReason == EForeground )
+ {
+ iEngine->SetBackupRestore( EFalse );
+
+ if ( PublishRequired() )
+ {
+ TRAP_IGNORE( PublishL() );
+ }
+ }
+ }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::Suspend
+//
+// ----------------------------------------------------------------------------
+//
+void CCarouselPlugin::Suspend( TSuspendReason aReason )
+ {
+ if ( aReason == EGeneralThemeChange )
+ {
+ TInt dataCount( iEngine->MenuItemCount() );
+
+ for ( TInt i = 0; i < dataCount; i++ )
+ {
+ TRAP_IGNORE( iEngine->MenuDataL( i ).SetDirty( ETrue ) );
+ }
+ }
+ else if ( aReason == EBackupRestore )
+ {
+ // Prevent item launching during backup / restore
+ iEngine->SetBackupRestore( ETrue );
+ }
+ }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::SubscribeL
+//
+// ----------------------------------------------------------------------------
+//
+void CCarouselPlugin::SubscribeL( MAiContentObserver& aObserver )
+ {
+ iObservers.AppendL( &aObserver );
+ }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::ConfigureL
+//
+// ----------------------------------------------------------------------------
+//
+void CCarouselPlugin::ConfigureL( RAiSettingsItemArray& aSettings )
+ {
+ iEngine = CCarouselPluginEngine::NewL( *this, PublisherInfo().Namespace() );
+
+ TLinearOrder<MAiPluginSettings> sortMethod( CCarouselPlugin::CompareItems );
+ RAiSettingsItemArray contentItemsArr;
+
+ TInt count( aSettings.Count() );
+
+ for ( TInt i = 0; i < count; i++ )
+ {
+ MAiPluginSettings* setting( aSettings[ i ] );
+
+ if( setting->AiPluginItemType() == EAiPluginContentItem )
+ {
+ MAiPluginContentItem& contItem( setting->AiPluginContentItem() );
+ TPtrC name( contItem.Name() );
+ TPtrC type( contItem.Type() );
+
+ contentItemsArr.InsertInOrder( setting, sortMethod );
+ }
+ }
+
+ iDataCount = contentItemsArr.Count();
+
+ if ( iDataCount > 0 )
+ {
+ // Create the dynamic content Model
+ DeleteContentModel();
+
+ iContentModel = new ( ELeave ) TAiContentItem[ iDataCount ];
+
+ for ( TInt i = 0; i < iDataCount; i++ )
+ {
+ iContentModel[i].id = i;
+
+ MAiPluginContentItem& contentItem(
+ contentItemsArr[ i ]->AiPluginContentItem() );
+
+ if( contentItem.Type() == KContentItemTypeText )
+ {
+ // text
+ iContentModel[i].type = KAiContentTypeText;
+ }
+ if( contentItem.Type() == KContentItemTypeImage )
+ {
+ // image
+ iContentModel[i].type = KAiContentTypeBitmap;
+ }
+ else if(contentItem.Type() == KContentItemTypeData )
+ {
+ // data
+ iContentModel[i].type = KAiContentTypeData;
+ }
+
+ TInt pos( contentItem.Name().Locate( KPluginNameSeprator ) );
+
+ HBufC* contentId = HBufC::NewL( contentItem.Name().Length() );
+ CleanupStack::PushL( contentId );
+
+ TPtr ptr( contentId->Des() );
+ ptr = contentItem.Name().Mid( pos + 1 );
+
+ TInt sizeOfContentId( ptr.Size() + sizeof( wchar_t ) );
+
+ iContentModel[i].cid =
+ static_cast<const wchar_t*>( User::AllocL( sizeOfContentId ) );
+
+ Mem::Copy( ( TAny* )iContentModel[i].cid,
+ ptr.PtrZ(), sizeOfContentId );
+
+ CleanupStack::PopAndDestroy( contentId );
+ }
+
+ iContent = AiUtility::CreateContentItemArrayIteratorL(
+ iContentModel, iDataCount );
+ }
+
+ contentItemsArr.Reset();
+ // We own the array so destroy it
+ aSettings.ResetAndDestroy();
+ }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::GetProperty
+//
+// ----------------------------------------------------------------------------
+//
+TAny* CCarouselPlugin::GetProperty( TProperty aProperty )
+ {
+ if( aProperty == EPublisherContent )
+ {
+ return static_cast< MAiContentItemIterator* >( iContent );
+ }
+
+ return NULL;
+ }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::HandleEvent
+//
+// ----------------------------------------------------------------------------
+//
+void CCarouselPlugin::HandleEvent( const TDesC& aEventName, const TDesC& aParam )
+ {
+ if( aEventName == KEventNameLaunchByIndex )
+ {
+ TInt32 index;
+ AiUtility::ParseInt( index, aParam );
+
+ TRAP_IGNORE( iEngine->LaunchItemL( index - 1 ) );
+ }
+ else if( aEventName == KEventNameShowSettings )
+ {
+ TRAP_IGNORE( iEngine->ShowSettingsL() );
+ }
+ else if( aEventName == _L("ShowEditor"))
+ {
+ TRAP_IGNORE( PublishEditorItemsL() );
+ }
+ }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::CompareItems
+//
+// ----------------------------------------------------------------------------
+//
+TInt CCarouselPlugin::CompareItems( const MAiPluginSettings& aFirst,
+ const MAiPluginSettings& aSecond )
+ {
+ MAiPluginSettings& first = const_cast<MAiPluginSettings&>(aFirst);
+ MAiPluginSettings& second = const_cast<MAiPluginSettings&>(aSecond);
+ return first.AiPluginContentItem().Name().CompareC(second.AiPluginContentItem().Name());
+ }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::DeleteContentModel
+//
+// ----------------------------------------------------------------------------
+//
+void CCarouselPlugin::DeleteContentModel()
+ {
+ if( iContentModel )
+ {
+ for ( TInt i = 0; i < iDataCount; i++ )
+ {
+ if( iContentModel[i].cid )
+ {
+ TAny* cell = static_cast<TAny*>( const_cast<wchar_t*>( iContentModel[i].cid ) );
+ User::Free( cell ); // Originally allocated with User::Alloc, so delete
+ // with correlating method.
+ iContentModel[i].cid = NULL;
+ }
+ }
+
+ delete iContentModel;
+ iContentModel = NULL;
+ }
+ }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::PublishRequired
+//
+// ----------------------------------------------------------------------------
+//
+TBool CCarouselPlugin::PublishRequired() const
+ {
+ TInt count( iEngine->MenuItemCount() );
+
+ TBool retval( EFalse );
+
+ for ( TInt i = 0; !retval && i < count; i++ )
+ {
+ TRAP_IGNORE( retval = iEngine->MenuDataL( i ).IsDirty() );
+ }
+
+
+ return retval;
+ }
+
+// ======== GLOBAL FUNCTIONS ========
+// ----------------------------------------------------------------------------
+// Constructs and returns an application object.
+// ----------------------------------------------------------------------------
+//
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(
+ TInt& aTableCount )
+ {
+ aTableCount = sizeof( KImplementationTable ) /
+ sizeof( TImplementationProxy );
+ return KImplementationTable;
+ }
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/src/carouselplugindata.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,580 @@
+/*
+* Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#include <mcsmenuitem.h>
+#include <mcsmenufilter.h>
+#include <itemmap.h>
+#include <aistrcnv.h>
+
+#include "carouselplugindata.h"
+#include "carouselpluginengine.h"
+
+using namespace HSPluginSettingsIf;
+
+_LIT( KMenuAttrParam, "param" );
+_LIT( KMenuAttrLocked, "locked" );
+_LIT8( KProperNameType, "type" );
+_LIT8( KProperNameParam, "param" );
+_LIT8( KProperNameUid, "uid" );
+_LIT8( KProperNameView, "view" );
+_LIT8( KProperNameLocked, "locked" );
+_LIT8( KProperValueFolder, "folder" );
+_LIT8( KProperValueBookmark, "bookmark" );
+_LIT8( KProperValueAppl, "application" );
+_LIT8( KProperValueMailbox, "mailbox" );
+_LIT8( KMenuAttrUndefUid, "0x99999991" );
+
+_LIT( KMyMenuData, "matrixmenudata" );
+_LIT( KMenuTypeMailbox, "menu:mailbox" );
+
+
+#define KMCSCmailMtmUidValue 0x2001F406
+
+// ======== LOCAL FUNCTIONS ========
+
+// ----------------------------------------------------------------------------
+// CleanupResetAndDestroy()
+// ----------------------------------------------------------------------------
+//
+template<class T>
+static void CleanupResetAndDestroy( TAny* aObj )
+ {
+ if( aObj )
+ {
+ static_cast<T*>( aObj )->ResetAndDestroy();
+ }
+ }
+
+// ----------------------------------------------------------------------------
+// CleanupResetAndDestroyPushL
+// ----------------------------------------------------------------------------
+//
+template<class T>
+static void CleanupResetAndDestroyPushL(T& aArray)
+ {
+ CleanupStack::PushL( TCleanupItem( &CleanupResetAndDestroy<T>, &aArray ) );
+ }
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// Default constructor
+// ---------------------------------------------------------------------------
+//
+CCarouselData::CCarouselData()
+ :iDirty( ETrue )
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CCarouselData::~CCarouselData()
+ {
+ delete iName;
+ delete iValue;
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CCarouselData::SetMenuItem( TMenuItem& aMenuItem )
+ {
+ iMenuItem = aMenuItem;
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+TMenuItem& CCarouselData::MenuItem()
+ {
+ return iMenuItem;
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+TDesC& CCarouselData::Name()
+ {
+ return *iName;
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CCarouselData::SetNameL( const TDesC& aName )
+ {
+ delete iName;
+ iName = NULL;
+ iName = aName.AllocL();
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+TDesC& CCarouselData::Value()
+ {
+ return *iValue;
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CCarouselData::SetValueL( const TDesC& aValue )
+ {
+ delete iValue;
+ iValue = NULL;
+ iValue = aValue.AllocL();
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CCarouselData::SetDirty( TBool aDirty )
+ {
+ iDirty = aDirty;
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+TBool CCarouselData::IsDirty() const
+ {
+ return iDirty;
+ }
+
+
+// ---------------------------------------------------------------------------
+// Symbian 2nd phase constructor can leave
+// ---------------------------------------------------------------------------
+//
+CCarouselPluginData* CCarouselPluginData::NewL( CCarouselPluginEngine& aEngine, const TDesC8& aInstanceUid )
+ {
+ CCarouselPluginData* self = new (ELeave) CCarouselPluginData( aEngine, aInstanceUid );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// Default constructor
+// ---------------------------------------------------------------------------
+//
+CCarouselPluginData::CCarouselPluginData( CCarouselPluginEngine& aEngine, const TDesC8& aInstanceUid )
+ : iEngine( aEngine ), iInstanceUid( aInstanceUid )
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// Symbian 2nd phase constructor can leave
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginData::ConstructL()
+ {
+ iPluginSettings = CHomescreenSettings::Instance();
+ if( iPluginSettings == NULL )
+ {
+ User::Leave( KErrUnknown );
+ }
+ iPluginSettings->AddObserverL( this );
+
+ iMenu.OpenL( KMyMenuData );
+
+ UpdateDataL();
+ }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CCarouselPluginData::~CCarouselPluginData()
+ {
+ if( iPluginSettings )
+ {
+ iPluginSettings->RemoveObserver( this );
+ }
+ iData.ResetAndDestroy();
+ iMenu.Close();
+ }
+
+// ---------------------------------------------------------------------------
+// Gets the instance specific settings from HSPS and creates data items
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginData::UpdateDataL()
+ {
+ RPointerArray<CItemMap> settings;
+ CleanupResetAndDestroyPushL( settings );
+
+ User::LeaveIfError( iPluginSettings->GetSettingsL( iInstanceUid, settings ) );
+ if ( settings.Count() <= 0 )
+ {
+ User::Leave( KErrNotFound );
+ }
+
+ TBool wasEmpty = !iData.Count();
+
+ for ( TInt i = 0; i < settings.Count(); i++ )
+ {
+ CItemMap* itemMap = settings[ i ];
+
+ // get properties
+ RPointerArray<HSPluginSettingsIf::CPropertyMap>& properties
+ = itemMap->Properties();
+
+ CCarouselData* data = GetMenuDataL( properties );
+ CleanupStack::PushL( data );
+ if ( wasEmpty )
+ {
+ // list of shortcut slot was empty
+ // we append the shortcut data slots one-by-one to the list
+ data->SetDirty( ETrue );
+ iData.AppendL( data );
+ CleanupStack::Pop( data );
+ }
+ else
+ {
+ // check for updates in existing shortcut data slot
+ // if menuitem id has changed, replace the item and
+ // set as dirty
+ TInt id( iData[ i ]->MenuItem().Id() );
+
+ // id of all bookmarks is zero so name has to be check
+ // in case of bookmark has changed
+ if ( id >= 0 && ( data->MenuItem().Id() != id ||
+ ( id == 0 && data->Name().CompareF(
+ iData[ i ]->Name() ) != 0 ) ) )
+ {
+ data->SetDirty( ETrue );
+ CCarouselData* oldData = iData[i];
+ iData.Remove( i );
+ delete oldData;
+
+ iData.InsertL( data, i );
+ CleanupStack::Pop( data );
+ }
+ else
+ {
+ CleanupStack::PopAndDestroy( data );
+ }
+ }
+ }
+
+ // Leave if there isn't any data filled into array as there isn't
+ // anything shortcut to publish on homescreen.
+ if ( iData.Count() <= 0 )
+ {
+ User::Leave( KErrNotFound );
+ }
+
+ // Cleanup.
+ CleanupStack::PopAndDestroy(); // settings
+ }
+
+// ---------------------------------------------------------------------------
+// Removes obsolete data and saves 'Undefined' item to HSPS
+// Used when active mailbox is deleted from system.
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginData::RemoveDataL( TInt aId )
+ {
+ TInt count = iData.Count();
+ for( TInt i = 0; i < count; i++ )
+ {
+ CCarouselData* data = iData[i];
+ if( data->MenuItem().Type() == KMenuTypeMailbox &&
+ data->MenuItem().Id() == aId )
+ {
+ iData[i]->MenuItem().SetId( KErrNotFound );
+ iData[i]->SetDirty( ETrue );
+ SaveUndefinedItemL( i );
+ }
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Call back from Homescreen settings
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginData::SettingsChangedL( const TDesC8& /*aEvent*/, const TDesC8& /*aPluginName*/,
+ const TDesC8& /*aPluginUid*/, const TDesC8& aPluginId )
+ {
+ if( aPluginId.CompareF( iInstanceUid ) == 0 )
+ {
+ UpdateDataL();
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Gets the menu item from engine using the setting properties as filter
+// ---------------------------------------------------------------------------
+//
+CCarouselData* CCarouselPluginData::GetMenuDataL(
+ RPointerArray<HSPluginSettingsIf::CPropertyMap>& aProperties )
+ {
+ if ( aProperties.Count() <= 0 )
+ {
+ User::Leave( KErrArgument );
+ }
+
+ TPtrC8 type;
+ TPtrC8 uid;
+ TPtrC8 view;
+ TPtrC8 param;
+
+ // first we need to check the item type
+ for ( TInt i = 0; i < aProperties.Count(); i++ )
+ {
+ if ( aProperties[i]->Name() == KProperNameType )
+ {
+ type.Set( aProperties[i]->Value());
+ }
+ else if( aProperties[i]->Name() == KProperNameUid)
+ {
+ uid.Set( aProperties[i]->Value());
+ }
+ else if( aProperties[i]->Name() == KProperNameView)
+ {
+ view.Set( aProperties[i]->Value());
+ }
+ else if( aProperties[i]->Name() == KProperNameParam )
+ {
+ param.Set( aProperties[i]->Value());
+ }
+ }
+ CCarouselData* data = new ( ELeave ) CCarouselData();
+ CleanupStack::PushL( data );
+ if( type == KProperValueBookmark )
+ {
+ GetBkmDataL( uid, view, param, *data );
+ }
+ else if( type == KProperValueFolder )
+ {
+ GetFolderData( param, *data );
+ }
+ else if( type == KProperValueMailbox )
+ {
+ GetMailboxDataL( uid, param, *data );
+ }
+ else
+ {
+ GetMCSDataL( aProperties, *data );
+ }
+ CleanupStack::Pop( data );
+ return data;
+ }
+
+// ---------------------------------------------------------------------------
+// Creates bookmark data item.
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginData::GetBkmDataL( const TDesC8& aUid, const TDesC8& aView, const TDesC8& aParam, CCarouselData& aData )
+ {
+ TMenuItem item;
+
+ if( aUid.Length() > 0 )
+ {
+ CMenuFilter* filter = CMenuFilter::NewLC();
+ HBufC* name( NULL );
+ HBufC* value( NULL );
+ name = AiUtility::CopyToBufferL( name, KProperNameUid );
+ CleanupStack::PushL( name );
+ value = AiUtility::CopyToBufferL( value, aUid );
+ CleanupStack::PushL( value );
+ filter->HaveAttributeL( *name, *value );
+ CleanupStack::PopAndDestroy( value );
+ CleanupStack::PopAndDestroy( name );
+ item = iEngine.FindMenuItemL( *filter );
+ CleanupStack::PopAndDestroy( filter );
+ }
+
+ item.SetType( KMenuTypeUrl );
+ aData.SetMenuItem( item );
+
+ HBufC* view( NULL );
+ view = AiUtility::CopyToBufferL( view, aView );
+ CleanupStack::PushL( view );
+ aData.SetValueL( *view );
+ CleanupStack::PopAndDestroy( view );
+
+ HBufC* param( NULL );
+ param = AiUtility::CopyToBufferL( param, aParam );
+ CleanupStack::PushL( param );
+ aData.SetNameL( *param );
+ CleanupStack::PopAndDestroy( param );
+ }
+
+// ---------------------------------------------------------------------------
+// Creates folder data item.
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginData::GetFolderData( const TDesC8& aParam, CCarouselData& aData )
+ {
+ // In folder case, we have to extract id from
+ // param attribute and return item with this id
+ // convert id to integer
+ TInt id;
+ TLex8 lextmp( aParam);
+ lextmp.Val( id );
+
+ TMenuItem item;
+ item.SetType( KMenuTypeFolder );
+ item.SetId( id );
+ aData.SetMenuItem( item );
+ }
+
+// ---------------------------------------------------------------------------
+// Creates mailbox data item.
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginData::GetMailboxDataL( const TDesC8& aUid, const TDesC8& aParam, CCarouselData& aData )
+ {
+ TInt id( KErrNotFound );
+ TLex8 lextmp( aUid);
+ lextmp.Val( id );
+
+ TMenuItem item;
+ item.SetType( KMenuTypeMailbox );
+ item.SetId( id );
+ aData.SetMenuItem( item );
+
+ HBufC* param( NULL );
+ param = AiUtility::CopyToBufferL( param, aParam );
+ CleanupStack::PushL( param );
+
+ aData.SetNameL( *param );
+
+ CleanupStack::PopAndDestroy( param );
+ }
+
+// ---------------------------------------------------------------------------
+// Gets data item from MCS
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginData::GetMCSDataL( RPointerArray<HSPluginSettingsIf::CPropertyMap>& aProperties,
+ CCarouselData& aData)
+ {
+ CMenuFilter* filter = CMenuFilter::NewLC();
+
+ // Exclude 'view' and 'param' attributes from search criteria by default
+ // Criterias will be added to filter if setting defines them
+ filter->DoNotHaveAttributeL( KMenuAttrView );
+ filter->DoNotHaveAttributeL( KMenuAttrParam );
+
+ // then add all property/value pairs to the filter
+ for ( TInt i = 0; i < aProperties.Count(); i++ )
+ {
+ // skip the type property
+ if( aProperties[i]->Name() == KProperNameType )
+ {
+ continue;
+ }
+
+ HBufC* name( NULL );
+ HBufC* value( NULL );
+ name = AiUtility::CopyToBufferL( name, aProperties[i]->Name() );
+ CleanupStack::PushL( name );
+ value = AiUtility::CopyToBufferL( value, aProperties[i]->Value() );
+ CleanupStack::PushL( value );
+
+ if ( value->Length() != 0 )
+ {
+ filter->HaveAttributeL( *name, *value );
+ }
+ CleanupStack::PopAndDestroy( value );
+ CleanupStack::PopAndDestroy( name );
+ }
+
+ // locked property excluded from search pattern
+ filter->DoNotHaveAttributeL( KMenuAttrLocked );
+
+ TMenuItem item = iEngine.FindMenuItemL( *filter );
+ CleanupStack::PopAndDestroy( filter );
+ aData.SetMenuItem( item );
+ }
+
+// ---------------------------------------------------------------------------
+// Returns menu item for given index
+// ---------------------------------------------------------------------------
+//
+CCarouselData& CCarouselPluginData::DataItemL( TInt aIndex )
+ {
+ if( aIndex < 0 || aIndex >= iData.Count())
+ {
+ User::Leave( KErrArgument );
+ }
+ return *iData[aIndex];
+ }
+
+// ---------------------------------------------------------------------------
+// Save the undefined item.
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginData::SaveUndefinedItemL( const TInt& aIndex )
+ {
+ RPointerArray<CItemMap> settingItems;
+ CleanupResetAndDestroyPushL( settingItems );
+
+ iPluginSettings->GetSettingsL( iInstanceUid, settingItems );
+ if ( aIndex >= 0 && aIndex < settingItems.Count() )
+ {
+ CItemMap* itemMap = settingItems[ aIndex ];
+
+ // get properties
+ RPointerArray<HSPluginSettingsIf::CPropertyMap>& properties
+ = itemMap->Properties();
+
+ for ( TInt i = 0; i < properties.Count(); i++ )
+ {
+ if ( properties[ i ]->Name() == KProperNameType )
+ {
+ properties[ i ]->SetValueL( KProperValueAppl );
+ }
+ else if ( properties[ i ]->Name() == KProperNameUid )
+ {
+ properties[ i ]->SetValueL( KMenuAttrUndefUid );
+ }
+ else if ( properties[ i ]->Name() == KProperNameView )
+ {
+ properties[ i ]->SetValueL( KNullDesC8 );
+ }
+ else if ( properties[ i ]->Name() == KProperNameParam )
+ {
+ properties[ i ]->SetValueL( KNullDesC8 );
+ }
+ else if ( properties[ i ]->Name() == KProperNameLocked )
+ {
+ properties[i]->SetValueL( KNullDesC8 );
+ }
+ }
+ }
+ // ETrue tells that modified settings are stored also to plugin reference
+ iPluginSettings->SetSettingsL( iInstanceUid, settingItems, ETrue );
+ CleanupStack::PopAndDestroy(); // settingItems
+ }
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/src/carouselpluginengine.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,841 @@
+/*
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: The engine class of MCS plugin.
+*
+*/
+
+// System includes
+#include <gulicon.h>
+#include <gslauncher.h>
+#include <mcsmenufilter.h>
+#include <mcsmenuoperation.h>
+#include <mcsmenuiconutility.h>
+#include <bautils.h>
+#include <StringLoader.h>
+#include <aknnotedialog.h>
+#include <mcspluginres.rsg>
+#include <apgcli.h>
+#include <apacmdln.h>
+#include <gfxtranseffect/gfxtranseffect.h>
+#include <akntranseffect.h>
+#include <schemehandler.h>
+#include <viewcli.h> // For CVwsSessionWrapper
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <viewclipartner.h>
+#endif
+#include <aisystemuids.hrh>
+
+// User includes
+#include "carouselpluginengine.h"
+#include "carouselplugin.h"
+#include "carouselplugindata.h"
+#include "carouselpluginuids.hrh"
+
+// Constants
+_LIT( KMyMenuData, "matrixmenudata" );
+_LIT( KSkin, "skin" );
+_LIT( KMif, "mif" );
+_LIT( KResourceDrive, "Z:" );
+_LIT( KResourceFile, "mcspluginres.rsc" );
+_LIT( KResPath, "\\resource\\" );
+_LIT( KMMApplication, "mm://" );
+_LIT( KHideExit2, "&exit=hide" );
+_LIT( KSetFocusString, "!setfocus?applicationgroup_name=" );
+_LIT( KApplicationGroupName, "applicationgroup_name" );
+_LIT( KIcon, "icon" );
+_LIT( KMenuAttrUndefUid, "0x99999991" );
+_LIT( KMenuIconFile, "aimcsplugin.mif" );
+_LIT( KMenuBookmarkIconId, "16386" );
+_LIT( KMenuBookmarkMaskId, "16387" );
+_LIT( KMenuMailboxIconId, "16388" );
+_LIT( KMenuMailboxMaskId, "16389" );
+_LIT( KMenuTypeMailbox, "menu:mailbox" );
+_LIT( KPrefix, "0x" );
+
+const TUid KHomescreenUid = { AI_UID3_AIFW_COMMON };
+const TUid KMMUid = { 0x101F4CD2 };
+const TUid KMCSCmailUidValue = { 0x2001E277 };
+const TUid KMCSCmailMailboxViewIdValue = { 0x2 };
+const TUid KBrowserUid = { 0x10008D39 };
+
+// ======== LOCAL FUNCTIONS ========
+// ----------------------------------------------------------------------------
+// NextIdToken
+// ----------------------------------------------------------------------------
+//
+static TPtrC NextIdToken( TLex& aLexer )
+ {
+ aLexer.SkipSpace();
+ aLexer.Mark();
+
+ while( !aLexer.Eos() && !aLexer.Peek().IsSpace() && aLexer.Peek() != ')' )
+ {
+ aLexer.Inc();
+ }
+
+ return aLexer.MarkedToken();
+ }
+
+// ----------------------------------------------------------------------------
+// Shows note dailog, with the given resource.
+// ----------------------------------------------------------------------------
+//
+static void ShowNoteDlgL( TInt aResource )
+ {
+ HBufC* temp = StringLoader::LoadLC( aResource );
+
+ CAknNoteDialog* dialog = new (ELeave) CAknNoteDialog(
+ CAknNoteDialog::EConfirmationTone,
+ CAknNoteDialog::ENoTimeout );
+ CleanupStack::PushL( dialog );
+ dialog->SetTextL( temp->Des() );
+ dialog->ExecuteDlgLD( R_MCS_DISABLE_OPEN_ITEM_DLG );
+ CleanupStack::Pop( dialog );
+ CleanupStack::PopAndDestroy( temp );
+ }
+
+// ----------------------------------------------------------------------------
+// Parses uid in Hexadecimal format from the given string.
+// ----------------------------------------------------------------------------
+//
+TUid ParseHexUidFromString(const TDesC& aUidString )
+ {
+ TUid uid( KNullUid );
+ const TInt pos( aUidString.FindF( KPrefix ) );
+
+ if ( pos != KErrNotFound )
+ {
+ TLex lex( aUidString.Mid( pos + KPrefix().Length() ) );
+
+ // Hex parsing needs unsigned int
+ TUint32 value( 0 );
+ const TInt parseResult( lex.Val( value, EHex ) );
+
+ if ( parseResult == KErrNone )
+ {
+ TInt32 value32( value );
+ uid.iUid = value32;
+ }
+ }
+ return uid;
+ }
+
+// ----------------------------------------------------------------------------
+// Start transition effect. User has launched the application with the given uid.
+// ----------------------------------------------------------------------------
+//
+void StartEffect( TUid aUid )
+ {
+ //start a full screen effect
+ GfxTransEffect::BeginFullScreen(
+ AknTransEffect::EApplicationStart,
+ TRect(),
+ AknTransEffect::EParameterType,
+ AknTransEffect::GfxTransParam( aUid,
+ AknTransEffect::TParameter::EActivateExplicitContinue ));
+ }
+
+// ============================ MEMBER FUNCTIONS ===============================
+// ----------------------------------------------------------------------------
+// CMCSPluginEngine::CMCSPluginEngine
+//
+// ----------------------------------------------------------------------------
+//
+CCarouselPluginEngine::CCarouselPluginEngine( CCarouselPlugin& aPlugin,
+ const TDesC8& aInstanceUid )
+ : iPlugin( aPlugin ), iInstanceUid( aInstanceUid )
+ {
+ }
+
+// ----------------------------------------------------------------------------
+// CMCSPluginEngine::NewL
+//
+// ----------------------------------------------------------------------------
+//
+CCarouselPluginEngine* CCarouselPluginEngine::NewL( CCarouselPlugin& aPlugin,
+ const TDesC8& aInstanceUid )
+ {
+ CCarouselPluginEngine* self =
+ new( ELeave ) CCarouselPluginEngine( aPlugin, aInstanceUid );
+
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+
+ return self;
+ }
+
+// ----------------------------------------------------------------------------
+// CMCSPluginEngine::ConstructL
+//
+// ----------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::ConstructL()
+ {
+ TFullName resourceFile( KResourceDrive );
+ resourceFile.Append( KResPath );
+ resourceFile.Append( KResourceFile );
+ BaflUtils::NearestLanguageFile(
+ CCoeEnv::Static()->FsSession(),
+ resourceFile );
+ iResourceOffset =
+ CCoeEnv::Static()->AddResourceFileL( resourceFile );
+ InitL();
+ StartObservingL();
+
+ // Get "Undefined" item
+ CMenuFilter* filter = CMenuFilter::NewL();
+ CleanupStack::PushL( filter );
+ filter->HaveAttributeL( KMenuAttrUid, KMenuAttrUndefUid );
+ iUndefinedItemHeader = FindMenuItemL( *filter );
+ CleanupStack::PopAndDestroy( filter );
+ iUndefinedItem = CMenuItem::OpenL( iMenu, iUndefinedItemHeader );
+ }
+
+// ----------------------------------------------------------------------------
+// CMCSPluginEngine::~CMCSPluginEngine
+//
+// ----------------------------------------------------------------------------
+//
+CCarouselPluginEngine::~CCarouselPluginEngine()
+ {
+ StopObserving();
+
+ delete iPluginData;
+
+ // Notifier close has to be before iMenu close
+ iNotifier.Close();
+ iMenu.Close();
+ delete iWatcher;
+ delete iNotifyWatcher;
+
+ CCoeEnv::Static()->DeleteResourceFile( iResourceOffset );
+
+ delete iUndefinedItem;
+ }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::InitL
+//
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::InitL()
+ {
+ iMenu.OpenL( KMyMenuData );
+ iPluginData = CCarouselPluginData::NewL( *this, iInstanceUid );
+ iWatcher = CCarouselPluginWatcher::NewL( CCarouselPluginWatcher::EOperation );
+
+ TInt err( iNotifier.Open( iMenu ) );
+
+ if ( err == KErrNone )
+ {
+ iNotifyWatcher = CCarouselPluginWatcher::NewL( CCarouselPluginWatcher::ENotify );
+
+ iNotifier.Notify( 0,
+ RMenuNotifier::EItemsAddedRemoved,
+ iNotifyWatcher->iStatus );
+ iNotifyWatcher->WatchNotify( this );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::StartObservingL
+//
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::StartObservingL()
+ {
+ // registering to mailbox db. changes observing
+ iMsvSession = CMsvSession::OpenAsObserverL( *this );
+ }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::StopObserving
+//
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::StopObserving()
+ {
+ delete iMsvSession;
+ iMsvSession = NULL;
+ }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::MenuDataL
+//
+// ---------------------------------------------------------------------------
+//
+CCarouselData& CCarouselPluginEngine::MenuDataL( const TInt& aIndex )
+ {
+ return iPluginData->DataItemL( aIndex );
+ }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::MenuItemCount
+//
+// ---------------------------------------------------------------------------
+//
+TInt CCarouselPluginEngine::MenuItemCount()
+ {
+ return iPluginData->DataCount();
+ }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::FindMenuItemL
+// Returns the menu item header, which matches the given filter.
+// ---------------------------------------------------------------------------
+//
+TMenuItem CCarouselPluginEngine::FindMenuItemL( CMenuFilter& aFilter )
+ {
+ TMenuItem item;
+ const TInt root( iMenu.RootFolderL() );
+
+ RArray<TMenuItem> items;
+ CleanupClosePushL( items );
+
+ iMenu.GetItemsL( items, root, &aFilter, ETrue );
+
+ if ( items.Count() > 0 )
+ {
+ item = items[0];
+ }
+
+ CleanupStack::PopAndDestroy( &items );
+
+ return item;
+ }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::FetchMenuItemL
+// Returns the actual menu item for the given header.
+// ---------------------------------------------------------------------------
+//
+CMenuItem* CCarouselPluginEngine::FetchMenuItemL( CCarouselData& aData )
+ {
+ CMenuItem* item = NULL;
+
+ TRAP_IGNORE( item = CMenuItem::OpenL( iMenu, aData.MenuItem().Id() ) );
+
+ if( item )
+ {
+ return item;
+ }
+
+ if( aData.MenuItem().Type() == KMenuTypeUrl )
+ {
+ item = CreateBkmItemL( aData );
+ }
+ else if( aData.MenuItem().Type() == KMenuTypeMailbox )
+ {
+ item = CreateMailboxItemL( aData);
+ }
+
+ return item;
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+CMenuItem* CCarouselPluginEngine::CreateBkmItemL( CCarouselData& aData )
+ {
+ CMenuItem* item( NULL );
+ if( aData.MenuItem().Id() != KErrNotFound )
+ {
+ item = CMenuItem::CreateL( iMenu, KMenuTypeUrl, 0, 0 );
+ CleanupStack::PushL( item );
+ item->SetAttributeL( KMenuAttrLongName, aData.Name() );
+ item->SetAttributeL( KMenuAttrIconFile, KMenuIconFile );
+ item->SetAttributeL( KMenuAttrIconId, KMenuBookmarkIconId );
+ item->SetAttributeL( KMenuAttrMaskId, KMenuBookmarkMaskId );
+ CleanupStack::Pop( item );
+ }
+ return item;
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+CMenuItem* CCarouselPluginEngine::CreateMailboxItemL( CCarouselData& aData )
+ {
+ CMenuItem* item( NULL );
+ if( aData.MenuItem().Id() != KErrNotFound )
+ {
+ item = CMenuItem::CreateL( iMenu, KMenuTypeMailbox, 0, 0 );
+ CleanupStack::PushL( item );
+ item->SetAttributeL( KMenuAttrLongName, aData.Name() );
+ item->SetAttributeL( KMenuAttrIconFile, KMenuIconFile );
+ item->SetAttributeL( KMenuAttrIconId, KMenuMailboxIconId );
+ item->SetAttributeL( KMenuAttrMaskId, KMenuMailboxMaskId );
+ CleanupStack::Pop( item );
+ }
+ return item;
+ }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::ItemIconL
+// Returns MCS default icon if attribute is 'icon' else parses the
+// skin definition from attribute and sets attributes to aMenuItem.
+// ---------------------------------------------------------------------------
+//
+CGulIcon* CCarouselPluginEngine::ItemIconL( CMenuItem* aMenuItem,
+ const TDesC& aAttr )
+ {
+
+ CMenuItem* menuItem;
+
+ // check if item exists in MCS
+ if ( aMenuItem )
+ {
+ TUint32 flags = aMenuItem->Flags();
+ TUint32 isHidden = flags & TMenuItem::EHidden;
+ TUint32 isMissing = flags & TMenuItem::EMissing;
+
+ if ( iUndefinedItem && ( isHidden || isMissing ) )
+ {
+ menuItem = iUndefinedItem;
+ }
+ else
+ {
+ menuItem = aMenuItem;
+ }
+ }
+ else
+ {
+ // item not found in MCS. Use Undefined Icon
+ menuItem = iUndefinedItem;
+ }
+
+ CAknIcon* icon( NULL );
+ CGulIcon* gIcon( NULL );
+ TBool exists( ETrue );
+
+ if ( aAttr != KIcon )
+ {
+ // Resolve secondary icon definition from attribute
+ TPtrC iconDef( menuItem->GetAttributeL( aAttr, exists ) );
+
+ if ( exists )
+ {
+ exists = ConstructMenuItemForIconL( iconDef, *menuItem );
+ }
+ }
+
+ if ( exists )
+ {
+ icon = MenuIconUtility::GetItemIconL( *menuItem );
+
+ if ( icon )
+ {
+ CleanupStack::PushL( icon );
+
+ gIcon = CGulIcon::NewL( icon->Bitmap(), icon->Mask() );
+
+ // Detach and delete
+ icon->SetBitmap( NULL );
+ icon->SetMask( NULL );
+
+ CleanupStack::PopAndDestroy( icon );
+ }
+ }
+
+ return gIcon;
+ }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::ItemTextL
+// Returns text string for the given attribute
+// ---------------------------------------------------------------------------
+//
+TPtrC CCarouselPluginEngine::ItemTextL( CMenuItem* aMenuItem, const TDesC& aAttr )
+ {
+
+ CMenuItem* menuItem;
+
+ // check if item exists in MCS
+ if ( aMenuItem )
+ {
+ TUint32 flags = aMenuItem->Flags();
+ TUint32 isHidden = flags & TMenuItem::EHidden;
+ TUint32 isMissing = flags & TMenuItem::EMissing;
+
+ // if item is hidden or missing (mmc card removed)
+ // use "Undefined" text instead
+ if ( iUndefinedItem && ( isHidden || isMissing ) )
+ {
+ menuItem = iUndefinedItem;
+ }
+ else
+ {
+ menuItem = aMenuItem;
+ }
+ }
+ else
+ {
+ // item not found in MCS. Use "Undefined" text
+ menuItem = iUndefinedItem;
+ }
+
+ TBool exists( KErrNotFound );
+
+ TPtrC name( menuItem->GetAttributeL( aAttr, exists ) );
+
+ if ( exists )
+ {
+ return name;
+ }
+
+ return KNullDesC();
+ }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::LaunchItemL
+// Calls the open command for the given menu item header
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::LaunchItemL( const TInt& aIndex )
+ {
+ if ( iBackupRestore )
+ {
+ ShowNoteDlgL( R_MCS_DISABLE_OPEN_ITEM );
+ return;
+ }
+
+ CCarouselData& dataItem( iPluginData->DataItemL( aIndex ) );
+ // run item based on its type
+ TPtrC type( dataItem.MenuItem().Type());
+
+ // run folder
+ if ( type == KMenuTypeFolder )
+ {
+ LaunchFolderItemL( dataItem );
+ }
+ else if( type == KMenuTypeUrl )
+ {
+ LaunchBookmarkItemL( dataItem );
+ }
+ else if( type == KMenuTypeMailbox )
+ {
+ LaunchMailboxItemL( dataItem );
+ }
+ else
+ {
+ LaunchMCSItemL( dataItem );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::LaunchFolderItemL( CCarouselData& aData )
+ {
+ CMenuItem* item = NULL;
+ TRAP_IGNORE( item = CMenuItem::OpenL( iMenu, aData.MenuItem().Id() ) );
+
+ // item does not exist at all in MCS
+ if ( item == NULL )
+ {
+ ShowNoteDlgL( R_MCS_DISABLE_OPEN_ITEM_MISSING );
+ return;
+ }
+
+ CleanupStack::PushL( item );
+
+ StartEffect( KMMUid );
+
+ // message for MM application
+ HBufC8* message;
+
+ // prepare message for launching folder
+ TBool hasApplicationGroupName( EFalse );
+
+ TPtrC applicationGroupName( item->GetAttributeL(
+ KApplicationGroupName, hasApplicationGroupName ) );
+
+ if ( !hasApplicationGroupName )
+ {
+ return;
+ }
+
+ message = HBufC8::NewLC( KMMApplication().Length() +
+ KSetFocusString().Length() +
+ applicationGroupName.Length() +
+ KHideExit2().Length() );
+
+ message->Des().Copy( KMMApplication );
+ message->Des().Append( KSetFocusString );
+ message->Des().Append( applicationGroupName );
+ message->Des().Append( KHideExit2 );
+
+ // find MM application
+ TApaTaskList taskList( CCoeEnv::Static()->WsSession() );
+ TApaTask task( taskList.FindApp( KMMUid ) );
+
+ if ( task.Exists() )
+ {
+ // MM is already running in background - send APA Message
+ task.SendMessage(
+ TUid::Uid( KUidApaMessageSwitchOpenFileValue ), *message );
+ }
+ else
+ {
+ // MM not running yet - use Command Line Tail
+ RApaLsSession appArcSession;
+ CleanupClosePushL( appArcSession );
+
+ User::LeaveIfError( appArcSession.Connect() );
+
+ TApaAppInfo appInfo;
+ TInt err( appArcSession.GetAppInfo( appInfo, KMMUid ) );
+
+ if ( err == KErrNone )
+ {
+ CApaCommandLine* cmdLine = CApaCommandLine::NewLC();
+ cmdLine->SetExecutableNameL( appInfo.iFullName );
+ cmdLine->SetCommandL( EApaCommandRun );
+ cmdLine->SetTailEndL( *message );
+ appArcSession.StartApp( *cmdLine );
+ CleanupStack::PopAndDestroy( cmdLine );
+ }
+ CleanupStack::PopAndDestroy( &appArcSession );
+ }
+ CleanupStack::PopAndDestroy( message );
+ CleanupStack::PopAndDestroy( item );
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::LaunchBookmarkItemL( CCarouselData& aData )
+ {
+ StartEffect( KBrowserUid );
+
+ CSchemeHandler* urlHandler = CSchemeHandler::NewL( aData.Value());
+ CleanupStack::PushL( urlHandler );
+ urlHandler->HandleUrlStandaloneL();
+ CleanupStack::PopAndDestroy( urlHandler );
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::LaunchMailboxItemL( CCarouselData& aData )
+ {
+ TInt id( aData.MenuItem().Id());
+ if ( id == KErrNotFound )
+ {
+ ShowNoteDlgL( R_MCS_DISABLE_OPEN_ITEM_MISSING );
+ return;
+ }
+
+ StartEffect( KMCSCmailUidValue );
+
+ TUid uId = TUid::Uid( id );
+ const TVwsViewId viewId( KMCSCmailUidValue, KMCSCmailMailboxViewIdValue );
+ CVwsSessionWrapper* vwsSession = CVwsSessionWrapper::NewL();
+ vwsSession->CreateActivateViewEvent( viewId, uId, KNullDesC8() );
+ delete vwsSession;
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::LaunchMCSItemL( CCarouselData& aData )
+ {
+ if( iWatcher->IsActive())
+ {
+ return;
+ }
+ CMenuItem* item = NULL;
+ TRAP_IGNORE( item = CMenuItem::OpenL( iMenu, aData.MenuItem().Id() ) );
+
+ // item does not exist at all in MCS
+ if ( item == NULL )
+ {
+ ShowNoteDlgL( R_MCS_DISABLE_OPEN_ITEM_MISSING );
+ return;
+ }
+
+ CleanupStack::PushL( item );
+
+ TBool attrExists = ETrue;
+ TPtrC uid = item->GetAttributeL( KMenuAttrUid, attrExists );
+
+ // trying to run hidden or missing application (e.g. unistalled app
+ // or app on MMC which was removed )
+ // -> We display a note for a user that this is not possible¨
+ TUint32 isHidden = item->Flags() & TMenuItem::EHidden;
+ TUint32 isMissing = item->Flags() & TMenuItem::EMissing;
+
+ if ( ( attrExists && uid == KMenuAttrUndefUid ) || isHidden || isMissing )
+ {
+ CleanupStack::PopAndDestroy( item );
+ ShowNoteDlgL( R_MCS_DISABLE_OPEN_ITEM_MISSING );
+ return;
+ }
+
+ if ( attrExists )
+ {
+ StartEffect( ParseHexUidFromString( uid ));
+ }
+
+ // run application/shortcut
+ CMenuOperation* operation( item->HandleCommandL(
+ KMenuCmdOpen, KNullDesC8, iWatcher->iStatus ) );
+ iWatcher->Watch( operation );
+ CleanupStack::PopAndDestroy( item );
+ }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::HandleNotifyL
+// Handle the change in Menu Content
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::HandleNotifyL()
+ {
+ TInt count( iPluginData->DataCount() );
+
+ for ( TInt i = 0; i < count; i++ )
+ {
+ CCarouselData& data( iPluginData->DataItemL( i ) );
+ data.SetDirty( ETrue );
+ }
+
+ iPlugin.PublishL();
+
+ // Notification must be activated again
+ iNotifyWatcher->Cancel();
+ iNotifier.Notify( 0,
+ RMenuNotifier::EItemsAddedRemoved,
+ iNotifyWatcher->iStatus );
+
+ iNotifyWatcher->WatchNotify( this );
+ }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::HandleSessionEventL
+// Handles an event from the message server.
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::HandleSessionEventL( TMsvSessionEvent aEvent,
+ TAny* aArg1, TAny* /*aArg2*/, TAny* /*aArg3*/)
+ {
+ switch ( aEvent )
+ {
+ case EMsvEntriesDeleted:
+ {
+ CMsvEntrySelection* sel = static_cast<CMsvEntrySelection*>( aArg1 );
+ TInt count( sel->Count());
+ for( TInt i = 0; i < count; i++ )
+ {
+ iPluginData->RemoveDataL( sel->At( i ) );
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::SetBackupRestore
+//
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::SetBackupRestore( TBool aBackupRestore )
+ {
+ iBackupRestore = aBackupRestore;
+ }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::ShowSettingsL
+// Launch General Settings plugin
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::ShowSettingsL()
+ {
+ TUid uid = {AI_UID_ECOM_IMPLEMENTATION_SETTINGS_MCSPLUGIN};
+
+ CGSLauncher* launcher = CGSLauncher::NewLC();
+ launcher->LaunchGSViewL ( uid, KHomescreenUid, iInstanceUid );
+ CleanupStack::PopAndDestroy( launcher );
+ }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::ConstructMenuItemForIconL
+// Syntax: skin(major minor):mif(filename bimapId maskId)
+// ---------------------------------------------------------------------------
+//
+TBool CCarouselPluginEngine::ConstructMenuItemForIconL( const TDesC& aPath,
+ CMenuItem& aMenuItem )
+ {
+ TInt pos( aPath.Locate( ':' ) );
+ if ( pos == KErrNotFound )
+ {
+ pos = aPath.Length();
+ }
+ TPtrC skin( aPath.Left( pos ) );
+ TInt sf( skin.FindF( KSkin ) );
+
+ if ( sf == KErrNotFound )
+ {
+ return EFalse;
+ }
+
+ TPtrC temp( skin.Mid( sf + KSkin().Length() ) );
+ TLex input( temp );
+ input.SkipSpace();
+
+ if ( !input.Eos() && input.Peek() == '(' )
+ {
+ input.Inc();
+ }
+ TPtrC majorId( NextIdToken( input ) );
+ TPtrC minorId( NextIdToken( input ) );
+
+ aMenuItem.SetAttributeL( KMenuAttrIconSkinMajorId, majorId );
+ aMenuItem.SetAttributeL( KMenuAttrIconSkinMinorId, minorId );
+
+ if ( aPath.Length() > pos &&
+ ( aPath.Mid( pos + 1 ).FindF( KMif ) != KErrNotFound ) )
+ {
+ TPtrC mif( aPath.Mid( pos + 1 ) );
+ TInt mf( mif.FindF( KMif ) );
+
+ TLex input1( mif.Mid( mf + KMif().Length() ) );
+ input1.SkipSpace();
+
+ if ( !input1.Eos() && input1.Peek() == '(' )
+ {
+ input1.Inc();
+ }
+
+ TPtrC file( NextIdToken( input1 ) );
+ TPtrC bitmapId( NextIdToken( input1 ) );
+ TPtrC maskId( NextIdToken( input1 ) );
+
+ aMenuItem.SetAttributeL( KMenuAttrIconFile, file );
+ aMenuItem.SetAttributeL( KMenuAttrIconId, bitmapId );
+ aMenuItem.SetAttributeL( KMenuAttrMaskId, maskId );
+ }
+
+ return ETrue;
+ }
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/src/carouselpluginwatcher.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,124 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Menu item operation watcher.
+*
+*/
+
+#include <mcsmenuoperation.h>
+#include "carouselpluginwatcher.h"
+#include "carouselpluginengine.h"
+
+// ---------------------------------------------------------------------------
+// two-phased constructor
+// ---------------------------------------------------------------------------
+CCarouselPluginWatcher* CCarouselPluginWatcher::NewL( const Type& aType )
+ {
+ CCarouselPluginWatcher* self = new (ELeave) CCarouselPluginWatcher( aType );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// default constructor
+// ---------------------------------------------------------------------------
+CCarouselPluginWatcher::CCarouselPluginWatcher( const Type& aType )
+ : CActive( CActive::EPriorityStandard ),
+ iType( aType )
+ {
+ CActiveScheduler::Add( this );
+ }
+
+// ---------------------------------------------------------------------------
+// destructor
+// ---------------------------------------------------------------------------
+CCarouselPluginWatcher::~CCarouselPluginWatcher()
+ {
+ Cancel();
+ }
+
+// ---------------------------------------------------------------------------
+// second phase constructor
+// ---------------------------------------------------------------------------
+void CCarouselPluginWatcher::ConstructL()
+ {
+
+ }
+
+// ---------------------------------------------------------------------------
+// Watch Async
+// ---------------------------------------------------------------------------
+void CCarouselPluginWatcher::Watch( CMenuOperation* aOperation)
+ {
+ __ASSERT_DEBUG( KRequestPending == iStatus.Int(), User::Invariant() );
+ //__ASSERT_DEBUG( !iOperation, User::Invariant() );
+ iOperation = aOperation;
+ SetActive();
+ }
+
+// ---------------------------------------------------------------------------
+// Watch Async
+// ---------------------------------------------------------------------------
+void CCarouselPluginWatcher::WatchNotify( MCarouselPluginWatcherObserver* aObserver )
+ {
+ __ASSERT_DEBUG( KRequestPending == iStatus.Int(), User::Invariant() );
+ //__ASSERT_DEBUG( !iOperation, User::Invariant() );
+ iObserver = aObserver;
+ SetActive();
+ }
+
+void CCarouselPluginWatcher::StopAndWatch( CMenuOperation* aOperation,
+ CActiveSchedulerWait* aWaitScheduler )
+ {
+ __ASSERT_DEBUG( KRequestPending == iStatus.Int(), User::Invariant() );
+ iWaitScheduler = aWaitScheduler;
+ iOperation = aOperation;
+ SetActive();
+ }
+
+// ---------------------------------------------------------------------------
+// Inherited from CActive class
+// ---------------------------------------------------------------------------
+void CCarouselPluginWatcher::RunL()
+ {
+ delete iOperation;
+ iOperation = NULL;
+
+ if( iType == ENotify )
+ {
+ iObserver->HandleNotifyL();
+ }
+ if ( iWaitScheduler && iWaitScheduler->IsStarted() )
+ {
+ Cancel();
+ iWaitScheduler->AsyncStop();
+ }
+ //CActiveScheduler::Stop();
+ }
+
+// ---------------------------------------------------------------------------
+// Inherited from CActive class
+// ---------------------------------------------------------------------------
+void CCarouselPluginWatcher::DoCancel()
+ {
+ delete iOperation;
+ iOperation = NULL;
+ }
+
+TInt CCarouselPluginWatcher::GetStatus()
+ {
+ return iStatus.Int();
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/renderer/data/carouselwidget.rss Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: Carousel widget for Symbian Homescreen
+ *
+ */
+
+#include <ecom/registryinfo.rh>
+
+RESOURCE REGISTRY_INFO theInfo
+{
+dll_uid = 0xEabba432;
+interfaces =
+ {
+ INTERFACE_INFO
+ {
+ interface_uid = 0x200286DF;
+ implementations =
+ {
+ IMPLEMENTATION_INFO
+ {
+ implementation_uid = 0xEabba433;
+ version_no = 1;
+ display_name = "CarouselWidget";
+ default_data = "carousel";
+ opaque_data = "";
+ }
+ };
+ }
+ };
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/renderer/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: Carousel widget for Symbian Homescreen
+ *
+ */
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+ARMV5 WINSCW
+
+PRJ_EXPORTS
+
+../rom/carouselwidget.iby CORE_MW_LAYER_IBY_EXPORT_PATH(carouselwidget.iby)
+
+PRJ_MMPFILES
+
+carouselwidget.mmp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/renderer/group/carouselwidget.mmp Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: Carousel widget for Symbian Homescreen
+ *
+ */
+
+#include <platform_paths.hrh>
+#include <data_caging_paths.hrh>
+
+TARGET carouselwidget.dll
+TARGETTYPE PLUGIN
+UID 0x10009d8d 0xEabba432
+
+CAPABILITY CAP_ECOM_PLUGIN
+
+EPOCALLOWDLLDATA
+
+SOURCEPATH ../src
+SOURCE carouselwidget.cpp
+
+USERINCLUDE ../inc
+
+MW_LAYER_SYSTEMINCLUDE
+APP_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH ../data
+START RESOURCE carouselwidget.rss
+HEADER
+TARGETPATH ECOM_RESOURCE_DIR
+END
+
+LIBRARY extrenderingplugin.lib
+LIBRARY euser.lib
+LIBRARY eikcore.lib
+LIBRARY cone.lib
+LIBRARY xn3layoutengine.lib
+LIBRARY xn3utils.lib
+LIBRARY xn3domdocument.lib
+LIBRARY avkon.lib
+LIBRARY ws32.lib
+LIBRARY fbscli.lib
+LIBRARY bitgdi.lib
+LIBRARY egul.lib
+LIBRARY bafl.lib
+LIBRARY eikcoctl.lib
+LIBRARY eikctl.lib
+LIBRARY gdi.lib
+LIBRARY aknicon.lib
+LIBRARY aknphysics.lib
+LIBRARY AknSkins.lib
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/renderer/inc/carouselwidget.h Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,253 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: Carousel widget for Symbian Homescreen
+ *
+ */
+
+#ifndef _CCAROUSELWIDGET_H
+#define _CCAROUSELWIDGET_H
+
+// INCLUDES
+#include <xnextrenderingpluginadapter.h>
+#include <aknphysicsobserveriface.h>
+
+class MXnExtEventHandler;
+class CCarouselItem;
+class CAknPhysics;
+
+// Class declaration
+NONSHARABLE_CLASS( CCarouselItem ) : public CBase
+ {
+public:
+
+ // Constructors
+
+ /**
+ * C++ default constructor.
+ */
+CCarouselItem(/* CCarouselEditor& aEditor,*/ CFbsBitmap* aBitmap, CFbsBitmap* aMask);
+
+ /**
+ * Destructor.
+ */
+ ~CCarouselItem();
+
+ void SetTextL( const TDesC& aText );
+
+ CFbsBitmap* iBitmap;
+ CFbsBitmap* iMask;
+private:
+
+ HBufC* iText;
+ };
+
+// CLASS DECLARATION
+
+/**
+*
+*/
+class CCarouselWidget : public CXnExtRenderingPluginAdapter,
+ public MAknPhysicsObserver
+ {
+
+public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ */
+ static CCarouselWidget* NewL();
+
+ /**
+ * Destructor.
+ */
+ virtual ~CCarouselWidget();
+
+public: // from base classes
+
+ /**
+ * From CCoeControl Handles key events.
+ * @since Series 60 3.1
+ * @param aKeyEvent Key event.
+ * @param aType Event type.
+ * @return Key response
+ */
+ TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
+ TEventCode aType );
+
+ /**
+ * From CCoeControl
+ */
+ void SetContainerWindowL( const CCoeControl &aContainer );
+
+ /**
+ * See CCoeControl documentation
+ */
+ void HandlePointerEventL( const TPointerEvent& aPointerEvent );
+
+ /**
+ * From CCoeControl, CountComponentControls
+ * @return Number of component controls
+ */
+ TInt CountComponentControls() const;
+
+ /**
+ * From CCoeControl, ComponentControl
+ * @param aIndex index of component control
+ * @return pointer to the specified control
+ */
+ CCoeControl* ComponentControl( TInt aIndex ) const;
+
+ /**
+ * Skin change notification.
+ * See CXnControlAdapter documentation
+ * @since Series 60 3.1
+ */
+ void SkinChanged();
+
+ /**
+ * See CXnControlAdapter documentation
+ */
+ void EnterPowerSaveModeL();
+
+ /**
+ * See CXnControlAdapter documentation
+ */
+ void ExitPowerSaveModeL();
+
+ // From MAknPhysicsObserver
+ /**
+ * Physics emulation has moved the view.
+ */
+ void ViewPositionChanged( const TPoint& aNewPosition,
+ TBool aDrawNow, TUint aFlags );
+
+ /**
+ * Called when emulation ended.
+ */
+ void PhysicEmulationEnded();
+
+ /**
+ * Returns the observer view position.
+ *
+ * @return Physics observer view position.
+ */
+ TPoint ViewPosition() const;
+
+protected: // from base classes
+
+ /**
+ * From CCoeControl
+ * Called if focus changes
+ */
+ void FocusChanged( TDrawNow aDrawNow );
+
+ /**
+ * From CCoeControl
+ * Called if position or size changes
+ */
+ void SizeChanged();
+
+ /**
+ * Sets the external event handler interface.
+ *
+ * @since Series 60 5.2
+ * @param aEventHandler Event handler interface.
+ */
+ void SetEventHandler( MXnExtEventHandler* aEventHandler );
+
+ /**
+ * Routes the data stream for the external rendering plugin.
+ *
+ * @since Series 60 5.2
+ * @param aData Data stream.
+ * @param aType Type of the stream.
+ * @param aIndex Index of the data.
+ */
+ void SetDataL( const TDesC8& aData, const TDesC& aType, TInt aIndex );
+
+private: // from base classes
+
+ /**
+ * From CCoeControl, Draw
+ * See CCoeControl documentation
+ */
+ void Draw( const TRect& aRect ) const;
+
+public:
+
+ /**
+ * C++ default constructor.
+ */
+ CCarouselWidget();
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL();
+
+ TRect ViewPort() {return iViewPort; };
+
+private:
+ void InitPhysicEngineL();
+
+ TInt ItemIndex( TPoint& aPoint );
+
+ void LaunchItemL( TPoint& aPosition );
+
+private: // Member data
+ /**
+ * Physics.
+ * Own.
+ */
+ CAknPhysics* iPhysics;
+
+ MXnExtEventHandler* iEventHandler; // not own
+
+ /**
+ * Pointer down start time.
+ */
+ TTime iStartTime;
+
+ /**
+ * Start (pointer down) position.
+ */
+ TPoint iStartPosition;
+
+ /**
+ * Current pointer position.
+ */
+ TPoint iStylusPosition;
+
+ /**
+ * Current view position.
+ */
+ TPoint iCurrentPosition;
+
+ /**
+ * Adjusted view position
+ */
+ TPoint iViewPosition;
+
+ /**
+ * Visible area, i.e. area of the scollable control that is to be drawn.
+ */
+ TRect iViewPort;
+
+ RPointerArray<CCarouselItem> iStripeItems;
+
+ TBool iDrawHighlight;
+ };
+
+#endif // _CCAROUSELWIDGET_H
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/renderer/rom/carouselwidget.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* IBY file for Carousel Widget
+*
+*/
+
+#ifndef CAROUSELWIDGET_IBY
+#define CAROUSELWIDGET_IBY
+
+ECOM_PLUGIN(carouselwidget.dll, carouselwidget.rsc)
+
+#endif // CAROUSELWIDGET_IBY
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/renderer/src/carouselwidget.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,443 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: Carousel widget for Symbian Homescreen
+ *
+ */
+
+#include <ecom/implementationproxy.h>
+#include <aknphysics.h>
+#include <gulicon.h>
+#include <AknIconUtils.h>
+#include <AknsDrawUtils.h>
+#include <xnexteventhandler.h>
+#include "carouselwidget.h"
+
+const TSize KIconSize(70,70);
+const TInt KItemPadding( 6 );
+
+_LIT( KLaunchByIndex, "LaunchByIndex(");
+
+template< class PtrT > inline PtrT* UnpackPtr(
+ const TDesC8& aBuf )
+ {
+ TAny* result( NULL );
+
+ if ( aBuf.Size() == sizeof( TAny* ) )
+ {
+ // Effectively writes aBuf contents to result
+ TPckg< TAny* >( result ).Copy( aBuf );
+ }
+
+ return static_cast< PtrT* >( result );
+ }
+// ============================ MEMBER FUNCTIONS ===============================
+CCarouselItem::CCarouselItem( CFbsBitmap* aBitmap, CFbsBitmap* aMask)
+ :iBitmap( aBitmap ), iMask( aMask )
+ {
+ }
+
+CCarouselItem::~CCarouselItem()
+ {
+ delete iBitmap;
+ delete iMask;
+ delete iText;
+ }
+
+void CCarouselItem::SetTextL( const TDesC& aText )
+ {
+ delete iText;
+ iText = NULL;
+ iText = aText.AllocL();
+ }
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// Symbian static 1st phase constructor
+// -----------------------------------------------------------------------------
+//
+CCarouselWidget* CCarouselWidget::NewL()
+ {
+ CCarouselWidget* self = new( ELeave ) CCarouselWidget();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// C++ destructor
+// -----------------------------------------------------------------------------
+//
+CCarouselWidget::~CCarouselWidget()
+ {
+ delete iPhysics;
+ iStripeItems.ResetAndDestroy();
+ //delete iCover;
+ }
+
+// -----------------------------------------------------------------------------
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CCarouselWidget::ConstructL()
+ {
+
+ }
+
+// -----------------------------------------------------------------------------
+// Handles key events.
+// -----------------------------------------------------------------------------
+//
+TKeyResponse CCarouselWidget::OfferKeyEventL( const TKeyEvent& /*aKeyEvent*/,
+ TEventCode /*aType*/ )
+ {
+ return EKeyWasConsumed;
+ }
+
+// -----------------------------------------------------------------------------
+// Set window for this control
+// -----------------------------------------------------------------------------
+//
+void CCarouselWidget::SetContainerWindowL( const CCoeControl &aContainer )
+ {
+ CCoeControl::SetContainerWindowL( aContainer );
+ }
+
+// -----------------------------------------------------------------------------
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CCarouselWidget::HandlePointerEventL( const TPointerEvent& aPointerEvent )
+ {
+ if( !iPhysics )
+ {
+ return;
+ }
+ TPoint stylusPos( aPointerEvent.iPosition );
+ switch( aPointerEvent.iType )
+ {
+ case TPointerEvent::EButton1Down:
+ {
+ iPhysics->StopPhysics();
+ iPhysics->ResetFriction();
+ iStartPosition = stylusPos;
+ iStartTime.HomeTime();
+ iStylusPosition = stylusPos;
+ iDrawHighlight = ETrue;
+ }
+ break;
+
+ case TPointerEvent::EButton1Up:
+ {
+ iDrawHighlight = EFalse;
+ TInt distance = iStartPosition.iX - stylusPos.iX;
+ if( Abs(distance) <= iPhysics->DragThreshold() )
+ {
+ LaunchItemL( stylusPos );
+ }
+ else
+ {
+ TPoint drag( distance, 0 );
+ iPhysics->StartPhysics( drag, iStartTime );
+ } }
+ break;
+ case TPointerEvent::EDrag:
+ case TPointerEvent::EMove:
+ {
+ TPoint dragTh( iStartPosition - stylusPos );
+ if( Abs(dragTh.iX) > iPhysics->DragThreshold() ||
+ Abs(dragTh.iY) > iPhysics->DragThreshold())
+ {
+ iDrawHighlight = EFalse;
+ }
+ TInt deltaX( iStylusPosition.iX - stylusPos.iX );
+ iStylusPosition = stylusPos;
+ TPoint deltaPoint( deltaX, 0 );
+ iPhysics->RegisterPanningPosition( deltaPoint );
+ }
+ break;
+ default:
+ break;
+ }
+
+ CCoeControl::HandlePointerEventL( aPointerEvent );
+ }
+
+// -----------------------------------------------------------------------------
+// Returns the number of component controls
+// -----------------------------------------------------------------------------
+//
+TInt CCarouselWidget::CountComponentControls() const
+ {
+ return 0;
+ }
+
+// -----------------------------------------------------------------------------
+// Returns the specified control
+// -----------------------------------------------------------------------------
+//
+CCoeControl* CCarouselWidget::ComponentControl( TInt /*aIndex*/ ) const
+ {
+ return NULL;
+ }
+
+// -----------------------------------------------------------------------------
+// Skin change notification.
+// -----------------------------------------------------------------------------
+//
+void CCarouselWidget::SkinChanged()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CCarouselWidget::EnterPowerSaveModeL
+//
+// -----------------------------------------------------------------------------
+//
+void CCarouselWidget::EnterPowerSaveModeL()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CCarouselWidget::ExitPowerSaveModeL
+//
+// -----------------------------------------------------------------------------
+//
+void CCarouselWidget::ExitPowerSaveModeL()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// Called if focus changes
+// -----------------------------------------------------------------------------
+//
+void CCarouselWidget::FocusChanged( TDrawNow /*aDrawNow*/ )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// Called if position or size changes
+// -----------------------------------------------------------------------------
+//
+void CCarouselWidget::SizeChanged()
+ {
+ iViewPort = Rect();
+ TRAP_IGNORE( InitPhysicEngineL() );
+ DrawNow();
+ }
+
+// -----------------------------------------------------------------------------
+// Sets the external event handler interface.
+// -----------------------------------------------------------------------------
+//
+void CCarouselWidget::SetEventHandler( MXnExtEventHandler* aEventHandler )
+ {
+ iEventHandler = aEventHandler;
+ }
+
+// -----------------------------------------------------------------------------
+// Data stream from the publisher
+// -----------------------------------------------------------------------------
+//
+void CCarouselWidget::SetDataL( const TDesC8& aData, const TDesC& aType, TInt aIndex )
+ {
+ /// Unpack the data stream, works because publisher is in same process.
+ CGulIcon* icon( UnpackPtr<CGulIcon>( aData ) );
+ CleanupStack::PushL( icon );
+ AknIconUtils::SetSize( icon->Bitmap(), KIconSize);
+
+ CCarouselItem* item = new ( ELeave ) CCarouselItem(/* *iEditor,*/ icon->Bitmap(), icon->Mask() );
+ CleanupStack::PopAndDestroy( icon );
+
+ if( aType == _L("Appstripe/widget"))
+ {
+ if( iStripeItems.Count() <= aIndex )
+ {
+ iStripeItems.AppendL( item );
+ InitPhysicEngineL();
+ }
+ else
+ {
+ CCarouselItem* citem = iStripeItems[ aIndex ];
+ delete citem;
+ iStripeItems.Remove( aIndex );
+ iStripeItems.Insert( item, aIndex );
+ }
+ DrawNow();
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// Draws the carousel component
+// -----------------------------------------------------------------------------
+//
+void CCarouselWidget::Draw( const TRect& /*aRect*/ ) const
+ {
+ CWindowGc& gc( SystemGc() );
+ gc.SetClippingRect( iViewPort );
+ TRect bitmapRect( TPoint(0,0), KIconSize );
+ TPoint point( iViewPort.iTl );
+ point.iX -= iViewPosition.iX;
+
+ TInt count = iStripeItems.Count();
+ for( TInt i = 0; i < count; i++ )
+ {
+ CFbsBitmap* bitmap = iStripeItems[i]->iBitmap;
+ CFbsBitmap* mask = iStripeItems[i]->iMask;
+
+ TRect drawRect( point, KIconSize );
+ if( iDrawHighlight && drawRect.Contains( iStylusPosition ))
+ {
+ TRect innerRect( drawRect );
+ innerRect.Shrink( 5, 5 );
+
+ MAknsSkinInstance* skin( AknsUtils::SkinInstance() );
+ AknsDrawUtils::DrawFrame( skin, gc, drawRect, innerRect,
+ KAknsIIDQsnFrHomePressed, KAknsIIDDefault );
+ }
+ if( iViewPort.Contains( drawRect.iBr )||
+ iViewPort.Contains( drawRect.iTl ))
+ {
+ gc.BitBltMasked( point, bitmap, bitmapRect, mask, EFalse);
+ }
+ point.iX += KIconSize.iWidth + KItemPadding;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// ViewPositionChanged
+// ---------------------------------------------------------------------------
+//
+void CCarouselWidget::ViewPositionChanged(
+ const TPoint& aNewPosition, TBool aDrawNow, TUint /*aFlags*/ )
+ {
+ iCurrentPosition = aNewPosition;
+ iViewPosition.iX = aNewPosition.iX - iViewPort.Width()/2;
+ if( aDrawNow )
+ {
+ DrawNow( iViewPort );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// PhysicEmulationEnded
+// ---------------------------------------------------------------------------
+//
+void CCarouselWidget::PhysicEmulationEnded()
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// ViewPosition
+// ---------------------------------------------------------------------------
+//
+TPoint CCarouselWidget::ViewPosition() const
+ {
+ return iCurrentPosition;
+ }
+
+// ---------------------------------------------------------------------------
+// InitPhysicEngineL
+// ---------------------------------------------------------------------------
+//
+void CCarouselWidget::InitPhysicEngineL()
+ {
+ // Init physic engine
+ if ( !iPhysics && CAknPhysics::FeatureEnabled() )
+ {
+ iPhysics = CAknPhysics::NewL( *this, this );
+ }
+ if( !iPhysics )
+ {
+ return;
+ }
+ TSize viewPortSize = iViewPort.Size();
+ TInt totalWidth( iStripeItems.Count() * (KIconSize.iWidth + KItemPadding ));
+ TSize totalSize( totalWidth, viewPortSize.iHeight );
+ iPhysics->InitPhysicsL( totalSize, viewPortSize, ETrue );
+ iCurrentPosition = TPoint( viewPortSize.iWidth / 2, viewPortSize.iHeight / 2 );
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+TInt CCarouselWidget::ItemIndex( TPoint& aPoint )
+ {
+ TPoint itemStartPoint( iViewPort.iTl );
+ itemStartPoint.iX -= iViewPosition.iX;
+
+ TRect dropRect( itemStartPoint, KIconSize );
+ dropRect.Resize( KItemPadding, 0 );
+ TInt index( 0 );
+ do
+ {
+ if( dropRect.Contains( aPoint ))
+ {
+ return index;
+ }
+ dropRect.Move( KIconSize.iWidth+KItemPadding, 0);
+ index++;
+ }
+ while( index < iStripeItems.Count() );
+ return KErrNotFound;
+ }
+
+// -----------------------------------------------------------------------------
+// Launches the item, which is in aPosition
+// -----------------------------------------------------------------------------
+//
+void CCarouselWidget::LaunchItemL( TPoint& aPosition )
+ {
+ TInt index = ItemIndex( aPosition );
+ // carousel plugin expects indexes to start from 1
+ index++;
+ TInt len( KLaunchByIndex().Length()+3 );
+ TBuf<17> event;
+ event.Append( KLaunchByIndex );
+ event.AppendNum( index );
+ event.Append( _L(")"));
+ iEventHandler->HandleEventL( event, _L8("Appstripe"));
+ }
+
+// -----------------------------------------------------------------------------
+// C++ default constructor
+// -----------------------------------------------------------------------------
+//
+CCarouselWidget::CCarouselWidget()
+ {
+ }
+
+// ============================ PUBLIC FUNCTIONS ===============================
+const TImplementationProxy KImplementationTable[] =
+ {
+#ifdef __EABI__
+ IMPLEMENTATION_PROXY_ENTRY( 0xEabba433, CCarouselWidget::NewL )
+#else
+ { { 0xEabba433 }, CCarouselWidget::NewL }
+#endif
+ };
+
+// -----------------------------------------------------------------------------
+// Returns the list of implementations provided by the plugin
+// -----------------------------------------------------------------------------
+//
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(
+ TInt& aTableCount )
+ {
+ aTableCount = sizeof( KImplementationTable ) / sizeof( TImplementationProxy );
+ return KImplementationTable;
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/sis/carousel.pkg Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,33 @@
+; Installation file for carousel widget
+;
+;
+; UID is the dll's UID
+;
+#{"Carousel Shortcut"},(0xE001CB57),1,0,0
+
+
+;Localised Vendor name
+%{"HSExample"}
+
+;Unique Vendor name
+:"HSExample"
+
+;Supports Series 60 v 5.0
+[0x1028315F], 1, 0, 0, {"S60ProductID"}
+
+;Publisher plug-in
+"/epoc32/release/armv5/urel/carouselplugin.dll" -"c:/sys/bin/carouselplugin.dll"
+"/epoc32/data/z/resource/plugins/carouselplugin.rsc" -"c:/resource/plugins/carouselplugin.rsc"
+
+;Renderer plug-in
+"/epoc32/release/armv5/urel/carouselwidget.dll" -"c:/sys/bin/carouselwidget.dll"
+"/epoc32/data/z/resource/plugins/carouselwidget.rsc" -"c:/resource/plugins/carouselwidget.rsc"
+
+;Widget declaration
+"../widget/hsps/00/widgetconfiguration.xml" - "c:/private/200159c0/import/2001f48a/101fb657/1725ad3d/1.0/widgetconfiguration.xml"
+"../widget/hsps/00/manifest.dat" - "c:/private/200159c0/import/2001f48a/101fb657/1725ad3d/1.0/manifest.dat"
+"/epoc32/data/z/private/200159c0/install/appstripe/xuikon/00/appstripe.o0000" - "c:/private/200159c0/import/2001f48a/101fb657/1725ad3d/1.0/00/appstripe.o0000"
+"../widget/xuikon/00/appstripe.dat" - "c:/private/200159c0/import/plugin_2001f48a_101fb657_1725ad3d_1.0.dat"
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/widget/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,60 @@
+/*
+* Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Editor for carousel widget.
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+// Support for productization and Carbide.Ui customization
+//********************************************************
+../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/appstripe/hsps/manifest.dat
+../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/appstripe/hsps/widgetconfiguration.xml
+../xuikon/00/appstripe.dat /epoc32/data/Z/resource/homescreen/appstripe/xuikon/appstripe.dat
+../xuikon/00/appstripe.css /epoc32/data/Z/resource/homescreen/appstripe/xuikon/appstripe.css
+../xuikon/00/appstripe.xml /epoc32/data/Z/resource/homescreen/appstripe/xuikon/appstripe.xml
+//../xuikon/00/appstripe.dtd /epoc32/data/Z/resource/homescreen/appstripe/xuikon/appstripe.dtd
+
+// Support for S60 builds
+//***********************
+// export iby files
+../rom/appstripe_resources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(appstripe_resources.iby)
+../rom/appstripe_customer.iby CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(appstripe_customer.iby)
+../rom/appstripe_variant.iby CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(appstripe_variant.iby)
+../rom/appstripe.iby CORE_MW_LAYER_IBY_EXPORT_PATH(appstripe.iby)
+
+
+// Dtd-localization
+//*****************
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME appstripe
+OPTION DTD_TYPE widget
+END
+
+PRJ_MMPFILES
+
+// build icons
+
+// build application
+
+PRJ_TESTMMPFILES
+
+//#endif
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/widget/hsps/00/manifest.dat Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<package version="2.0">
+
+ <family>qhd_tch</family>
+
+ <type>widget</type>
+
+ <!-- interface uid -->
+ <interfaceuid>0x2001f48a</interfaceuid>
+
+ <!-- vendor uid -->
+ <provideruid>0x101fb657</provideruid>
+
+ <!-- uid -->
+ <configurationuid>0x1725ad3d</configurationuid>
+
+ <!-- description -->
+ <fullname>App Stripe</fullname>
+ <shortname>appstripe</shortname>
+ <version>1.0</version>
+
+ <!-- configuration -->
+ <filexml>widgetconfiguration.xml</filexml>
+
+ <!-- Locale specific resources -->
+ <localization>
+ <fileresource>appstripe.o0000</fileresource>
+ </localization>
+
+</package>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/widget/hsps/00/widgetconfiguration.xml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,63 @@
+<configuration>
+ <control>
+ <settings>
+ <!-- Shortcut #1, Phonebook -->
+ <item id="first" name="Shortcut1" >
+ <property name="type" value="application"/>
+ <property name="uid" value="0x101F4CCE"/>
+ <property name="view" value=""/>
+ <property name="param" value=""/>
+ </item>
+ <!-- Shortcut #2, Messaging -->
+ <item id="second" name="Shortcut2" >
+ <property name="type" value="application"/>
+ <property name="uid" value="0x100058C5"/>
+ <property name="view" value=""/>
+ <property name="param" value=""/>
+ </item>
+ <!-- Shortcut #3, Browser -->
+ <item id="third" name="Shortcut3" >
+ <property name="type" value="application"/>
+ <property name="uid" value="0x10008D39"/>
+ <property name="view" value=""/>
+ <property name="param" value=""/>
+ </item>
+ <!-- Shortcut #4, Photos -->
+ <item id="fourth" name="Shortcut4" >
+ <property name="type" value="application"/>
+ <property name="uid" value="0x200009EE"/>
+ <property name="view" value=""/>
+ <property name="param" value=""/>
+ </item>
+ <!-- Shortcut #5 -->
+ <item id="fifth" name="Shortcut5" >
+ <property name="type" value="application"/>
+ <property name="uid" value="0x200009EE"/>
+ <property name="view" value=""/>
+ <property name="param" value=""/>
+ </item>
+ <!-- Shortcut #6 -->
+ <item id="sixth" name="Shortcut6" >
+ <property name="type" value="application"/>
+ <property name="uid" value="0x200009EE"/>
+ <property name="view" value=""/>
+ <property name="param" value=""/>
+ </item>
+ <!-- Shortcut #7 -->
+ <item id="seventh" name="Shortcut7" >
+ <property name="type" value="application"/>
+ <property name="uid" value="0x200009EE"/>
+ <property name="view" value=""/>
+ <property name="param" value=""/>
+ </item>
+ <!-- Shortcut #8 -->
+ <item id="eigth" name="Shortcut8" >
+ <property name="type" value="application"/>
+ <property name="uid" value="0x200009EE"/>
+ <property name="view" value=""/>
+ <property name="param" value=""/>
+ </item>
+
+ </settings>
+ </control>
+</configuration>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/widget/rom/appstripe.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef __APPSTRIPE_IBY__
+#define __APPSTRIPE_IBY__
+
+// Enabled by DTD-localization tools
+data=ZPRIVATE\200159c0\install\appstripe\hsps\00\manifest.dat \private\200159c0\install\appstripe\hsps\00\manifest.dat
+data=ZPRIVATE\200159c0\install\appstripe\xuikon\00\appstripe.o0000 \private\200159c0\install\appstripe\xuikon\00\appstripe.o0000
+
+#endif // __APPSTRIPE_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/widget/rom/appstripe_customer.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,21 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef __APPSTRIPE_CUSTOMER_IBY__
+#define __APPSTRIPE_CUSTOMER_IBY__
+
+#endif // __APPSTRIPE_CUSTOMER_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/widget/rom/appstripe_resources.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef __APPSTRIPE_RESOURCES_IBY__
+#define __APPSTRIPE_RESOURCES_IBY__
+
+// Enabled by DTD-localization tools, language specific
+
+#endif // __APPSTRIPE_RESOURCES_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/widget/rom/appstripe_variant.iby Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,24 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef __APPSTRIPE_VARIANT_IBY__
+#define __APPSTRIPE_VARIANT_IBY__
+
+// Enabled by variation tools, variant specific
+data=ZPRIVATE\200159c0\install\appstripe\hsps\00\widgetconfiguration.xml \private\200159c0\install\appstripe\hsps\00\widgetconfiguration.xml
+
+#endif // __APPSTRIPE_VARIANT_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/widget/xuikon/00/appstripe.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,10 @@
+widget
+{
+ width:auto;
+ height:auto;
+ padding-top: 5px;
+ padding-bottom: 5px;
+ padding-left: 3px;
+ background-color: none;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/widget/xuikon/00/appstripe.dat Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<data>
+ <AppUid>2001CB4F</AppUid>
+ <Provideruid>101FB657</Provideruid>
+ <ThemeUid>11001240</ThemeUid>
+ <ThemeFullName>AppStripeWidget</ThemeFullName>
+ <ThemeShortName>appstripe</ThemeShortName>
+ <ThemeVersion>1.0</ThemeVersion>
+ <FileXML>appstripe.xml</FileXML>
+ <FileCSS>appstripe.css</FileCSS>
+</data>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/widget/xuikon/00/appstripe.xml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- <!DOCTYPE xmluiml SYSTEM "AI3_Demo.dtd"> -->
+<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
+ <widget _s60-swipe-destination="none">
+
+ <!-- Data plugin(s) in this widget -->
+ <contentsource id="Appstripe" name="Appstripe" value="0xE001CB58"/>
+
+ <carousel id="Carousel" focusable="true" _s60-focus-appearance="none" _s60-initial-focus="1">
+ <data id="stripe">
+ <property class="Appstripe/widget"/>
+ </data>
+ </carousel>
+
+ <menuextension>
+ <menuitem target="hs_widget_menuitem_settings">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="Appstripe/ShowSettings"/>
+ </action>
+ </actions>
+ </menuitem>
+ </menuextension>
+ </widget>
+</xmluiml>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample.l01 Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Content Control example
+*
+*/
+
+// localized strings for language: UK English (01)
+#define STR_HsContentControlApplication_1 ""
+#define STR_HsContentControlApplication_2 ""
+#define STR_HsContentControlApplication_3 ""
+#define STR_HsContentControlApplication_4 "HS Content Control"
+#define STR_HsContentControlApplication_5 "HS Content Control"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample.loc Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,20 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Content Control example
+*
+*/
+
+#ifdef LANGUAGE_01
+#include "hscontentcontrolexample.l01"
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample.rss Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,107 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Content Control example
+*
+*/
+
+NAME HSCO
+
+#include <eikon.rh>
+#include <avkon.rsg>
+#include <avkon.rh>
+#include <appinfo.rh>
+#include "hscontentcontrolexample.loc"
+
+RESOURCE RSS_SIGNATURE
+ {
+ }
+
+RESOURCE TBUF
+ {
+ buf = "HsContentControl";
+ }
+
+RESOURCE EIK_APP_INFO r_application_hs_content_control_app_ui
+ {
+ cba = R_AVKON_SOFTKEYS_EXIT;
+ status_pane = r_application_status_pane;
+ menubar = r_application_options_menu;
+ }
+
+RESOURCE STATUS_PANE_APP_MODEL r_application_status_pane
+ {
+ panes =
+ {
+ SPANE_PANE
+ {
+ id = EEikStatusPaneUidNavi;
+ type = EAknCtNaviPane;
+ resource = r_navi_decorator;
+ }
+
+ };
+ }
+
+RESOURCE NAVI_DECORATOR r_navi_decorator
+ {
+ type = ENaviDecoratorControlTabGroup;
+
+ control = TAB_GROUP
+ {
+ tab_width = EAknTabWidthWithOneTab;
+
+ active = 0;
+
+ tabs =
+ {
+ TAB
+ {
+ id = 0;
+ txt = "Active configuration";
+ },
+ TAB
+ {
+ id = 1;
+ txt = "Configurations";
+ },
+ TAB
+ {
+ id = 2;
+ txt = "Views";
+ },
+ TAB
+ {
+ id = 3;
+ txt = "Widgets";
+ }
+ };
+
+ };
+ }
+
+
+RESOURCE MENU_BAR r_application_options_menu
+ {
+ }
+
+RESOURCE LOCALISABLE_APP_INFO r_localisable_app_info
+ {
+ short_caption = STR_HsContentControlApplication_5;
+ caption_and_icon = CAPTION_AND_ICON_INFO
+ {
+ caption = STR_HsContentControlApplication_4;
+ number_of_icons = 0;
+ };
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample_reg.loc Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Content Control example
+*
+*/
+
+// LOCALISATION STRINGS
+
+// Caption string for app.
+#define qtn_caption_string "hscontentcontrolexample"
+
+// Short caption string for app.
+#define qtn_short_caption_string "HW"
+
+#define qtn_loc_resource_file_1 "\\resource\\apps\\hscontentcontrolexample"
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample_reg.rss Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,37 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Content Control example
+*
+*/
+
+#include <eikon.rh>
+#include <avkon.rsg>
+#include <avkon.rh>
+#include <appinfo.rh>
+#include "hscontentcontrolexample_reg.loc"
+#include <hscontentcontrolexample.rsg>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 0xE88D7143
+
+RESOURCE APP_REGISTRATION_INFO
+ {
+ app_file="hscontentcontrolexample";
+ localisable_resource_file = qtn_loc_resource_file_1;
+ localisable_resource_id = R_LOCALISABLE_APP_INFO;
+
+ embeddability=KAppNotEmbeddable;
+ newfile=KAppDoesNotSupportNewFile;
+ }
+
Binary file idlehomescreen/examples/hscontentcontrolexample/gfx/list_icon.bmp has changed
Binary file idlehomescreen/examples/hscontentcontrolexample/gfx/list_icon_mask.bmp has changed
Binary file idlehomescreen/examples/hscontentcontrolexample/gfx/mark_icon.bmp has changed
Binary file idlehomescreen/examples/hscontentcontrolexample/gfx/mark_icon_mask.bmp has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/gfx/qgn_menu_hscontentcontrolexample.svg Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%" viewBox="0 0 88 87.999">
+<g>
+<g>
+<g>
+<g>
+<rect fill="none" width="88" height="87.999"/>
+</g>
+</g>
+<g>
+<linearGradient id="XMLID_7_" gradientUnits="userSpaceOnUse" x1="12.3042" y1="18.3799" x2="63.4113" y2="79.287">
+<stop offset="0" style="stop-color:#B3DDFF"/>
+<stop offset="0.8146" style="stop-color:#084296"/>
+<stop offset="1" style="stop-color:#084296"/>
+</linearGradient>
+<path fill="url(#XMLID_7_)" d="M32.135,7.415L14.363,17.432v23.167c0,0,8.926,15.351,10.468,18.001 c-2.386,1.704-15.44,11.03-15.44,11.03l21.613,12.652c0,0,12.907-9.85,14.71-11.226c1.979,1.109,16.231,9.101,16.231,9.101 l16.664-15.132c0,0-14.066-6.929-16.888-8.318c1.467-3.01,10.531-21.604,10.531-21.604l-22.298-9.59 c0,0-1.486,3.173-2.093,4.467c-2.046-0.88-6.573-2.826-6.573-2.826s-3.713,2.463-5.696,3.778 c-0.327-0.744-0.542-1.233-0.657-1.495c0.007-0.824,0.213-23.72,0.213-23.72L32.135,7.415z"/>
+<linearGradient id="XMLID_8_" gradientUnits="userSpaceOnUse" x1="40.8276" y1="52.1914" x2="16.1997" y2="21.1353">
+<stop offset="0" style="stop-color:#5AA7E0"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_8_)" points="59.051,57.621 69.536,36.111 50.944,28.115 48.852,32.581 41.493,29.418 34.719,33.911 32.932,29.849 33.117,9.157 16.363,18.601 16.363,40.06 27.476,59.169 13.064,69.463 30.856,79.879 45.546,68.669 61.667,77.708 75.089,65.521 "/>
+<linearGradient id="XMLID_9_" gradientUnits="userSpaceOnUse" x1="60.585" y1="31.876" x2="53.8582" y2="45.1125">
+<stop offset="0" style="stop-color:#5AA7E0"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_9_)" points="41.26,48.783 50.944,28.115 69.536,36.111 59.051,57.621 "/>
+<polygon fill="#0046B7" points="16.363,40.06 27.476,59.169 41.26,48.783 32.932,29.849 "/>
+<polygon fill="#3366CC" points="16.363,40.06 16.363,18.601 33.117,9.157 32.932,29.849 "/>
+<polygon fill="#CFECFF" points="26.696,39.23 41.493,29.418 59.523,37.168 45.546,47.954 "/>
+<path fill="#5AA7E0" d="M41.954,55.286"/>
+<polygon fill="#3366CC" points="26.696,39.23 27.476,59.169 45.546,68.669 45.546,47.954 "/>
+<polygon fill="#5AA7E0" points="13.064,69.463 27.476,59.169 45.546,68.669 30.856,79.879 "/>
+<linearGradient id="XMLID_10_" gradientUnits="userSpaceOnUse" x1="29.2085" y1="63.6836" x2="48.7102" y2="56.1976">
+<stop offset="0" style="stop-color:#5AA7E0"/>
+<stop offset="0.0056" style="stop-color:#5AA7E0"/>
+<stop offset="0.85" style="stop-color:#3366CC"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_10_)" points="43.423,46.971 27.476,59.169 45.546,68.669 45.546,47.954 "/>
+<polygon fill="#0046B7" points="45.546,47.954 45.546,68.669 59.051,57.621 59.523,37.168 "/>
+<linearGradient id="XMLID_11_" gradientUnits="userSpaceOnUse" x1="45.3936" y1="59.5186" x2="59.0508" y2="59.5186">
+<stop offset="0" style="stop-color:#0046B7"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_11_)" points="45.394,50.368 45.546,68.669 59.051,57.621 "/>
+<linearGradient id="XMLID_12_" gradientUnits="userSpaceOnUse" x1="60.8945" y1="68.6807" x2="57.2953" y2="58.792">
+<stop offset="0" style="stop-color:#5AA7E0"/>
+<stop offset="0.4101" style="stop-color:#5AA7E0"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_12_)" points="61.667,77.708 45.546,68.669 59.051,57.621 75.089,65.521 "/>
+</g>
+</g>
+</g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/group/Icons_aif_scalable_dc.mk Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,83 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: Content Control example
+#
+#
+
+ifeq (WINS,$(findstring WINS, $(PLATFORM)))
+ZDIR=$(EPOCROOT)epoc32\release\$(PLATFORM)\$(CFG)\Z
+else
+ZDIR=$(EPOCROOT)epoc32\data\z
+endif
+
+
+# ----------------------------------------------------------------------------
+# TODO: Configure these
+# ----------------------------------------------------------------------------
+
+TARGETDIR=$(ZDIR)\resource\apps
+ICONTARGETFILENAME=$(TARGETDIR)\hscontentcontrolexample_aif.mif
+HEADERDIR=$(EPOCROOT)epoc32\include
+HEADERFILENAME=$(HEADERDIR)\hscontentcontrolexample_aif.mbg
+
+ICONDIR=..\gfx
+
+do_nothing :
+ @rem do_nothing
+
+MAKMAKE : do_nothing
+
+BLD : do_nothing
+
+CLEAN :
+ @echo ...Deleting $(ICONTARGETFILENAME)
+ del /q /f $(ICONTARGETFILENAME)
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+# ----------------------------------------------------------------------------
+# TODO: Configure these.
+#
+# NOTE 1: DO NOT DEFINE MASK FILE NAMES! They are included automatically by
+# MifConv if the mask detph is defined.
+#
+# NOTE 2: Usually, source paths should not be included in the bitmap
+# definitions. MifConv searches for the icons in all icon directories in a
+# predefined order, which is currently \s60\icons, \s60\bitmaps2.
+# The directory \s60\icons is included in the search only if the feature flag
+# __SCALABLE_ICONS is defined.
+# ----------------------------------------------------------------------------
+# NOTE: if you have JUSTINTIME enabled for your S60 3rd FP1 or newer SDK
+# and this command crashes, consider adding "/X" to the command line.
+# See <http://forum.nokia.com/document/Forum_Nokia_Technical_Library_v1_35/contents/FNTL/Build_process_fails_at_mif_file_creation_in_S60_3rd_Ed_FP1_SDK.htm>
+# ----------------------------------------------------------------------------
+
+RESOURCE : $(ICONTARGETFILENAME)
+
+$(ICONTARGETFILENAME) : $(ICONDIR)\qgn_menu_hscontentcontrolexample.svg
+ mifconv $(ICONTARGETFILENAME) \
+ /H$(HEADERFILENAME) \
+ /c32,8 $(ICONDIR)\qgn_menu_hscontentcontrolexample.svg
+
+FREEZE : do_nothing
+
+SAVESPACE : do_nothing
+
+RELEASABLES :
+ @echo $(ICONTARGETFILENAME)
+
+FINAL : do_nothing
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Content Control example
+*
+*/
+
+PRJ_PLATFORMS
+WINSCW ARMV5 GCCE
+
+PRJ_EXPORTS
+
+PRJ_MMPFILES
+
+gnumakefile icons_aif_scalable_dc.mk
+
+hscontentcontrolexample.mmp
+
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/group/hscontentcontrolexample.mmp Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,71 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Content Control example
+*
+*/
+
+#include <platform_paths.hrh>
+#include <data_caging_paths.hrh>
+APP_LAYER_SYSTEMINCLUDE
+TARGET hscontentcontrolexample.exe
+UID 0x100039CE 0xE88D7143
+VENDORID 0
+TARGETTYPE exe
+EPOCSTACKSIZE 0x5000
+
+CAPABILITY WriteDeviceData ReadDeviceData
+
+SYSTEMINCLUDE /epoc32/include /epoc32/include/variant /epoc32/include/ecom
+USERINCLUDE ../inc ../data
+
+SOURCEPATH ../data
+START RESOURCE hscontentcontrolexample.rss
+HEADER
+TARGETPATH resource/apps
+END //RESOURCE
+
+START RESOURCE hscontentcontrolexample_reg.rss
+TARGETPATH /private/10003a3f/apps
+END //RESOURCE
+
+LIBRARY euser.lib apparc.lib cone.lib eikcore.lib avkon.lib
+LIBRARY commonengine.lib efsrv.lib estor.lib eikcoctl.lib eikdlg.lib
+LIBRARY eikctl.lib bafl.lib fbscli.lib aknnotify.lib aknicon.lib
+LIBRARY etext.lib gdi.lib egul.lib insock.lib
+LIBRARY ecom.lib InetProtUtil.lib http.lib esock.lib aknhlist.lib
+LIBRARY aknskins.lib
+LIBRARY hsccapiclient.lib
+LIBRARY hscontentinfo.lib
+
+LANG 01
+
+START BITMAP hscontentcontrolexample.mbm
+HEADER
+TARGETPATH /resource/apps
+SOURCEPATH ../gfx
+SOURCE c12,1 list_icon.bmp list_icon_mask.bmp
+END
+
+SOURCEPATH ../src
+
+#ifdef ENABLE_ABIV2_MODE
+DEBUGGABLE_UDEBONLY
+#endif
+
+SOURCE HsContentControlListBox.cpp
+SOURCE HsContentControlApplication.cpp
+SOURCE HsContentControlAppUi.cpp
+SOURCE HsContentControlDocument.cpp
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/inc/HsContentControlAppUi.h Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,72 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Content Control example
+*
+*/
+
+
+#ifndef HSCONTENTCONTROLAPPUI_H
+#define HSCONTENTCONTROLAPPUI_H
+
+// [[[ begin generated region: do not modify [Generated Includes]
+#include <aknappui.h>
+#include <eikmenub.h>
+// ]]] end generated region [Generated Includes]
+
+// [[[ begin generated region: do not modify [Generated Forward Declarations]
+class CHsContentControlListBox;
+// ]]] end generated region [Generated Forward Declarations]
+
+/**
+ * @class CHsContentControlAppUi HsContentControlAppUi.h
+ * @brief The AppUi class handles application-wide aspects of the user interface, including
+ * container management and the default menu, control pane, and status pane.
+ */
+class CHsContentControlAppUi : public CAknAppUi
+ {
+public:
+ // constructor and destructor
+ CHsContentControlAppUi();
+ void ConstructL();
+ virtual ~CHsContentControlAppUi();
+
+public:
+ // from CEikAppUi
+ void HandleCommandL( TInt aCommand );
+ void HandleResourceChangeL( TInt aType );
+
+private:
+ void InitializeContainersL();
+ // [[[ begin generated region: do not modify [Generated Methods]
+public:
+ // ]]] end generated region [Generated Methods]
+
+ // [[[ begin generated region: do not modify [Generated Instance Variables]
+private:
+ CHsContentControlListBox* iHsContentControlListBox;
+ // ]]] end generated region [Generated Instance Variables]
+
+
+ // [[[ begin [Overridden Methods]
+protected:
+ // ]]] end [Overridden Methods]
+
+
+ // [[[ begin [User Handlers]
+protected:
+ // ]]] end [User Handlers]
+
+ };
+
+#endif // HSCONTENTCONTROLAPPUI_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/inc/HsContentControlApplication.h Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,45 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Content Control example
+*
+*/
+
+
+#ifndef HSCONTENTCONTROLAPPLICATION_H
+#define HSCONTENTCONTROLAPPLICATION_H
+
+// [[[ begin generated region: do not modify [Generated Includes]
+#include <aknapp.h>
+// ]]] end generated region [Generated Includes]
+
+// [[[ begin generated region: do not modify [Generated Constants]
+const TUid KUidHsContentControlApplication = { 0xE88D7143 };
+// ]]] end generated region [Generated Constants]
+
+/**
+ *
+ * @class CHsContentControlApplication HsContentControlApplication.h
+ * @brief A CAknApplication-derived class is required by the S60 application
+ * framework. It is subclassed to create the application's document
+ * object.
+ */
+class CHsContentControlApplication : public CAknApplication
+ {
+private:
+ TUid AppDllUid() const;
+ CApaDocument* CreateDocumentL();
+
+ };
+
+#endif // HSCONTENTCONTROLAPPLICATION_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/inc/HsContentControlDocument.h Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,46 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Content Control example
+*
+*/
+
+
+#ifndef HSCONTENTCONTROLDOCUMENT_H
+#define HSCONTENTCONTROLDOCUMENT_H
+
+#include <akndoc.h>
+
+class CEikAppUi;
+
+/**
+* @class CHsContentControlDocument HsContentControlDocument.h
+* @brief A CAknDocument-derived class is required by the S60 application
+* framework. It is responsible for creating the AppUi object.
+*/
+class CHsContentControlDocument : public CAknDocument
+ {
+public:
+ // constructor
+ static CHsContentControlDocument* NewL( CEikApplication& aApp );
+
+private:
+ // constructors
+ CHsContentControlDocument( CEikApplication& aApp );
+ void ConstructL();
+
+public:
+ // from base class CEikDocument
+ CEikAppUi* CreateAppUiL();
+ };
+#endif // HSCONTENTCONTROLDOCUMENT_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/inc/HsContentControlListBox.h Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,206 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Content Control example
+*
+*/
+
+
+#ifndef __HSCONTENTCONTROLLISTBOX_H__
+#define __HSCONTENTCONTROLLISTBOX_H__
+
+// Includes
+#include <coecntrl.h>
+#include <akntreelistobserver.h>
+#include <AknTabObserver.h>
+#include <hscontentcontrol.h>
+
+// Forward declarations
+class MEikCommandObserver;
+class CAknSingleStyleTreeList;
+class CAknsBasicBackgroundControlContext;
+class CAknNavigationDecorator;
+class CAknTabGroup;
+class CAknStylusPopUpMenu;
+class CHsCcApiClient;
+class CHsContentInfoArray;
+
+/**
+ * Container class for HsContentControlListBox
+ *
+ * @class CHsContentControlListBox HsContentControlListBox.h
+ */
+class CHsContentControlListBox : public CCoeControl,
+ public MAknTreeListObserver,
+ public MAknTabObserver,
+ public MEikMenuObserver,
+ public MHsContentControl
+ {
+public:
+ // constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ */
+ static CHsContentControlListBox* NewL(
+ const TRect& aRect,
+ const CCoeControl* aParent,
+ MEikCommandObserver* aCommandObserver );
+
+ /**
+ * Two-phased constructor.
+ */
+ static CHsContentControlListBox* NewLC(
+ const TRect& aRect,
+ const CCoeControl* aParent,
+ MEikCommandObserver* aCommandObserver );
+
+ /**
+ * Destructor
+ */
+ ~CHsContentControlListBox();
+
+public:
+ // from CCoeControl
+
+ /**
+ * @see CCoeControl
+ */
+ TInt CountComponentControls() const;
+
+ /**
+ * @see CCoeControl
+ */
+ CCoeControl* ComponentControl( TInt aIndex ) const;
+
+ /**
+ * @see CCoeControl
+ */
+ TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
+
+ /**
+ * @see CCoeControl
+ */
+ void HandleResourceChange( TInt aType );
+
+ /**
+ * @see CCoeControl
+ */
+ void SizeChanged();
+
+ /**
+ * @see CCoeControl
+ */
+ TTypeUid::Ptr MopSupplyObject( TTypeUid aId );
+
+private:
+ // from MAknTreeListObserver
+
+ /**
+ * @see MAknTreeListObserver
+ */
+ TInt HandleTreeListEvent(
+ CAknTreeList& aList,
+ TAknTreeItemID aItem,
+ TEvent aEvent );
+
+private:
+ // From MEikMenuObserver
+
+ /**
+ * @see MEikMenuObserver
+ */
+ void ProcessCommandL( TInt aCommandId );
+
+ /**
+ * @see MEikMenuObserver
+ */
+ void SetEmphasis( CCoeControl* aMenuControl, TBool aEmphasis );
+
+private:
+ // from MAknTabObserver
+
+ /**
+ * @see MAknTabObserver
+ */
+ void TabChangedL( TInt aIndex );
+
+private:
+ // from MHsContentControl
+
+ /**
+ * @see MHsContentControl
+ */
+ void NotifyWidgetListChanged();
+
+ /**
+ * @see MHsContentControl
+ */
+ void NotifyViewListChanged();
+
+ /**
+ * @see MHsContentControl
+ */
+ void NotifyAppListChanged();
+
+private:
+ // new functions
+
+ void InitializeControlsL();
+ void LayoutControls();
+ void PopulateListL();
+
+ static TInt PopulateList( TAny* aAny );
+
+private:
+ // constructors
+
+ /**
+ * C++ default constructor
+ */
+ CHsContentControlListBox();
+
+ /**
+ * 2nd phase constructor
+ */
+ void ConstructL(
+ const TRect& aRect,
+ const CCoeControl* aParent,
+ MEikCommandObserver* aCommandObserver );
+
+private:
+ // data
+
+ /** Homescreen content control client, owned */
+ CHsCcApiClient* iHsCcApiClient;
+ /** Callback, owned */
+ CAsyncCallBack* iCallback;
+ /** Popup menu, owned */
+ CAknStylusPopUpMenu* iPopup;
+ /** List box, owned */
+ CAknSingleStyleTreeList* iListBox;
+ /** Bg context, owned */
+ CAknsBasicBackgroundControlContext* iBgContext;
+ /** Content info array, owned */
+ CHsContentInfoArray* iArray;
+ /** Navigation decorator, owned */
+ CAknNavigationDecorator* iDecorator;
+ /** Tab group, not owned */
+ CAknTabGroup* iTabGroup;
+ /** Selected tree item */
+ TAknTreeItemID iSelectedItem;
+ /** Active tab index */
+ TInt iTabIndex;
+ };
+
+#endif // __HSCONTENTCONTROLLISTBOX_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,38 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Content Control example
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+// Support for productization and Carbide.Ui customization
+../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/root2/hsps/manifest.dat
+../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/root2/hsps/widgetconfiguration.xml
+../xuikon/00/root2.dat /epoc32/data/Z/resource/homescreen/root2/xuikon/root2.dat
+../xuikon/00/root2.css /epoc32/data/Z/resource/homescreen/root2/xuikon/root2.css
+../xuikon/00/root2.xml /epoc32/data/Z/resource/homescreen/root2/xuikon/root2.xml
+//../xuikon/00/root2.dtd /epoc32/data/Z/resource/homescreen/root2/xuikon/root2.dtd
+
+
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME root2
+OPTION DTD_TYPE widget
+END
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/hsps/00/manifest.dat Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<package version="2.0">
+ <family>qhd_tch</family>
+ <type>application</type>
+
+ <interfaceuid>0x102750F0</interfaceuid>
+ <provideruid>0x101fb657</provideruid>
+ <configurationuid>0x20102020</configurationuid>
+
+ <fullname>HS Configuration</fullname>
+ <shortname>root2</shortname>
+ <version>1.0</version>
+
+ <filexml>widgetconfiguration.xml</filexml>
+ <!-- Locale specific resources -->
+ <localization>
+ <fileresource tag="xuikon">root2.o0000</fileresource>
+ </localization>
+</package>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/hsps/00/widgetconfiguration.xml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<configuration max_child="6" xmlns:xi="http://www.w3.org/2001/xinclude">
+ <control>
+ <plugins>
+ <plugin uid="0x2001f48b" locking_status="none"/>
+ <plugin uid="0x20026f50" locking_status="none"/>
+ <plugin uid="0x20026f50" locking_status="none"/>
+ <plugin uid="0x20026f50" locking_status="none"/>
+ <plugin uid="0x20026f50" locking_status="none"/>
+ <plugin uid="0x20026f50" locking_status="none"/>
+ </plugins>
+ <settings/>
+ </control>
+</configuration>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/sis/hs_configuration_urel.pkg Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,33 @@
+; Installation file for recentcallswidget dll
+;
+; This is an auto-generated PKG file by Carbide.
+; This file uses variables specific to Carbide builds that will not work
+; on command-line builds. If you want to use this generated PKG file from the
+; command-line tools you will need to modify the variables with the appropriate
+; values: $(EPOCROOT), $(PLATFORM), $(TARGET)
+
+;
+; UID is the dll's UID
+;
+#{"HS 6 pages configuration"},(0x20102020),1,0,0
+
+
+;Localised Vendor name
+%{"Nokia"}
+
+;Unique Vendor name
+:"Nokia"
+
+;Supports Series 60 v 5.0
+[0x1028315F], 0, 0, 0, {"S60ProductID"}
+
+
+"../hsps/00/widgetconfiguration.xml" - "c:/private/200159C0/import/102750F0/101FB657/20102020/1.0/widgetconfiguration.xml"
+"../hsps/00/manifest.dat" - "c:/private/200159C0/import/102750F0/101FB657/20102020/1.0/manifest.dat"
+
+"/epoc32/data/z/private/200159c0/install/root2/xuikon/00/root2.o0000" - "c:/private/200159C0/import/102750F0/101FB657/20102020/1.0/00/root2.o0000"
+
+"../xuikon/00/root2.dat" - "c:/private/200159C0/import/plugin_102750F0_101FB657_20102020_1.0.dat"
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/xuikon/00/root2.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,3 @@
+views
+{
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/xuikon/00/root2.dat Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<data>
+ <!-- UIDs below are not used, deprecated functionality.-->
+ <AppUid>2001CB4F</AppUid>
+ <Provideruid>101FB657</Provideruid>
+ <ThemeUid>11001241</ThemeUid>
+ <ThemeFullName>Anything</ThemeFullName>
+ <ThemeShortName>root2</ThemeShortName>
+ <ThemeVersion>1.0</ThemeVersion>
+ <FileXML>root2.xml</FileXML>
+ <FileCSS>root2.css</FileCSS>
+</data>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/xuikon/00/root2.xml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
+ <views/>
+</xmluiml>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,38 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Content Control example
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+// Support for productization and Carbide.Ui customization
+../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/root2/hsps/manifest.dat
+../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/root2/hsps/widgetconfiguration.xml
+../xuikon/00/root2.dat /epoc32/data/Z/resource/homescreen/root2/xuikon/root2.dat
+../xuikon/00/root2.css /epoc32/data/Z/resource/homescreen/root2/xuikon/root2.css
+../xuikon/00/root2.xml /epoc32/data/Z/resource/homescreen/root2/xuikon/root2.xml
+//../xuikon/00/root2.dtd /epoc32/data/Z/resource/homescreen/root2/xuikon/root2.dtd
+
+
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME root2
+OPTION DTD_TYPE widget
+END
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/hsps/00/manifest.dat Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<package version="2.0">
+ <family>vga_tch</family>
+ <type>application</type>
+
+ <interfaceuid>0x102750F0</interfaceuid>
+ <provideruid>0x101fb657</provideruid>
+ <configurationuid>0x20102020</configurationuid>
+
+ <fullname>HS Configuration</fullname>
+ <shortname>root2</shortname>
+ <version>1.0</version>
+
+ <filexml>widgetconfiguration.xml</filexml>
+ <!-- Locale specific resources -->
+ <localization>
+ <fileresource tag="xuikon">root2.o0000</fileresource>
+ </localization>
+</package>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/hsps/00/widgetconfiguration.xml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<configuration max_child="6" xmlns:xi="http://www.w3.org/2001/xinclude">
+ <control>
+ <plugins>
+ <plugin uid="0x2001fdb9" locking_status="none"/>
+ <plugin uid="0x200286ec" locking_status="none"/>
+ <plugin uid="0x200286ec" locking_status="none"/>
+ <plugin uid="0x200286ec" locking_status="none"/>
+ <plugin uid="0x200286ec" locking_status="none"/>
+ <plugin uid="0x200286ec" locking_status="none"/>
+ </plugins>
+ <settings/>
+ </control>
+</configuration>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/sis/hs_configuration_urel.pkg Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,33 @@
+; Installation file for recentcallswidget dll
+;
+; This is an auto-generated PKG file by Carbide.
+; This file uses variables specific to Carbide builds that will not work
+; on command-line builds. If you want to use this generated PKG file from the
+; command-line tools you will need to modify the variables with the appropriate
+; values: $(EPOCROOT), $(PLATFORM), $(TARGET)
+
+;
+; UID is the dll's UID
+;
+#{"HS 6 pages configuration"},(0x20102020),1,0,0
+
+
+;Localised Vendor name
+%{"Nokia"}
+
+;Unique Vendor name
+:"Nokia"
+
+;Supports Series 60 v 5.0
+[0x1028315F], 0, 0, 0, {"S60ProductID"}
+
+
+"../hsps/00/widgetconfiguration.xml" - "c:/private/200159C0/import/102750F0/101FB657/20102020/1.0/widgetconfiguration.xml"
+"../hsps/00/manifest.dat" - "c:/private/200159C0/import/102750F0/101FB657/20102020/1.0/manifest.dat"
+
+"/epoc32/data/z/private/200159c0/install/root2/xuikon/00/root2.o0000" - "c:/private/200159C0/import/102750F0/101FB657/20102020/1.0/00/root2.o0000"
+
+"../xuikon/00/root2.dat" - "c:/private/200159C0/import/plugin_102750F0_101FB657_20102020_1.0.dat"
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/xuikon/00/root2.css Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,3 @@
+views
+{
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/xuikon/00/root2.dat Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<data>
+ <!-- UIDs below are not used, deprecated functionality.-->
+ <AppUid>2001CB4F</AppUid>
+ <Provideruid>101FB657</Provideruid>
+ <ThemeUid>11001241</ThemeUid>
+ <ThemeFullName>Anything</ThemeFullName>
+ <ThemeShortName>root2</ThemeShortName>
+ <ThemeVersion>1.0</ThemeVersion>
+ <FileXML>root2.xml</FileXML>
+ <FileCSS>root2.css</FileCSS>
+</data>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/xuikon/00/root2.xml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
+ <views/>
+</xmluiml>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/sis/hscontentcontrolexample_urel.pkg Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,36 @@
+; hscontentcontrolexample.pkg
+; This is an auto-generated PKG file by Carbide.
+; This file uses variables specific to Carbide builds that will not work
+; on command-line builds. If you want to use this generated PKG file from the
+; command-line tools you will need to modify the variables with the appropriate
+; values: $(EPOCROOT), $(PLATFORM), $(TARGET)
+; Also, the resource file entries should be changed to match the language
+; used in the build. For example, if building for LANGUAGE_01, change the file
+; extensions .rsc to .r01.
+;
+;Language - standard language definitions
+&EN
+
+; standard SIS file header
+#{"HS ContentControl"},(0xE88D7143),1,0,0
+
+;Localised Vendor name
+%{"Vendor-EN"}
+
+;Unique Vendor name
+:"Vendor"
+
+;Supports Series 60 v 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+;Files to install
+;You should change the source paths to match that of your environment
+;<source> <destination>
+"\epoc32\release\armv5\urel\hscontentcontrolexample.exe" -"!:\sys\bin\hscontentcontrolexample.exe"
+"\epoc32\data\z\resource\apps\hscontentcontrolexample.r01" -"!:\resource\apps\hscontentcontrolexample.r01"
+"\epoc32\data\z\private\10003a3f\apps\hscontentcontrolexample_reg.r01" -"!:\private\10003a3f\import\apps\hscontentcontrolexample_reg.r01"
+"\epoc32\data\z\resource\apps\hscontentcontrolexample_aif.mif" -"!:\resource\apps\hscontentcontrolexample_aif.mif"
+"\epoc32\data\z\resource\apps\hscontentcontrolexample.mbm" -"!:\resource\apps\hscontentcontrolexample.mbm"
+; Add any installation notes if applicable
+;"hscontentcontrolexample.txt" -"!:\private\0xE88D7143\hscontentcontrolexample.txt"
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/src/HsContentControlAppUi.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,125 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Content Control example
+*
+*/
+
+
+// [[[ begin generated region: do not modify [Generated System Includes]
+#include <eikmenub.h>
+#include <hscontentcontrolexample.rsg>
+// ]]] end generated region [Generated System Includes]
+
+// [[[ begin generated region: do not modify [Generated User Includes]
+#include "HsContentControlAppUi.h"
+#include "HsContentControlListBox.h"
+// ]]] end generated region [Generated User Includes]
+
+// [[[ begin generated region: do not modify [Generated Constants]
+// ]]] end generated region [Generated Constants]
+
+/**
+ * Construct the CHsContentControlAppUi instance
+ */
+CHsContentControlAppUi::CHsContentControlAppUi()
+ {
+ // [[[ begin generated region: do not modify [Generated Contents]
+ iHsContentControlListBox = NULL;
+ // ]]] end generated region [Generated Contents]
+
+ }
+
+/**
+ * The appui's destructor removes the container from the control
+ * stack and destroys it.
+ */
+CHsContentControlAppUi::~CHsContentControlAppUi()
+ {
+ // [[[ begin generated region: do not modify [Generated Contents]
+ if ( iHsContentControlListBox != NULL )
+ {
+ RemoveFromStack( iHsContentControlListBox );
+ delete iHsContentControlListBox;
+ iHsContentControlListBox = NULL;
+ }
+ // ]]] end generated region [Generated Contents]
+
+ }
+
+/**
+ * @brief Completes the second phase of Symbian object construction.
+ * Put initialization code that could leave here.
+ */
+void CHsContentControlAppUi::ConstructL()
+ {
+ // [[[ begin generated region: do not modify [Generated Contents]
+
+ BaseConstructL( EAknEnableSkin | EAknEnableMSK |
+ EAknTouchCompatible | EAknSingleClickCompatible );
+
+ InitializeContainersL();
+ // ]]] end generated region [Generated Contents]
+
+ }
+
+// [[[ begin generated function: do not modify
+void CHsContentControlAppUi::InitializeContainersL()
+ {
+ iHsContentControlListBox = CHsContentControlListBox::NewL( ClientRect(), NULL, this );
+ iHsContentControlListBox->SetMopParent( this );
+ AddToStackL( iHsContentControlListBox );
+
+ iHsContentControlListBox->DrawNow();
+ }
+// ]]] end generated function
+
+/**
+ * Handle a command for this appui (override)
+ * @param aCommand command id to be handled
+ */
+void CHsContentControlAppUi::HandleCommandL( TInt aCommand )
+ {
+ // [[[ begin generated region: do not modify [Generated Code]
+ TBool commandHandled = EFalse;
+ switch ( aCommand )
+ { // code to dispatch to the AppUi's menu and CBA commands is generated here
+ default:
+ break;
+ }
+
+
+ if ( !commandHandled )
+ {
+ if ( aCommand == EAknSoftkeyExit ||
+ aCommand == EAknSoftkeyBack ||
+ aCommand == EEikCmdExit )
+ {
+ Exit();
+ }
+ }
+ // ]]] end generated region [Generated Code]
+
+ }
+
+/**
+ * Override of the HandleResourceChangeL virtual function
+ */
+void CHsContentControlAppUi::HandleResourceChangeL( TInt aType )
+ {
+ CAknAppUi::HandleResourceChangeL( aType );
+ // [[[ begin generated region: do not modify [Generated Code]
+ // ]]] end generated region [Generated Code]
+
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/src/HsContentControlApplication.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,88 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Content Control example
+*
+*/
+
+
+// [[[ begin generated region: do not modify [Generated System Includes]
+// ]]] end generated region [Generated System Includes]
+
+// [[[ begin generated region: do not modify [Generated Includes]
+#include "HsContentControlApplication.h"
+#include "HsContentControlDocument.h"
+#ifdef EKA2
+#include <eikstart.h>
+#endif
+// ]]] end generated region [Generated Includes]
+
+/**
+ * @brief Returns the application's UID (override from CApaApplication::AppDllUid())
+ * @return UID for this application (KUidHsContentControlApplication)
+ */
+TUid CHsContentControlApplication::AppDllUid() const
+ {
+ return KUidHsContentControlApplication;
+ }
+
+/**
+ * @brief Creates the application's document (override from CApaApplication::CreateDocumentL())
+ * @return Pointer to the created document object (CHsContentControlDocument)
+ */
+CApaDocument* CHsContentControlApplication::CreateDocumentL()
+ {
+ return CHsContentControlDocument::NewL( *this );
+ }
+
+#ifdef EKA2
+
+/**
+ * @brief Called by the application framework to construct the application object
+ * @return The application (CHsContentControlApplication)
+ */
+LOCAL_C CApaApplication* NewApplication()
+ {
+ return new CHsContentControlApplication;
+ }
+
+/**
+* @brief This standard export is the entry point for all Series 60 applications
+* @return error code
+ */
+GLDEF_C TInt E32Main()
+ {
+ return EikStart::RunApplication( NewApplication );
+ }
+
+#else // Series 60 2.x main DLL program code
+
+/**
+* @brief This standard export constructs the application object.
+* @return The application (CHsContentControlApplication)
+*/
+EXPORT_C CApaApplication* NewApplication()
+ {
+ return new CHsContentControlApplication;
+ }
+
+/**
+* @brief This standard export is the entry point for all Series 60 applications
+* @return error code
+*/
+GLDEF_C TInt E32Dll(TDllReason /*reason*/)
+ {
+ return KErrNone;
+ }
+
+#endif // EKA2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/src/HsContentControlDocument.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,67 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Content Control example
+*
+*/
+
+
+// [[[ begin generated region: do not modify [Generated User Includes]
+#include "HsContentControlDocument.h"
+#include "HsContentControlAppUi.h"
+// ]]] end generated region [Generated User Includes]
+
+/**
+ * @brief Constructs the document class for the application.
+ * @param anApplication the application instance
+ */
+CHsContentControlDocument::CHsContentControlDocument( CEikApplication& anApplication )
+ : CAknDocument( anApplication )
+ {
+ }
+
+/**
+ * @brief Completes the second phase of Symbian object construction.
+ * Put initialization code that could leave here.
+ */
+void CHsContentControlDocument::ConstructL()
+ {
+ }
+
+/**
+ * Symbian OS two-phase constructor.
+ *
+ * Creates an instance of CHsContentControlDocument, constructs it, and
+ * returns it.
+ *
+ * @param aApp the application instance
+ * @return the new CHsContentControlDocument
+ */
+CHsContentControlDocument* CHsContentControlDocument::NewL( CEikApplication& aApp )
+ {
+ CHsContentControlDocument* self = new ( ELeave ) CHsContentControlDocument( aApp );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+/**
+ * @brief Creates the application UI object for this document.
+ * @return the new instance
+ */
+CEikAppUi* CHsContentControlDocument::CreateAppUiL()
+ {
+ return new ( ELeave ) CHsContentControlAppUi;
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/src/HsContentControlListBox.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,598 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Content Control example
+*
+*/
+
+
+// Includes
+#include <aknlists.h>
+#include <akncontext.h>
+#include <akntitle.h>
+#include <aknnavi.h>
+#include <aknnavide.h>
+#include <akntabgrp.h>
+#include <aknstyluspopupmenu.h>
+
+#include <aknsinglestyletreelist.h>
+#include <aknsbasicbackgroundcontrolcontext.h>
+
+#include <hsccapiclient.h>
+#include <hscontentinfo.h>
+#include <hscontentinfoarray.h>
+
+#include "HsContentControlListBox.h"
+
+// Constants
+const TInt KFlags( CAknSingleStyleTreeList::EPersistent |
+ CAknSingleStyleTreeList::EExpanded );
+
+_LIT( KActivate, "Activate" );
+
+enum TTabs
+ {
+ ETabFirst = 0,
+ ETabActiveConfiguration = ETabFirst,
+ ETabConfigurations,
+ ETabViews,
+ ETabWidgets,
+ ETabLast = ETabWidgets
+ };
+
+// ============================ LOCAL FUNCTIONS ================================
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::CHsContentControlListBox
+//
+// -----------------------------------------------------------------------------
+//
+CHsContentControlListBox::CHsContentControlListBox()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::~CHsContentControlListBox
+//
+// -----------------------------------------------------------------------------
+//
+CHsContentControlListBox::~CHsContentControlListBox()
+ {
+ delete iHsCcApiClient;
+ delete iCallback;
+ delete iPopup;
+ delete iListBox;
+ delete iBgContext;
+ delete iArray;
+ delete iDecorator;
+ }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::NewL
+//
+// -----------------------------------------------------------------------------
+//
+CHsContentControlListBox* CHsContentControlListBox::NewL( const TRect& aRect,
+ const CCoeControl* aParent, MEikCommandObserver* aCommandObserver )
+ {
+ CHsContentControlListBox* self =
+ CHsContentControlListBox::NewLC( aRect, aParent, aCommandObserver );
+ CleanupStack::Pop( self );
+
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::NewLC
+//
+// -----------------------------------------------------------------------------
+//
+CHsContentControlListBox* CHsContentControlListBox::NewLC( const TRect& aRect,
+ const CCoeControl* aParent, MEikCommandObserver* aCommandObserver )
+ {
+ CHsContentControlListBox* self = new ( ELeave ) CHsContentControlListBox();
+ CleanupStack::PushL( self );
+
+ self->ConstructL( aRect, aParent, aCommandObserver );
+
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::ConstructL
+//
+// -----------------------------------------------------------------------------
+//
+void CHsContentControlListBox::ConstructL( const TRect& aRect,
+ const CCoeControl* aParent, MEikCommandObserver* /*aCommandObserver*/ )
+ {
+ iHsCcApiClient = CHsCcApiClient::NewL( this );
+
+ TCallBack cb( PopulateList, this );
+
+ iCallback = new ( ELeave ) CAsyncCallBack( cb, CActive::EPriorityStandard );
+
+ if ( !aParent )
+ {
+ CreateWindowL();
+ }
+ else
+ {
+ SetContainerWindowL( *aParent );
+ }
+
+ InitializeControlsL();
+
+ SetRect( aRect );
+
+ ActivateL();
+
+ PopulateListL();
+ }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::CountComponentControls
+//
+// -----------------------------------------------------------------------------
+//
+TInt CHsContentControlListBox::CountComponentControls() const
+ {
+ return 1;
+ }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::CHsContentControlListBox
+//
+// -----------------------------------------------------------------------------
+//
+CCoeControl* CHsContentControlListBox::ComponentControl( TInt aIndex ) const
+ {
+ if ( aIndex == 0 )
+ {
+ return iListBox;
+ }
+
+ return NULL;
+ }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::OfferKeyEventL
+//
+// -----------------------------------------------------------------------------
+//
+TKeyResponse CHsContentControlListBox::OfferKeyEventL(
+ const TKeyEvent& aKeyEvent, TEventCode aType )
+ {
+ if ( iListBox->OfferKeyEventL( aKeyEvent, aType ) == EKeyWasConsumed )
+ {
+ return EKeyWasConsumed;
+ }
+
+ return CCoeControl::OfferKeyEventL( aKeyEvent, aType );
+ }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::HandleResourceChange
+//
+// -----------------------------------------------------------------------------
+//
+void CHsContentControlListBox::HandleResourceChange( TInt aType )
+ {
+ CCoeControl::HandleResourceChange( aType );
+
+ SetRect( iAvkonAppUi->ClientRect() );
+ }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::SizeChanged
+//
+// -----------------------------------------------------------------------------
+//
+void CHsContentControlListBox::SizeChanged()
+ {
+ CCoeControl::SizeChanged();
+
+ LayoutControls();
+ }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::MopSupplyObject
+//
+// -----------------------------------------------------------------------------
+//
+TTypeUid::Ptr CHsContentControlListBox::MopSupplyObject( TTypeUid aId )
+ {
+ if ( aId.iUid == MAknsControlContext::ETypeId && iBgContext )
+ {
+ return MAknsControlContext::SupplyMopObject( aId, iBgContext );
+ }
+
+ return CCoeControl::MopSupplyObject( aId );
+ }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::HandleTreeListEvent
+//
+// -----------------------------------------------------------------------------
+//
+TInt CHsContentControlListBox::HandleTreeListEvent(
+ CAknTreeList& /*aList*/,
+ TAknTreeItemID aItem,
+ TEvent aEvent )
+ {
+ if ( aEvent == EItemSelected )
+ {
+ if ( !iListBox->IsLeaf( aItem ) && !iListBox->IsMarked( aItem ) )
+ {
+ return KErrNone;
+ }
+
+ const TWsEvent& event( iCoeEnv->LastEvent() );
+
+ if ( event.Type() == EEventPointer )
+ {
+ TInt x, y;
+
+ TPointerEvent& pointer( *event.Pointer() );
+
+ x = pointer.iParentPosition.iX;
+ y = pointer.iParentPosition.iY;
+
+ delete iPopup;
+ iPopup = NULL;
+
+ iPopup = CAknStylusPopUpMenu::NewL( this, TPoint( x, y ) );
+
+ if ( iTabIndex == ETabConfigurations )
+ {
+ iSelectedItem = aItem;
+
+ iPopup->AddMenuItemL( KActivate, 1 );
+
+ iPopup->SetPosition( TPoint( x, y ),
+ CAknStylusPopUpMenu::EPositionTypeRightBottom );
+
+ iPopup->ShowMenu();
+ }
+ }
+ }
+
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::ProcessCommandL
+//
+// -----------------------------------------------------------------------------
+//
+void CHsContentControlListBox::ProcessCommandL( TInt aCommandId )
+ {
+ TAknTreeItemID item( iSelectedItem );
+
+ iSelectedItem = KAknTreeIIDNone;
+
+ if ( item == KAknTreeIIDNone || aCommandId == KErrCancel )
+ {
+ return;
+ }
+
+ // Resolve selected item
+ if ( iTabIndex == ETabConfigurations )
+ {
+ TAknTreeItemID id = iListBox->Child( KAknTreeIIDRoot, 0 );
+
+ TInt count( iListBox->ChildCount( id ) );
+
+ for ( TInt i = 0; i < count; i++ )
+ {
+ if ( iListBox->Child( id, i ) == item )
+ {
+ CHsContentInfo* info( iArray->Array()[i] );
+
+ TRAP_IGNORE( iHsCcApiClient->ActivateAppL( *info ) );
+
+ break;
+ }
+ }
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::SetEmphasis
+//
+// -----------------------------------------------------------------------------
+//
+void CHsContentControlListBox::SetEmphasis( CCoeControl* /*aMenuControl*/,
+ TBool /*aEmphasis*/ )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::TabChangedL
+//
+// -----------------------------------------------------------------------------
+//
+void CHsContentControlListBox::TabChangedL( TInt aIndex )
+ {
+ if ( aIndex != iTabIndex )
+ {
+ iTabIndex = aIndex;
+
+ iDecorator->SetScrollButtonDimmed(
+ CAknNavigationDecorator::ERightButton, EFalse );
+
+ iDecorator->SetScrollButtonDimmed(
+ CAknNavigationDecorator::ELeftButton, EFalse );
+
+ if ( iTabIndex == ETabFirst )
+ {
+ iDecorator->SetScrollButtonDimmed(
+ CAknNavigationDecorator::ELeftButton, ETrue );
+ }
+ else if ( iTabIndex == ETabLast )
+ {
+ iDecorator->SetScrollButtonDimmed(
+ CAknNavigationDecorator::ERightButton, ETrue );
+ }
+
+ iCallback->Cancel();
+ iCallback->CallBack();
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::NotifyWidgetListChanged
+//
+// -----------------------------------------------------------------------------
+//
+void CHsContentControlListBox::NotifyWidgetListChanged()
+ {
+ iCallback->Cancel();
+ iCallback->CallBack();
+ }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::NotifyViewListChanged
+//
+// -----------------------------------------------------------------------------
+//
+void CHsContentControlListBox::NotifyViewListChanged()
+ {
+ iCallback->Cancel();
+ iCallback->CallBack();
+ }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::NotifyAppListChanged
+//
+// -----------------------------------------------------------------------------
+//
+void CHsContentControlListBox::NotifyAppListChanged()
+ {
+ iCallback->Cancel();
+ iCallback->CallBack();
+ }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::InitializeControlsL
+//
+// -----------------------------------------------------------------------------
+//
+void CHsContentControlListBox::InitializeControlsL()
+ {
+ iListBox = CAknSingleStyleTreeList::NewL( *this );
+ iListBox->SetContainerWindowL( *this );
+ iListBox->AddObserverL( this );
+ iListBox->SetFocus( ETrue );
+
+ iBgContext = CAknsBasicBackgroundControlContext::NewL(
+ KAknsIIDQsnBgScreen, TRect(), ETrue );
+
+ CEikStatusPane* sp( iAvkonAppUi->StatusPane() );
+
+ TUid naviPaneUid( TUid::Uid( EEikStatusPaneUidNavi ) );
+
+ CAknNavigationControlContainer* naviPane =
+ static_cast< CAknNavigationControlContainer* >( sp->ControlL( naviPaneUid ) );
+
+ iDecorator = naviPane->ResourceDecorator();
+
+ iDecorator->MakeScrollButtonVisible( ETrue );
+
+ iDecorator->SetScrollButtonDimmed(
+ CAknNavigationDecorator::ELeftButton, ETrue );
+
+ iDecorator->SetScrollButtonDimmed(
+ CAknNavigationDecorator::ERightButton, EFalse );
+
+ iTabGroup = static_cast< CAknTabGroup* > ( iDecorator->DecoratedControl() );
+ iTabGroup->SetObserver( this );
+ }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::LayoutControls
+//
+// -----------------------------------------------------------------------------
+//
+void CHsContentControlListBox::LayoutControls()
+ {
+ iListBox->SetRect( Rect() );
+
+ TRect rect;
+
+ AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen, rect );
+
+ iBgContext->SetRect( rect );
+ }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::PopulateListL
+//
+// -----------------------------------------------------------------------------
+//
+void CHsContentControlListBox::PopulateListL()
+ {
+ if ( !iListBox->IsEmpty( KAknTreeIIDRoot ) )
+ {
+ // Remove all
+ iListBox->RemoveItem( KAknTreeIIDRoot, EFalse );
+ }
+
+ delete iArray;
+ iArray = NULL;
+
+ if ( iTabIndex == ETabActiveConfiguration )
+ {
+ CHsContentInfo* activeApp = CHsContentInfo::NewL();
+ CleanupStack::PushL( activeApp );
+
+ // Get active homescreen configuration
+ iHsCcApiClient->ActiveAppL( *activeApp );
+
+ _LIT( KActiveConfiguration, "Active configuration" );
+
+ TAknTreeItemID root = iListBox->AddNodeL(
+ KAknTreeIIDRoot, KActiveConfiguration, KFlags, EFalse );
+
+ CHsContentInfoArray* viewList = CHsContentInfoArray::NewL();
+ CleanupStack::PushL( viewList );
+
+ // Get view list from the active configuration
+ iHsCcApiClient->ViewListL( *activeApp, *viewList );
+
+ _LIT( KView, "View " );
+
+ for ( TInt j = 0; j < viewList->Array().Count(); j++ )
+ {
+ TBuf< 32 > viewname;
+ viewname = KView();
+ viewname.AppendNum( j + 1 );
+
+ CHsContentInfo* view( viewList->Array()[j] );
+
+ TAknTreeItemID parent = iListBox->AddNodeL(
+ root, viewname, KFlags, EFalse );
+
+ CHsContentInfoArray* widgetList = CHsContentInfoArray::NewL();
+ CleanupStack::PushL( widgetList );
+
+ // Get widget list from the view
+ iHsCcApiClient->WidgetListL( *view, *widgetList );
+
+ for ( TInt k = 0; k < widgetList->Array().Count(); k++ )
+ {
+ CHsContentInfo* widget( widgetList->Array()[k] );
+
+ iListBox->AddLeafL( parent, widget->Name(), KFlags, EFalse );
+ }
+
+ CleanupStack::PopAndDestroy( widgetList );
+ }
+
+ CleanupStack::PopAndDestroy( viewList );
+
+ CleanupStack::PopAndDestroy( activeApp );
+ }
+ else if ( iTabIndex == ETabConfigurations )
+ {
+ _LIT( KConfigurations, "Configurations" );
+
+ TAknTreeItemID root = iListBox->AddNodeL(
+ KAknTreeIIDRoot, KConfigurations, KFlags, EFalse );
+
+ iArray = CHsContentInfoArray::NewL();
+
+ // Get all homescreen configurations
+ iHsCcApiClient->AppListL( *iArray );
+
+ _LIT( KConfiguration, "Configuration " );
+
+ for ( TInt i = 0; i < iArray->Array().Count(); i++ )
+ {
+ TBuf< 32 > confname;
+ confname = KConfiguration();
+ confname.AppendNum( i + 1 );
+
+ CHsContentInfo* app( iArray->Array()[i] );
+
+ iListBox->AddLeafL( root, confname, KFlags, EFalse );
+ }
+ }
+
+ else if ( iTabIndex == ETabViews )
+ {
+ _LIT( KViews, "Views" );
+
+ TAknTreeItemID root = iListBox->AddNodeL(
+ KAknTreeIIDRoot, KViews, KFlags, EFalse );
+
+ iArray = CHsContentInfoArray::NewL();
+
+ // Get all homescreen views
+ iHsCcApiClient->ViewListL( *iArray );
+
+ _LIT( KView, "View " );
+
+ for ( TInt i = 0; i < iArray->Array().Count(); i++ )
+ {
+ TBuf< 32 > viewname;
+ viewname = KView();
+ viewname.AppendNum( i + 1 );
+
+ CHsContentInfo* view( iArray->Array()[i] );
+
+ iListBox->AddLeafL( root, viewname, KFlags, EFalse );
+ }
+ }
+
+ else if ( iTabIndex == ETabWidgets )
+ {
+ _LIT( KWidgets, "Widgets" );
+
+ TAknTreeItemID root = iListBox->AddNodeL(
+ KAknTreeIIDRoot, KWidgets, KFlags, EFalse );
+
+ iArray = CHsContentInfoArray::NewL();
+
+ // Get all homescreen widgets
+ iHsCcApiClient->WidgetListL( *iArray );
+
+ for ( TInt i = 0; i < iArray->Array().Count(); i++ )
+ {
+ CHsContentInfo* widget( iArray->Array()[i] );
+
+ iListBox->AddLeafL( root, widget->Name(), KFlags, EFalse );
+ }
+ }
+
+ DrawNow();
+ }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::PopulateList
+//
+// -----------------------------------------------------------------------------
+//
+/*static*/ TInt CHsContentControlListBox::PopulateList( TAny* aAny )
+ {
+ CHsContentControlListBox* self =
+ static_cast< CHsContentControlListBox* >( aAny );
+
+ TRAP_IGNORE( self->PopulateListL() );
+
+ return KErrNone;
+ }
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/data/MCSExample.rls Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,45 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+// LOCALISATION STRINGS
+
+// Caption string for app.
+#define qtn_caption_string "MCSExample"
+
+// First item in "Options" menu pane
+#define qtn_command1 "Message"
+
+// Second item in "Options" menu pane
+#define qtn_command2 "List all items"
+
+#define qtn_help "Help"
+
+#define qtn_about "About"
+
+// Third item in "Options" menu pane
+#define qtn_exit "Exit"
+
+// When user requests ECommand1 event, text below is shown.
+#define qtn_command1_text "MCS example application."
+
+#define qtn_loc_resource_file_1 "\\resource\\apps\\MCSExample_0xEB753B18"
+
+#define qtn_about_dialog_title "About"
+
+#define qtn_about_dialog_text "MCSExample Version 1.0.0\n\nAuthor: Jaakko Haukipuro\n\nSupport: \n\n(c) "
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/data/MCSExample.rss Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,310 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+// RESOURCE IDENTIFIER
+NAME MCSE // 4 letter ID
+
+
+// INCLUDES
+#include <eikon.rh>
+#include <avkon.rsg>
+#include <avkon.rh>
+#include <appinfo.rh>
+#include "MCSExample.hrh"
+#include "MCSExample.rls"
+
+// RESOURCE DEFINITIONS
+// -----------------------------------------------------------------------------
+//
+// Define the resource file signature
+// This resource should be empty.
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE RSS_SIGNATURE
+ {
+ }
+
+// -----------------------------------------------------------------------------
+//
+// Default Document Name
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE TBUF r_default_document_name
+ {
+ buf="MCSE";
+ }
+
+// -----------------------------------------------------------------------------
+//
+// Define default menu and CBA key.
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE EIK_APP_INFO
+ {
+ menubar = r_menubar;
+ cba = R_AVKON_SOFTKEYS_OPTIONS_EXIT;
+ }
+
+
+// -----------------------------------------------------------------------------
+//
+// r_menubar
+// Main menubar
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE MENU_BAR r_menubar
+ {
+ titles =
+ {
+ MENU_TITLE { menu_pane = r_menu; }
+ };
+ }
+
+
+// -----------------------------------------------------------------------------
+//
+// r_menu
+// Menu for "Options"
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE MENU_PANE r_menu
+ {
+ items =
+ {
+ // added the new Options menu command here
+ MENU_ITEM
+ {
+ command = ECommand1;
+ txt = qtn_command1;
+ },
+ MENU_ITEM
+ {
+ command = ECommand2;
+ txt = qtn_command2;
+ },
+ MENU_ITEM
+ {
+ command = EHelp;
+ txt = qtn_help;
+ },
+ MENU_ITEM
+ {
+ command = EAbout;
+ txt = qtn_about;
+ },
+ MENU_ITEM
+ {
+ command = EAknSoftkeyExit;
+ txt = qtn_exit;
+ }
+ };
+ }
+
+// -----------------------------------------------------------------------------
+//
+// About dialog resource.
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE DIALOG r_about_query_dialog
+ {
+ flags = EEikDialogFlagNoBorder | EEikDialogFlagNoShadow;
+ buttons = R_AVKON_SOFTKEYS_OK_EMPTY;
+ items=
+ {
+ DLG_LINE
+ {
+ type = EAknCtPopupHeadingPane;
+ id = EAknMessageQueryHeaderId;
+ itemflags = EEikDlgItemNonFocusing;
+ control = AVKON_HEADING
+ {
+ };
+ },
+ DLG_LINE
+ {
+ type = EAknCtMessageQuery;
+ id = EAknMessageQueryContentId;
+ control = AVKON_MESSAGE_QUERY
+ {
+ };
+ }
+ };
+ }
+
+RESOURCE DIALOG r_icon_query_dialog
+ {
+ flags = EGeneralQueryFlags;
+ buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
+ form = r_icon_form;
+ }
+
+RESOURCE FORM r_icon_form
+ {
+ flags = EEikFormUseDoubleSpacedFormat|EEikFormEditModeOnly;
+ items =
+ {
+ DLG_LINE
+ {
+ type = EEikCtEdwin;
+ prompt = "Major skin ID";
+ id = EMyFirstLine;
+ control = EDWIN
+ {
+ flags = EEikEdwinNoHorizScrolling | EEikEdwinResizable;
+ width = 30;
+ maxlength = 30;
+ // added to limit expanding in forms.
+ // If you want full screen use 6 here
+ max_view_height_in_lines = 1;
+ // if you have the line above, you must have this.
+ // It's calculable from LAF
+ base_line_delta = 21;
+ };
+ },
+ DLG_LINE
+ {
+ type = EEikCtEdwin;
+ prompt = "Minor skin ID";
+ id = EMySecondLine;
+ control = EDWIN
+ {
+ flags = EEikEdwinNoHorizScrolling | EEikEdwinResizable;
+ width = 30;
+ maxlength = 30;
+ // added to limit expanding in forms.
+ // If you want full screen use 6 here
+ max_view_height_in_lines = 1;
+ // if you have the line above, you must have this.
+ // It's calculable from LAF
+ base_line_delta = 21;
+ };
+ },
+ DLG_LINE
+ {
+ type = EEikCtEdwin;
+ prompt = "MIF/MBM file name";
+ id = EMyThirdLine;
+ control = EDWIN
+ {
+ flags = EEikEdwinNoHorizScrolling | EEikEdwinResizable;
+ width = 30;
+ maxlength = 30;
+ // added to limit expanding in forms.
+ // If you want full screen use 6 here
+ max_view_height_in_lines = 1;
+ // if you have the line above, you must have this.
+ // It's calculable from LAF
+ base_line_delta = 21;
+ };
+ },
+ DLG_LINE
+ {
+ type = EEikCtEdwin;
+ prompt = "MIF/MBM bitmap ID";
+ id = EMyFourthLine;
+ control = EDWIN
+ {
+ flags = EEikEdwinNoHorizScrolling | EEikEdwinResizable;
+ width = 30;
+ maxlength = 30;
+ // added to limit expanding in forms.
+ // If you want full screen use 6 here
+ max_view_height_in_lines = 1;
+ // if you have the line above, you must have this.
+ // It's calculable from LAF
+ base_line_delta = 21;
+ };
+ },
+ DLG_LINE
+ {
+ type = EEikCtEdwin;
+ prompt = "MIF/MBM mask ID";
+ id = EMyFifthLine;
+ control = EDWIN
+ {
+ flags = EEikEdwinNoHorizScrolling | EEikEdwinResizable;
+ width = 30;
+ maxlength = 30;
+ // added to limit expanding in forms.
+ // If you want full screen use 6 here
+ max_view_height_in_lines = 1;
+ // if you have the line above, you must have this.
+ // It's calculable from LAF
+ base_line_delta = 21;
+ };
+ },
+ DLG_LINE
+ {
+ type = EEikCtEdwin;
+ prompt = "Presenceicon";
+ id = EMySixthLine;
+ control = EDWIN
+ {
+ flags = EEikEdwinNoHorizScrolling | EEikEdwinResizable;
+ width = 30;
+ maxlength = 30;
+ // added to limit expanding in forms.
+ // If you want full screen use 6 here
+ max_view_height_in_lines = 1;
+ // if you have the line above, you must have this.
+ // It's calculable from LAF
+ base_line_delta = 21;
+ };
+ }
+ };
+ }
+
+
+
+// -----------------------------------------------------------------------------
+//
+// Resources for messages.
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE TBUF32 r_caption_string { buf=qtn_caption_string; }
+RESOURCE TBUF32 r_about_dialog_title { buf=qtn_about_dialog_title; }
+RESOURCE TBUF r_about_dialog_text { buf=qtn_about_dialog_text; }
+RESOURCE TBUF r_command1_text { buf=qtn_command1_text; }
+
+
+// ----------------------------------------------------------------------------
+//
+// r_localisable_app_info
+//
+// ----------------------------------------------------------------------------
+//
+RESOURCE LOCALISABLE_APP_INFO r_localisable_app_info
+ {
+ short_caption = qtn_caption_string;
+ caption_and_icon =
+ CAPTION_AND_ICON_INFO
+ {
+ caption = qtn_caption_string;
+
+ number_of_icons = 1;
+ icon_file = "\\resource\\apps\\MCSExample_0xEB753B18.mif";
+ };
+ }
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/data/MCSExample_reg.rss Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,35 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include "MCSExample.hrh"
+#include "MCSExample.rls"
+#include <appinfo.rh>
+#include <MCSExample_0xEB753B18.rsg>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 _UID3
+
+RESOURCE APP_REGISTRATION_INFO
+ {
+ app_file="MCSExample_0xEB753B18";
+ localisable_resource_file = qtn_loc_resource_file_1;
+ localisable_resource_id = R_LOCALISABLE_APP_INFO;
+
+ embeddability=KAppNotEmbeddable;
+ newfile=KAppDoesNotSupportNewFile;
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/gfx/qgn_menu_MCSExample.svg Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%" viewBox="0 0 88 87.999">
+<g>
+<g>
+<g>
+<g>
+<rect fill="none" width="88" height="87.999"/>
+</g>
+</g>
+<g>
+<linearGradient id="XMLID_7_" gradientUnits="userSpaceOnUse" x1="12.3042" y1="18.3799" x2="63.4113" y2="79.287">
+<stop offset="0" style="stop-color:#B3DDFF"/>
+<stop offset="0.8146" style="stop-color:#084296"/>
+<stop offset="1" style="stop-color:#084296"/>
+</linearGradient>
+<path fill="url(#XMLID_7_)" d="M32.135,7.415L14.363,17.432v23.167c0,0,8.926,15.351,10.468,18.001 c-2.386,1.704-15.44,11.03-15.44,11.03l21.613,12.652c0,0,12.907-9.85,14.71-11.226c1.979,1.109,16.231,9.101,16.231,9.101 l16.664-15.132c0,0-14.066-6.929-16.888-8.318c1.467-3.01,10.531-21.604,10.531-21.604l-22.298-9.59 c0,0-1.486,3.173-2.093,4.467c-2.046-0.88-6.573-2.826-6.573-2.826s-3.713,2.463-5.696,3.778 c-0.327-0.744-0.542-1.233-0.657-1.495c0.007-0.824,0.213-23.72,0.213-23.72L32.135,7.415z"/>
+<linearGradient id="XMLID_8_" gradientUnits="userSpaceOnUse" x1="40.8276" y1="52.1914" x2="16.1997" y2="21.1353">
+<stop offset="0" style="stop-color:#5AA7E0"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_8_)" points="59.051,57.621 69.536,36.111 50.944,28.115 48.852,32.581 41.493,29.418 34.719,33.911 32.932,29.849 33.117,9.157 16.363,18.601 16.363,40.06 27.476,59.169 13.064,69.463 30.856,79.879 45.546,68.669 61.667,77.708 75.089,65.521 "/>
+<linearGradient id="XMLID_9_" gradientUnits="userSpaceOnUse" x1="60.585" y1="31.876" x2="53.8582" y2="45.1125">
+<stop offset="0" style="stop-color:#5AA7E0"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_9_)" points="41.26,48.783 50.944,28.115 69.536,36.111 59.051,57.621 "/>
+<polygon fill="#0046B7" points="16.363,40.06 27.476,59.169 41.26,48.783 32.932,29.849 "/>
+<polygon fill="#3366CC" points="16.363,40.06 16.363,18.601 33.117,9.157 32.932,29.849 "/>
+<polygon fill="#CFECFF" points="26.696,39.23 41.493,29.418 59.523,37.168 45.546,47.954 "/>
+<path fill="#5AA7E0" d="M41.954,55.286"/>
+<polygon fill="#3366CC" points="26.696,39.23 27.476,59.169 45.546,68.669 45.546,47.954 "/>
+<polygon fill="#5AA7E0" points="13.064,69.463 27.476,59.169 45.546,68.669 30.856,79.879 "/>
+<linearGradient id="XMLID_10_" gradientUnits="userSpaceOnUse" x1="29.2085" y1="63.6836" x2="48.7102" y2="56.1976">
+<stop offset="0" style="stop-color:#5AA7E0"/>
+<stop offset="0.0056" style="stop-color:#5AA7E0"/>
+<stop offset="0.85" style="stop-color:#3366CC"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_10_)" points="43.423,46.971 27.476,59.169 45.546,68.669 45.546,47.954 "/>
+<polygon fill="#0046B7" points="45.546,47.954 45.546,68.669 59.051,57.621 59.523,37.168 "/>
+<linearGradient id="XMLID_11_" gradientUnits="userSpaceOnUse" x1="45.3936" y1="59.5186" x2="59.0508" y2="59.5186">
+<stop offset="0" style="stop-color:#0046B7"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_11_)" points="45.394,50.368 45.546,68.669 59.051,57.621 "/>
+<linearGradient id="XMLID_12_" gradientUnits="userSpaceOnUse" x1="60.8945" y1="68.6807" x2="57.2953" y2="58.792">
+<stop offset="0" style="stop-color:#5AA7E0"/>
+<stop offset="0.4101" style="stop-color:#5AA7E0"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_12_)" points="61.667,77.708 45.546,68.669 59.051,57.621 75.089,65.521 "/>
+</g>
+</g>
+</g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/group/Icons_scalable_dc.mk Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,64 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+
+ifeq (WINS,$(findstring WINS, $(PLATFORM)))
+ZDIR=$(EPOCROOT)epoc32\release\$(PLATFORM)\$(CFG)\Z
+else
+ZDIR=$(EPOCROOT)epoc32\data\z
+endif
+
+TARGETDIR=$(ZDIR)\resource\apps
+ICONTARGETFILENAME=$(TARGETDIR)\MCSExample_0xEB753B18.mif
+
+ICONDIR=..\gfx
+
+do_nothing :
+ @rem do_nothing
+
+MAKMAKE : do_nothing
+
+BLD : do_nothing
+
+CLEAN :
+ @echo ...Deleting $(ICONTARGETFILENAME)
+ del /q /f $(ICONTARGETFILENAME)
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+# ----------------------------------------------------------------------------
+# NOTE: if you have JUSTINTIME enabled for your S60 3rd FP1 or newer SDK
+# and this command crashes, consider adding "/X" to the command line.
+# See <http://forum.nokia.com/document/Forum_Nokia_Technical_Library_v1_35/contents/FNTL/Build_process_fails_at_mif_file_creation_in_S60_3rd_Ed_FP1_SDK.htm>
+# ----------------------------------------------------------------------------
+
+RESOURCE : $(ICONTARGETFILENAME)
+
+$(ICONTARGETFILENAME) : $(ICONDIR)\qgn_menu_MCSExample.svg
+ mifconv $(ICONTARGETFILENAME) \
+ /c32 $(ICONDIR)\qgn_menu_MCSExample.svg
+
+FREEZE : do_nothing
+
+SAVESPACE : do_nothing
+
+RELEASABLES :
+ @echo $(ICONTARGETFILENAME)
+
+FINAL : do_nothing
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/group/MCSExample.mmp Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,81 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include <platform_paths.hrh>
+#include <data_caging_paths.hrh>
+APP_LAYER_SYSTEMINCLUDE
+
+
+TARGET MCSExample_0xEB753B18.exe
+TARGETTYPE exe
+UID 0x100039CE 0xEB753B18
+
+SOURCEPATH ..\src
+SOURCE MCSExample.cpp
+SOURCE MCSExampleApplication.cpp
+SOURCE MCSExampleAppView.cpp
+SOURCE MCSExampleAppUi.cpp
+SOURCE MCSExampleDocument.cpp
+SOURCE mcspluginwatcher.cpp
+
+SOURCEPATH ..\data
+
+START RESOURCE MCSExample.rss
+HEADER
+TARGET MCSExample_0xEB753B18
+TARGETPATH resource\apps
+END //RESOURCE
+
+START RESOURCE MCSExample_reg.rss
+TARGET MCSExample_0xEB753B18_reg
+TARGETPATH \private\10003a3f\apps
+END //RESOURCE
+
+
+
+USERINCLUDE ..\inc
+
+SYSTEMINCLUDE \epoc32\include
+
+LIBRARY euser.lib
+LIBRARY apparc.lib
+LIBRARY cone.lib
+LIBRARY eikcore.lib
+LIBRARY eikcoctl.lib
+LIBRARY eikctl.lib
+LIBRARY avkon.lib
+LIBRARY aknicon.lib
+LIBRARY bafl.lib
+LIBRARY commonengine.lib
+LIBRARY aknnotify.lib
+LIBRARY fbscli.lib
+LIBRARY egul.lib
+LIBRARY mcsmenu.lib
+LIBRARY mcsextendedmenu.lib
+LIBRARY eikdlg.lib
+
+
+LANG SC
+
+VENDORID 0
+SECUREID 0xEB753B18
+CAPABILITY ReadUserData ReadDeviceData WriteDeviceData
+
+#ifdef ENABLE_ABIV2_MODE
+ DEBUGGABLE_UDEBONLY
+#endif
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+PRJ_PLATFORMS
+WINSCW ARMV5 GCCE
+
+PRJ_MMPFILES
+
+gnumakefile icons_scalable_dc.mk
+
+MCSExample.mmp
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/inc/MCSExample.hrh Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,42 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef __MCSEXAMPLE_HRH__
+#define __MCSEXAMPLE_HRH__
+
+#define _UID3 0xEB753B18
+
+// MCSExample enumerate command codes
+enum TMCSExampleIds
+ {
+ ECommand1 = 0x6001, // start value must not be 0
+ ECommand2,
+ EHelp,
+ EAbout
+ };
+
+enum TMyControlIds
+ {
+ EMyFirstLine = 100,
+ EMySecondLine,
+ EMyThirdLine,
+ EMyFourthLine,
+ EMyFifthLine,
+ EMySixthLine
+ };
+
+#endif // __MCSEXAMPLE_HRH__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/inc/MCSExample.pan Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,34 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef __MCSEXAMPLE_PAN__
+#define __MCSEXAMPLE_PAN__
+
+/** MCSExample application panic codes */
+enum TMCSExamplePanics
+ {
+ EMCSExampleUi = 1
+ // add further panics here
+ };
+
+inline void Panic(TMCSExamplePanics aReason)
+ {
+ _LIT(applicationName, "MCSExample");
+ User::Panic(applicationName, aReason);
+ }
+
+#endif // __MCSEXAMPLE_PAN__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/inc/MCSExampleAppUi.h Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,93 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef __MCSEXAMPLEAPPUI_h__
+#define __MCSEXAMPLEAPPUI_h__
+
+// INCLUDES
+#include <aknappui.h>
+
+// FORWARD DECLARATIONS
+class CMCSExampleAppView;
+
+// CLASS DECLARATION
+/**
+ * CMCSExampleAppUi application UI class.
+ * Interacts with the user through the UI and request message processing
+ * from the handler class
+ */
+class CMCSExampleAppUi : public CAknAppUi
+ {
+public:
+ // Constructors and destructor
+
+ /**
+ * ConstructL.
+ * 2nd phase constructor.
+ */
+ void ConstructL();
+
+ /**
+ * CMCSExampleAppUi.
+ * C++ default constructor. This needs to be public due to
+ * the way the framework constructs the AppUi
+ */
+ CMCSExampleAppUi();
+
+ /**
+ * ~CMCSExampleAppUi.
+ * Virtual Destructor.
+ */
+ virtual ~CMCSExampleAppUi();
+
+private:
+ // Functions from base classes
+
+ /**
+ * From CEikAppUi, HandleCommandL.
+ * Takes care of command handling.
+ * @param aCommand Command to be handled.
+ */
+ void HandleCommandL(TInt aCommand);
+
+ /**
+ * HandleStatusPaneSizeChange.
+ * Called by the framework when the application status pane
+ * size is changed.
+ */
+ void HandleStatusPaneSizeChange();
+
+ /**
+ * From CCoeAppUi, HelpContextL.
+ * Provides help context for the application.
+ * size is changed.
+ */
+ CArrayFix<TCoeHelpContext>* HelpContextL() const;
+
+private:
+ // Data
+
+ /**
+ * The application view
+ * Owned by CMCSExampleAppUi
+ */
+ CMCSExampleAppView* iAppView;
+
+ };
+
+#endif // __MCSEXAMPLEAPPUI_h__
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/inc/MCSExampleAppView.h Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,163 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef __MCSEXAMPLEAPPVIEW_h__
+#define __MCSEXAMPLEAPPVIEW_h__
+
+// INCLUDES
+#include <coecntrl.h>
+#include <aknform.h>
+#include <gulicon.h>
+#include <aknlists.h>
+#include <eiklbo.h> // MEikListBoxObserver
+#include <mcsmenu.h>
+
+class CMCSExampleWatcher;
+
+struct TMyData
+ {
+public: // data
+ TBuf<256> majorID;
+ TBuf<256> minorID;
+ TBuf<256> iconFile;
+ TBuf<256> iconID;
+ TBuf<256> maskID;
+ TBuf<256> statusIcon;
+ TBool updated;
+ };
+
+class CMyForm : public CAknForm
+ {
+public: // construction
+ CMyForm( TMyData& aData );
+ virtual ~CMyForm();
+public: // from CAknForm
+ //void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
+ //void ProcessCommandL( TInt aCommandId );
+ TBool SaveFormDataL();
+ void DoNotSaveFormDataL();
+ //void AddItemL() ;
+ void PreLayoutDynInitL();
+ //MEikDialogPageObserver::TFormControlTypes
+ // ConvertCustomControlTypeToBaseControlType( TInt aControlType ) const;
+protected:
+ TBool OkToExitL( TInt aButtonId );
+
+private:
+ void LoadFormDataL();
+private: // data
+ TMyData& iData;
+ };
+
+
+
+// CLASS DECLARATION
+class CMCSExampleAppView : public CCoeControl, public MEikListBoxObserver
+ {
+public:
+ // New methods
+
+ /**
+ * NewL.
+ * Two-phased constructor.
+ * Create a CMCSExampleAppView object, which will draw itself to aRect.
+ * @param aRect The rectangle this view will be drawn to.
+ * @return a pointer to the created instance of CMCSExampleAppView.
+ */
+ static CMCSExampleAppView* NewL(const TRect& aRect);
+
+ /**
+ * NewLC.
+ * Two-phased constructor.
+ * Create a CMCSExampleAppView object, which will draw itself
+ * to aRect.
+ * @param aRect Rectangle this view will be drawn to.
+ * @return A pointer to the created instance of CMCSExampleAppView.
+ */
+ static CMCSExampleAppView* NewLC(const TRect& aRect);
+
+ /**
+ * ~CMCSExampleAppView
+ * Virtual Destructor.
+ */
+ virtual ~CMCSExampleAppView();
+
+ void ListAllItemsL();
+
+public:
+ // Functions from base classes
+
+ /**
+ * From CCoeControl, Draw
+ * Draw this CMCSExampleAppView to the screen.
+ * @param aRect the rectangle of this view that needs updating
+ */
+ void Draw(const TRect& aRect) const;
+
+ /**
+ * From CoeControl, SizeChanged.
+ * Called by framework when the view size is changed.
+ */
+ virtual void SizeChanged();
+
+ /**
+ * From CoeControl, HandlePointerEventL.
+ * Called by framework when a pointer touch event occurs.
+ * Note: although this method is compatible with earlier SDKs,
+ * it will not be called in SDKs without Touch support.
+ * @param aPointerEvent the information about this event
+ */
+ virtual void HandlePointerEventL(const TPointerEvent& aPointerEvent);
+
+ CCoeControl* ComponentControl( TInt aIndex) const;
+
+ TInt CountComponentControls() const;
+
+ void HandleListBoxEventL( CEikListBox* aListBox, TListBoxEvent aEventType );
+
+private:
+ // Constructors
+
+ /**
+ * ConstructL
+ * 2nd phase constructor.
+ * Perform the second phase construction of a
+ * CMCSExampleAppView object.
+ * @param aRect The rectangle this view will be drawn to.
+ */
+ void ConstructL(const TRect& aRect);
+
+ /**
+ * CMCSExampleAppView.
+ * C++ default constructor.
+ */
+ CMCSExampleAppView();
+
+ CDesCArray* GetArrayL(CArrayPtr<CGulIcon>* aIcons);
+ void MakeListBoxL(void);
+ void UpdateScrollBar(CEikListBox* aListBox);
+ void ShowFormL( TInt aItemIndex);
+
+ RMenu iMCSMenu;
+ CAknSingleLargeStyleListBox* iListBox;
+ RArray<TMenuItem> iItemArray;
+ /** MCS asynchronous operation watcher, owned */
+ CMCSExampleWatcher* iWatcher;
+ };
+
+#endif // __MCSEXAMPLEAPPVIEW_h__
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/inc/MCSExampleApplication.h Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,64 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef __MCSEXAMPLEAPPLICATION_H__
+#define __MCSEXAMPLEAPPLICATION_H__
+
+// INCLUDES
+#include <aknapp.h>
+#include "MCSExample.hrh"
+
+// UID for the application;
+// this should correspond to the uid defined in the mmp file
+const TUid KUidMCSExampleApp =
+ {
+ _UID3
+ };
+
+// CLASS DECLARATION
+
+/**
+ * CMCSExampleApplication application class.
+ * Provides factory to create concrete document object.
+ * An instance of CMCSExampleApplication is the application part of the
+ * AVKON application framework for the MCSExample example application.
+ */
+class CMCSExampleApplication : public CAknApplication
+ {
+public:
+ // Functions from base classes
+
+ /**
+ * From CApaApplication, AppDllUid.
+ * @return Application's UID (KUidMCSExampleApp).
+ */
+ TUid AppDllUid() const;
+
+protected:
+ // Functions from base classes
+
+ /**
+ * From CApaApplication, CreateDocumentL.
+ * Creates CMCSExampleDocument document object. The returned
+ * pointer in not owned by the CMCSExampleApplication object.
+ * @return A pointer to the created document object.
+ */
+ CApaDocument* CreateDocumentL();
+ };
+
+#endif // __MCSEXAMPLEAPPLICATION_H__
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/inc/MCSExampleDocument.h Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,99 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef __MCSEXAMPLEDOCUMENT_h__
+#define __MCSEXAMPLEDOCUMENT_h__
+
+// INCLUDES
+#include <akndoc.h>
+
+// FORWARD DECLARATIONS
+class CMCSExampleAppUi;
+class CEikApplication;
+
+// CLASS DECLARATION
+
+/**
+ * CMCSExampleDocument application class.
+ * An instance of class CMCSExampleDocument is the Document part of the
+ * AVKON application framework for the MCSExample example application.
+ */
+class CMCSExampleDocument : public CAknDocument
+ {
+public:
+ // Constructors and destructor
+
+ /**
+ * NewL.
+ * Two-phased constructor.
+ * Construct a CMCSExampleDocument for the AVKON application aApp
+ * using two phase construction, and return a pointer
+ * to the created object.
+ * @param aApp Application creating this document.
+ * @return A pointer to the created instance of CMCSExampleDocument.
+ */
+ static CMCSExampleDocument* NewL(CEikApplication& aApp);
+
+ /**
+ * NewLC.
+ * Two-phased constructor.
+ * Construct a CMCSExampleDocument for the AVKON application aApp
+ * using two phase construction, and return a pointer
+ * to the created object.
+ * @param aApp Application creating this document.
+ * @return A pointer to the created instance of CMCSExampleDocument.
+ */
+ static CMCSExampleDocument* NewLC(CEikApplication& aApp);
+
+ /**
+ * ~CMCSExampleDocument
+ * Virtual Destructor.
+ */
+ virtual ~CMCSExampleDocument();
+
+public:
+ // Functions from base classes
+
+ /**
+ * CreateAppUiL
+ * From CEikDocument, CreateAppUiL.
+ * Create a CMCSExampleAppUi object and return a pointer to it.
+ * The object returned is owned by the Uikon framework.
+ * @return Pointer to created instance of AppUi.
+ */
+ CEikAppUi* CreateAppUiL();
+
+private:
+ // Constructors
+
+ /**
+ * ConstructL
+ * 2nd phase constructor.
+ */
+ void ConstructL();
+
+ /**
+ * CMCSExampleDocument.
+ * C++ default constructor.
+ * @param aApp Application creating this document.
+ */
+ CMCSExampleDocument(CEikApplication& aApp);
+
+ };
+
+#endif // __MCSEXAMPLEDOCUMENT_h__
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/inc/mcspluginwatcher.h Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,97 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef __MCSPLUGINWATCHER_H
+#define __MCSPLUGINWATCHER_H
+
+#include <e32base.h>
+
+class CMenuOperation;
+class CMCSPluginEngine;
+class CMCSExampleAppView;
+
+
+/**
+ *
+ * This class implements MCS menu action watcher for async calls.
+ *
+ */
+class CMCSExampleWatcher: public CActive
+ {
+ public:
+
+
+ /**
+ * Two-phased constructor.
+ *
+ * @param aType
+ */
+ static CMCSExampleWatcher* NewL( );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CMCSExampleWatcher();
+
+ /**
+ * Watch menu operation or notification.
+ *
+ * @param aOperation
+ */
+ void Watch( CMenuOperation* aOperation, CMCSExampleAppView* aObserver );
+
+
+ /**
+ * GetStatus
+ */
+ TInt GetStatus();
+
+ private:
+
+ /**
+ * Default constructor.
+ *
+ * @param aType
+ */
+ CMCSExampleWatcher();
+
+ /**
+ * ConstructL
+ */
+ void ConstructL();
+
+ /**
+ * Inherited from CActive class
+ */
+ void RunL();
+
+ /**
+ * Inherited from CActive class
+ */
+ void DoCancel();
+
+ private:
+
+ /**
+ * Menu operation
+ * Owned
+ */
+ CMenuOperation* iOperation;
+ CMCSExampleAppView* iObserver;
+ };
+
+#endif /*__MCSPLUGINWATCHER_H*/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/sis/MCSExample_S60_3_X_v_1_0_0.pkg Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,37 @@
+; Installation file for MCSExample application
+;
+; This is an auto-generated PKG file by Carbide.
+; This file uses variables specific to Carbide builds that will not work
+; on command-line builds. If you want to use this generated PKG file from the
+; command-line tools you will need to modify the variables with the appropriate
+; values: $(EPOCROOT), $(PLATFORM), $(TARGET)
+;
+;Language - standard language definitions
+&EN
+
+; standard SIS file header
+#{"MCSExample"},(0xEB753B18),1,0,0
+
+;Localised Vendor name
+%{"Vendor-EN"}
+
+;Unique Vendor name
+:"Vendor"
+
+;Supports Series 60 v 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+;Files to install
+;You should change the source paths to match that of your environment
+;<source> <destination>
+"$(EPOCROOT)Epoc32\release\$(PLATFORM)\$(TARGET)\MCSExample_0xEB753B18.exe" -"!:\sys\bin\MCSExample_0xEB753B18.exe"
+"$(EPOCROOT)Epoc32\data\z\resource\apps\MCSExample_0xEB753B18.rsc" -"!:\resource\apps\MCSExample_0xEB753B18.rsc"
+"$(EPOCROOT)Epoc32\data\z\private\10003a3f\apps\MCSExample_0xEB753B18_reg.rsc" -"!:\private\10003a3f\import\apps\MCSExample_0xEB753B18_reg.rsc"
+"$(EPOCROOT)Epoc32\data\z\resource\apps\MCSExample_0xEB753B18.mif" -"!:\resource\apps\MCSExample_0xEB753B18.mif"
+;"..\help\MCSExample_0xEB753B18.hlp" -"!:\resource\help\MCSExample_0xEB753B18.hlp"
+
+; Add any installation notes if applicable
+;"MCSExample.txt" -"!:\private\EB753B18\MCSExample.txt"
+
+;required for application to be covered by backup/restore facility
+"..\sis\backup_registration.xml" -"!:\private\EB753B18\backup_registration.xml"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/sis/backup_registration.xml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,5 @@
+<?xml version="1.0" standalone="yes"?>
+<backup_registration>
+ <system_backup/>
+ <restore requires_reboot = "no"/>
+</backup_registration>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/src/MCSExample.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,31 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+// INCLUDE FILES
+#include <eikstart.h>
+#include "MCSExampleApplication.h"
+
+LOCAL_C CApaApplication* NewApplication()
+ {
+ return new CMCSExampleApplication;
+ }
+
+GLDEF_C TInt E32Main()
+ {
+ return EikStart::RunApplication(NewApplication);
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/src/MCSExampleAppUi.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,169 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+// INCLUDE FILES
+#include <avkon.hrh>
+#include <aknmessagequerydialog.h>
+#include <aknnotewrappers.h>
+#include <stringloader.h>
+
+#include <MCSExample_0xEB753B18.rsg>
+#include "MCSExample.hrh"
+#include "MCSExample.pan"
+#include "MCSExampleApplication.h"
+#include "MCSExampleAppUi.h"
+#include "MCSExampleAppView.h"
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+
+// -----------------------------------------------------------------------------
+// CMCSExampleAppUi::ConstructL()
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleAppUi::ConstructL()
+ {
+ // Initialise app UI with standard value.
+ BaseConstructL(CAknAppUi::EAknEnableSkin|CAknAppUi::EAknSingleClickCompatible);
+
+ // Create view object
+ iAppView = CMCSExampleAppView::NewL(ClientRect());
+ }
+// -----------------------------------------------------------------------------
+// CMCSExampleAppUi::CMCSExampleAppUi()
+// C++ default constructor can NOT contain any code, that might leave.
+// -----------------------------------------------------------------------------
+//
+CMCSExampleAppUi::CMCSExampleAppUi()
+ {
+ // No implementation required
+ }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleAppUi::~CMCSExampleAppUi()
+// Destructor.
+// -----------------------------------------------------------------------------
+//
+CMCSExampleAppUi::~CMCSExampleAppUi()
+ {
+ if (iAppView)
+ {
+ delete iAppView;
+ iAppView = NULL;
+ }
+
+ }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleAppUi::HandleCommandL()
+// Takes care of command handling.
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleAppUi::HandleCommandL(TInt aCommand)
+ {
+ switch (aCommand)
+ {
+ case EEikCmdExit:
+ case EAknSoftkeyExit:
+ Exit();
+ break;
+
+ case ECommand1:
+ {
+
+ // Load a string from the resource file and display it
+ HBufC* textResource = StringLoader::LoadLC(R_COMMAND1_TEXT);
+ CAknInformationNote* informationNote;
+
+ informationNote = new (ELeave) CAknInformationNote;
+
+ // Show the information Note with
+ // textResource loaded with StringLoader.
+ informationNote->ExecuteLD(*textResource);
+
+ // Pop HBuf from CleanUpStack and Destroy it.
+ CleanupStack::PopAndDestroy(textResource);
+ }
+ break;
+ case ECommand2:
+ {
+ iAppView->ListAllItemsL();
+ }
+ break;
+ case EHelp:
+ {
+
+ }
+ break;
+ case EAbout:
+ {
+
+ CAknMessageQueryDialog* dlg =
+ new (ELeave) CAknMessageQueryDialog();
+ dlg->PrepareLC(R_ABOUT_QUERY_DIALOG);
+ HBufC* title = iEikonEnv->AllocReadResourceLC(
+ R_ABOUT_DIALOG_TITLE);
+ dlg->QueryHeading()->SetTextL(*title);
+ CleanupStack::PopAndDestroy(); //title
+ HBufC* msg = iEikonEnv->AllocReadResourceLC(R_ABOUT_DIALOG_TEXT);
+ dlg->SetMessageTextL(*msg);
+ CleanupStack::PopAndDestroy(); //msg
+ dlg->RunLD();
+ }
+ break;
+ default:
+ Panic( EMCSExampleUi);
+ break;
+ }
+ }
+// -----------------------------------------------------------------------------
+// Called by the framework when the application status pane
+// size is changed. Passes the new client rectangle to the
+// AppView
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleAppUi::HandleStatusPaneSizeChange()
+ {
+ iAppView->SetRect(ClientRect());
+ }
+
+CArrayFix<TCoeHelpContext>* CMCSExampleAppUi::HelpContextL() const
+ {
+#warning "Please see comment about help and UID3..."
+ // Note: Help will not work if the application uid3 is not in the
+ // protected range. The default uid3 range for projects created
+ // from this template (0xE0000000 - 0xEFFFFFFF) are not in the protected range so that they
+ // can be self signed and installed on the device during testing.
+ // Once you get your official uid3 from Symbian Ltd. and find/replace
+ // all occurrences of uid3 in your project, the context help will
+ // work. Alternatively, a patch now exists for the versions of
+ // HTML help compiler in SDKs and can be found here along with an FAQ:
+ // http://www3.symbian.com/faq.nsf/AllByDate/E9DF3257FD565A658025733900805EA2?OpenDocument
+#ifdef _HELP_AVAILABLE_
+ CArrayFixFlat<TCoeHelpContext>* array = new(ELeave)CArrayFixFlat<TCoeHelpContext>(1);
+ CleanupStack::PushL(array);
+ array->AppendL(TCoeHelpContext(KUidMCSExampleApp, KGeneral_Information));
+ CleanupStack::Pop(array);
+ return array;
+#else
+ return NULL;
+#endif
+ }
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/src/MCSExampleAppView.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,462 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+// INCLUDE FILES
+#include <coemain.h>
+#include <mcsmenuitem.h>
+#include <mcsmenuiconutility.h>
+#include <mcsdef.h>
+#include <akniconarray.h>
+#include <eikclbd.h>
+#include <eikedwin.h>
+
+#include <aknsconstants.h>
+#include <aknsconstants.hrh>
+
+#include <MCSExample_0xEB753B18.rsg>
+#include "MCSExampleAppView.h"
+#include "mcspluginwatcher.h"
+#include "MCSExample.hrh"
+
+_LIT( KMenuData, "matrixmenudata" );
+
+CMyForm::CMyForm( TMyData& aData ) : iData( aData )
+ {
+ }
+
+CMyForm::~CMyForm()
+ {
+ }
+
+void CMyForm::PreLayoutDynInitL()
+ {
+ CAknForm::PreLayoutDynInitL();
+ LoadFormDataL();
+ }
+
+void CMyForm::LoadFormDataL()
+ {
+ CEikEdwin* textEd1 =
+ (CEikEdwin*)Control( EMyFirstLine );
+ textEd1->SetTextL( &iData.majorID );
+
+ CEikEdwin* textEd2 =
+ (CEikEdwin*)Control( EMySecondLine );
+ textEd2->SetTextL( &iData.minorID );
+
+ CEikEdwin* textEd3 =
+ (CEikEdwin*)Control( EMyThirdLine );
+ textEd3->SetTextL( &iData.iconFile );
+
+ CEikEdwin* textEd4 =
+ (CEikEdwin*)Control( EMyFourthLine );
+ textEd4->SetTextL( &iData.iconID );
+
+ CEikEdwin* textEd5 =
+ (CEikEdwin*)Control( EMyFifthLine );
+ textEd5->SetTextL( &iData.maskID );
+
+ CEikEdwin* textEd6 =
+ (CEikEdwin*)Control( EMySixthLine );
+ textEd6->SetTextL( &iData.statusIcon );
+ }
+
+TBool CMyForm::SaveFormDataL()
+ {
+ CEikEdwin* textEd1 =
+ (CEikEdwin*)Control( EMyFirstLine );
+ textEd1->GetText( iData.majorID );
+
+ CEikEdwin* textEd2 =
+ (CEikEdwin*)Control( EMySecondLine );
+ textEd2->GetText( iData.minorID );
+
+ CEikEdwin* textEd3 =
+ (CEikEdwin*)Control( EMyThirdLine );
+ textEd3->GetText( iData.iconFile );
+
+ CEikEdwin* textEd4 =
+ (CEikEdwin*)Control( EMyFourthLine );
+ textEd4->GetText( iData.iconID );
+
+ CEikEdwin* textEd5 =
+ (CEikEdwin*)Control( EMyFifthLine );
+ textEd5->GetText( iData.maskID );
+
+ CEikEdwin* textEd6 =
+ (CEikEdwin*)Control( EMySixthLine );
+ textEd6->GetText( iData.statusIcon );
+ return ETrue;
+ }
+
+void CMyForm::DoNotSaveFormDataL()
+ {
+ LoadFormDataL();
+ }
+
+TBool CMyForm::OkToExitL( TInt aButtonId )
+ {
+ if ( aButtonId == EAknSoftkeyOk)
+ {
+ SaveFormDataL();
+ iData.updated = ETrue;
+ }
+ else if( aButtonId == EAknSoftkeyCancel )
+ {
+ iData.updated = EFalse;
+ }
+ return ETrue;
+ }
+
+CGulIcon* ConvertToGulIconLC( CAknIcon* aIcon )
+ {
+ CGulIcon* icon = CGulIcon::NewL( aIcon->Bitmap(), aIcon->Mask() );
+ CleanupStack::PushL( icon );
+ // Detach bitmap and mask
+ aIcon->SetBitmap( NULL );
+ aIcon->SetMask( NULL );
+ return icon;
+ }
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CMCSExampleAppView::NewL()
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CMCSExampleAppView* CMCSExampleAppView::NewL(const TRect& aRect)
+ {
+ CMCSExampleAppView* self = CMCSExampleAppView::NewLC(aRect);
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleAppView::NewLC()
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CMCSExampleAppView* CMCSExampleAppView::NewLC(const TRect& aRect)
+ {
+ CMCSExampleAppView* self = new (ELeave) CMCSExampleAppView;
+ CleanupStack::PushL(self);
+ self->ConstructL(aRect);
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleAppView::ConstructL()
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleAppView::ConstructL(const TRect& aRect)
+ {
+ // Create a window for this application view
+ CreateWindowL();
+
+ // Set the windows size
+ SetRect(aRect);
+
+ // Activate the window, which makes it ready to be drawn
+ ActivateL();
+
+ iMCSMenu.OpenL( KMenuData );
+ iWatcher = CMCSExampleWatcher::NewL();
+ }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleAppView::CMCSExampleAppView()
+// C++ default constructor can NOT contain any code, that might leave.
+// -----------------------------------------------------------------------------
+//
+CMCSExampleAppView::CMCSExampleAppView()
+ {
+ // No implementation required
+ }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleAppView::~CMCSExampleAppView()
+// Destructor.
+// -----------------------------------------------------------------------------
+//
+CMCSExampleAppView::~CMCSExampleAppView()
+ {
+ iMCSMenu.Close();
+ delete iListBox;
+ iItemArray.Close();
+ delete iWatcher;
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleAppView::ListAllItemsL()
+ {
+
+
+ CArrayPtr<CGulIcon>* icons =new( ELeave ) CAknIconArray(1);
+ CleanupStack::PushL(icons);
+
+ iListBox->Model()->SetItemTextArray(GetArrayL(icons));
+ iListBox->Model()->SetOwnershipType(ELbmOwnsItemArray);
+ //
+ // Inform the listbox of item additions.
+ // This should be done if you want your items displayed correctly
+ iListBox ->HandleItemAdditionL();
+
+ CleanupStack::Pop(icons);
+ CArrayPtr<CGulIcon>* oldArray = iListBox->ItemDrawer()->ColumnData()->IconArray();
+ delete oldArray;
+ iListBox->ItemDrawer()->ColumnData()->SetIconArray(icons);
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleAppView::MakeListBoxL()
+ {
+ TInt MySetIndex(0);
+
+ if(iListBox)
+ {
+ MySetIndex = iListBox->CurrentItemIndex();
+ }
+
+ delete iListBox;
+ iListBox = NULL;
+
+ iListBox = new( ELeave ) CAknSingleLargeStyleListBox();
+ iListBox->ConstructL(this,EAknListBoxSelectionList);
+ iListBox->SetListBoxObserver( this );
+
+ iListBox->CreateScrollBarFrameL( ETrue );
+ iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(
+ CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto);
+
+ iListBox->SetRect(Rect());
+
+ iListBox->View()->SetListEmptyTextL(_L("No data"));
+
+ iListBox->ActivateL();
+
+ TInt ItemsCount = iListBox->Model()->ItemTextArray()->MdcaCount();
+
+ if(ItemsCount > MySetIndex && MySetIndex >= 0)
+ iListBox->SetCurrentItemIndex(MySetIndex);
+ else if(ItemsCount > 0)
+ iListBox->SetCurrentItemIndex(0);
+
+ UpdateScrollBar(iListBox);
+ iListBox->DrawNow();
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+CDesCArray* CMCSExampleAppView::GetArrayL(CArrayPtr<CGulIcon>* aIcons)
+{
+ TBuf<256> listString;
+ CDesCArrayFlat* myArray = new(ELeave)CDesCArrayFlat(1);
+ CleanupStack::PushL(myArray);
+
+ const TInt rootId = iMCSMenu. RootFolderL();
+ iItemArray.Reset();
+ //CleanupClosePushL( itemArray );
+ // Get all the items from MCS
+ iMCSMenu.GetItemsL( iItemArray, rootId, NULL, ETrue );
+
+ for( TInt i = 0; i < iItemArray.Count(); i++ )
+ {
+ // Open the actual item
+ CMenuItem* menuItem = CMenuItem::OpenL( iMCSMenu, iItemArray[i] );
+ CleanupStack::PushL( menuItem );
+
+ // Get the name of the item
+ TBool attrExists( EFalse );
+ TPtrC attr = menuItem->GetAttributeL(_L("short_name" ), attrExists );
+
+ //Create listbox string
+ listString.Delete(0, 256);
+ listString.AppendNum( i );
+ listString.Append( _L("\t"));
+ listString.Append( attr );
+ myArray->AppendL( listString );
+
+ //Fetch the item icon from MCS
+ CAknIcon* icon = MenuIconUtility::GetItemIconL( *menuItem );
+ CleanupStack::PushL( icon );
+ if ( icon )
+ {
+ CGulIcon* gIcon = ConvertToGulIconLC( icon );
+ aIcons->AppendL( gIcon );
+ CleanupStack::Pop( gIcon );
+ }
+ CleanupStack::PopAndDestroy( icon );
+ CleanupStack::PopAndDestroy( menuItem );
+ }
+ CleanupStack::Pop(myArray);
+ return myArray;
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleAppView::UpdateScrollBar(CEikListBox* aListBox)
+ {
+ if (aListBox)
+ {
+ TInt pos(aListBox->View()->CurrentItemIndex());
+ if (aListBox->ScrollBarFrame())
+ {
+ aListBox->ScrollBarFrame()->MoveVertThumbTo(pos);
+ }
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleAppView::Draw()
+// Draws the display.
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleAppView::Draw(const TRect& /*aRect*/) const
+ {
+ // Get the standard graphics context
+ CWindowGc& gc = SystemGc();
+
+ // Gets the control's extent
+ TRect drawRect(Rect());
+
+ // Clears the screen
+ gc.Clear(drawRect);
+
+ }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleAppView::SizeChanged()
+// Called by framework when the view size is changed.
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleAppView::SizeChanged()
+ {
+ TRAP_IGNORE( MakeListBoxL() );
+ DrawNow();
+ }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleAppView::HandlePointerEventL()
+// Called by framework to handle pointer touch events.
+// Note: although this method is compatible with earlier SDKs,
+// it will not be called in SDKs without Touch support.
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleAppView::HandlePointerEventL(
+ const TPointerEvent& aPointerEvent)
+ {
+
+ // Call base class HandlePointerEventL()
+ CCoeControl::HandlePointerEventL(aPointerEvent);
+ }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleAppView::HandleListBoxEventL( CEikListBox* /*aListBox*/, TListBoxEvent aEventType )
+ {
+ if( iListBox && aEventType == EEventItemSingleClicked )
+ {
+ TInt index = iListBox->CurrentItemIndex();
+ if( index < iItemArray.Count())
+ {
+ ShowFormL( index );
+ }
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleAppView::ShowFormL( TInt aItemIndex)
+ {
+ CMenuItem* menuItem = CMenuItem::OpenL( iMCSMenu, iItemArray[aItemIndex] );
+ CleanupStack::PushL( menuItem );
+ TBool attrExists( EFalse );
+ TPtrC attr = menuItem->GetAttributeL(_L("short_name" ), attrExists );
+ // Initialize form data.
+ TBool exists( EFalse );;
+ TMyData myData;
+ myData.majorID = menuItem->GetAttributeL( KMenuAttrIconSkinMajorId, exists );
+ myData.minorID = menuItem->GetAttributeL( KMenuAttrIconSkinMinorId, exists );
+ myData.iconFile = menuItem->GetAttributeL( KMenuAttrIconFile, exists );
+ myData.iconID = menuItem->GetAttributeL( KMenuAttrIconId, exists );
+ myData.maskID = menuItem->GetAttributeL( KMenuAttrMaskId, exists );
+ // e.g. skin(0x101F86E3 0x1ee2)
+ myData.statusIcon = menuItem->GetAttributeL( _L("presenceicon"), exists );
+ myData.updated = EFalse;
+
+ // Launch the dialog to view/edit data
+ CAknForm* dlg = new ( ELeave ) CMyForm( myData );
+ CleanupStack::PushL( dlg );
+ dlg->ConstructL( 0 ); // default menu items only
+ CleanupStack::Pop( dlg );
+ dlg->ExecuteLD( R_ICON_QUERY_DIALOG );
+ // myData now contains the edited values.
+
+ if( myData.updated )
+ {
+ // Changes the main icon, if all values are empty then application icon is used.
+ // Piority 0
+ menuItem->SetAttributeL(KMenuAttrIconSkinMajorId, myData.majorID );
+ menuItem->SetAttributeL(KMenuAttrIconSkinMinorId, myData.minorID );
+ // Pririty 1
+ menuItem->SetAttributeL(KMenuAttrIconFile, myData.iconFile );
+ menuItem->SetAttributeL(KMenuAttrIconId, myData.iconID );
+ menuItem->SetAttributeL(KMenuAttrMaskId, myData.maskID );
+ //Changes the presence icon
+ menuItem->SetAttributeL( _L("presenceicon"), myData.statusIcon );
+
+ CMenuOperation* operation = menuItem->SaveL( iWatcher->iStatus );
+ // Deletes the operation after its completion
+ iWatcher->Watch( operation, this );
+ }
+ CleanupStack::PopAndDestroy( menuItem );
+ }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+CCoeControl* CMCSExampleAppView::ComponentControl( TInt /*aIndex*/) const
+{
+ return iListBox;
+}
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+TInt CMCSExampleAppView::CountComponentControls() const
+{
+ if(iListBox)
+ return 1;
+ else
+ return 0;
+}
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/src/MCSExampleApplication.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,47 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+// INCLUDE FILES
+#include "MCSExample.hrh"
+#include "MCSExampleDocument.h"
+#include "MCSExampleApplication.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CMCSExampleApplication::CreateDocumentL()
+// Creates CApaDocument object
+// -----------------------------------------------------------------------------
+//
+CApaDocument* CMCSExampleApplication::CreateDocumentL()
+ {
+ // Create an MCSExample document, and return a pointer to it
+ return CMCSExampleDocument::NewL(*this);
+ }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleApplication::AppDllUid()
+// Returns application UID
+// -----------------------------------------------------------------------------
+//
+TUid CMCSExampleApplication::AppDllUid() const
+ {
+ // Return the UID for the MCSExample application
+ return KUidMCSExampleApp;
+ }
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/src/MCSExampleDocument.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,93 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+// INCLUDE FILES
+#include "MCSExampleAppUi.h"
+#include "MCSExampleDocument.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CMCSExampleDocument::NewL()
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CMCSExampleDocument* CMCSExampleDocument::NewL(CEikApplication& aApp)
+ {
+ CMCSExampleDocument* self = NewLC(aApp);
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleDocument::NewLC()
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CMCSExampleDocument* CMCSExampleDocument::NewLC(CEikApplication& aApp)
+ {
+ CMCSExampleDocument* self = new (ELeave) CMCSExampleDocument(aApp);
+
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleDocument::ConstructL()
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleDocument::ConstructL()
+ {
+ // No implementation required
+ }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleDocument::CMCSExampleDocument()
+// C++ default constructor can NOT contain any code, that might leave.
+// -----------------------------------------------------------------------------
+//
+CMCSExampleDocument::CMCSExampleDocument(CEikApplication& aApp) :
+ CAknDocument(aApp)
+ {
+ // No implementation required
+ }
+
+// ---------------------------------------------------------------------------
+// CMCSExampleDocument::~CMCSExampleDocument()
+// Destructor.
+// ---------------------------------------------------------------------------
+//
+CMCSExampleDocument::~CMCSExampleDocument()
+ {
+ // No implementation required
+ }
+
+// ---------------------------------------------------------------------------
+// CMCSExampleDocument::CreateAppUiL()
+// Constructs CreateAppUi.
+// ---------------------------------------------------------------------------
+//
+CEikAppUi* CMCSExampleDocument::CreateAppUiL()
+ {
+ // Create the application user interface, and return a pointer to it;
+ // the framework takes ownership of this object
+ return new (ELeave) CMCSExampleAppUi;
+ }
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/src/mcspluginwatcher.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,94 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Menu item operation watcher.
+*
+*/
+
+#include <mcsmenuoperation.h>
+#include "mcspluginwatcher.h"
+#include "MCSExampleAppView.h"
+
+// ---------------------------------------------------------------------------
+// two-phased constructor
+// ---------------------------------------------------------------------------
+CMCSExampleWatcher* CMCSExampleWatcher::NewL( )
+ {
+ CMCSExampleWatcher* self = new (ELeave) CMCSExampleWatcher( );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// default constructor
+// ---------------------------------------------------------------------------
+CMCSExampleWatcher::CMCSExampleWatcher( )
+ : CActive( CActive::EPriorityStandard )
+ {
+ CActiveScheduler::Add( this );
+ }
+
+// ---------------------------------------------------------------------------
+// destructor
+// ---------------------------------------------------------------------------
+CMCSExampleWatcher::~CMCSExampleWatcher()
+ {
+ Cancel();
+ }
+
+// ---------------------------------------------------------------------------
+// second phase constructor
+// ---------------------------------------------------------------------------
+void CMCSExampleWatcher::ConstructL()
+ {
+
+ }
+
+// ---------------------------------------------------------------------------
+// Watch Async
+// ---------------------------------------------------------------------------
+void CMCSExampleWatcher::Watch( CMenuOperation* aOperation, CMCSExampleAppView* aObserver )
+ {
+ iObserver = aObserver;
+ __ASSERT_DEBUG( KRequestPending == iStatus.Int(), User::Invariant() );
+ //__ASSERT_DEBUG( !iOperation, User::Invariant() );
+ iOperation = aOperation;
+ SetActive();
+ }
+
+// ---------------------------------------------------------------------------
+// Inherited from CActive class
+// ---------------------------------------------------------------------------
+void CMCSExampleWatcher::RunL()
+ {
+ iObserver->ListAllItemsL();
+ delete iOperation;
+ iOperation = NULL;
+ }
+
+// ---------------------------------------------------------------------------
+// Inherited from CActive class
+// ---------------------------------------------------------------------------
+void CMCSExampleWatcher::DoCancel()
+ {
+ delete iOperation;
+ iOperation = NULL;
+ }
+
+TInt CMCSExampleWatcher::GetStatus()
+ {
+ return iStatus.Int();
+ }
+
--- a/idlehomescreen/inc/xnappuiadapter.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/inc/xnappuiadapter.h Tue Sep 14 20:58:58 2010 +0300
@@ -40,6 +40,7 @@
class CXnEffectManager;
class MHsContentControl;
class CXnItemActivator;
+class CXnViewSwitcher;
// Class declaration
/**
@@ -317,6 +318,13 @@
*/
void ShowFocus();
+ /**
+ * View switcher helper.
+ *
+ * @since S60 5.0
+ */
+ CXnViewSwitcher* ViewSwitcher();
+
private:
// Data
@@ -341,6 +349,12 @@
* Own.
*/
TXnUiEngineAppIf* iUiEngineAppIf;
+
+ /**
+ * View switcher scrolls view when finger follow is used.
+ * Own.
+ */
+ CXnViewSwitcher* iViewSwitcher;
};
#endif
--- a/idlehomescreen/inc/xncontroladapter.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/inc/xncontroladapter.h Tue Sep 14 20:58:58 2010 +0300
@@ -352,6 +352,13 @@
*/
IMPORT_C void DrawContentImage() const;
+ /*
+ * Checks if widget is Gesture destination node.
+ *
+ * @return ETrue if widget is Gesture destination.
+ */
+ TBool IsWidgetGestureDest();
+
protected:
/**
* From CCoeControl.
@@ -430,11 +437,6 @@
* Get child adapter list i.e which are not window owning controls
*/
RPointerArray< CXnControlAdapter >& ChildAdapters();
-
- /**
- * Determines wheter control refuses focus loss
- */
- virtual TBool RefusesFocusLoss() const { return EFalse; };
/**
* Routes the data stream for the external rendering plugin.
--- a/idlehomescreen/inc/xnnodeimpl.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/inc/xnnodeimpl.h Tue Sep 14 20:58:58 2010 +0300
@@ -893,10 +893,6 @@
/**
* Find next node located aDirection from aNode.
*/
- CXnNode* FindNextNodeL(
- RPointerArray< CXnNode >& aArray,
- CXnNode& aNode,
- TInt aDirection );
/**
* Gets namespace of node
--- a/idlehomescreen/inc/xnnodepluginif.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/inc/xnnodepluginif.h Tue Sep 14 20:58:58 2010 +0300
@@ -183,7 +183,15 @@
* @return ETrue if node is focused.
*/
IMPORT_C TBool IsFocusedState();
-
+
+ /**
+ * Is the node in edit state
+ *
+ * @since Series 60 3.1
+ * @return ETrue if node is in edit state.
+ */
+ IMPORT_C TBool IsEditState();
+
/**
* Get node type
*
--- a/idlehomescreen/inc/xnproperty.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/inc/xnproperty.h Tue Sep 14 20:58:58 2010 +0300
@@ -166,16 +166,22 @@
}
namespace clock
{
- _LIT8(KS60Format, "_s60-format");
+ _LIT8( KS60Format, "_s60-format" );
namespace format
{
- _LIT8(KDigital, "digital");
- _LIT8(KAnalog, "analog");
+ _LIT8( KDigital, "digital" );
+ _LIT8( KAnalog, "analog" );
}
-
- _LIT8(KS60AmPmFontSize, "_s60-ampm-font-size" );
- _LIT8(KS60DigitalFontSize, "_s60-digital-font-size");
+ _LIT8( KS60AmPmFontSize, "_s60-ampm-font-size" );
+ _LIT8( KS60DigitalFontSize, "_s60-digital-font-size" );
_LIT8( KS60DateFontSize, "_s60-date-font-size" );
+ _LIT8( KS60FontSize, "_s60-font-size" );
+ _LIT8( KFace, "face" );
+ _LIT8( KFace12, "face12" );
+ _LIT8( KFace24, "face24" );
+ _LIT8( KDate, "date" );
+ _LIT8( KDay, "day" );
+ _LIT8( KAmpm, "ampm" );
}
namespace volumecontrol
{
--- a/idlehomescreen/inc/xntexteditor.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/inc/xntexteditor.h Tue Sep 14 20:58:58 2010 +0300
@@ -43,26 +43,16 @@
public: // New functions
/**
- * Sets the new text to the underlying CEikEdvin
+ * Sets the new text to the underlying CEikEdwin
* @param aText The new content
*/
virtual void SetTextL(const TDesC& aText) = 0;
/**
- * Returns the text contained in the underlying CEikEdvin
+ * Returns the text contained in the underlying CEikEdwin
* @return HBufC* The text
*/
virtual const HBufC* Text() = 0;
-
- /**
- * Handles editor events
- *
- * @since S60 5.2
- * @param aReason, editor event
- */
- virtual void HandleEditorEvent( TInt aReason ) = 0;
-
- private:
};
}
@@ -75,18 +65,6 @@
{
public:
-/**
- * Editor events
- */
- enum TEditorEvent
- {
- KActivateTextEditor,
- KDeactivateTextEditor,
- KRemoveSplitInputFromStack,
- KKeepSplitInputInStack
- };
-public:
-
/**
* 2 phase construction.
*/
@@ -100,25 +78,17 @@
public: // New functions
/**
- * Sets the new content to the underlying CEikEdvin
+ * Sets the new content to the underlying CEikEdwin
* @param aText The new content
*/
void SetTextL(const TDesC& aText);
/**
- * Returns the text contained in the underlying CEikEdvin
+ * Returns the text contained in the underlying CEikEdwin
* @return HBufC* The text
*/
const HBufC* Text();
- /**
- * Handles editor events
- *
- * @since S60 5.2
- * @param aReason, editor event
- */
- void HandleEditorEvent( TInt aReason );
-
public: // from CCoeControl
/**
--- a/idlehomescreen/inc/xnuiengine.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/inc/xnuiengine.h Tue Sep 14 20:58:58 2010 +0300
@@ -82,6 +82,18 @@
void RenderUIL( CXnNode* aNode = NULL );
/**
+ * Calculates the layout of the UI and renders it.
+ * This generates full re-layout starting from the given node,
+ * regardless of the current dirty set or the active view.
+ * I.e. this can be used to layout an inactive view.
+ *
+ * @since Series 60 5.2
+ * @param aNode Starting point for the layout
+ * @exception KXnErrLoadLayoutFileFailed Loading the layout file failed.
+ */
+ void RenderFromNodeL( CXnNode& aNode );
+
+ /**
* Calculates the layout of the UI.
*
* @since Series 60 3.1
@@ -90,6 +102,17 @@
void LayoutUIL( CXnNode* aNode = NULL );
/**
+ * Calculates the layout of the UI.
+ * This generates full re-layout starting from the given node,
+ * regardless of the current dirty set or the active view.
+ * I.e. this can be used to layout an inactive view.
+ *
+ * @since Series 60 5.2
+ * @param aNode Starting point for the layout
+ */
+ void LayoutFromNodeL( CXnNode& aNode );
+
+ /**
* Gets the root node of the UI. Ownership is not transferred.
*
* @since Series 60 3.1
@@ -444,7 +467,7 @@
* @param aNode Editor Node
* @param TBool True if partial input is open
*/
- void EnablePartialTouchInput( CXnNode& aNode, TBool aEnable );
+ void EnablePartialTouchInput( CXnNode* aNode, TBool aEnable );
/**
* Is partial input active
--- a/idlehomescreen/inc/xnuienginepluginif.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/inc/xnuienginepluginif.h Tue Sep 14 20:58:58 2010 +0300
@@ -256,24 +256,15 @@
* @since Series 60 5.0
*/
IMPORT_C void DisableRenderUiLC();
-
- /**
- * Enables partial touch input
- *
- * @since Series 60 5.2
- * @param aNode Editor Node
- * @param TBool True if partial input is open
- */
- IMPORT_C void EnablePartialTouchInput( CXnNodePluginIf& aNode, TBool aEnable );
-
+
/**
* Checks if text editor is focused or partioal touch input open.
*
- * @since Series 60 5.2
+ * @since S60 5.2
* @return TBool True if partial input is open or editor focused
*/
IMPORT_C TBool IsTextEditorActive();
-
+
private:
// Data
--- a/idlehomescreen/inc/xnviewmanager.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/inc/xnviewmanager.h Tue Sep 14 20:58:58 2010 +0300
@@ -62,6 +62,8 @@
// new functions
virtual void NotifyViewActivatedL( const CXnViewData& aViewData ) = 0;
+ virtual void NotifyViewLoadedL( const CXnViewData& aViewData ) = 0;
+
virtual void NotifyViewDeactivatedL( const CXnViewData& aViewData ) = 0;
virtual void NotifyConfigureWidgetL(
@@ -72,9 +74,9 @@
virtual void NotifyWidgetRemovalL( const CXnPluginData& aPluginData ) = 0;
- virtual void NotifyViewAdditionL( const CXnPluginData& aPluginData ) = 0;
+ virtual void NotifyViewAdditionL( const CXnViewData& aViewData ) = 0;
- virtual void NotifyViewRemovalL( const CXnPluginData& aPluginData ) = 0;
+ virtual void NotifyViewRemovalL( const CXnViewData& aViewData ) = 0;
virtual void NotifyAllViewsLoadedL() = 0;
@@ -173,10 +175,12 @@
const CHsContentInfo& aContentInfo,
CXnPluginData& aPluginData );
- void ActivateNextViewL( TInt aEffectId = 0 );
+ void ActivateNextViewL();
- void ActivatePreviousViewL( TInt aEffectId = 0 );
+ void ActivatePreviousViewL();
+ void ActivateViewL( CXnViewData& aViewData, TUid aEffect, TBool aUpdateBg = ETrue );
+
TInt AddViewL( const CHsContentInfo& aInfo );
void AddViewL( TInt aEffectId = 0 );
@@ -213,7 +217,9 @@
void HandleErrorNotes( const TInt aError ) const;
void PublishersReadyL( CXnViewData& aViewData, TInt aResult );
-
+
+ void NotifyViewLoadedL( const CXnViewData& aViewData );
+
void NotifyAllViewsLoadedL();
private:
@@ -241,10 +247,11 @@
CXnViewData* ViewData( CXnNode& aNode ) const;
+public:
CXnViewData& PreviousViewData() const;
-
CXnViewData& NextViewData() const;
-
+
+private:
void UpdateCachesL();
void ReportWidgetAmountL( const CXnViewData& aViewData );
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/inc/xnviewswitcher.h Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,279 @@
+/*
+* Copyright (c) 2002-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: View switcher.
+*
+*/
+
+#ifndef _XNVIEWSWITCHER_H
+#define _XNVIEWSWITCHER_H
+
+// System includes
+#include <e32base.h>
+#include <akntouchgesturefw.h>
+
+// User includes
+#include "xnviewmanager.h"
+
+class CXnViewControlAdapter;
+
+using namespace AknTouchGestureFw;
+
+// Class declaration
+
+/**
+ * This class handles view swithing when "finger follow" feature is used.
+ * The windows of current, next and previous views are moved along with the finger.
+ * Final view switch animation has been handled here as well.
+ *
+* @ingroup group_xnlayoutengine
+* @lib xn3layoutengine.lib
+* @since S60 5.2
+*/
+NONSHARABLE_CLASS( CXnViewSwitcher ) : public CBase
+ {
+
+ /**
+ * Important information of a view to be dragged.
+ */
+ struct TViewInformation
+ {
+ CXnControlAdapter* iAdapter;
+ CXnViewData* iViewData;
+ TBool iReadyToDraw;
+ TBool iBgDrawn;
+ };
+
+ /**
+ * States for the view swithcing using "finger follow".
+ */
+ enum TViewSwitchState
+ {
+ KViewSwitchIdle,
+ KViewSwitchBegin,
+ KViewSwitchDragOngoing,
+ KViewSwitchScroll
+ };
+
+public:
+ // Constructors and destructor
+
+ /**
+ * 2 phase construction.
+ */
+ static CXnViewSwitcher* NewL();
+
+ /**
+ * Destructor.
+ */
+ ~CXnViewSwitcher();
+
+ /**
+ * Is finger follow feature activated
+ */
+ TBool FingerFollowSupported() const;
+
+ /**
+ * Try to handle and consume pointer event
+ */
+ TBool ProcessPointerEventL( const TPointerEvent& aPointerEvent );
+
+ /**
+ * Check if flick or some gesture occured during drag
+ */
+ void TouchGesture( TAknTouchGestureFwType& aTouchGesture );
+
+ /**
+ * Updates the client rect
+ */
+ void SizeChanged( TRect aRect );
+
+
+private: // constructors
+
+ /**
+ * C++ default constructor
+ */
+ CXnViewSwitcher();
+
+ /**
+ * 2nd phase constructor
+ */
+ void ConstructL();
+
+ /**
+ * View scroll timer callback
+ */
+ static TInt TimerCallback( TAny *aPtr );
+
+ /**
+ * Gets value of finger follow support from AI repository
+ */
+ TBool IsFingerFollowSupportedL() const;
+
+ /**
+ * Adjusts current view position. Used in final animation.
+ */
+ void Scroll();
+
+ /**
+ * Moves windows according to the current view position.
+ */
+ void DoScroll();
+
+ /**
+ * Start view dragging by setting up view control adapters
+ */
+ TBool SetupViewsL();
+
+ /**
+ * Layouts and renders the given view out of sight.
+ */
+ void PrepareViewL( CXnViewSwitcher::TViewInformation& aView );
+
+ /**
+ * Removes focused node and sends the up event in order to prevent activate triggers and long tapping.
+ */
+ void StartViewDraggingL();
+
+ /**
+ * Stop view dragging and start view scroll
+ */
+ void StartViewScrolling();
+
+ /**
+ * View scrolling ended.
+ */
+ void ViewSwitchEndedL();
+
+ /**
+ * Get view data
+ */
+ CXnViewData* ViewData( CXnViewData& aCurrentViewData, TInt aView );
+
+ /**
+ * Clear view information of current, next and previous views.
+ */
+ void ClearViews();
+
+ /**
+ * Sets whether next, current or previous view is to be activeted.
+ * Updated also background if needed.
+ */
+ void UpdateViewToBeActivated( TInt aOffset );
+
+ /**
+ * Changes background image and runs NGA effect.
+ */
+ void ChangeBackground( CXnViewData& aCurrent, CXnViewData& aNext );
+
+private: // data
+
+ /**
+ * AppUi
+ */
+ CXnAppUiAdapter& iAppUi;
+
+ /**
+ * Client rect set by UI Engine
+ */
+ TRect iRect;
+
+ /**
+ * Whether the feature is supported or not. ETrue when finger follow is supported
+ */
+ TBool iFingerFollowSupported;
+
+ /**
+ * Timer for animating view switch.
+ * Own.
+ */
+ CPeriodic* iTimer;
+
+ /**
+ * Important information of the current view.
+ */
+ TViewInformation iCurrentView;
+
+ /**
+ * Important information of the view coming from the right side.
+ */
+ TViewInformation iNextView;
+
+ /**
+ * Important information of the view coming from the left side.
+ */
+ TViewInformation iPreviousView;
+
+ /**
+ * Flick gesture type.
+ */
+ //TAknTouchGestureFwType iTouchGesture;
+
+ /**
+ * The state of view switch.
+ */
+ TViewSwitchState iViewSwitchState;
+
+ /**
+ * Scroll speed in pixels.
+ */
+ TInt iScrollSpeed;
+
+ /**
+ * Total scroll distance from the beginning in mode KViewSwitchDragOngoing.
+ * Remaining distance to be scrolled in mode KViewSwitchScroll.
+ */
+ TInt iScrollDistance;
+
+ /**
+ * Measures the scroll distance in current direction. I.e. if direction changes,
+ * this is set to 0.
+ */
+ TInt iScrollDirectionDistance;
+
+ /**
+ * Position of the current view in the beginning.
+ */
+ TPoint iViewStartPosition;
+
+ /**
+ * Position in the beginning.
+ */
+ TPoint iStartPosition;
+
+ /**
+ * Current view position from the beginning.
+ */
+ TPoint iViewPosition;
+
+ /**
+ * View to be activated.
+ */
+ TInt iActivateView;
+
+ /**
+ * Tick amount to be used when calculating drag speed.
+ */
+ TInt iTickAmount;
+
+ /**
+ * Scroll direction.
+ */
+ TInt iDirection;
+
+ };
+
+#endif // _XNVIEWSWITCHER_H
+
+// End of File
--- a/idlehomescreen/nativeuicontroller/group/ainatiui.mmp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/nativeuicontroller/group/ainatiui.mmp Tue Sep 14 20:58:58 2010 +0300
@@ -20,7 +20,7 @@
#include <platform/mw/aisystemuids.hrh>
#include <data_caging_paths.hrh>
-TARGET Ai3NatiUi.dll
+TARGET ai3natiui.dll
TARGETTYPE PLUGIN
UID 0x10009D8D AI_UID_ECOM_DLL_UICONTROLLER_NATIVE
VENDORID VID_DEFAULT
@@ -45,12 +45,12 @@
START RESOURCE ai3natiui.rss
-TARGET Ai3NatiUi.rsc
+TARGET ai3natiui.rsc
END
START RESOURCE ai3nativeui.rss
HEADER
-TARGET AiNativeUi.rsc
+TARGET ainativeui.rsc
TARGETPATH APP_RESOURCE_DIR
LANGUAGE_IDS
END
--- a/idlehomescreen/nativeuicontroller/src/aidialogrenderer.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/nativeuicontroller/src/aidialogrenderer.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -25,7 +25,7 @@
#include <hscontentpublisher.h>
#include <hspublisherinfo.h>
#include <activeidle2domainpskeys.h>
-#include <AiNativeUi.rsg>
+#include <ainativeui.rsg>
#include "aidialogrenderer.h"
#include "ainativeuiplugins.h"
#ifdef __COVER_DISPLAY
@@ -48,7 +48,7 @@
#include <PsetSAObserver.h> // for CPsetSAObserver
#include <gsmerror.h> // for GSM-specific error messages
-#include <GsNetworkPluginRsc.rsg> // for resource IDs
+#include <gsnetworkpluginrsc.rsg> // for resource IDs
#include <CoreApplicationUIsSDKCRKeys.h> // for KCRUidCoreApplicationUIs, TCoreAppUIsNetworkConnectionAllowed
#include <featmgr.h>
--- a/idlehomescreen/nativeuicontroller/src/ainotifierrenderer.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/nativeuicontroller/src/ainotifierrenderer.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -22,7 +22,7 @@
#include <hscontentpublisher.h>
#include <hspublisherinfo.h>
#include <activeidle2domainpskeys.h>
-#include <AiNativeUi.rsg>
+#include <ainativeui.rsg>
#include "ainotifierrenderer.h"
#include "ainativeuiplugins.h"
--- a/idlehomescreen/nativeuicontroller/src/aisoftkeyrenderer.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/nativeuicontroller/src/aisoftkeyrenderer.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -33,7 +33,7 @@
#include <hscontentpublisher.h>
#include <hspublisherinfo.h>
-#include <AiNativeUi.rsg>
+#include <ainativeui.rsg>
#include "ainativeui.hrh"
#include "aisoftkeyrenderer.h"
--- a/idlehomescreen/nativeuicontroller/src/aistatuspanel.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/nativeuicontroller/src/aistatuspanel.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -355,6 +355,8 @@
void CAiStatusPanel::SetNaviPaneTextL( const TDesC& aText )
{
+ __PRINT(__DBG_FORMAT("XAI: CAiStatusPanel::SetNaviPaneTextL aText = %S"),
+ &aText );
delete iNaviPaneText;
iNaviPaneText = NULL;
if ( !AknStatuspaneUtils::FlatLayoutActive() )
@@ -368,6 +370,9 @@
void CAiStatusPanel::SetTitlePaneTextL( const TDesC& aText )
{
+ __PRINT(__DBG_FORMAT("XAI: CAiStatusPanel::SetTitlePaneTextL aText = %S"),
+ &aText );
+
HBufC* temp = aText.AllocL();
delete iTitlePaneText;
iTitlePaneText = temp;
@@ -395,18 +400,22 @@
void CAiStatusPanel::StopTitlePaneScrollingL()
{
+ __PRINTS("XAI: CAiStatusPanel::StopTitlePaneScrollingL");
// stop scrolling
if( iTextInTitlePane && iTitlePane->Text() )
{
+ __PRINTS("XAI: stop scrolling");
iTitlePane->SetTextL( *iTitlePane->Text(), EFalse );
}
}
void CAiStatusPanel::ScrollTitlePaneTextL()
{
+ __PRINTS("XAI: CAiStatusPanel::ScrollTitlePaneTextL");
// start scrolling
if ( iTextInTitlePane && iTitlePane->Text() )
{
+ __PRINTS("XAI: start scrolling");
iTitlePane->SetTextL( *iTitlePane->Text(), ETrue );
}
}
--- a/idlehomescreen/nativeuicontroller/src/aistatuspanetouchui.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/nativeuicontroller/src/aistatuspanetouchui.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -30,7 +30,7 @@
#include <hscontentpublisher.h>
#include <hspublisherinfo.h>
#include <aidevicestatuscontentmodel.h>
-#include <AiNativeUi.rsg>
+#include <ainativeui.rsg>
// User includes
#include "aistrcnv.h"
@@ -334,8 +334,9 @@
iProfileNamePointerArray.Remove( aIndex - 1);
}
- HBufC* name = aText.AllocL();
- iProfileNamePointerArray.Insert( name, aIndex - 1 );
+ HBufC* name = aText.AllocLC();
+ iProfileNamePointerArray.InsertL( name, aIndex - 1 );
+ CleanupStack::Pop( name );
break;
}
default:
--- a/idlehomescreen/nativeuicontroller/src/aistyluspopupmenucontent.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/nativeuicontroller/src/aistyluspopupmenucontent.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -108,14 +108,15 @@
flags = KAknButtonTextLeft | KAknButtonSizeFitText | KAknButtonNoFrame;
CAknButton* item = CAknButton::NewL( NULL, NULL, NULL, NULL, aItem,
KNullDesC, flags, 0 );
-
+ CleanupStack::PushL( item );
item->SetTextFont( AknLayoutUtils::FontFromId(
AknLayoutScalable_Avkon::
list_single_popup_submenu_pane_t1( 0 ).LayoutLine().FontId() ) );
item->SetBackground( Background() );
item->SetObserver( &aObserver );
- iItems.Append( item );
- iCommands.Append( aCommandId );
+ iItems.AppendL( item );
+ CleanupStatck::Pop( item );
+ iCommands.AppendL( aCommandId );
SizeChanged();
}
--- a/idlehomescreen/nativeuicontroller/src/aititlepanerenderer.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/nativeuicontroller/src/aititlepanerenderer.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -17,7 +17,7 @@
// System includes
#include <StringLoader.h>
-#include <AiNativeUi.rsg>
+#include <ainativeui.rsg>
#include <gulicon.h>
// User includes
@@ -105,6 +105,7 @@
}
default:
{
+ __PRINTS( "XAI: Rendering title pane > different content - leave");
User::Leave( KErrNotFound );
break;
}
@@ -112,6 +113,7 @@
}
else
{
+ __PRINTS( "XAI: Rendering title pane > Uid mismatch - leave");
User::Leave( KErrNotFound );
}
}
@@ -150,12 +152,13 @@
// We're publishing bitmap -> set text as invalid
iStatusPanel.SetTitlePaneTextL( KNullDesC );
iStatusPanel.RenderTitlePaneL();
- __PRINTS("XAI: Rendering title pane - done");
+ __PRINTS("XAI: Rendering title pane - done");
}
break;
}
default:
{
+ __PRINTS( "XAI: Rendering title pane > different content - leave");
User::Leave( KErrNotFound );
break;
}
@@ -163,6 +166,7 @@
}
else
{
+ __PRINTS( "XAI: Rendering title pane > Uid mismatch - leave");
User::Leave( KErrNotFound );
}
}
@@ -175,6 +179,8 @@
void CAiTitlePaneRenderer::DoPublishL( CHsContentPublisher& aPlugin,
TInt aContent, TInt aResource, TInt /*aIndex*/ )
{
+ __PRINT(__DBG_FORMAT("XAI: CAiTitlePaneRenderer::DoPublishL - aContent %d"), aContent );
+
const THsPublisherInfo& info( aPlugin.PublisherInfo() );
if( info.Uid() == KDeviceStatusPluginUid )
@@ -190,10 +196,12 @@
iStatusPanel.RenderTitlePaneL();
CleanupStack::PopAndDestroy(text); //text
+ __PRINTS("XAI: Rendering title pane - done");
break;
}
default:
{
+ __PRINTS( "XAI: Rendering title pane > different content - leave");
User::Leave( KErrNotFound );
break;
}
@@ -201,6 +209,7 @@
}
else
{
+ __PRINTS( "XAI: Rendering title pane > Uid mismatch - leave");
User::Leave( KErrNotFound );
}
}
@@ -213,7 +222,7 @@
void CAiTitlePaneRenderer::DoCleanL( CHsContentPublisher& aPlugin,
TInt aContent )
{
- __PRINT(__DBG_FORMAT("XAI: Clean title pane - %d"), aContent );
+ __PRINT(__DBG_FORMAT("XAI: Clean title pane - aContent %d"), aContent );
const THsPublisherInfo& info( aPlugin.PublisherInfo() );
@@ -233,13 +242,15 @@
default:
{
- User::Leave( KErrNotFound );
+ __PRINTS( "XAI: clean > different content - leave");
+ User::Leave( KErrNotFound );
break;
}
};
}
else
{
+ __PRINTS( "XAI: clean > Uid mismatch - leave");
User::Leave( KErrNotFound );
}
}
--- a/idlehomescreen/nativeuicontroller/src/aitoolbarrenderer.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/nativeuicontroller/src/aitoolbarrenderer.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -36,7 +36,7 @@
#include "ainativeuiplugins.h"
-#include <AiNativeUi.rsg>
+#include <ainativeui.rsg>
#include "debug.h"
using namespace AiNativeUiController;
@@ -337,8 +337,10 @@
if ( index >= iButtons.Count() )
{
button = CAiToolbarButton::NewL();
+ CleanupStack::PushL( button );
button->SetShortcutId( aShortcutId );
- iButtons.Append( button );
+ iButtons.AppendL( button );
+ CleanupStatck::Pop( button );
}
// Use the old button
--- a/idlehomescreen/nativeuicontroller/src/appui.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/nativeuicontroller/src/appui.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -44,7 +44,7 @@
#include "application.h"
#include "nativeuicontroller.h"
#include "aifweventhandler.h"
-#include <AiNativeUi.rsg>
+#include <ainativeui.rsg>
#include "aicontentmodel.h"
#include "aiuiidleintegration.h"
--- a/idlehomescreen/nativeuicontroller/src/nativeuicontroller.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/nativeuicontroller/src/nativeuicontroller.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -447,7 +447,7 @@
THsPublisherInfo deviceStatus( KDeviceStatusPluginUid,
KDeviceStatusPluginName, KNativeUiNamespace );
- iPlugins.Append( deviceStatus );
+ iPlugins.AppendL( deviceStatus );
TAiFwPublisherInfo devstatInfo(
deviceStatus, TAiFwCallback(), EAiFwSystemStartup );
@@ -457,7 +457,7 @@
THsPublisherInfo profile( KProfilePluginUid,
KProfilePluginName, KNativeUiNamespace );
- iPlugins.Append( profile );
+ iPlugins.AppendL( profile );
TAiFwPublisherInfo profileInfo(
profile, TAiFwCallback(), EAiFwSystemStartup );
--- a/idlehomescreen/widgetmanager/src/wmeffectmanager.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/widgetmanager/src/wmeffectmanager.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -89,7 +89,7 @@
effect->iId = aId;
effect->iType = KEffectTypeFullscreen;
effect->iState = KWaitForLayout;
- iEffects.Append( effect );
+ iEffects.AppendL( effect );
CleanupStack::Pop( effect );
--- a/idlehomescreen/widgetmanager/src/wmmaincontainer.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/widgetmanager/src/wmmaincontainer.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -935,8 +935,7 @@
CAknSearchField::EAdaptiveSearch,
0, KTextLimit );
AddControlL( iFindbox, EFindBox );
- iFindbox->AddAdaptiveSearchTextObserverL(this);
-
+
UpdateFocusMode();
StartLoadingWidgetsL();
}
--- a/idlehomescreen/widgetmanager/src/wmwidgetdata.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/widgetmanager/src/wmwidgetdata.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -132,13 +132,21 @@
// get publisher uid from widget registry
FetchPublisherUidL( aHsContentInfo->PublisherId(),
aRegistryClientSession );
-
+
+ // delete the old list box item
+ delete iMdcaPoint;
+ iMdcaPoint = NULL;
+
// create iMdcaPoint for listbox
_LIT( KFormatStr, "0\t%S");
iMdcaPoint = HBufC::NewL(
aHsContentInfo->Name().Length() + KFormatStr().Length() );
iMdcaPoint->Des().Format( KFormatStr(), &aHsContentInfo->Name() );
+ // delete the old content info
+ delete iHsContentInfo;
+ iHsContentInfo = NULL;
+
// take ownership of the content info
iHsContentInfo = aHsContentInfo;
}
@@ -423,10 +431,6 @@
TBool sameLogo = (
iHsContentInfo->IconPath() == aHsContentInfo->IconPath() );
- // delete the old content info
- delete iHsContentInfo;
- iHsContentInfo = NULL;
-
// re-init the object, take care about leave.
TRAPD( err, InitL( aHsContentInfo, NULL ); );
if ( KErrNone != err )
--- a/idlehomescreen/xmluicontroller/inc/mtransaction.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluicontroller/inc/mtransaction.h Tue Sep 14 20:58:58 2010 +0300
@@ -21,6 +21,7 @@
#include <e32hashtab.h>
+#include "aipolicyelement.h"
inline TUint32 NodeHash(const TAny* aPtr)
{
@@ -87,7 +88,8 @@
*
* @param [out] aLayoutChanged true if UI layout changes
*/
- virtual void CommitL( TBool& aLayoutChanged, RPropertyHashMap& aPropertyHashMap ) = 0;
+ virtual void CommitL( RAiPolicyElementArray& aPolicyArray,
+ RPropertyHashMap& aPropertyHashMap ) = 0;
/**
* Resets this transaction for reuse.
--- a/idlehomescreen/xmluicontroller/inc/mtransactionelement.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluicontroller/inc/mtransactionelement.h Tue Sep 14 20:58:58 2010 +0300
@@ -41,11 +41,11 @@
/**
* Commits the publish operation and actually updates the UI control/element.
*
- * @param [out] aLayoutChanged true if UI layout changes
* @see UpdateDataL()
* @see ApplyPublishingPolicy()
*/
- void CommitL( TBool& aLayoutChanged, RPropertyHashMap& aPropertyHashMap );
+ void CommitL( RAiPolicyElementArray& aPolicyArray,
+ RPropertyHashMap& aPropertyHashMap );
/**
* Resets the transaction element and clears the references to content
@@ -55,12 +55,6 @@
virtual void Reset() = 0;
/**
- * Returns the array of associated content policy elements.
- *
- */
- virtual RAiPolicyElementArray& PolicyArray() = 0;
-
- /**
* Return the target UI element for this transaction element
*/
virtual CXnNodeAppIf& Target() const = 0 ;
@@ -79,7 +73,7 @@
*
* @param [out] aLayoutChanged true if UI layout changes
*/
- virtual void ApplyPublishingPolicy( TBool& aLayoutChanged,
+ virtual void ApplyPublishingPolicy( RAiPolicyElementArray& aPolicyArray,
RPropertyHashMap& aPropertyHashMap ) = 0;
protected: // Constructors and destructor
--- a/idlehomescreen/xmluicontroller/inc/transaction.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluicontroller/inc/transaction.h Tue Sep 14 20:58:58 2010 +0300
@@ -57,7 +57,7 @@
void Append(MTransactionElement& aElement);
- void CommitL(TBool& aLayoutChanged, RPropertyHashMap& aPropertyHashMap);
+ void CommitL(RAiPolicyElementArray& aPolicyArray, RPropertyHashMap& aPropertyHashMap);
void Reset(MTransactionFactory& aFactory);
--- a/idlehomescreen/xmluicontroller/inc/transactionelement.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluicontroller/inc/transactionelement.h Tue Sep 14 20:58:58 2010 +0300
@@ -59,8 +59,6 @@
void Reset();
- RAiPolicyElementArray& PolicyArray();
-
/**
* Sets current content priority value.
*
@@ -106,10 +104,10 @@
* The policy is applied by modifying CSS property defined
* by non-empty content.
*/
- void ApplyPublishingPolicy( TBool& aLayoutChanged,
+ void ApplyPublishingPolicy( RAiPolicyElementArray& aPolicyArray,
RPropertyHashMap& aPropertyHashMap );
- void DoApplyPublishingPolicyL( TBool& aLayoutChanged,
+ void DoApplyPublishingPolicyL( RAiPolicyElementArray& aPolicyArray,
RPropertyHashMap& aPropertyHashMap );
/**
@@ -127,11 +125,6 @@
private:
/**
- * Array of policy elements
- */
- RAiPolicyElementArray iPolicyArray;
-
- /**
* Content priority map
*/
AiUtility::CContentPriorityMap& iContentPriorityMap;
--- a/idlehomescreen/xmluicontroller/inc/transactionfactoryimpl.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluicontroller/inc/transactionfactoryimpl.h Tue Sep 14 20:58:58 2010 +0300
@@ -22,6 +22,7 @@
#include <e32base.h>
#include "transactionfactory.h"
+#include "aipolicyelement.h"
namespace AiUtility
{
@@ -85,6 +86,10 @@
void ReleaseTransactionElement( MTransactionElement* aElement );
TBool IsSupported( CXnNodeAppIf& aTarget, const TDesC8& aContentType );
+
+ RAiPolicyElementArray& CTransactionFactoryImpl::PolicyArray();
+
+ void CTransactionFactoryImpl::ResetPolicyArray();
private: // Construction
@@ -133,6 +138,11 @@
* UI controller's CSS property map. Not own.
*/
CCssPropertyMap& iPropertyMap;
+
+ /**
+ * Array of policy elements
+ */
+ RAiPolicyElementArray iPolicyArray;
};
} // namespace AiXmlUiController
--- a/idlehomescreen/xmluicontroller/src/contentrenderer.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluicontroller/src/contentrenderer.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -442,7 +442,7 @@
TBool layoutChanged( EFalse );
- TRAPD( error, tr->CommitL( layoutChanged, propertyHashMap ) );
+ TRAPD( error, tr->CommitL( iFactory->PolicyArray(), propertyHashMap ) );
if( error == KErrNone )
{
@@ -464,7 +464,8 @@
);
- iFactory->ReleaseTransaction( tr );
+ iFactory->ReleaseTransaction( tr );
+ iFactory->ResetPolicyArray();
return error;
}
@@ -1014,10 +1015,10 @@
}
iPolicyEvaluator->EvaluateContentPolicyL(
- *target, element->PolicyArray() );
+ *target, iFactory->PolicyArray() );
iPolicyEvaluator->EvaluateVisibilityPolicyL(
- *target, element->PolicyArray() );
+ *target, iFactory->PolicyArray() );
ProcessTransactionElementL( element );
}
@@ -1131,10 +1132,10 @@
*target, aFile, priority );
iPolicyEvaluator->EvaluateContentPolicyL(
- *target, element->PolicyArray() );
+ *target, iFactory->PolicyArray() );
iPolicyEvaluator->EvaluateVisibilityPolicyL(
- *target, element->PolicyArray() );
+ *target, iFactory->PolicyArray() );
ProcessTransactionElementL( element );
}
@@ -1214,10 +1215,10 @@
*target, aIndex );
iPolicyEvaluator->EvaluateEmptyContentPolicyL(
- *target, element->PolicyArray() );
+ *target, iFactory->PolicyArray() );
iPolicyEvaluator->EvaluateVisibilityPolicyL(
- *target, element->PolicyArray() );
+ *target, iFactory->PolicyArray() );
ProcessTransactionElementL( element );
@@ -1275,7 +1276,7 @@
RPropertyHashMap propertyHashMap;
CleanupClosePushL( propertyHashMap );
- aElement->CommitL( layoutChanged, propertyHashMap );
+ aElement->CommitL( iFactory->PolicyArray(), propertyHashMap );
SetPropertyArraysL( propertyHashMap );
CleanupStack::PopAndDestroy( &propertyHashMap );
@@ -1444,22 +1445,22 @@
if ( aResource )
{
iPolicyEvaluator->EvaluateResourcePolicyL(
- *target, *aResource, element->PolicyArray() );
+ *target, *aResource, iFactory->PolicyArray() );
iPolicyEvaluator->EvaluateContentPolicyL(
- *target, element->PolicyArray() );
+ *target, iFactory->PolicyArray() );
iPolicyEvaluator->EvaluateVisibilityPolicyL(
- *target, element->PolicyArray() );
+ *target, iFactory->PolicyArray() );
}
else
{
iPolicyEvaluator->EvaluateContentPolicyL(
- *target, element->PolicyArray() );
+ *target, iFactory->PolicyArray() );
iPolicyEvaluator->EvaluateVisibilityPolicyL(
- *target, element->PolicyArray() );
+ *target, iFactory->PolicyArray() );
}
ProcessTransactionElementL( element );
@@ -1522,21 +1523,21 @@
if ( aResource )
{
iPolicyEvaluator->EvaluateResourcePolicyL(
- *target, *aResource, element->PolicyArray() );
+ *target, *aResource, iFactory->PolicyArray() );
iPolicyEvaluator->EvaluateContentPolicyL(
- *target, element->PolicyArray() );
+ *target, iFactory->PolicyArray() );
iPolicyEvaluator->EvaluateVisibilityPolicyL(
- *target, element->PolicyArray() );
+ *target, iFactory->PolicyArray() );
}
else
{
iPolicyEvaluator->EvaluateContentPolicyL(
- *target, element->PolicyArray() );
+ *target, iFactory->PolicyArray() );
iPolicyEvaluator->EvaluateVisibilityPolicyL(
- *target, element->PolicyArray() );
+ *target, iFactory->PolicyArray() );
}
ProcessTransactionElementL( element );
--- a/idlehomescreen/xmluicontroller/src/transaction.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluicontroller/src/transaction.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -57,10 +57,8 @@
iTransactionElements.AddLast(dynamic_cast<CTransactionElement&>(aElement));
}
-void CTransaction::CommitL( TBool& aLayoutChanged, RPropertyHashMap& aPropertyHashMap )
+void CTransaction::CommitL( RAiPolicyElementArray& aPolicyArray, RPropertyHashMap& aPropertyHashMap )
{
- aLayoutChanged = EFalse;
-
if ( iTransactionElements.IsEmpty() )
{
// Nothing to do
@@ -75,7 +73,7 @@
while ( iter )
{
// Commit element and advance iterator
- (iter++)->CommitL( aLayoutChanged, aPropertyHashMap );
+ (iter++)->CommitL( aPolicyArray, aPropertyHashMap );
}
}
--- a/idlehomescreen/xmluicontroller/src/transactionelement.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluicontroller/src/transactionelement.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -24,6 +24,7 @@
#include "xmluicontrollerpanic.h"
#include "aixmluiutils.h"
#include "aixmluiconstants.h"
+#include "aipolicyelement.h"
#include "contentprioritymap.h"
@@ -35,13 +36,14 @@
/**
* Template method implementation
*/
-void MTransactionElement::CommitL( TBool& aLayoutChanged, RPropertyHashMap& aPropertyHashMap )
+void MTransactionElement::CommitL( RAiPolicyElementArray& aPolicyArray,
+ RPropertyHashMap& aPropertyHashMap )
{
// Update UI element data
UpdateDataL();
// Update CSS properties
- ApplyPublishingPolicy( aLayoutChanged, aPropertyHashMap );
+ ApplyPublishingPolicy( aPolicyArray, aPropertyHashMap );
}
CTransactionElement::CTransactionElement( AiUtility::CContentPriorityMap& aContentPriorityMap )
@@ -61,13 +63,6 @@
iContentPriority = KErrNotFound;
iElementLink.Deque();
-
- iPolicyArray.Reset();
- }
-
-RAiPolicyElementArray& CTransactionElement::PolicyArray()
- {
- return iPolicyArray;
}
void CTransactionElement::SetContentPriority( TInt aPriority )
@@ -86,20 +81,22 @@
iTarget = &aTarget;
}
-void CTransactionElement::ApplyPublishingPolicy( TBool& aLayoutChanged, RPropertyHashMap& aPropertyHashMap )
+void CTransactionElement::ApplyPublishingPolicy( RAiPolicyElementArray& aPolicyArray,
+ RPropertyHashMap& aPropertyHashMap )
{
// Ignore errors if CSS property could not be modified
- TRAP_IGNORE( DoApplyPublishingPolicyL( aLayoutChanged, aPropertyHashMap ) );
+ TRAP_IGNORE( DoApplyPublishingPolicyL( aPolicyArray, aPropertyHashMap ) );
}
-void CTransactionElement::DoApplyPublishingPolicyL( TBool& aLayoutChanged, RPropertyHashMap& aPropertyHashMap )
+void CTransactionElement::DoApplyPublishingPolicyL( RAiPolicyElementArray& aPolicyArray,
+ RPropertyHashMap& aPropertyHashMap )
{
RArray<CXnNodeAppIf*> targetArray;
CleanupClosePushL( targetArray );
- for ( TInt i = 0; i < iPolicyArray.Count() && iPropertyMap; ++i )
+ for ( TInt i = 0; i < aPolicyArray.Count() && iPropertyMap; ++i )
{
- TAiPolicyElement& element = iPolicyArray[ i ];
+ TAiPolicyElement& element = aPolicyArray[ i ];
RArray<TAiPolicyElement> elementArray;
CleanupClosePushL( elementArray );
@@ -118,15 +115,15 @@
if( !found )
{
// Mark this target to be processed
- targetArray.Append( &(element.Target()) );
+ targetArray.AppendL( &(element.Target()) );
- for( TInt i3 = 0; i3 < iPolicyArray.Count(); ++i3 )
+ for( TInt i3 = 0; i3 < aPolicyArray.Count(); ++i3 )
{
- TAiPolicyElement& element2 = iPolicyArray[ i3 ];
+ TAiPolicyElement& element2 = aPolicyArray[ i3 ];
// find form target array
if( &(element.Target()) == &(element2.Target()) )
{
- elementArray.Append( element2 );
+ elementArray.AppendL( element2 );
}
}
@@ -144,10 +141,6 @@
CleanupStack::PopAndDestroy(); // targetArray
- if ( iPolicyArray.Count() > 0 )
- {
- aLayoutChanged |= ETrue;
- }
}
CXnNodeAppIf& CTransactionElement::Target() const
--- a/idlehomescreen/xmluicontroller/src/transactionfactoryimpl.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluicontroller/src/transactionfactoryimpl.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -49,9 +49,18 @@
CTransactionFactoryImpl* self =
new( ELeave ) CTransactionFactoryImpl( aContentPriorityMap,
aPropertyMap );
-
return self;
}
+
+RAiPolicyElementArray& CTransactionFactoryImpl::PolicyArray()
+ {
+ return iPolicyArray;
+ }
+
+void CTransactionFactoryImpl::ResetPolicyArray()
+ {
+ iPolicyArray.Reset();
+ }
CTransactionFactoryImpl::~CTransactionFactoryImpl()
{
@@ -62,6 +71,8 @@
// Delete transaction elements
DeleteElementList( iAvailableElements );
DeleteElementList( iReservedElements );
+
+ ResetPolicyArray();
}
MTransaction* CTransactionFactoryImpl::CreateTransactionL( TInt aTxId )
--- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/group/xnclockfactory.mmp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/group/xnclockfactory.mmp Tue Sep 14 20:58:58 2010 +0300
@@ -31,6 +31,7 @@
SOURCE xnclock.cpp
SOURCE xnclockadapter.cpp
SOURCE xnclockcontrol.cpp
+SOURCE xndatecontrol.cpp
SOURCE xnclockface.cpp
USERINCLUDE ../inc
@@ -51,6 +52,8 @@
LIBRARY fbscli.lib
LIBRARY gdi.lib
LIBRARY hwrmlightclient.lib
+LIBRARY commonengine.lib
+LIBRARY bafl.lib
LANG SC
--- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockadapter.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockadapter.h Tue Sep 14 20:58:58 2010 +0300
@@ -30,6 +30,7 @@
// Forward declarations
class CXnNodePluginIf;
class CXnClockControl;
+class CXnDateControl;
class CAknLayoutFont;
class CFont;
class TRgb;
@@ -42,22 +43,20 @@
*/
NONSHARABLE_CLASS( CXnClockAdapter ) : public CXnControlAdapter,
public MCoeMessageMonitorObserver, public MHWRMLightObserver
- {
-public:
- enum TClockFont
- {
- EDigitalFont,
- EAmPmFont,
- EDateFont
- };
-
+ {
public:
// constructor and destructor
/**
* 2 phase construction.
+ *
+ * @param aParent Parent control
+ * @param aNode clock node
+ *
+ * @return Newly constructed object
*/
- static CXnClockAdapter* NewL( CXnControlAdapter* aParent, CXnNodePluginIf& aNode );
+ static CXnClockAdapter* NewL( CXnControlAdapter* aParent,
+ CXnNodePluginIf& aNode );
/**
* Destructor.
@@ -66,39 +65,46 @@
public:
// New functions
-
- /**
- * Gets font based on type
- *
- * @return Font based on aType, NULL if not found
- */
- const CAknLayoutFont* FontL( const TInt aType );
-
- /**
- * Gets text color
- *
- * @return Text color
- */
- const TRgb& TextColorL();
-
- /**
- * Gets date information
- *
- * @return A node which holds date information
- */
- CXnNodePluginIf* Date() const;
-
- /**
- * Gets day information
- *
- * @return A node which holds day information
- */
- CXnNodePluginIf* Day() const;
+
+ /*
+ * Create font
+ *
+ * @param aNode Node which contains info of font
+ * @param aFontName Font name
+ * @param aFont On return points to a created font
+ */
+ void CreateFontL( CXnNodePluginIf& aNode,
+ const TDesC& aFontName,
+ CFont*& aFont );
+
+ /*
+ * Create color
+ *
+ * @param aNode Node which contains color info
+ * @param aColor On return points to a created color
+ */
+ void CreateColorL( CXnNodePluginIf& aNode, TRgb& aColor );
/**
* Calls DrawNow, if node is laidout
*/
void UpdateDisplay() const;
+
+ /**
+ * Sets clock format
+ *
+ * @param aFormat format of clock to set
+ */
+ void SetClockFormatL( TClockFormat aFormat );
+
+ /**
+ * Gets text align from text-align property
+ *
+ * @param aNode Node which contains property
+ *
+ * @return Text align or CGraphicsContext::ECenter if property is not set
+ */
+ CGraphicsContext::TTextAlign GetTextAlignL( CXnNodePluginIf& aNode );
public:
// from base classes
@@ -164,16 +170,6 @@
void ConstructL();
private: // New functions
-
- /*
- * Create font
- */
- void CreateFontL( const TInt aType );
-
- /*
- * Create color
- */
- void CreateColorL();
/**
* Starts clock
@@ -185,29 +181,47 @@
*/
void StopClock();
+ /**
+ * Sets display property of node to block or none
+ *
+ * @param aNode Node which display property is set
+ * @param aBlock Value of display property to set
+ */
+ void SetDisplayToBlockL( CXnNodePluginIf& aNode, TBool aBlock );
+
private:
// Parent control, not owned
CXnControlAdapter* iParent;
// UI node, not owned
CXnNodePluginIf& iNode;
- // Digital clock date information, not owned
+ // Digital clock element, not owned
+ CXnNodePluginIf* iDigital;
+ // Analog clock element, not owned
+ CXnNodePluginIf* iAnalog;
+ // Day number element, not owned
+ CXnNodePluginIf* iDay;
+ // Am\Pm element, not owned
+ CXnNodePluginIf* iAmpm;
+ // Digital face 12h element, not owned
+ CXnNodePluginIf* iDigitalFace12;
+ // Digital face 24h element, not owned
+ CXnNodePluginIf* iDigitalFace24;
+ // Analog face element, not owned
+ CXnNodePluginIf* iAnalogFace;
+ // Date element, not owned
CXnNodePluginIf* iDate;
- // Analog clock day information, not owned
- CXnNodePluginIf* iDay;
+ // Digital clock date element, not owned
+ CXnNodePluginIf* iDigitalDate;
+ // Analog clock date element, not owned
+ CXnNodePluginIf* iAnalogDate;
// Light observer, owned
CHWRMLight* iLightObserver;
- // Clock control, owned
- CXnClockControl* iClockControl;
- // Digital clock font, not owned
- CFont* iDigitalFont;
- // AmPm font, not owned
- CFont* iAmPmFont;
- // Date font, not owned
- CFont* iDateFont;
- // Font color
- TRgb iColor;
- // Flag for initializing font color
- TBool iColorSet;
+ // Clock control, owned
+ CXnClockControl* iClockControl;
+ // Date control, owned
+ CXnDateControl* iDateControl;
+ // Day number control, owned
+ CXnDateControl* iDayControl;
// Flag indicating foreground state
TBool iForeground;
// Flag indicating lights status
--- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockcontrol.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockcontrol.h Tue Sep 14 20:58:58 2010 +0300
@@ -28,6 +28,7 @@
class CWindowGc;
class CXnClockAdapter;
class CXnClockFace;
+class CXnNodePluginIf;
// Class declaration
/**
@@ -44,17 +45,15 @@
*
* @since S60 5.1
*
- * @param aContainerWindow Container window for the clock component.
- *
+ * @param aAdapter Reference to clockadapter.
* @param aFormatFromLocale Boolean flag to indicate whether the clock
* format should be updated from the locale.
- *
- * @param aContextPaneClock Boolean flag that indicates whether the
- * clock is in the context pane.
+ * @param aFormat Boolean flag that indicates whether the
+ * clock is digital or analog.
*
* @return Newly constructed object.
*/
- static CXnClockControl* NewL( CXnClockAdapter* aAdapter,
+ static CXnClockControl* NewL( CXnClockAdapter& aAdapter,
const TBool aFormatFromLocale,
const TClockFormat aFormat );
@@ -91,9 +90,10 @@
* Draws the clock
*
* @param aGc Context where to draw
- * @param aRect Rect Clock rect
+ * @param aNode Node to draw
+ * @param aAmpm Possible am/pm text to draw
*/
- void Draw( CWindowGc& aGc, const TRect& aRect );
+ void Draw( CWindowGc& aGc, CXnNodePluginIf* aNode, CXnNodePluginIf* aAmpm );
/**
* Starts the clock timer.
@@ -106,6 +106,16 @@
* Used when the clock loses visibility.
*/
void StopTimer();
+
+ /**
+ * Checks if clock format has changed
+ */
+ void CheckClockFormatL();
+
+ /**
+ * Reset font and color
+ */
+ void ResetFont();
private: // New functions
@@ -123,7 +133,7 @@
/**
* C++ default constructor.
*/
- CXnClockControl( CXnClockAdapter* aAdapter,
+ CXnClockControl( CXnClockAdapter& aAdapter,
const TBool aFormatFromLocale,
const TClockFormat aFormat );
@@ -139,11 +149,13 @@
// Clock face, owned
CXnClockFace* iFace;
// Clock adapter, not owned
- CXnClockAdapter* iAdapter;
+ CXnClockAdapter& iAdapter;
// Clock format
- TClockFormat iClockFormat;
- // Flag indicating whetger format clock from locale
- TBool iFormatFromLocale;
+ TClockFormat iClockFormat;
+ // Time format
+ TTimeFormat iTimeFormat;
+ // Flag indicating whether format clock from locale
+ TBool iFormatFromLocale;
};
#endif // _XNCLOCKCONTROL_H
--- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockface.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockface.h Tue Sep 14 20:58:58 2010 +0300
@@ -24,6 +24,7 @@
// FORWARD DECLARATIONS
class CXnClockAdapter;
+class CXnNodePluginIf;
class CWindowGc;
// CLASS DECLARATIONS
@@ -49,22 +50,35 @@
* @since S60 5.1
*
* @param aAdapter Clock adapter
- *
* @param aGc Graphics context that can be used to draw to
- * the clock
- *
- * @param aRect Rect where to scale the clock
- *
+ * the clock
+ * @param aNode Node which contains drawing info
* @param aTime Time to be used for drawing.
+ * @param aAmpm Possible am\pm text to draw
*/
virtual void DrawL( CXnClockAdapter& aAdapter,
CWindowGc& aGc,
- const TRect& aRect,
- const TTime& aTime ) = 0;
+ CXnNodePluginIf& aNode,
+ const TTime& aTime,
+ CXnNodePluginIf* aAmpm ) = 0;
+
+ /**
+ * Reset font
+ */
+ virtual void ResetFont() = 0;
};
class CXnClockFaceDigital : public CXnClockFace
{
+ public:
+ /**
+ * Type of font, digital or for am/pm text
+ */
+ enum TXnClockFontType {
+ EClock,
+ EAmpm
+ };
+
public: // Constructors and destructor
/**
@@ -84,8 +98,14 @@
*/
void DrawL( CXnClockAdapter& aAdapter,
CWindowGc& aGc,
- const TRect& aRect,
- const TTime& aTime );
+ CXnNodePluginIf& aNode,
+ const TTime& aTime,
+ CXnNodePluginIf* aAmpm );
+
+ /**
+ * @see CXnClockFace::ResetFont
+ */
+ void ResetFont();
private:
@@ -98,8 +118,60 @@
* By default Symbian 2nd phase constructor is private.
*/
void ConstructL();
+
+ /**
+ * Draws am/pm text
+ *
+ * @param aAdapter Clock adapter
+ * @param aGc Graphics context that can be used to draw to
+ * the clock
+ * @param aTime Time to be used for drawing.
+ * @param aAmpm Contains info for drawing
+ */
+ void DrawAmpmL( CXnClockAdapter& aAdapter,
+ CWindowGc& aGc,
+ const TTime& aTime,
+ CXnNodePluginIf& aAmpm );
+
+ /**
+ * Creates font
+ *
+ * @param aAdapter Clock adapter
+ * @param aNode Contains info to create font
+ * @param aFontType Digital clock font or am/pm font
+ *
+ * @return CAknLayoutFont
+ */
+ const CAknLayoutFont* CreateFontL( CXnClockAdapter& aAdapter,
+ CXnNodePluginIf& aNode,
+ TXnClockFontType aFontType );
+
+ /**
+ * Creates font color
+ *
+ * @param aAdapter Clock adapter
+ * @param aNode Contains info to create color
+ * @param aFontType Digital clock font color or am/pm font color
+ *
+ * @return Color
+ */
+ const TRgb& CreateColorL( CXnClockAdapter& aAdapter,
+ CXnNodePluginIf& aNode,
+ TXnClockFontType aFontType);
private: // Data
+ // Date font, not owned
+ CFont* iClockFont;
+ // Date font, not owned
+ CFont* iAmpmFont;
+ // Digital clock font color
+ TRgb iFaceColor;
+ // Indicates whether digital clock color should be created
+ TBool iIsFaceColorSet;
+ // Am/pm text font color
+ TRgb iAmpmColor;
+ // Indicates whether am/pm font color should be created
+ TBool iIsAmpmColorSet;
};
class CXnClockFaceAnalog : public CXnClockFace
@@ -123,8 +195,14 @@
*/
void DrawL( CXnClockAdapter& aAdapter,
CWindowGc& aGc,
- const TRect& aRect,
- const TTime& aTime );
+ CXnNodePluginIf& aNode,
+ const TTime& aTime,
+ CXnNodePluginIf* aAmpm );
+
+ /**
+ * @see CXnClockFace::ResetFont
+ */
+ void ResetFont();
private: // New functions
@@ -132,10 +210,8 @@
* Draws the hands of the clock.
*
* @param aGc Graphics context that can be used to draw to the
- * clock
- *
+ * clock
* @param aRect Rectangle defining the size of the clock.
- *
* @param aDateTime Time to be used for drawing.
*/
void DrawHandsL( CWindowGc& aGc, const TRect& aRect,
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xndatecontrol.h Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,161 @@
+/*
+* Copyright (c) 2006-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Date control
+*
+*/
+
+
+#ifndef _XNDATECONTROL_H
+#define _XNDATECONTROL_H
+
+// System includes
+#include <e32base.h>
+
+// User includes
+
+// Forward declarations
+class CWindowGc;
+class CXnClockAdapter;
+class CXnNodePluginIf;
+class CEnvironmentChangeNotifier;
+
+enum TXnDateType {
+ EDate,
+ EDay
+ };
+
+// Class declaration
+/**
+* @ingroup group_xnclockfactory
+* @lib xnclockfactory.lib
+* @since S60 5.0
+*/
+NONSHARABLE_CLASS( CXnDateControl ) : public CBase
+ {
+public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ *
+ * @since S60 5.1
+ *
+ * @param aAdapter Clock adapter
+ * @param aType Type of date. Could be date or day number
+ *
+ * @return Newly constructed object.
+ */
+ static CXnDateControl* NewL( CXnClockAdapter& aAdapter,
+ TXnDateType aType );
+
+
+ /**
+ * Destructor.
+ */
+ virtual ~CXnDateControl();
+
+public: // New functions
+
+ /**
+ * Draws the clock
+ *
+ * @param aGc Context where to draw
+ * @param aNode Contains drawing info
+ */
+ void DrawL( CWindowGc& aGc, CXnNodePluginIf* aNode );
+
+ /**
+ * Resets font and color values
+ */
+ void ResetFont();
+
+private: // New functions
+
+ /**
+ * Constructs date string
+ *
+ * @return pointer to date string.
+ */
+ HBufC* ConstructDateStringL();
+
+ /**
+ * Constructs day number string
+ *
+ * @return pointer to day number string.
+ */
+ HBufC* ConstructDayStringL();
+
+private:
+
+ /**
+ * C++ default constructor.
+ */
+ CXnDateControl( CXnClockAdapter& aAdapter,
+ TXnDateType aType );
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL();
+
+ /**
+ * Creates font
+ *
+ * @param aNode Contains info of font
+ *
+ * @return CAknLayoutFont
+ */
+ const CAknLayoutFont* CreateFontL( CXnNodePluginIf& aNode );
+
+ /**
+ * Creates font color
+ *
+ * @param aNode Contains info of color
+ */
+ const TRgb& CreateColorL( CXnNodePluginIf& aNode );
+
+ /**
+ * Callback when enviroment changed.
+ *
+ * @param aPtr Pointer to self
+ *
+ * @return KErrNone
+ */
+ static TInt HandleCallBackL( TAny *aPtr );
+
+ /**
+ * Updated date/day string
+ */
+ void RefreshDateL();
+
+private: // data
+
+ // Holds date/day text, owned
+ HBufC* iDateText;
+ // Clock adapter
+ CXnClockAdapter& iAdapter;
+ // Date font, not owned
+ CFont* iDateFont;
+ // Font color
+ TRgb iDateColor;
+ // Indicates whether color should be created
+ TBool iIsColorSet;
+ // Environment notifier, owned
+ CEnvironmentChangeNotifier* iEnvNotifier;
+ // Type of date. Could be date or day number
+ TXnDateType iDateType;
+ };
+
+#endif // _XNDATECONTROL_H
+
+// End of File
--- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockadapter.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockadapter.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -31,15 +31,13 @@
#include "xncontroladapter.h"
#include "xnclockcontrol.h"
#include "xnclockadapter.h"
+#include "xndatecontrol.h"
#include "c_xnutils.h"
// Constants
-_LIT8( KDateInformation, "Clock/DateInformation" );
-_LIT8( KDayInformation, "Clock/DayInformation" );
-
-_LIT( KDigitalFont, "EAknLogicalFontSecondaryFont" );
-_LIT( KAmPmFont, "EAknLogicalFontSecondaryFont" );
-_LIT( KDateFont, "EAknLogicalFontSecondaryFont" );
+_LIT8( KDisplay, "display" );
+_LIT8( KNone, "none" );
+_LIT8( KBlock, "block" );
// ============================ LOCAL FUNCTIONS ===============================
@@ -120,6 +118,8 @@
delete iLightObserver;
delete iClockControl;
+ delete iDateControl;
+ delete iDayControl;
}
// -----------------------------------------------------------------------------
@@ -135,45 +135,177 @@
iLightObserver = CHWRMLight::NewL( this );
+ TBool useLocale;
+ CXnProperty* prop(
+ iNode.GetPropertyL( XnPropertyNames::clock::KS60Format ) );
+ TClockFormat format( ClockFormat( prop, useLocale ) );
+
RPointerArray< CXnNodePluginIf > children( iNode.ChildrenL() );
CleanupClosePushL( children );
- for( TInt i = 0; i < children.Count(); i++ )
+ for ( TInt i = 0; i < children.Count(); i++ )
{
CXnNodePluginIf* child( children[i] );
-
- CXnProperty* id( child->IdL() );
+ const TDesC8& clocktype = child->Type()->Type();
- if( id )
+ if ( clocktype == XnPropertyNames::clock::format::KDigital )
+ {
+ iDigital = child;
+ }
+ else if ( clocktype == XnPropertyNames::clock::format::KAnalog )
+ {
+ iAnalog = child;
+ }
+ else if ( clocktype == XnPropertyNames::clock::KDate )
{
- if( id->StringValue() == KDateInformation )
+ if ( !iDateControl )
+ {
+ iDateControl = CXnDateControl::NewL( *this, EDate );
+ }
+ iDate = child;
+ }
+
+ RPointerArray< CXnNodePluginIf > clockChildren( child->ChildrenL() );
+ CleanupClosePushL( clockChildren );
+ for ( TInt j = 0; j < clockChildren.Count(); j++ )
+ {
+ CXnNodePluginIf* clockChild( clockChildren[j] );
+ const TDesC8& childType = clockChild->Type()->Type();
+
+ if ( childType == XnPropertyNames::clock::KFace12 )
+ {
+ if ( !iClockControl )
+ {
+ iClockControl = CXnClockControl::NewL( *this, useLocale, format );
+ }
+ iDigitalFace12 = clockChild;
+ }
+ else if ( childType == XnPropertyNames::clock::KFace24 )
{
- iDate = child;
+ if ( !iClockControl )
+ {
+ iClockControl = CXnClockControl::NewL( *this, useLocale, format );
+ }
+ iDigitalFace24 = clockChild;
}
- else if( id->StringValue() == KDayInformation )
+ else if ( childType == XnPropertyNames::clock::KFace )
+ {
+ if ( !iClockControl )
+ {
+ iClockControl = CXnClockControl::NewL( *this, useLocale, format );
+ }
+ iAnalogFace = clockChild;
+ }
+ else if ( childType == XnPropertyNames::clock::KDate &&
+ clocktype == XnPropertyNames::clock::format::KDigital )
{
- iDay = child;
+ if ( !iDateControl )
+ {
+ iDateControl = CXnDateControl::NewL( *this, EDate );
+ }
+ iDigitalDate = clockChild;
+ }
+ else if ( childType == XnPropertyNames::clock::KDate &&
+ clocktype == XnPropertyNames::clock::format::KAnalog )
+ {
+ if ( !iDateControl )
+ {
+ iDateControl = CXnDateControl::NewL( *this, EDate );
+ }
+ iAnalogDate = clockChild;
}
+ else if ( childType == XnPropertyNames::clock::KDay )
+ {
+ if ( !iDayControl )
+ {
+ iDayControl = CXnDateControl::NewL( *this, EDay );
+ }
+ iDay = clockChild;
+ }
+ else if ( childType == XnPropertyNames::clock::KAmpm )
+ {
+ iAmpm = clockChild;
+ }
}
+ CleanupStack::PopAndDestroy( &clockChildren );
}
CleanupStack::PopAndDestroy( &children );
- TBool useLocale;
-
- CXnProperty* prop(
- iNode.GetPropertyL( XnPropertyNames::clock::KS60Format ) );
-
- TClockFormat format( ClockFormat( prop, useLocale ) );
-
- iClockControl = CXnClockControl::NewL( this, useLocale, format );
+ SetClockFormatL( format );
iCoeEnv->AddMessageMonitorObserverL( *this );
}
+
+// -----------------------------------------------------------------------------
+// CXnClockAdapter::SetDisplayToBlockL
+// -----------------------------------------------------------------------------
+//
+void CXnClockAdapter::SetDisplayToBlockL( CXnNodePluginIf& aNode, TBool aBlock )
+ {
+ CXnDomStringPool& sp = aNode.UiEngineL()->StringPool();
+ CXnProperty* prop;
+ if ( aBlock )
+ {
+ prop = CXnProperty::NewL(
+ KDisplay, KBlock, CXnDomPropertyValue::EString, sp );
+ }
+ else
+ {
+ prop = CXnProperty::NewL(
+ KDisplay, KNone, CXnDomPropertyValue::EString, sp );
+ }
+ CleanupStack::PushL( prop );
+ aNode.SetPropertyL( prop );
+ CleanupStack::Pop( prop );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnClockAdapter::SetClockFormatL
+// -----------------------------------------------------------------------------
+//
+void CXnClockAdapter::SetClockFormatL( TClockFormat aFormat )
+ {
+ if ( iAnalog && iDigital )
+ {
+ if ( aFormat == EClockAnalog )
+ {
+ SetDisplayToBlockL( *iAnalog, ETrue );
+ SetDisplayToBlockL( *iDigital, EFalse );
+ }
+ else
+ {
+ SetDisplayToBlockL( *iDigital, ETrue );
+ SetDisplayToBlockL( *iAnalog, EFalse );
+ // check whether time format is 12 or 24
+ if ( iDigitalFace12 && iDigitalFace24 )
+ {
+ if ( TLocale().TimeFormat() == ETime12 )
+ {
+ SetDisplayToBlockL( *iDigitalFace12, ETrue );
+ if ( iAmpm )
+ {
+ SetDisplayToBlockL( *iAmpm, ETrue );
+ }
+ SetDisplayToBlockL( *iDigitalFace24, EFalse );
+ }
+ else
+ {
+ SetDisplayToBlockL( *iDigitalFace24, ETrue );
+ SetDisplayToBlockL( *iDigitalFace12, EFalse );
+ if ( iAmpm )
+ {
+ SetDisplayToBlockL( *iAmpm, EFalse );
+ }
+ }
+ }
+ }
+ iNode.UiEngineL()->LayoutUIL( &iNode );
+ }
+ }
// -----------------------------------------------------------------------------
// CXnClockAdapter::DoHandlePropertyChangeL
-//
// -----------------------------------------------------------------------------
//
void CXnClockAdapter::DoHandlePropertyChangeL( CXnProperty* aProperty )
@@ -182,7 +314,7 @@
{
const TDesC8& name( aProperty->Property()->Name() );
- if( name == XnPropertyNames::clock::KS60Format )
+ if( iClockControl && name == XnPropertyNames::clock::KS60Format )
{
TBool useLocale;
@@ -190,28 +322,11 @@
iClockControl->SetFormatL( useLocale, format );
}
- else if( name == XnPropertyNames::clock::KS60DigitalFontSize )
- {
- iDigitalFont = NULL;
- }
- else if( name == XnPropertyNames::clock::KS60AmPmFontSize )
- {
- iAmPmFont = NULL;
- }
- else if( name == XnPropertyNames::clock::KS60DateFontSize )
- {
- iDateFont = NULL;
- }
- else if( name == XnPropertyNames::appearance::common::KColor )
- {
- iColorSet = EFalse;
- }
}
}
// -----------------------------------------------------------------------------
// CXnClockAdapter::UpdateDisplay
-// Draws the clock component
// -----------------------------------------------------------------------------
//
void CXnClockAdapter::UpdateDisplay() const
@@ -224,7 +339,6 @@
// -----------------------------------------------------------------------------
// CXnClockAdapter::Draw
-// Draws the clock component
// -----------------------------------------------------------------------------
//
void CXnClockAdapter::Draw( const TRect& aRect ) const
@@ -232,13 +346,51 @@
CXnControlAdapter::Draw( aRect );
CWindowGc& gc( SystemGc() );
-
- iClockControl->Draw( gc, iNode.Rect() );
+
+ if ( iClockControl )
+ {
+ TClockFormat format = iClockControl->Format();
+ if ( format == EClockAnalog )
+ {
+ iClockControl->Draw( gc, iAnalogFace, NULL );
+ }
+ else
+ {
+ if ( TLocale().TimeFormat() == ETime12 )
+ {
+ iClockControl->Draw( gc, iDigitalFace12, iAmpm );
+ }
+ else
+ {
+ iClockControl->Draw( gc, iDigitalFace24, NULL );
+ }
+ }
+ }
+
+ if ( iDateControl )
+ {
+ if ( iClockControl && iClockControl->Format() == EClockAnalog && iAnalogDate )
+ {
+ TRAP_IGNORE( iDateControl->DrawL( gc, iAnalogDate ) );
+ }
+ else if ( iClockControl && iClockControl->Format() == EClockDigital && iDigitalDate )
+ {
+ TRAP_IGNORE( iDateControl->DrawL( gc, iDigitalDate ) );
+ }
+ else
+ {
+ TRAP_IGNORE( iDateControl->DrawL( gc, iDate ) );
+ }
+ }
+
+ if ( iDayControl )
+ {
+ TRAP_IGNORE( iDayControl->DrawL( gc, iDay ) );
+ }
}
// -----------------------------------------------------------------------------
// CXnClockAdapter::MakeVisible
-//
// -----------------------------------------------------------------------------
//
void CXnClockAdapter::MakeVisible( TBool aVisible )
@@ -263,7 +415,6 @@
// -----------------------------------------------------------------------------
// CXnClockAdapter::MonitorWsMessage
-//
// -----------------------------------------------------------------------------
//
void CXnClockAdapter::MonitorWsMessage( const TWsEvent& aEvent )
@@ -284,9 +435,13 @@
if( foreground != iForeground )
{
if( iForeground )
- {
+ {
+ // check if clock format has changed
+ if ( iClockControl )
+ {
+ TRAP_IGNORE( iClockControl->CheckClockFormatL() );
+ }
UpdateDisplay();
-
// Start clock ensures UI state
StartClock();
}
@@ -299,7 +454,6 @@
// -----------------------------------------------------------------------------
// CXnClockAdapter::LightStatusChanged
-//
// -----------------------------------------------------------------------------
//
void CXnClockAdapter::LightStatusChanged( TInt aTarget,
@@ -328,185 +482,101 @@
}
}
-
// -----------------------------------------------------------------------------
-// CXnClockAdapter::FontL
-//
+// CXnClockAdapter::GetTextAlignL
// -----------------------------------------------------------------------------
-//
-const CAknLayoutFont* CXnClockAdapter::FontL( const TInt aType )
+//
+CGraphicsContext::TTextAlign CXnClockAdapter::GetTextAlignL( CXnNodePluginIf& aNode )
{
- CFont* font( NULL );
+ CGraphicsContext::TTextAlign ret = CGraphicsContext::ECenter;
+ CXnProperty* prop( aNode.GetPropertyL(
+ XnPropertyNames::appearance::common::KTextAlign ) );
- if( aType == EDigitalFont )
- {
- if( !iDigitalFont )
- {
- CreateFontL( aType );
- }
-
- font = iDigitalFont;
- }
- else if( aType == EAmPmFont )
- {
- if( !iAmPmFont )
- {
- CreateFontL( aType );
- }
-
- font = iAmPmFont;
- }
- else if( aType == EDateFont )
- {
- if( !iDateFont )
- {
- CreateFontL( aType );
- }
-
- font = iDateFont;
- }
-
- if( font )
+ if( prop )
{
- return CAknLayoutFont::AsCAknLayoutFontOrNull( font );
- }
-
- return NULL;
- }
-
-// -----------------------------------------------------------------------------
-// CXnClockAdapter::TextColorL
-//
-// -----------------------------------------------------------------------------
-//
-const TRgb& CXnClockAdapter::TextColorL()
- {
- if( !iColorSet )
- {
- CreateColorL();
+ if ( prop->StringValue() ==
+ XnPropertyNames::appearance::common::textalign::KAlignLeft )
+ {
+ ret = CGraphicsContext::ELeft;
+ }
+ else if ( prop->StringValue() ==
+ XnPropertyNames::appearance::common::textalign::KAlignRight )
+ {
+ ret = CGraphicsContext::ERight;
+ }
+ else if ( prop->StringValue() ==
+ XnPropertyNames::appearance::common::textalign::KAlignCenter )
+ {
+ ret = CGraphicsContext::ECenter;
+ }
}
-
- return iColor;
- }
-
-// -----------------------------------------------------------------------------
-// CXnClockAdapter::Date
-//
-// -----------------------------------------------------------------------------
-//
-CXnNodePluginIf* CXnClockAdapter::Date() const
- {
- return iDate;
- }
-
-// -----------------------------------------------------------------------------
-// CXnClockAdapter::Day
-//
-// -----------------------------------------------------------------------------
-//
-CXnNodePluginIf* CXnClockAdapter::Day() const
- {
- return iDay;
+ return ret;
}
// -----------------------------------------------------------------------------
// CXnClockAdapter::CreateFontL
-//
// -----------------------------------------------------------------------------
//
-void CXnClockAdapter::CreateFontL( const TInt aType )
+void CXnClockAdapter::CreateFontL( CXnNodePluginIf& aNode,
+ const TDesC& aFontName,
+ CFont*& aFont )
{
TFontSpec spec;
TInt dummy;
+
+ CXnProperty* prop( aNode.GetPropertyL(
+ XnPropertyNames::clock::KS60FontSize ) );
- if( aType == EDigitalFont )
+ // default
+ TInt height( ( aNode.Rect().Height() / 5 ) );
+
+ if ( prop )
{
- iDigitalFont = NULL;
-
- CXnProperty* prop( iNode.GetPropertyL(
- XnPropertyNames::clock::KS60DigitalFontSize ) );
-
- // default
- TInt height( ( iNode.Rect().Height() / 3 ) * 2 );
-
+ height = aNode.UiEngineL()->VerticalPixelValueL(
+ prop, aNode.Rect().Height() );
+ }
+ else
+ {
+ // check if fontsize is defined in clock element
+ prop = iNode.GetPropertyL(
+ XnPropertyNames::clock::KS60FontSize );
if ( prop )
{
height = iNode.UiEngineL()->VerticalPixelValueL(
prop, iNode.Rect().Height() );
}
-
- // No need to relase avkon font
- CXnUtils::CreateFontL( KDigitalFont,
- height,
- spec.iFontStyle,
- iDigitalFont,
- dummy );
}
- else if( aType == EAmPmFont )
- {
- iAmPmFont = NULL;
-
- CXnProperty* prop( iNode.GetPropertyL(
- XnPropertyNames::clock::KS60AmPmFontSize ) );
-
- // default
- TInt height( ( iNode.Rect().Height() / 5 ) );
-
- if ( prop )
- {
- height = iNode.UiEngineL()->VerticalPixelValueL(
- prop, iNode.Rect().Height() );
- }
-
- // No need to relase avkon font
- CXnUtils::CreateFontL( KAmPmFont,
- height,
- spec.iFontStyle,
- iAmPmFont,
- dummy );
- }
- else if( aType == EDateFont )
- {
- iDateFont = NULL;
-
- CXnProperty* prop( iNode.GetPropertyL(
- XnPropertyNames::clock::KS60DateFontSize ) );
-
- // default
- TInt height( ( iNode.Rect().Height() / 5 ) );
-
- if ( prop )
- {
- height = iNode.UiEngineL()->VerticalPixelValueL(
- prop, iNode.Rect().Height() );
- }
-
- // No need to relase avkon font
- CXnUtils::CreateFontL( KDateFont,
- height,
- spec.iFontStyle,
- iDateFont,
- dummy );
- }
+
+ // No need to relase avkon font
+ CXnUtils::CreateFontL( aFontName,
+ height,
+ spec.iFontStyle,
+ aFont,
+ dummy );
}
// -----------------------------------------------------------------------------
// CXnClockAdapter::CreateColorL
-//
// -----------------------------------------------------------------------------
//
-void CXnClockAdapter::CreateColorL()
+void CXnClockAdapter::CreateColorL( CXnNodePluginIf& aNode, TRgb& aColor )
{
TRgb color;
TInt result( KErrNone );
- CXnProperty* prop( iNode.GetPropertyL(
+ CXnProperty* prop( aNode.GetPropertyL(
XnPropertyNames::appearance::common::KColor ) );
if( !prop )
{
- return;
+ // check if color is defined in clock element
+ prop = iNode.GetPropertyL(
+ XnPropertyNames::appearance::common::KColor );
+ if ( !prop )
+ {
+ return;
+ }
}
CXnDomProperty* domProp( prop->Property() );
@@ -554,53 +624,78 @@
if( result == KErrNone )
{
- iColorSet = ETrue;
- iColor = color;
+ aColor = color;
}
}
// -----------------------------------------------------------------------------
// CXnClockAdapter::SkinChanged
-// Skin change notification
// -----------------------------------------------------------------------------
//
void CXnClockAdapter::SkinChanged()
{
- iAmPmFont = iDigitalFont = iDateFont = NULL;
- iColorSet = EFalse;
+ if ( iClockControl )
+ {
+ iClockControl->ResetFont();
+ }
+ if ( iDateControl )
+ {
+ iDateControl->ResetFont();
+ }
+ if ( iDayControl )
+ {
+ iDayControl->ResetFont();
+ }
CXnControlAdapter::SkinChanged();
}
// -----------------------------------------------------------------------------
// CXnClockAdapter::HandleScreenDeviceChangedL
-// Screen device change notification
// -----------------------------------------------------------------------------
//
void CXnClockAdapter::HandleScreenDeviceChangedL()
{
- iAmPmFont = iDigitalFont = iDateFont = NULL;
- iColorSet = EFalse;
+ if ( iClockControl )
+ {
+ iClockControl->ResetFont();
+ }
+ if ( iDateControl )
+ {
+ iDateControl->ResetFont();
+ }
+ if ( iDayControl )
+ {
+ iDayControl->ResetFont();
+ }
CXnControlAdapter::HandleScreenDeviceChangedL();
}
// -----------------------------------------------------------------------------
// CXnClockAdapter::SizeChanged
-// Size changed notification
// -----------------------------------------------------------------------------
//
void CXnClockAdapter::SizeChanged()
{
- iAmPmFont = iDigitalFont = iDateFont = NULL;
- iColorSet = EFalse;
+ if ( iClockControl )
+ {
+ iClockControl->ResetFont();
+ }
+ if ( iDateControl )
+ {
+ iDateControl->ResetFont();
+ }
+ if ( iDayControl )
+ {
+ iDayControl->ResetFont();
+ }
CXnControlAdapter::SizeChanged();
}
// -----------------------------------------------------------------------------
// CXnClockAdapter::StartClock
-//
// -----------------------------------------------------------------------------
//
void CXnClockAdapter::StartClock()
@@ -620,7 +715,6 @@
// -----------------------------------------------------------------------------
// CXnClockAdapter::StopClock
-//
// -----------------------------------------------------------------------------
//
void CXnClockAdapter::StopClock()
@@ -628,7 +722,7 @@
if ( iClockControl )
{
iClockControl->StopTimer();
- }
+ }
}
// End of file
--- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockcontrol.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockcontrol.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -24,7 +24,7 @@
#include "xncontroladapter.h"
#include "xnclockadapter.h"
#include "xnclockface.h"
-
+#include "xnnodepluginif.h"
#include "xnclockcontrol.h"
// Constants
@@ -39,12 +39,12 @@
// might leave.
// -----------------------------------------------------------------------------
//
-CXnClockControl::CXnClockControl( CXnClockAdapter* aAdapter,
+CXnClockControl::CXnClockControl( CXnClockAdapter& aAdapter,
const TBool aFormatFromLocale,
const TClockFormat aFormat )
: iAdapter( aAdapter ),
iClockFormat( aFormat ),
- iFormatFromLocale ( aFormatFromLocale )
+ iFormatFromLocale ( aFormatFromLocale )
{
}
@@ -56,7 +56,7 @@
void CXnClockControl::ConstructL()
{
iTimer = CPeriodic::NewL( CActive::EPriorityHigh );
-
+ iTimeFormat = TLocale().TimeFormat();
SetFormatL( iFormatFromLocale, iClockFormat );
}
@@ -65,24 +65,20 @@
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
-CXnClockControl* CXnClockControl::NewL( CXnClockAdapter* aAdapter,
+CXnClockControl* CXnClockControl::NewL( CXnClockAdapter& aAdapter,
const TBool aFormatFromLocale,
const TClockFormat aFormat )
{
CXnClockControl* self =
new (ELeave) CXnClockControl( aAdapter, aFormatFromLocale, aFormat );
-
CleanupStack::PushL( self );
self->ConstructL();
-
CleanupStack::Pop( self );
-
return self;
}
// -----------------------------------------------------------------------------
// Destructor
-//
// -----------------------------------------------------------------------------
//
CXnClockControl::~CXnClockControl()
@@ -93,7 +89,6 @@
// -----------------------------------------------------------------------------
// CXnClockControl::UpdateDisplay
-// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
void CXnClockControl::UpdateDisplay()
@@ -103,12 +98,11 @@
return;
}
- iAdapter->UpdateDisplay();
+ iAdapter.UpdateDisplay();
}
// -----------------------------------------------------------------------------
// CXnClockControl::SetFormatL
-// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
void CXnClockControl::SetFormatL( const TBool aFormatFromLocale,
@@ -122,14 +116,17 @@
}
iFormatFromLocale = aFormatFromLocale;
+
+ TTimeFormat timeFormat = TLocale().TimeFormat();
- if( format == iClockFormat && iFace )
+ if( format == iClockFormat && iFace && timeFormat == iTimeFormat )
{
// Already correct face
return;
}
iClockFormat = format;
+ iTimeFormat = timeFormat;
delete iFace;
iFace = NULL;
@@ -141,12 +138,22 @@
else if( format == EClockDigital )
{
iFace = CXnClockFaceDigital::NewL();
- }
+ }
+
+ iAdapter.SetClockFormatL( format );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnClockControl::CheckClockFormatL
+// -----------------------------------------------------------------------------
+//
+void CXnClockControl::CheckClockFormatL()
+ {
+ SetFormatL( iFormatFromLocale, iClockFormat );
}
// -----------------------------------------------------------------------------
// CXnClockControl::Format
-// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
TClockFormat CXnClockControl::Format() const
@@ -156,28 +163,38 @@
// -----------------------------------------------------------------------------
// CXnClockControl::Draw
-// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
-void CXnClockControl::Draw( CWindowGc& aGc, const TRect& aRect )
+void CXnClockControl::Draw( CWindowGc& aGc, CXnNodePluginIf* aNode,
+ CXnNodePluginIf* aAmpm )
{
- // Ensure correct appearance
- TRAP_IGNORE( SetFormatL( iFormatFromLocale, iClockFormat ) );
+ if ( !aNode )
+ {
+ return;
+ }
- if( iFace && !aRect.IsEmpty() )
+ if( iFace && !aNode->Rect().IsEmpty() )
{
__PRINT( __DBG_FORMAT( "CXnClockControl::Draw: 0x%X" ), this );
TTime homeTime;
homeTime.HomeTime();
- TRAP_IGNORE( iFace->DrawL( *iAdapter, aGc, aRect, homeTime ) );
+ TRAP_IGNORE( iFace->DrawL( iAdapter, aGc, *aNode, homeTime, aAmpm ) );
}
}
// -----------------------------------------------------------------------------
+// CXnClockControl::ResetFont
+// -----------------------------------------------------------------------------
+//
+void CXnClockControl::ResetFont()
+ {
+ iFace->ResetFont();
+ }
+
+// -----------------------------------------------------------------------------
// CXnClockControl::TimerCallback
-// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
TInt CXnClockControl::TimerCallback( TAny* aThis )
@@ -206,7 +223,6 @@
// -----------------------------------------------------------------------------
// CXnClockControl::StartTimer
-// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
void CXnClockControl::StartTimer()
@@ -230,7 +246,6 @@
// -----------------------------------------------------------------------------
// CXnClockControl::StopTimer
-// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
void CXnClockControl::StopTimer()
--- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockface.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockface.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -38,6 +38,9 @@
_LIT( KAmPmFormat, "%B" );
_LIT( KTimeFormat, "%J%:1%T" );
+_LIT( KClockFont, "EAknLogicalFontSecondaryFont" );
+_LIT( KAmpmFont, "EAknLogicalFontSecondaryFont" );
+
// ============================ MEMBER FUNCTIONS ===============================
// -----------------------------------------------------------------------------
@@ -86,123 +89,134 @@
// -----------------------------------------------------------------------------
// CXnClockFaceDigital::DrawL
-// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
void CXnClockFaceDigital::DrawL( CXnClockAdapter& aAdapter, CWindowGc& aGc,
- const TRect& aRect, const TTime& aTime )
- {
+ CXnNodePluginIf& aNode, const TTime& aTime, CXnNodePluginIf* aAmpm )
+ {
TBuf< KMaxTimeFormatSpec > time;
aTime.FormatL( time, KTimeFormat() );
- TBuf< KMaxTimeFormatSpec > ampm;
- aTime.FormatL( ampm, KAmPmFormat() );
-
AknTextUtils::LanguageSpecificNumberConversion( time );
- const CAknLayoutFont* clockFont(
- aAdapter.FontL( CXnClockAdapter::EDigitalFont ) );
-
- const CAknLayoutFont* ampmFont(
- aAdapter.FontL( CXnClockAdapter::EAmPmFont ) );
-
- const CAknLayoutFont* dateFont(
- aAdapter.FontL( CXnClockAdapter::EDateFont ) );
-
- const TRgb& color( aAdapter.TextColorL() );
-
- CXnNodePluginIf* date( aAdapter.Date() );
-
- const TInt deltaHeight( aRect.Height() - clockFont->TextPaneHeight() );
- TInt offset( clockFont->TextPaneTopToBaseline() + deltaHeight / 2 );
-
- if( date )
+ const CAknLayoutFont* clockFont( CreateFontL( aAdapter, aNode, EClock ) );
+ if ( !clockFont )
{
- // When date string is shown, time string must be lifted up
- offset -= ( dateFont->TextPaneHeight() / 2 );
+ return;
}
- // Measure the full width of the time string
- TInt textWidth( AknBidiTextUtils::MeasureTextBoundsWidth( *clockFont, time,
- CFont::TMeasureTextInput::EFVisualOrder ) );
+ const TRgb& color( CreateColorL( aAdapter, aNode, EClock) );
- TInt extraWidth( aRect.Width() - textWidth );
-
- TInt margin( extraWidth / 2 );
+ const TInt deltaHeight( aNode.Rect().Height() - clockFont->TextPaneHeight() );
+ TInt offset( clockFont->TextPaneTopToBaseline() + deltaHeight / 2 );
+
+ CGraphicsContext::TTextAlign align = aAdapter.GetTextAlignL( aNode );
aGc.SetPenColor( color );
+ aGc.UseFont( clockFont );
+ aGc.DrawText( time, aNode.Rect(), offset, align );
+ aGc.DiscardFont();
- aGc.UseFont( clockFont );
-
- CGraphicsContext::TTextAlign align;
+ if( TLocale().TimeFormat() == ETime12 && aAmpm )
+ {
+ DrawAmpmL( aAdapter, aGc, aTime, *aAmpm );
+ }
+ }
- TBool mirrored( AknLayoutUtils::LayoutMirrored() );
+// -----------------------------------------------------------------------------
+// CXnClockFaceDigital::DrawAmpmL
+// -----------------------------------------------------------------------------
+//
+void CXnClockFaceDigital::DrawAmpmL( CXnClockAdapter& aAdapter,
+ CWindowGc& aGc,
+ const TTime& aTime,
+ CXnNodePluginIf& aAmpm )
+ {
+ TBuf< KMaxTimeFormatSpec > ampm;
+ aTime.FormatL( ampm, KAmPmFormat() );
+ ampm.Trim();
+
+ const CAknLayoutFont* ampmFont( CreateFontL( aAdapter, aAmpm, EAmpm ) );
+ if ( !ampmFont )
+ {
+ return;
+ }
+
+ const TRgb& color( CreateColorL( aAdapter, aAmpm, EAmpm) );
+
+ const TInt deltaHeight( aAmpm.Rect().Height() - ampmFont->TextPaneHeight() );
+ TInt offset( ampmFont->TextPaneTopToBaseline() + deltaHeight / 2 );
+
+ CGraphicsContext::TTextAlign align = aAdapter.GetTextAlignL( aAmpm );
- if( mirrored )
+ aGc.SetPenColor( color );
+ aGc.UseFont( ampmFont );
+ aGc.DrawText( ampm, aAmpm.Rect(), offset, align );
+ aGc.DiscardFont();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnClockFaceDigital::CreateFontL
+// -----------------------------------------------------------------------------
+//
+const CAknLayoutFont* CXnClockFaceDigital::CreateFontL( CXnClockAdapter& aAdapter,
+ CXnNodePluginIf& aNode,
+ TXnClockFontType aFontType)
+ {
+ if ( aFontType == EClock )
{
- align = CGraphicsContext::ERight;
+ if ( !iClockFont )
+ {
+ aAdapter.CreateFontL( aNode, KClockFont, iClockFont );
+ }
+ return CAknLayoutFont::AsCAknLayoutFontOrNull( iClockFont );
}
else
{
- align = CGraphicsContext::ELeft;
- }
-
- aGc.DrawText( time, aRect, offset, align, margin );
-
- aGc.DiscardFont();
-
- if( TLocale().TimeFormat() == ETime12 )
- {
- TRect ampmRect( aRect );
- TInt ampmHeight( ampmFont->TextPaneHeight() );
-
- if( mirrored )
+ if ( !iAmpmFont )
{
- align = CGraphicsContext::ELeft;
- }
- else
- {
- align = CGraphicsContext::ERight;
+ aAdapter.CreateFontL( aNode, KAmpmFont, iAmpmFont );
}
-
- ampmRect.iTl.iY += ampmHeight;
-
- aGc.UseFont( ampmFont );
-
- aGc.DrawText( ampm, ampmRect, offset, align, margin );
-
- aGc.DiscardFont();
+ return CAknLayoutFont::AsCAknLayoutFontOrNull( iAmpmFont );
}
+ }
- if( date )
+// -----------------------------------------------------------------------------
+// CXnClockFaceDigital::CreateColorL
+// -----------------------------------------------------------------------------
+//
+const TRgb& CXnClockFaceDigital::CreateColorL( CXnClockAdapter& aAdapter,
+ CXnNodePluginIf& aNode,
+ TXnClockFontType aFontType )
+ {
+ if ( aFontType == EClock )
{
- const TDesC* dateStr( &KNullDesC() );
-
- CXnText* textIf( NULL );
-
- XnComponentInterface::MakeInterfaceL( textIf, date->AppIfL() );
-
- if( textIf )
+ if ( !iIsFaceColorSet )
{
- dateStr = textIf->Text();
+ aAdapter.CreateColorL( aNode, iFaceColor );
+ iIsFaceColorSet = ETrue;
}
+ return iFaceColor;
+ }
+ else
+ {
+ if ( !iIsAmpmColorSet )
+ {
+ aAdapter.CreateColorL( aNode, iAmpmColor );
+ iIsAmpmColorSet = ETrue;
+ }
+ return iAmpmColor;
+ }
+ }
- // Measure the full width of the time string
- TInt dateWidth( AknBidiTextUtils::MeasureTextBoundsWidth( *dateFont, *dateStr,
- CFont::TMeasureTextInput::EFVisualOrder ) );
-
- TInt width( aRect.Width() - dateWidth );
- TInt margin( width / 2 );
-
- // Move date string down by text pane height and 5% of rect height
- offset += dateFont->TextPaneHeight() + ( aRect.Height() / 20 );
-
- aGc.UseFont( dateFont );
-
- aGc.DrawText( *dateStr, aRect, offset, align, margin );
-
- aGc.DiscardFont();
- }
+// -----------------------------------------------------------------------------
+// CXnClockFaceDigital::ResetFont
+// -----------------------------------------------------------------------------
+//
+void CXnClockFaceDigital::ResetFont()
+ {
+ iClockFont = iAmpmFont = NULL;
+ iIsFaceColorSet = iIsAmpmColorSet = EFalse;
}
// ============================ MEMBER FUNCTIONS ===============================
@@ -253,13 +267,12 @@
// -----------------------------------------------------------------------------
// CXnClockFaceAnalog::DrawL
-// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
void CXnClockFaceAnalog::DrawL( CXnClockAdapter& /*aAdapter*/, CWindowGc& aGc,
- const TRect& aRect, const TTime& aTime )
- {
- TSize faceSize( aRect.Size() );
+ CXnNodePluginIf& aNode, const TTime& aTime, CXnNodePluginIf* /*aAmpm*/ )
+ {
+ TSize faceSize( aNode.Rect().Size() );
TDateTime dateTime( aTime.DateTime() );
@@ -286,7 +299,7 @@
{
User::LeaveIfError( AknIconUtils::SetSize( skinMask, faceSize ) );
- aGc.BitBltMasked( aRect.iTl,
+ aGc.BitBltMasked( aNode.Rect().iTl,
skinBmp,
TRect( TPoint( 0, 0 ), skinBmp->SizeInPixels() ),
skinMask,
@@ -294,18 +307,17 @@
}
else
{
- aGc.BitBlt( aRect.iTl, skinBmp );
+ aGc.BitBlt( aNode.Rect().iTl, skinBmp );
}
aGc.SetBrushStyle( CGraphicsContext::ENullBrush );
aGc.SetPenStyle( CGraphicsContext::ESolidPen );
- DrawHandsL( aGc, aRect, dateTime );
+ DrawHandsL( aGc, aNode.Rect(), dateTime );
}
// -----------------------------------------------------------------------------
// CXnClockFaceAnalog::DrawHands
-// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
void CXnClockFaceAnalog::DrawHandsL( CWindowGc& aGc,
@@ -355,5 +367,13 @@
minmask,
EFalse );
}
+
+// -----------------------------------------------------------------------------
+// CXnClockFaceAnalog::ResetFont
+// -----------------------------------------------------------------------------
+//
+void CXnClockFaceAnalog::ResetFont()
+ {
+ }
// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xndatecontrol.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,282 @@
+/*
+* Copyright (c) 2006-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Clock control
+*
+*/
+
+
+// System includes
+#include <e32std.h>
+#include <debug.h>
+#include <AknLayoutFont.h>
+#include <AknUtils.h>
+#include <AknBidiTextUtils.h>
+#include <StringLoader.h>
+#include <bacntf.h>
+
+// User includes
+#include "xndatecontrol.h"
+#include "xncontroladapter.h"
+#include "xnclockadapter.h"
+#include "xnnodepluginif.h"
+#include "xnproperty.h"
+#include "xnuienginepluginif.h"
+#include "c_xnutils.h"
+
+// Constants
+const TInt KMaxDateStringLength = 100;
+const TInt KMaxDayNumberStringLength = 10;
+
+_LIT( KDateFont, "EAknLogicalFontSecondaryFont" );
+_LIT( KTimeFormat, "%0U %1U" );
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CXnDateControl::CXnDateControl
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CXnDateControl::CXnDateControl( CXnClockAdapter& aAdapter,
+ TXnDateType aType )
+ : iAdapter( aAdapter ), iDateType( aType )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CXnDateControl::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CXnDateControl::ConstructL()
+ {
+ // Create enviroment notifier
+ iEnvNotifier = CEnvironmentChangeNotifier::NewL(
+ CActive::EPriorityStandard, TCallBack( HandleCallBackL, this ) );
+ // Start listening notifications
+ iEnvNotifier->Start();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnDateControl::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CXnDateControl* CXnDateControl::NewL( CXnClockAdapter& aAdapter,
+ TXnDateType aType )
+ {
+ CXnDateControl* self = new (ELeave) CXnDateControl( aAdapter, aType );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// Destructor
+// -----------------------------------------------------------------------------
+//
+CXnDateControl::~CXnDateControl()
+ {
+ delete iDateText;
+ delete iEnvNotifier;
+ }
+
+// -----------------------------------------------------------------------------
+// CXnDateControl::DrawL
+// -----------------------------------------------------------------------------
+//
+void CXnDateControl::DrawL( CWindowGc& aGc, CXnNodePluginIf* aNode )
+ {
+ if ( !aNode ||
+ !iDateText ||
+ ( aNode && aNode->Rect().IsEmpty() ) )
+ {
+ return;
+ }
+
+ const CAknLayoutFont* dateFont( CreateFontL( *aNode ) );
+ if ( !dateFont )
+ {
+ return;
+ }
+
+ const TRgb& color( CreateColorL( *aNode ) );
+
+ CGraphicsContext::TTextAlign align = iAdapter.GetTextAlignL( *aNode );
+
+ const TInt deltaHeight( aNode->Rect().Height() - dateFont->TextPaneHeight() );
+ TInt offset( dateFont->TextPaneTopToBaseline() + deltaHeight / 2 );
+
+ aGc.SetPenColor( color );
+ aGc.UseFont( dateFont );
+ aGc.DrawText( *iDateText, aNode->Rect(), offset, align );
+ aGc.DiscardFont();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnDateControl::ConstructDateStringL
+// -----------------------------------------------------------------------------
+//
+HBufC* CXnDateControl::ConstructDateStringL()
+ {
+ // Construct date string using date format from resource file
+ CCoeEnv* coeEnv = CCoeEnv::Static();
+
+ if( !coeEnv )
+ {
+ User::Leave( KErrNotReady );
+ }
+
+ TTime time;
+ time.HomeTime();
+
+ HBufC* aiDateString = HBufC::NewLC( KMaxDateStringLength );
+ HBufC* aiDateFormatString = HBufC::NewLC( KMaxDateStringLength );
+ aiDateFormatString->Des().Copy( KTimeFormat() );
+ // TODO: when localisation is ready read format string from resource
+ //HBufC* aiDateFormatString = StringLoader::LoadLC( R_ACTIVEIDLE_TIME_FORMAT,
+ // coeEnv );
+ HBufC* dateStringBuf = HBufC::NewLC( KMaxDateStringLength );
+ HBufC* dateFormatString = StringLoader::LoadLC( R_QTN_DATE_SHORT_WITH_ZERO,
+ coeEnv );
+ TPtr dateString( dateStringBuf->Des() );
+ time.FormatL( dateString, *dateFormatString );
+ CleanupStack::PopAndDestroy( dateFormatString );
+
+ //now dateString contains string which is formatted using
+ //R_QTN_DATE_USUAL_WITH_ZERO
+
+ // To arabic
+ AknTextUtils::DisplayTextLanguageSpecificNumberConversion( dateString );
+
+ TPtr aiDateStringPtr = aiDateString->Des();
+
+ TDayNameAbb wkDayAbb = TDayNameAbb();
+ wkDayAbb.Set(time.DayNoInWeek());
+
+ //add date to string
+ StringLoader::Format( aiDateStringPtr, *aiDateFormatString, 1,dateString );
+
+ //reuse dateString
+ dateString.Copy( aiDateStringPtr );
+
+ //add weekday to string
+ StringLoader::Format( aiDateStringPtr, dateString, 0, wkDayAbb );
+
+ CleanupStack::PopAndDestroy( dateStringBuf );//dateStringBuf, aiDateFormatString
+ CleanupStack::PopAndDestroy( aiDateFormatString );
+
+ CleanupStack::Pop( aiDateString );
+ return aiDateString;
+ }
+
+// -----------------------------------------------------------------------------
+// CXnDateControl::ConstructDayStringL
+// -----------------------------------------------------------------------------
+//
+HBufC* CXnDateControl::ConstructDayStringL()
+ {
+ TTime time;
+ time.HomeTime();
+
+ HBufC* aiDayString = HBufC::NewLC( KMaxDayNumberStringLength );
+ aiDayString->Des().Num( time.DayNoInMonth() + 1 );
+ // To arabic
+ TPtr dayStringPtr = aiDayString->Des();
+ AknTextUtils::DisplayTextLanguageSpecificNumberConversion( dayStringPtr );
+ CleanupStack::Pop( aiDayString );
+ return aiDayString;
+ }
+
+// -----------------------------------------------------------------------------
+// CXnDateControl::CreateFontL
+// -----------------------------------------------------------------------------
+//
+const CAknLayoutFont* CXnDateControl::CreateFontL( CXnNodePluginIf& aNode )
+ {
+ if ( !iDateFont )
+ {
+ iAdapter.CreateFontL( aNode, KDateFont, iDateFont );
+ }
+ return CAknLayoutFont::AsCAknLayoutFontOrNull( iDateFont );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnDateControl::CreateColorL
+// -----------------------------------------------------------------------------
+//
+const TRgb& CXnDateControl::CreateColorL( CXnNodePluginIf& aNode )
+ {
+ if ( !iIsColorSet )
+ {
+ iAdapter.CreateColorL( aNode, iDateColor );
+ iIsColorSet = ETrue;
+ }
+ return iDateColor;
+ }
+
+// -----------------------------------------------------------------------------
+// CXnDateControl::ResetFont
+// -----------------------------------------------------------------------------
+//
+void CXnDateControl::ResetFont()
+ {
+ iDateFont = NULL;
+ iIsColorSet = EFalse;
+ }
+
+// -----------------------------------------------------------------------------
+// CXnDateControl::RefreshDateL
+// -----------------------------------------------------------------------------
+//
+void CXnDateControl::RefreshDateL()
+ {
+ delete iDateText;
+ iDateText = NULL;
+ if ( iDateType == EDate )
+ {
+ iDateText = ConstructDateStringL();
+ }
+ else if ( iDateType == EDay )
+ {
+ iDateText = ConstructDayStringL();
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CXnDateControl::HandleCallBackL
+// -----------------------------------------------------------------------------
+//
+TInt CXnDateControl::HandleCallBackL( TAny *aPtr )
+ {
+ CXnDateControl* self = static_cast<CXnDateControl*>( aPtr );
+
+ if( self )
+ {
+ TInt changes( self->iEnvNotifier->Change() );
+
+ if ( changes &
+ ( EChangesLocale | EChangesMidnightCrossover | EChangesSystemTime ) )
+ {
+ self->RefreshDateL();
+ }
+ }
+
+ return KErrNone;
+ }
+
+// End of File
--- a/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewstickercontrol.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewstickercontrol.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -154,6 +154,11 @@
}
UpdateTitleL( KNullDesC, aIndex );
+
+ if( aIndex == iCurrentTitleIndex )
+ {
+ iCurrentTitleIndex = GetNextTitleWithContent( aIndex );
+ }
}
}
--- a/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/inc/xntexteditoradapter.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/inc/xntexteditoradapter.h Tue Sep 14 20:58:58 2010 +0300
@@ -20,6 +20,7 @@
// System includes
#include <e32base.h>
+#include <babitflags.h>
// User includes
#include "xncontroladapter.h"
@@ -49,7 +50,7 @@
~CXnTextEditorAdapter();
public:
- // New functions
+ // new functions
/**
* Gets editor
@@ -57,7 +58,7 @@
* @since S60 5.0
* @return Editor, ownership is not transfered
*/
- CEikEdwin* Editor() const { return iEditor; };
+ CEikEdwin* Editor() const;
/**
* Set text to the text field
@@ -68,6 +69,14 @@
void SetTextL( const TDesC& aText );
/**
+ * Queries wheter text content change is caused by call to SetTextL
+ *
+ * @since S60 5.2
+ * @return ETrue if set text, EFalse otherwise
+ */
+ TBool IsSetText() const;
+
+ /**
* Return the text of the text field
*
* @since S60 5.0
@@ -75,15 +84,8 @@
*/
HBufC* Text() const;
- /**
- * Handles editor events
- *
- * @since S60 5.2
- * @param aReason, editor event
- */
- void HandleEditorEvent( TInt aReason );
-
-public: // from base classes
+public:
+ // from base classes
/**
* See CCoeControl documentation
@@ -104,12 +106,7 @@
* See CCoeControl documentation
*/
TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
-
- /**
- * See CXnControlAdapter documentation
- */
- TBool RefusesFocusLoss() const;
-
+
/**
* See CCoeControl documentation
*/
@@ -122,23 +119,14 @@
/**
* See CCoeControl documentation
- */
- void HandleResourceChange( TInt aType );
-
- /**
- * See CCoeControl documentation
*/
void HandlePointerEventL(const TPointerEvent& aPointerEvent);
- /**
- * See CCoeAppUiBase.
- */
- void HandleScreenDeviceChangedL();
-
-private: // from base classes
+private:
+ // from MCoeControlBackground
/**
- * See MCoeControlBackground documentation
+ * @see MCoeControlBackground
*/
void Draw( CWindowGc& aGc, const CCoeControl& aControl,
const TRect& aRect ) const;
@@ -146,8 +134,14 @@
private:
// private constrcutors
+ /**
+ * C++ constructor
+ */
CXnTextEditorAdapter( CXnControlAdapter* aParent, CXnNodePluginIf& aNode );
+ /**
+ * 2nd phase constructor
+ */
void ConstructL();
private:
@@ -156,9 +150,10 @@
void SetPropertiesL();
void SetEditorMarginPropertiesL();
-
+
private:
// data
+
/** Parent control, not owned */
CXnControlAdapter* iParent;
/** UI node, not owned */
@@ -176,11 +171,9 @@
/** Flag to indicate whether the font needs to be released or not */
TBool iReleaseFont;
/** Max line amount */
- TInt iMaxLines;
- /** Flag to indicate whether focus loss is refused */
- TBool iRefusesFocusLoss;
- /** Split input states*/
- TInt iSplitInputFlags;
+ TInt iMaxLines;
+ /** Flags */
+ TBitFlags32 iFlags;
};
#endif // _XNTEXTEDITORADAPTER_H
--- a/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/inc/xntexteditorpublisher.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/inc/xntexteditorpublisher.h Tue Sep 14 20:58:58 2010 +0300
@@ -19,53 +19,85 @@
#define XNTEXTEDITORPUBLISHER_H
#include <e32base.h>
-#include <eikedwob.h>
+#include <frmtview.h>
// FORWARD DECLARATIONS
class CLiwServiceHandler;
class MLiwInterface;
class CXnTextEditorAdapter;
-class CXnTextEditorPublisher : public CBase, public MEikEdwinObserver
+class CXnTextEditorPublisher : public CBase, public CTextView::MObserver
{
- public:
- /**
- * Two-phased constructor.
- */
- static CXnTextEditorPublisher* NewL( CXnTextEditorAdapter& aAdapter,
- const TDesC8& aNodeId );
+public:
+ /**
+ * Two-phased constructor.
+ */
+ static CXnTextEditorPublisher* NewL( CXnTextEditorAdapter& aAdapter,
+ const TDesC8& aNodeId );
- /**
- * Destructor.
- */
- virtual ~CXnTextEditorPublisher();
-
- private:
- CXnTextEditorPublisher( CXnTextEditorAdapter& aAdapter );
- void ConstructL( const TDesC8& aNodeId );
+ /**
+ * Destructor.
+ */
+ virtual ~CXnTextEditorPublisher();
+
+private:
+ // constructors
+
+ /**
+ * C++ constructor
+ */
+ CXnTextEditorPublisher( CXnTextEditorAdapter& aAdapter );
+
+ /**
+ * 2nd phase constructor
+ */
+ void ConstructL( const TDesC8& aNodeId );
- public: // From MEikEdwinObserver
- /**
- * @see MEikEdwinObserver.
- */
- void HandleEdwinEventL(CEikEdwin* aEdwin,TEdwinEvent aEventType);
-
- void PublishTextL( const TDesC& aText );
+public:
+ // from CTextView::MObserver
+
+ /**
+ * @see CTextView::MObserver
+ */
+ void OnReformatL( const CTextView* aTextView );
+
+public:
+ // new functions
+
+ /**
+ * Publishes given text to CPS
+ *
+ * @since S60 5.2
+ * @param aText Text to publish
+ */
+ void PublishTextL( const TDesC& aText );
- private: // New functions
- void InitCpsInterfaceL();
- void AddDataToCpsL( const TDesC& aPublisherId, const TDesC& aContentType,
- const TDesC& aContentId, const TDesC8& aDataKey, const TDesC& aData );
- void RemoveDataFromCpsL( const TDesC& aPublisherId, const TDesC& aContentType,
- const TDesC& aContentId );
+private:
+ // new functions
+
+ void InitCpsInterfaceL();
+
+ void AddDataToCpsL( const TDesC& aPublisherId, const TDesC& aContentType,
+ const TDesC& aContentId, const TDesC8& aDataKey, const TDesC& aData );
+
+ void RemoveDataFromCpsL( const TDesC& aPublisherId, const TDesC& aContentType,
+ const TDesC& aContentId );
-
- private:
- CXnTextEditorAdapter& iAdapter;
- HBufC* iNodeId; // Own
- MLiwInterface* iCpsInterface; // Not own
- CLiwServiceHandler* iServiceHandler; // Own
- HBufC* iTextBuffer; // Own
+private:
+ // data
+
+ /** Text editor adapter, not owned */
+ CXnTextEditorAdapter& iAdapter;
+ /** <texteditor> element node id, owned */
+ HBufC* iNodeId;
+ /** CPS intertace, owned */
+ MLiwInterface* iCpsInterface;
+ /** Service handler, owned */
+ CLiwServiceHandler* iServiceHandler;
+ /** Text publish buffer, owned */
+ HBufC* iTextBuffer;
+ /** Text publish temp buffer, owned */
+ HBufC* iTempBuffer;
};
#endif //XNTEXTEDITORPUBLISHER_H
--- a/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditor.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditor.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -87,16 +87,6 @@
}
// ---------------------------------------------------------
-// CXnTextEditor::HandleEditorEvent
-// ---------------------------------------------------------
-//
-void CXnTextEditor::HandleEditorEvent( TInt aReason )
- {
- static_cast<CXnTextEditorAdapter*>(ControlAdapter())->
- HandleEditorEvent( aReason );
- }
-
-// ---------------------------------------------------------
// ---------------------------------------------------------
XnComponentInterface::MXnComponentInterface* CXnTextEditor::MakeInterfaceL(const TDesC8& aType)
{
--- a/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditoradapter.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditoradapter.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -50,58 +50,32 @@
#include "c_xnutils.h"
#include "xntexteditor.h"
-const TInt KMaxLength = 100;
-
-enum TSplitInputState
+// Constants
+enum EFlags
{
- ESplitInputEnabled = 1,
- ESplitInputOpen = 2,
- ESplitInputEditorInStack = 4,
- EScreenDeviceChanged = 8
+ EUsePartialScreenInput = 1,
+ EIsAlreadyFocused,
+ EIsFocused,
+ ESetText
};
+const TInt KDefaultLength( 100 );
+
_LIT8( KCpsPublishing, "cpspublishing" );
_LIT8( KMaxLineAmount, "max-line-amount" );
_LIT8( KMaxCharAmount, "max-char-amount" );
_LIT8( KEnablePartialInput, "splitinputenabled" );
-_LIT8( KSplitScreenEnabledTrigger , "splitscreenenabled" );
-_LIT8( KSplitScreenDisabledTrigger, "splitscreendisabled" );
_LIT( KEnterChar, "\x2029" );
-// Local macros
+// Macros
#define IS_ARROW_KEY( k ) \
( k == EStdKeyLeftArrow || k == EStdKeyRightArrow || \
k == EStdKeyUpArrow || k == EStdKeyDownArrow )
// ============================ LOCAL FUNCTIONS ================================
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-TBool IsFlagSet( TInt aFlags, TInt aFlag )
- {
- return aFlags & aFlag;
- }
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-void SetFlag( TInt& aFlags, TInt aFlag )
- {
- aFlags |= aFlag;
- }
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-void ClearFlag( TInt& aFlags, TInt aFlag )
- {
- aFlags &= ~aFlag;
- }
-
// ============================ MEMBER FUNCTIONS ===============================
-
// -----------------------------------------------------------------------------
// CXnTextEditorAdapter::NewL
// Symbian static 1st phase constructor
@@ -138,17 +112,16 @@
//
CXnTextEditorAdapter::~CXnTextEditorAdapter()
{
- if( IsFlagSet( iSplitInputFlags, ESplitInputOpen ) )
+ if ( iAppui )
{
- if( iUiEngine )
- {
- iUiEngine->EnablePartialTouchInput( iNode, EFalse );
- }
+ iAppui->RemoveFromStack( iEditor );
}
-
- if ( iAvkonAppUi )
+
+ if ( iFlags.IsSet( EIsFocused ) )
{
- iAvkonAppUi->RemoveFromStack( iEditor );
+ RProperty::Set( KPSUidAiInformation,
+ KActiveIdleForwardNumericKeysToPhone,
+ EPSAiForwardNumericKeysToPhone );
}
if( iFont && iReleaseFont )
@@ -157,8 +130,9 @@
dev->ReleaseFont( iFont );
}
- delete iEditorPublisher;
- delete iEditor;
+ delete iEditor;
+
+ delete iEditorPublisher;
}
// -----------------------------------------------------------------------------
@@ -169,6 +143,7 @@
void CXnTextEditorAdapter::ConstructL()
{
CXnControlAdapter::ConstructL( iNode );
+
iUiEngine = iNode.UiEngineL();
iAppui = static_cast< CXnAppUiAdapter* >( iAvkonAppUi );
@@ -183,8 +158,8 @@
iMaxLines = maxlinesProp->FloatValueL();
}
- // Max char amount
- TInt maxChars( KMaxLength );
+ // Default char amount
+ TInt maxChars( KDefaultLength );
CXnProperty* maxcharsProp( iNode.GetPropertyL( KMaxCharAmount ) );
@@ -196,7 +171,11 @@
iEditor = new ( ELeave ) CEikEdwin;
iEditor->SetContainerWindowL( *iParent );
- iEditor->ConstructL( 0, maxChars, maxChars, iMaxLines );
+
+ TInt flags( CEikEdwin::ENoAutoSelection | CEikEdwin::EJustAutoCurEnd |
+ CEikEdwin::EAllowUndo | CEikEdwin::EAvkonEditor );
+
+ iEditor->ConstructL( flags, maxChars, maxChars, iMaxLines );
iEditor->SetBackground( this );
// Set allowed input modes
@@ -211,35 +190,25 @@
// Set the default case mode
iEditor->SetAknEditorCase( EAknEditorTextCase );
-
- iEditor->AddFlagToUserFlags(
- CEikEdwin::ENoAutoSelection | CEikEdwin::EAllowUndo );
-
+
// Set numeric keymap
iEditor->SetAknEditorNumericKeymap( EAknEditorPlainNumberModeKeymap );
// Enable partial Screen
- CXnProperty* enablepartialinput( iNode.GetPropertyL( KEnablePartialInput ) );
- iSplitInputFlags = 0;
-
- if ( enablepartialinput &&
- enablepartialinput->StringValue() == XnPropertyNames::KTrue )
+ CXnProperty* prop( iNode.GetPropertyL( KEnablePartialInput ) );
+
+ if ( prop && prop->StringValue() == XnPropertyNames::KTrue )
{
iEditor->SetAknEditorFlags( EAknEditorFlagEnablePartialScreen );
- SetFlag( iSplitInputFlags, ESplitInputEnabled );
+
+ iFlags.Set( EUsePartialScreenInput );
}
-
- // for RTL languages
- iEditor->SetAknEditorLocalLanguage( User::Language() );
- ( AknLayoutUtils::LayoutMirrored() ?
- iEditor->SetAlignment( EAknEditorAlignRight ) :
- iEditor->SetAlignment( EAknEditorAlignLeft ) );
-
- iEditor->SetObserver( this );
-
- // Default not focused
- iEditor->SetFocus( EFalse );
+ iEditor->SetAlignment( AknLayoutUtils::LayoutMirrored() ?
+ EAknEditorAlignRight : EAknEditorAlignLeft );
+
+ iEditor->CreateTextViewL();
+
SetPropertiesL();
}
@@ -303,9 +272,7 @@
if ( IS_ARROW_KEY( aKeyEvent.iScanCode ) )
{
if ( ret == EKeyWasNotConsumed && aType == EEventKey )
- {
- iRefusesFocusLoss = EFalse;
-
+ {
ret = CXnControlAdapter::OfferKeyEventL( aKeyEvent, aType );
}
}
@@ -331,72 +298,42 @@
return ret;
}
-
-// -----------------------------------------------------------------------------
-// CXnTextEditorAdapter::RefusesFocusLoss
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CXnTextEditorAdapter::RefusesFocusLoss() const
- {
- return iRefusesFocusLoss;
- }
// -----------------------------------------------------------------------------
// CXnTextEditorAdapter::FocusChanged
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
-void CXnTextEditorAdapter::FocusChanged( TDrawNow aDrawNow )
+void CXnTextEditorAdapter::FocusChanged( TDrawNow /*aDrawNow*/ )
{
TBool isFocused( IsFocused() ? ETrue : EFalse );
- TInt value;
-
- if ( isFocused )
- {
- value = EPSAiDontForwardNumericKeysToPhone;
-
- if( !IsFlagSet( iSplitInputFlags, ESplitInputEnabled ) )
- {
- TRAP_IGNORE( iAppui->AddToStackL( iAppui->View(), iEditor ) );
- // AddToStackL calls iEditor->SetFocus( ETrue );
+ TBool wasFocused( iFlags.IsSet( EIsFocused ) ? ETrue : EFalse );
+
+ if ( isFocused != wasFocused )
+ {
+ TInt value;
+
+ if ( isFocused )
+ {
+ value = EPSAiDontForwardNumericKeysToPhone;
+
+ iFlags.Set( EIsFocused );
+
+ TRAP_IGNORE( iAppui->AddToStackL( iAppui->View(), iEditor ) );
}
- else if( !IsFlagSet( iSplitInputFlags, ESplitInputOpen ) )
+ else
{
- TRAP_IGNORE( iAppui->AddToStackL( iAppui->View(), iEditor ) );
- SetFlag( iSplitInputFlags, ESplitInputEditorInStack );
- }
- }
- else
- {
- value = EPSAiForwardNumericKeysToPhone;
-
- if( !IsFlagSet( iSplitInputFlags, ESplitInputEnabled ) )
- {
+ value = EPSAiForwardNumericKeysToPhone;
+
+ iFlags.Clear( EIsFocused );
+
iAppui->RemoveFromStack( iEditor );
- iEditor->SetFocus( EFalse, aDrawNow );
- }
+ iEditor->SetFocus( EFalse );
+ }
- // Remove editor from stack if it has not beed removed AND split screen has been closed
- else if( IsFlagSet( iSplitInputFlags, ESplitInputEditorInStack ) &&
- !IsFlagSet( iSplitInputFlags, ESplitInputOpen ) )
- {
- iAppui->RemoveFromStack( iEditor );
- iEditor->SetFocus( EFalse, aDrawNow );
- ClearFlag( iSplitInputFlags, ESplitInputEditorInStack );
- }
- }
-
- if( IsFlagSet( iSplitInputFlags, ESplitInputOpen ) )
- {
- value = EPSAiDontForwardNumericKeysToPhone;
- }
-
- iRefusesFocusLoss = isFocused;
-
- RProperty::Set( KPSUidAiInformation,
- KActiveIdleForwardNumericKeysToPhone,
- value );
+ RProperty::Set( KPSUidAiInformation,
+ KActiveIdleForwardNumericKeysToPhone, value );
+ }
}
// -----------------------------------------------------------------------------
@@ -411,113 +348,57 @@
}
// -----------------------------------------------------------------------------
-// CXnTextEditorAdapter::HandleResourceChange
-//
-// -----------------------------------------------------------------------------
-//
-void CXnTextEditorAdapter::HandleResourceChange( TInt aType )
- {
- if ( aType == KAknSplitInputEnabled )
- {
- if( IsFlagSet( iSplitInputFlags, ESplitInputEditorInStack ) &&
- !IsFlagSet( iSplitInputFlags, ESplitInputOpen ) )
- {
- iUiEngine->EnablePartialTouchInput( iNode, ETrue );
- SetFlag( iSplitInputFlags, ESplitInputOpen );
- if ( !IsFlagSet( iSplitInputFlags, EScreenDeviceChanged ) )
- {
- TRAP_IGNORE( iNode.ReportTriggerEventL( KSplitScreenEnabledTrigger,
- KNullDesC8, KNullDesC8) );
- }
- else
- {
- ClearFlag( iSplitInputFlags, EScreenDeviceChanged );
- }
- }
- }
-
- if ( aType == KAknSplitInputDisabled )
- {
- if( IsFlagSet( iSplitInputFlags, ESplitInputOpen ) )
- {
- iUiEngine->EnablePartialTouchInput( iNode, EFalse );
- ClearFlag( iSplitInputFlags, ESplitInputOpen );
-
- // Note that after orientation switch, split screen is first closed and
- // then opened again. Therefore these must be discarded
- if ( !IsFlagSet( iSplitInputFlags, EScreenDeviceChanged ) )
- {
- TRAP_IGNORE( iNode.ReportTriggerEventL( KSplitScreenDisabledTrigger,
- KNullDesC8, KNullDesC8) );
-
- // If editor is not focused anymore, remove if from stack
- CXnNodePluginIf* focusedNode( NULL );
- TRAP_IGNORE( focusedNode = iUiEngine->FocusedNodeL() );
- if( focusedNode != &iNode &&
- IsFlagSet( iSplitInputFlags, ESplitInputEditorInStack ) )
- {
- iAppui->RemoveFromStack( iEditor );
- iEditor->SetFocus( EFalse );
- ClearFlag( iSplitInputFlags, ESplitInputEditorInStack );
-
- // Forward keys to phone again
- RProperty::Set( KPSUidAiInformation,
- KActiveIdleForwardNumericKeysToPhone,
- EPSAiForwardNumericKeysToPhone );
- }
- }
- }
- }
- CCoeControl::HandleResourceChange( aType );
- }
-
-// -----------------------------------------------------------------------------
// CXnTextEditorAdapter::HandlePointerEventL
//
// -----------------------------------------------------------------------------
//
-void CXnTextEditorAdapter::HandlePointerEventL( const TPointerEvent& aPointerEvent )
- {
- TPointerEvent pointerEvent( aPointerEvent );
- TRect rect( iEditor->TextView()->ViewRect() );
- TPoint point( aPointerEvent.iPosition );
-
- // this opens partial screen also when margin is tapped
- if( !IsFlagSet( iSplitInputFlags, ESplitInputOpen ) )
+void CXnTextEditorAdapter::HandlePointerEventL(
+ const TPointerEvent& aPointerEvent )
+ {
+ if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
{
- if( point.iX < rect.iTl.iX )
+ iFlags.Clear( EIsAlreadyFocused );
+
+ if ( IsFocused() )
{
- pointerEvent.iPosition.iX = rect.iTl.iX;
- }
- else if( point.iX > rect.iBr.iX )
- {
- pointerEvent.iPosition.iX = rect.iBr.iX;
- }
-
- if( point.iY < rect.iTl.iY )
- {
- pointerEvent.iPosition.iY = rect.iTl.iY;
- }
- else if( point.iY > rect.iBr.iY )
- {
- pointerEvent.iPosition.iY = rect.iBr.iY;
+ iFlags.Set( EIsAlreadyFocused );
}
}
- CXnControlAdapter::HandlePointerEventL( pointerEvent );
- }
-
-// -----------------------------------------------------------------------------
-// CXnTextEditorAdapter::HandleScreenDeviceChangedL
-//
-// -----------------------------------------------------------------------------
-//
-void CXnTextEditorAdapter::HandleScreenDeviceChangedL()
- {
- if( IsFlagSet( iSplitInputFlags, ESplitInputOpen ) )
+ if ( iFlags.IsSet( EIsAlreadyFocused ) )
+ {
+ CCoeControl::HandlePointerEventL( aPointerEvent );
+ }
+ else
{
- SetFlag( iSplitInputFlags, EScreenDeviceChanged );
- }
+ TPointerEvent pointerEvent( aPointerEvent );
+ TRect rect( iEditor->TextView()->ViewRect() );
+ TPoint point( aPointerEvent.iPosition );
+
+ // this opens partial screen also when margin is tapped
+ if ( iFlags.IsSet( EUsePartialScreenInput ) )
+ {
+ if( point.iX < rect.iTl.iX )
+ {
+ pointerEvent.iPosition.iX = rect.iTl.iX;
+ }
+ else if( point.iX > rect.iBr.iX )
+ {
+ pointerEvent.iPosition.iX = rect.iBr.iX;
+ }
+
+ if( point.iY < rect.iTl.iY )
+ {
+ pointerEvent.iPosition.iY = rect.iTl.iY;
+ }
+ else if( point.iY > rect.iBr.iY )
+ {
+ pointerEvent.iPosition.iY = rect.iBr.iY;
+ }
+ }
+
+ CXnControlAdapter::HandlePointerEventL( pointerEvent );
+ }
}
// -----------------------------------------------------------------------------
@@ -535,14 +416,54 @@
}
// -----------------------------------------------------------------------------
+// CXnTextEditorAdapter::Editor
+// Gets underlying CEikEdwin
+// -----------------------------------------------------------------------------
+//
+CEikEdwin* CXnTextEditorAdapter::Editor() const
+ {
+ return iEditor;
+ }
+
+// -----------------------------------------------------------------------------
// CXnTextEditorAdapter::SetTextL
// Sets the new content to the underlying CEikEdwin
// -----------------------------------------------------------------------------
//
void CXnTextEditorAdapter::SetTextL( const TDesC& aText )
{
- iEditor->SetTextL( &aText );
- iNode.SetDirtyL();
+ HBufC* text( Text() );
+
+ TBool update( EFalse );
+
+ if ( !text || *text != aText )
+ {
+ update = ETrue;
+ }
+
+ delete text;
+ text = NULL;
+
+ if ( update )
+ {
+ iFlags.Set( ESetText );
+
+ TRAP_IGNORE( iEditor->SetTextL( &aText ) );
+
+ iFlags.Clear( ESetText );
+
+ iNode.SetDirtyL();
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CXnTextEditorAdapter::IsSetText
+// Queries whether SetText API has generated edwin content change
+// -----------------------------------------------------------------------------
+//
+TBool CXnTextEditorAdapter::IsSetText() const
+ {
+ return iFlags.IsSet( ESetText ) ? ETrue : EFalse;
}
// -----------------------------------------------------------------------------
@@ -561,22 +482,6 @@
}
// -----------------------------------------------------------------------------
-// CXnTextEditorAdapter::HandleEditorEvent
-// -----------------------------------------------------------------------------
-//
-void CXnTextEditorAdapter::HandleEditorEvent( TInt aReason )
- {
- if( aReason == CXnTextEditor::KDeactivateTextEditor &&
- IsFlagSet( iSplitInputFlags, ESplitInputOpen ) )
- {
- iAppui->RemoveFromStack( iEditor );
- iEditor->SetFocus( EFalse );
- ClearFlag( iSplitInputFlags, ESplitInputEditorInStack );
- iRefusesFocusLoss = EFalse;
- }
- }
-
-// -----------------------------------------------------------------------------
// CXnTextEditorAdapter::SetPropertiesL
// Sets text properties
// -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditorpublisher.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditorpublisher.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -94,13 +94,10 @@
delete iServiceHandler;
iServiceHandler = NULL;
}
- CEikEdwin* editor = iAdapter.Editor();
- if( editor )
- {
- editor->RemoveEdwinObserver( this );
- }
+
delete iNodeId;
delete iTextBuffer;
+ delete iTempBuffer;
}
// -----------------------------------------------------------------------------
@@ -120,12 +117,18 @@
{
iNodeId = CnvUtfConverter::ConvertToUnicodeFromUtf8L( aNodeId );
InitCpsInterfaceL();
- CEikEdwin* editor = iAdapter.Editor();
- if( editor )
- {
- editor->SetEdwinObserver( this );
- TInt len = editor->MaxLength();
+
+ CEikEdwin* editor( iAdapter.Editor() );
+
+ // Editor must be activated before setting observer
+ if( editor && editor->TextView() )
+ {
+ TInt len( editor->MaxLength() );
+
iTextBuffer = HBufC::NewL( len );
+ iTempBuffer = HBufC::NewL( len );
+
+ editor->TextView()->SetObserver( this );
}
}
@@ -250,19 +253,35 @@
iCpsInterface = msgInterface;
}
+
// -----------------------------------------------------------------------------
-// CXnTextEditorPublisher::HandleEdwinEventL
+// CXnTextEditorPublisher::OnReformatL
// -----------------------------------------------------------------------------
//
-void CXnTextEditorPublisher::HandleEdwinEventL(CEikEdwin* aEdwin, TEdwinEvent aEventType)
+void CXnTextEditorPublisher::OnReformatL( const CTextView* aTextView )
{
- if( aEventType == MEikEdwinObserver::EEventTextUpdate)
+ CEikEdwin* editor( iAdapter.Editor() );
+
+ if ( editor )
{
- TPtr bufferDes = iTextBuffer->Des();
- bufferDes.Zero();
- aEdwin->GetText( bufferDes );
- PublishTextL( bufferDes );
- }
+ editor->OnReformatL( aTextView );
+
+ TPtr ptr( iTempBuffer->Des() );
+
+ ptr.Zero();
+
+ editor->GetText( ptr );
+
+ if ( *iTextBuffer != *iTempBuffer )
+ {
+ *iTextBuffer = *iTempBuffer;
+
+ if ( !iAdapter.IsSetText() )
+ {
+ PublishTextL( *iTextBuffer );
+ }
+ }
+ }
}
// -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/renderingplugins/xntextfactory/src/xntextadapter.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xntextfactory/src/xntextadapter.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -1044,9 +1044,9 @@
lineSpace = iNode.UiEngineL()->VerticalPixelValueL( lineSpaceProp, aReference );
}
- if( lineSpace < 1 )
+ if( lineSpace < 0 )
{
- // Must be at least 1
+ // Default
lineSpace = 1;
}
--- a/idlehomescreen/xmluirendering/uiengine/bwins/xn3layoutengineu.def Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/bwins/xn3layoutengineu.def Tue Sep 14 20:58:58 2010 +0300
@@ -40,178 +40,178 @@
?ComponentNodeImpl@CXnNodePluginIf@@QAEPAVCXnComponentNodeImpl@@XZ @ 39 NONAME ; class CXnComponentNodeImpl * CXnNodePluginIf::ComponentNodeImpl(void)
??0CXnViewsNodeImpl@@IAE@XZ @ 40 NONAME ; CXnViewsNodeImpl::CXnViewsNodeImpl(void)
?IsTextEditorActive@TXnUiEnginePluginIf@@QAEHXZ @ 41 NONAME ; int TXnUiEnginePluginIf::IsTextEditorActive(void)
- ?HandlePointerEventL@CXnControlAdapter@@UAEXABUTPointerEvent@@@Z @ 42 NONAME ; void CXnControlAdapter::HandlePointerEventL(struct TPointerEvent const &)
- ??1CXnDocument@@UAE@XZ @ 43 NONAME ; CXnDocument::~CXnDocument(void)
- ?HandleResourceChangeL@CXnAppUiAdapter@@MAEXH@Z @ 44 NONAME ; void CXnAppUiAdapter::HandleResourceChangeL(int)
- ?DoEnterPowerSaveModeL@CXnControlAdapter@@UAEXW4TModeEvent@1@@Z @ 45 NONAME ; void CXnControlAdapter::DoEnterPowerSaveModeL(enum CXnControlAdapter::TModeEvent)
- ?CloneL@CXnProperty@@QAEPAV1@XZ @ 46 NONAME ; class CXnProperty * CXnProperty::CloneL(void)
- ?ReportTriggerEventL@CXnNodePluginIf@@QAEXABVTDesC8@@00@Z @ 47 NONAME ; void CXnNodePluginIf::ReportTriggerEventL(class TDesC8 const &, class TDesC8 const &, class TDesC8 const &)
- ?FocusedNodeL@TXnUiEnginePluginIf@@QAEPAVCXnNodePluginIf@@XZ @ 48 NONAME ; class CXnNodePluginIf * TXnUiEnginePluginIf::FocusedNodeL(void)
- ?FindContentSourceNodesL@TXnUiEngineAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@ABVTDesC8@@@Z @ 49 NONAME ; class RPointerArray<class CXnNodeAppIf> TXnUiEngineAppIf::FindContentSourceNodesL(class TDesC8 const &)
- ?EqualsL@CXnProperty@@QBEHAAV1@@Z @ 50 NONAME ; int CXnProperty::EqualsL(class CXnProperty &) const
- ?ScreenDeviceSize@TXnUiEnginePluginIf@@QAE?AVTSize@@XZ @ 51 NONAME ; class TSize TXnUiEnginePluginIf::ScreenDeviceSize(void)
- ??0CXnControlAdapter@@IAE@XZ @ 52 NONAME ; CXnControlAdapter::CXnControlAdapter(void)
- ?UiEngineL@CXnNodeAppIf@@QAEPAVTXnUiEngineAppIf@@XZ @ 53 NONAME ; class TXnUiEngineAppIf * CXnNodeAppIf::UiEngineL(void)
- ?LongTapDetector@CXnControlAdapter@@QBEPAVCAknLongTapDetector@@XZ @ 54 NONAME ; class CAknLongTapDetector * CXnControlAdapter::LongTapDetector(void) const
- ??0CXnAppUiAdapter@@QAE@VTUid@@@Z @ 55 NONAME ; CXnAppUiAdapter::CXnAppUiAdapter(class TUid)
- ?DestroyPublisher@CXnAppUiAdapter@@UAEXABVTAiFwPublisherInfo@@@Z @ 56 NONAME ; void CXnAppUiAdapter::DestroyPublisher(class TAiFwPublisherInfo const &)
- ?Rect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 57 NONAME ; class TRect CXnNodePluginIf::Rect(void)
- ?AddChildL@CXnNodePluginIf@@QAEXPAV1@@Z @ 58 NONAME ; void CXnNodePluginIf::AddChildL(class CXnNodePluginIf *)
- ?SetNode@CXnComponent@@QAEXAAVCXnNodePluginIf@@@Z @ 59 NONAME ; void CXnComponent::SetNode(class CXnNodePluginIf &)
- ?ResetStylusCounter@CXnControlAdapter@@QAEXXZ @ 60 NONAME ; void CXnControlAdapter::ResetStylusCounter(void)
- ?SetComponent@CXnComponentNodeImpl@@QAEXPAVCXnComponent@@@Z @ 61 NONAME ; void CXnComponentNodeImpl::SetComponent(class CXnComponent *)
- ?LayoutUIL@TXnUiEnginePluginIf@@QAEXPAVCXnNodePluginIf@@@Z @ 62 NONAME ; void TXnUiEnginePluginIf::LayoutUIL(class CXnNodePluginIf *)
- ?ExitPowerSaveModeL@CXnControlAdapter@@QAEXW4TModeEvent@1@@Z @ 63 NONAME ; void CXnControlAdapter::ExitPowerSaveModeL(enum CXnControlAdapter::TModeEvent)
- ?PublisherInfo@CXnAppUiAdapter@@UAEHAAVCXnNodeAppIf@@AAVTHsPublisherInfo@@@Z @ 64 NONAME ; int CXnAppUiAdapter::PublisherInfo(class CXnNodeAppIf &, class THsPublisherInfo &)
- ?GetThemeResource@TXnUiEngineAppIf@@QAEHABVTDesC16@@AAVRFile@@@Z @ 65 NONAME ; int TXnUiEngineAppIf::GetThemeResource(class TDesC16 const &, class RFile &)
- ?ConstructL@CXnComponent@@IAEXXZ @ 66 NONAME ; void CXnComponent::ConstructL(void)
- ?FindResource@CXnUtils@@SAPAVCXnResource@@AAV?$CArrayPtrSeg@VCXnResource@@@@ABVTDesC16@@AAH@Z @ 67 NONAME ; class CXnResource * CXnUtils::FindResource(class CArrayPtrSeg<class CXnResource> &, class TDesC16 const &, int &)
- ?UnsetStateL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 68 NONAME ; void CXnNodeAppIf::UnsetStateL(class TDesC8 const &)
- ?Uid@CXnDocument@@QAE?AVTUid@@XZ @ 69 NONAME ; class TUid CXnDocument::Uid(void)
- ?FocusChanged@CXnControlAdapter@@UAEXW4TDrawNow@@@Z @ 70 NONAME ; void CXnControlAdapter::FocusChanged(enum TDrawNow)
- ?SetBlank@CXnControlAdapter@@QAEXH@Z @ 71 NONAME ; void CXnControlAdapter::SetBlank(int)
- ?ProcessMessageL@CXnAppUiAdapter@@UAEXVTUid@@ABVTDesC8@@@Z @ 72 NONAME ; void CXnAppUiAdapter::ProcessMessageL(class TUid, class TDesC8 const &)
- ?Component@CXnNodeAppIf@@QAEAAVCXnComponent@@XZ @ 73 NONAME ; class CXnComponent & CXnNodeAppIf::Component(void)
- ?SetLayoutCapable@CXnNodePluginIf@@QAEXH@Z @ 74 NONAME ; void CXnNodePluginIf::SetLayoutCapable(int)
- ?MarginRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 75 NONAME ; class TRect CXnNodePluginIf::MarginRect(void)
- ?UiEngineL@CXnAppUiAdapter@@QAEPAVTXnUiEngineAppIf@@XZ @ 76 NONAME ; class TXnUiEngineAppIf * CXnAppUiAdapter::UiEngineL(void)
- ?ActiveView@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@XZ @ 77 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::ActiveView(void)
- ?HandleXuikonEventL@CXnAppUiAdapter@@UAEXAAVCXnNodeAppIf@@0AAVCXnDomNode@@1@Z @ 78 NONAME ; void CXnAppUiAdapter::HandleXuikonEventL(class CXnNodeAppIf &, class CXnNodeAppIf &, class CXnDomNode &, class CXnDomNode &)
- ?RenderUIL@TXnUiEngineAppIf@@QAEXPAVCXnNodeAppIf@@@Z @ 79 NONAME ; void TXnUiEngineAppIf::RenderUIL(class CXnNodeAppIf *)
- ?PrepareToExit@CXnAppUiAdapter@@MAEXXZ @ 80 NONAME ; void CXnAppUiAdapter::PrepareToExit(void)
- ?DoHandlePropertyChangeL@CXnControlAdapter@@UAEXPAVCXnProperty@@@Z @ 81 NONAME ; void CXnControlAdapter::DoHandlePropertyChangeL(class CXnProperty *)
- ?ConstructL@CXnControlAdapter@@IAEXAAVCXnNodePluginIf@@@Z @ 82 NONAME ; void CXnControlAdapter::ConstructL(class CXnNodePluginIf &)
- ?FocusedNode@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@XZ @ 83 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FocusedNode(void)
- ?SetDataL@CXnComponent@@QAEXABVTDesC8@@ABVTDesC16@@H@Z @ 84 NONAME ; void CXnComponent::SetDataL(class TDesC8 const &, class TDesC16 const &, int)
- ?OfferKeyEventL@CXnControlAdapter@@UAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 85 NONAME ; enum TKeyResponse CXnControlAdapter::OfferKeyEventL(struct TKeyEvent const &, enum TEventCode)
- ?IsDrawingAllowed@CXnControlAdapter@@QBEHXZ @ 86 NONAME ; int CXnControlAdapter::IsDrawingAllowed(void) const
- ?DisplayL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 87 NONAME ; class CXnProperty * CXnNodePluginIf::DisplayL(void)
- ?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@PAVCXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 88 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class CXnDomPropertyValue *, class CXnDomStringPool &)
- ?Rect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 89 NONAME ; class TRect CXnNodeAppIf::Rect(void)
- ?NewL@CXnComponentNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 90 NONAME ; class CXnComponentNodeImpl * CXnComponentNodeImpl::NewL(class CXnType *)
- ?WidgetsVisible@TXnUiEngineAppIf@@QBEHXZ @ 91 NONAME ; int TXnUiEngineAppIf::WidgetsVisible(void) const
- ?Type@CXnNodePluginIf@@QAEPAVCXnType@@XZ @ 92 NONAME ; class CXnType * CXnNodePluginIf::Type(void)
- ?MakeXnComponentL@MXnComponentFactory@@EAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 93 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::MakeXnComponentL(class CXnNodePluginIf &, class CXnComponent * &)
- ?UnsetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 94 NONAME ; void CXnNodePluginIf::UnsetStateL(class TDesC8 const &)
- ?StringValueL@CXnProperty@@QAEPAVHBufC16@@XZ @ 95 NONAME ; class HBufC16 * CXnProperty::StringValueL(void)
- ?DisableRenderUiLC@TXnUiEnginePluginIf@@QAEXXZ @ 96 NONAME ; void TXnUiEnginePluginIf::DisableRenderUiLC(void)
- ?SetPropertyL@CXnNodeAppIf@@QAEXPAVCXnProperty@@@Z @ 97 NONAME ; void CXnNodeAppIf::SetPropertyL(class CXnProperty *)
- ?View@CXnAppUiAdapter@@QBEAAVCAknView@@XZ @ 98 NONAME ; class CAknView & CXnAppUiAdapter::View(void) const
- ?ViewNodeImpl@CXnNodePluginIf@@QAEPAVCXnViewNodeImpl@@XZ @ 99 NONAME ; class CXnViewNodeImpl * CXnNodePluginIf::ViewNodeImpl(void)
- ?StripQuotes@CXnUtils@@SAXAAPAVHBufC16@@@Z @ 100 NONAME ; void CXnUtils::StripQuotes(class HBufC16 * &)
- ?SetPCDataL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 101 NONAME ; void CXnNodePluginIf::SetPCDataL(class TDesC8 const &)
- ?VisibilityL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 102 NONAME ; class CXnProperty * CXnNodePluginIf::VisibilityL(void)
- ?Draw@CXnControlAdapter@@MBEXABVTRect@@@Z @ 103 NONAME ; void CXnControlAdapter::Draw(class TRect const &) const
- ??1CXnApplication@@UAE@XZ @ 104 NONAME ; CXnApplication::~CXnApplication(void)
- ?DoesNodeNeedComponentImplL@MXnComponentFactory@@QAEHABVTDesC8@@@Z @ 105 NONAME ; int MXnComponentFactory::DoesNodeNeedComponentImplL(class TDesC8 const &)
- ?ConstructL@CXnViewsNodeImpl@@IAEXPAVCXnType@@@Z @ 106 NONAME ; void CXnViewsNodeImpl::ConstructL(class CXnType *)
- ?StringPool@TXnUiEngineAppIf@@QAEAAVCXnDomStringPool@@XZ @ 107 NONAME ; class CXnDomStringPool & TXnUiEngineAppIf::StringPool(void)
- ?UiEngineL@CXnNodePluginIf@@QAEPAVTXnUiEnginePluginIf@@XZ @ 108 NONAME ; class TXnUiEnginePluginIf * CXnNodePluginIf::UiEngineL(void)
- ?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@@Z @ 109 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &)
- ?PluginNodeL@TXnUiEnginePluginIf@@QAEAAVCXnNodePluginIf@@PAV2@@Z @ 110 NONAME ; class CXnNodePluginIf & TXnUiEnginePluginIf::PluginNodeL(class CXnNodePluginIf *)
- ?VerticalPixelValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 111 NONAME ; int TXnUiEnginePluginIf::VerticalPixelValueL(class CXnProperty *, int)
- ?SetComponent@CXnControlAdapter@@QAEXPAVCXnComponent@@@Z @ 112 NONAME ; void CXnControlAdapter::SetComponent(class CXnComponent *)
- ??0MXnNodePredicate@@QAE@XZ @ 113 NONAME ; MXnNodePredicate::MXnNodePredicate(void)
- ??1CXnViewsNodeImpl@@UAE@XZ @ 114 NONAME ; CXnViewsNodeImpl::~CXnViewsNodeImpl(void)
- ?HandleControlEventL@CXnControlAdapter@@UAEXPAVCCoeControl@@W4TCoeEvent@MCoeControlObserver@@@Z @ 115 NONAME ; void CXnControlAdapter::HandleControlEventL(class CCoeControl *, enum MCoeControlObserver::TCoeEvent)
- ?HandleScreenDeviceChangedL@CXnControlAdapter@@UAEXXZ @ 116 NONAME ; void CXnControlAdapter::HandleScreenDeviceChangedL(void)
- ?SizeChanged@CXnControlAdapter@@MAEXXZ @ 117 NONAME ; void CXnControlAdapter::SizeChanged(void)
- ?CountComponentControls@CXnControlAdapter@@MBEHXZ @ 118 NONAME ; int CXnControlAdapter::CountComponentControls(void) const
- ?HideTooltipsL@CXnNodeAppIf@@QAEXXZ @ 119 NONAME ; void CXnNodeAppIf::HideTooltipsL(void)
- ?GetPropertyL@CXnNodeAppIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 120 NONAME ; class CXnProperty * CXnNodeAppIf::GetPropertyL(class TDesC8 const &) const
- ?FindNodeByClassL@TXnUiEngineAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@ABVTDesC8@@0@Z @ 121 NONAME ; class RPointerArray<class CXnNodeAppIf> TXnUiEngineAppIf::FindNodeByClassL(class TDesC8 const &, class TDesC8 const &)
- ?Match@MXnNodePredicate@@UAEHAAVCXnNode@@@Z @ 122 NONAME ; int MXnNodePredicate::Match(class CXnNode &)
- ?GetBitmapAndMask@CXnControlAdapter@@QAEXABVTDesC16@@0AAPAVCFbsBitmap@@1@Z @ 123 NONAME ; void CXnControlAdapter::GetBitmapAndMask(class TDesC16 const &, class TDesC16 const &, class CFbsBitmap * &, class CFbsBitmap * &)
- ?NewL@CXnViewsNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 124 NONAME ; class CXnViewsNodeImpl * CXnViewsNodeImpl::NewL(class CXnType *)
- ?PaddingRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 125 NONAME ; class TRect CXnNodeAppIf::PaddingRect(void)
- ?SetMarginRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 126 NONAME ; void CXnNodePluginIf::SetMarginRect(class TRect const &)
- ?IsDialogDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 127 NONAME ; int TXnUiEnginePluginIf::IsDialogDisplaying(void)
- ?HandleEventL@CXnAppUiAdapter@@UAEXABVTDesC16@@AAVCXnNodeAppIf@@@Z @ 128 NONAME ; void CXnAppUiAdapter::HandleEventL(class TDesC16 const &, class CXnNodeAppIf &)
- ?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 129 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class TDesC8 const &) const
- ?SetPropertyArrayL@CXnNodeAppIf@@QAEXPAV?$RPointerArray@VCXnProperty@@@@@Z @ 130 NONAME ; void CXnNodeAppIf::SetPropertyArrayL(class RPointerArray<class CXnProperty> *)
- ?RemoveViewL@CXnAppUiAdapter@@QAEXAAVCAknView@@@Z @ 131 NONAME ; void CXnAppUiAdapter::RemoveViewL(class CAknView &)
- ?EnterPowerSaveModeL@CXnComponent@@UAEXXZ @ 132 NONAME ; void CXnComponent::EnterPowerSaveModeL(void)
- ?SetRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 133 NONAME ; void CXnNodePluginIf::SetRect(class TRect const &)
- ??0CXnComponent@@IAE@XZ @ 134 NONAME ; CXnComponent::CXnComponent(void)
- ?CollapseWhiteSpace@CXnUtils@@SAXAAVCXnNodePluginIf@@AAVTDes16@@@Z @ 135 NONAME ; void CXnUtils::CollapseWhiteSpace(class CXnNodePluginIf &, class TDes16 &)
- ?SetHandleTooltip@CXnNodePluginIf@@QAEXH@Z @ 136 NONAME ; void CXnNodePluginIf::SetHandleTooltip(int)
- ??1CXnAppUiAdapter@@UAE@XZ @ 137 NONAME ; CXnAppUiAdapter::~CXnAppUiAdapter(void)
- ?NewL@CXnControlAdapter@@SAPAV1@AAVCXnNodePluginIf@@@Z @ 138 NONAME ; class CXnControlAdapter * CXnControlAdapter::NewL(class CXnNodePluginIf &)
- ?EnableLongTapAnimation@CXnControlAdapter@@QAEXH@Z @ 139 NONAME ; void CXnControlAdapter::EnableLongTapAnimation(int)
- ?SetPaddingRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 140 NONAME ; void CXnNodePluginIf::SetPaddingRect(class TRect const &)
- ?SetFocusedNode@TXnUiEnginePluginIf@@QAEXPAVCXnNodePluginIf@@@Z @ 141 NONAME ; void TXnUiEnginePluginIf::SetFocusedNode(class CXnNodePluginIf *)
- ?ExitPowerSaveModeL@CXnComponent@@UAEXXZ @ 142 NONAME ; void CXnComponent::ExitPowerSaveModeL(void)
- ?GetPCData@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 143 NONAME ; class TDesC8 const & CXnNodeAppIf::GetPCData(void) const
- ?Namespace@CXnNodeAppIf@@QAEABVTDesC8@@XZ @ 144 NONAME ; class TDesC8 const & CXnNodeAppIf::Namespace(void)
- ?LoadPublisher@CXnAppUiAdapter@@UAEXABVTAiFwPublisherInfo@@@Z @ 145 NONAME ; void CXnAppUiAdapter::LoadPublisher(class TAiFwPublisherInfo const &)
- ??1CXnComponentNodeImpl@@UAE@XZ @ 146 NONAME ; CXnComponentNodeImpl::~CXnComponentNodeImpl(void)
- ?SetPropertyWithoutNotificationL@CXnNodePluginIf@@QAEXPAVCXnProperty@@@Z @ 147 NONAME ; void CXnNodePluginIf::SetPropertyWithoutNotificationL(class CXnProperty *)
- ?GetPCData@CXnNodePluginIf@@QBEABVTDesC8@@XZ @ 148 NONAME ; class TDesC8 const & CXnNodePluginIf::GetPCData(void) const
- ?SetPCDataL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 149 NONAME ; void CXnNodeAppIf::SetPCDataL(class TDesC8 const &)
- ?Resources@TXnUiEnginePluginIf@@QAEAAV?$CArrayPtrSeg@VCXnResource@@@@XZ @ 150 NONAME ; class CArrayPtrSeg<class CXnResource> & TXnUiEnginePluginIf::Resources(void)
- ?SetContentBitmaps@CXnControlAdapter@@QAEXABVTDesC16@@0@Z @ 151 NONAME ; void CXnControlAdapter::SetContentBitmaps(class TDesC16 const &, class TDesC16 const &)
- ??1CXnControlAdapter@@UAE@XZ @ 152 NONAME ; CXnControlAdapter::~CXnControlAdapter(void)
- ??1MXnNodePredicate@@UAE@XZ @ 153 NONAME ; MXnNodePredicate::~MXnNodePredicate(void)
- ?HorizontalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 154 NONAME ; int TXnUiEnginePluginIf::HorizontalTwipValueL(class CXnProperty *, int)
- ?ConstructL@CXnAppUiAdapter@@UAEXXZ @ 155 NONAME ; void CXnAppUiAdapter::ConstructL(void)
- ?CreateFontL@CXnUtils@@SAXAAVCXnNodePluginIf@@AAPAVCFont@@AAH@Z @ 156 NONAME ; void CXnUtils::CreateFontL(class CXnNodePluginIf &, class CFont * &, int &)
- ??0CXnApplication@@QAE@VTUid@@@Z @ 157 NONAME ; CXnApplication::CXnApplication(class TUid)
- ?ComponentControl@CXnControlAdapter@@MBEPAVCCoeControl@@H@Z @ 158 NONAME ; class CCoeControl * CXnControlAdapter::ComponentControl(int) const
- ?HandleLongTapEventL@CXnControlAdapter@@UAEXABVTPoint@@0@Z @ 159 NONAME ; void CXnControlAdapter::HandleLongTapEventL(class TPoint const &, class TPoint const &)
- ?ParentL@CXnNodeAppIf@@QBEPAV1@XZ @ 160 NONAME ; class CXnNodeAppIf * CXnNodeAppIf::ParentL(void) const
- ??1CXnComponent@@UAE@XZ @ 161 NONAME ; CXnComponent::~CXnComponent(void)
- ?ControlAdapter@CXnComponent@@QAEPAVCXnControlAdapter@@XZ @ 162 NONAME ; class CXnControlAdapter * CXnComponent::ControlAdapter(void)
- ?DrawContentImage@CXnControlAdapter@@IBEXXZ @ 163 NONAME ; void CXnControlAdapter::DrawContentImage(void) const
- ?Component@CXnComponentNodeImpl@@QAEPAVCXnComponent@@XZ @ 164 NONAME ; class CXnComponent * CXnComponentNodeImpl::Component(void)
- ?WidgetsVisible@TXnUiEnginePluginIf@@QBEHXZ @ 165 NONAME ; int TXnUiEnginePluginIf::WidgetsVisible(void) const
- ?SetControlAdapter@CXnComponent@@QAEXPAVCXnControlAdapter@@@Z @ 166 NONAME ; void CXnComponent::SetControlAdapter(class CXnControlAdapter *)
- ?SetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 167 NONAME ; void CXnNodePluginIf::SetStateL(class TDesC8 const &)
- ?DoesComponentNeedCreation@CXnComponentNodeImpl@@QBEHXZ @ 168 NONAME ; int CXnComponentNodeImpl::DoesComponentNeedCreation(void) const
- ??0CXnDocument@@QAE@AAVCEikApplication@@VTUid@@@Z @ 169 NONAME ; CXnDocument::CXnDocument(class CEikApplication &, class TUid)
- ?FindNodeByClassL@TXnUiEnginePluginIf@@QAE?AV?$RPointerArray@VCXnNodePluginIf@@@@ABVTDesC16@@@Z @ 170 NONAME ; class RPointerArray<class CXnNodePluginIf> TXnUiEnginePluginIf::FindNodeByClassL(class TDesC16 const &)
- ?InternalDomNodeType@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 171 NONAME ; class TDesC8 const & CXnNodeAppIf::InternalDomNodeType(void) const
- ?StringPool@TXnUiEnginePluginIf@@QAEAAVCXnDomStringPool@@XZ @ 172 NONAME ; class CXnDomStringPool & TXnUiEnginePluginIf::StringPool(void)
- ?SetStateL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 173 NONAME ; void CXnNodeAppIf::SetStateL(class TDesC8 const &)
- ?Type@CXnNodeAppIf@@QAEPAVCXnType@@XZ @ 174 NONAME ; class CXnType * CXnNodeAppIf::Type(void)
- ?BorderRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 175 NONAME ; class TRect CXnNodeAppIf::BorderRect(void)
- ?IdL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 176 NONAME ; class CXnProperty * CXnNodePluginIf::IdL(void)
- ?RootNodeL@TXnUiEngineAppIf@@QAEAAVCXnNodeAppIf@@XZ @ 177 NONAME ; class CXnNodeAppIf & TXnUiEngineAppIf::RootNodeL(void)
- ?CreateXnComponentL@MXnComponentFactory@@QAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 178 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::CreateXnComponentL(class CXnNodePluginIf &, class CXnComponent * &)
- ?RefreshMenuL@TXnUiEngineAppIf@@QAEXXZ @ 179 NONAME ; void TXnUiEngineAppIf::RefreshMenuL(void)
- ?PaddingRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 180 NONAME ; class TRect CXnNodePluginIf::PaddingRect(void)
- ?MeasureAdaptiveContentL@CXnControlAdapter@@UAE?AVTSize@@ABV2@@Z @ 181 NONAME ; class TSize CXnControlAdapter::MeasureAdaptiveContentL(class TSize const &)
- ?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@0W4TPrimitiveValueType@CXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 182 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class TDesC8 const &, enum CXnDomPropertyValue::TPrimitiveValueType, class CXnDomStringPool &)
- ?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@AAV2@@Z @ 183 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class CXnProperty &) const
- ?MarginRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 184 NONAME ; class TRect CXnNodeAppIf::MarginRect(void)
- ?EditMode@TXnUiEnginePluginIf@@QAEHXZ @ 185 NONAME ; int TXnUiEnginePluginIf::EditMode(void)
- ?FindNodeByIdL@TXnUiEnginePluginIf@@QAEPAVCXnNodePluginIf@@ABVTDesC8@@0@Z @ 186 NONAME ; class CXnNodePluginIf * TXnUiEnginePluginIf::FindNodeByIdL(class TDesC8 const &, class TDesC8 const &)
- ?MakeInterfaceL@CXnComponent@@UAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 187 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnComponent::MakeInterfaceL(class TDesC8 const &)
- ?EnableRenderUi@CXnUiEngineImpl@@CAXPAX@Z @ 188 NONAME ; void CXnUiEngineImpl::EnableRenderUi(void *)
- ?IsMenuDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 189 NONAME ; int TXnUiEnginePluginIf::IsMenuDisplaying(void)
- ?IsMenuDisplaying@TXnUiEngineAppIf@@QAEHXZ @ 190 NONAME ; int TXnUiEngineAppIf::IsMenuDisplaying(void)
- ?NewL@CXnProperty@@SAPAV1@PAVCXnDomProperty@@@Z @ 191 NONAME ; class CXnProperty * CXnProperty::NewL(class CXnDomProperty *)
- ?ConstructL@CXnComponentNodeImpl@@IAEXPAVCXnType@@@Z @ 192 NONAME ; void CXnComponentNodeImpl::ConstructL(class CXnType *)
- ?ChildrenL@CXnNodeAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@XZ @ 193 NONAME ; class RPointerArray<class CXnNodeAppIf> CXnNodeAppIf::ChildrenL(void)
- ?ConvertHslToRgb@CXnUtils@@SA?AVTRgb@@HHH@Z @ 194 NONAME ; class TRgb CXnUtils::ConvertHslToRgb(int, int, int)
- ?LoadBitmap@CXnControlAdapter@@QAEPAVCFbsBitmap@@ABVTDesC16@@@Z @ 195 NONAME ; class CFbsBitmap * CXnControlAdapter::LoadBitmap(class TDesC16 const &)
- ??0MXnComponentFactory@@IAE@XZ @ 196 NONAME ; MXnComponentFactory::MXnComponentFactory(void)
- ?SetComponent@CXnViewsNodeImpl@@QAEXPAVCXnComponent@@@Z @ 197 NONAME ; void CXnViewsNodeImpl::SetComponent(class CXnComponent *)
- ?BorderRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 198 NONAME ; class TRect CXnNodePluginIf::BorderRect(void)
- ?CreateDocumentL@CXnApplication@@MAEPAVCApaDocument@@XZ @ 199 NONAME ; class CApaDocument * CXnApplication::CreateDocumentL(void)
- ?HandleUiReadyEventL@CXnAppUiAdapter@@UAEXXZ @ 200 NONAME ; void CXnAppUiAdapter::HandleUiReadyEventL(void)
- ?CreateFontL@CXnUtils@@SAXABVTDesC16@@HVTFontStyle@@AAPAVCFont@@AAH@Z @ 201 NONAME ; void CXnUtils::CreateFontL(class TDesC16 const &, int, class TFontStyle, class CFont * &, int &)
- ?GetPluginNodeArrayL@TXnUiEngineAppIf@@QAEHAAV?$RPointerArray@VCXnNodeAppIf@@@@@Z @ 202 NONAME ; int TXnUiEngineAppIf::GetPluginNodeArrayL(class RPointerArray<class CXnNodeAppIf> &)
- ?MakeXnControlAdapterL@MXnComponentFactory@@EAEPAVCXnControlAdapter@@AAVCXnNodePluginIf@@PAV2@@Z @ 203 NONAME ; class CXnControlAdapter * MXnComponentFactory::MakeXnControlAdapterL(class CXnNodePluginIf &, class CXnControlAdapter *)
- ?IsDrawingAllowed@CXnNodePluginIf@@QBEHXZ @ 204 NONAME ; int CXnNodePluginIf::IsDrawingAllowed(void) const
- ?MakeInterfaceL@CXnNodeAppIf@@QAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 205 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnNodeAppIf::MakeInterfaceL(class TDesC8 const &)
- ?VerticalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 206 NONAME ; int TXnUiEnginePluginIf::VerticalTwipValueL(class CXnProperty *, int)
- ?Component@CXnControlAdapter@@QAEPAVCXnComponent@@XZ @ 207 NONAME ; class CXnComponent * CXnControlAdapter::Component(void)
- ?FloatValueL@CXnProperty@@QAENXZ @ 208 NONAME ; double CXnProperty::FloatValueL(void)
- ?SetUiEngine@TXnUiEngineAppIf@@QAEXPAVCXnUiEngine@@@Z @ 209 NONAME ; void TXnUiEngineAppIf::SetUiEngine(class CXnUiEngine *)
- ?FindNodeByIdL@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@ABVTDesC16@@0@Z @ 210 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FindNodeByIdL(class TDesC16 const &, class TDesC16 const &)
- ?IsEditMode@TXnUiEngineAppIf@@QAEHXZ @ 211 NONAME ; int TXnUiEngineAppIf::IsEditMode(void)
- ?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@AAH@Z @ 212 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &, int &)
- ?EnablePartialTouchInput@TXnUiEnginePluginIf@@QAEXAAVCXnNodePluginIf@@H@Z @ 213 NONAME ; void TXnUiEnginePluginIf::EnablePartialTouchInput(class CXnNodePluginIf &, int)
+ ?IsEditState@CXnNodePluginIf@@QAEHXZ @ 42 NONAME ; int CXnNodePluginIf::IsEditState(void)
+ ?HandlePointerEventL@CXnControlAdapter@@UAEXABUTPointerEvent@@@Z @ 43 NONAME ; void CXnControlAdapter::HandlePointerEventL(struct TPointerEvent const &)
+ ??1CXnDocument@@UAE@XZ @ 44 NONAME ; CXnDocument::~CXnDocument(void)
+ ?HandleResourceChangeL@CXnAppUiAdapter@@MAEXH@Z @ 45 NONAME ; void CXnAppUiAdapter::HandleResourceChangeL(int)
+ ?DoEnterPowerSaveModeL@CXnControlAdapter@@UAEXW4TModeEvent@1@@Z @ 46 NONAME ; void CXnControlAdapter::DoEnterPowerSaveModeL(enum CXnControlAdapter::TModeEvent)
+ ?CloneL@CXnProperty@@QAEPAV1@XZ @ 47 NONAME ; class CXnProperty * CXnProperty::CloneL(void)
+ ?ReportTriggerEventL@CXnNodePluginIf@@QAEXABVTDesC8@@00@Z @ 48 NONAME ; void CXnNodePluginIf::ReportTriggerEventL(class TDesC8 const &, class TDesC8 const &, class TDesC8 const &)
+ ?FocusedNodeL@TXnUiEnginePluginIf@@QAEPAVCXnNodePluginIf@@XZ @ 49 NONAME ; class CXnNodePluginIf * TXnUiEnginePluginIf::FocusedNodeL(void)
+ ?FindContentSourceNodesL@TXnUiEngineAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@ABVTDesC8@@@Z @ 50 NONAME ; class RPointerArray<class CXnNodeAppIf> TXnUiEngineAppIf::FindContentSourceNodesL(class TDesC8 const &)
+ ?EqualsL@CXnProperty@@QBEHAAV1@@Z @ 51 NONAME ; int CXnProperty::EqualsL(class CXnProperty &) const
+ ?ScreenDeviceSize@TXnUiEnginePluginIf@@QAE?AVTSize@@XZ @ 52 NONAME ; class TSize TXnUiEnginePluginIf::ScreenDeviceSize(void)
+ ??0CXnControlAdapter@@IAE@XZ @ 53 NONAME ; CXnControlAdapter::CXnControlAdapter(void)
+ ?UiEngineL@CXnNodeAppIf@@QAEPAVTXnUiEngineAppIf@@XZ @ 54 NONAME ; class TXnUiEngineAppIf * CXnNodeAppIf::UiEngineL(void)
+ ?LongTapDetector@CXnControlAdapter@@QBEPAVCAknLongTapDetector@@XZ @ 55 NONAME ; class CAknLongTapDetector * CXnControlAdapter::LongTapDetector(void) const
+ ??0CXnAppUiAdapter@@QAE@VTUid@@@Z @ 56 NONAME ; CXnAppUiAdapter::CXnAppUiAdapter(class TUid)
+ ?DestroyPublisher@CXnAppUiAdapter@@UAEXABVTAiFwPublisherInfo@@@Z @ 57 NONAME ; void CXnAppUiAdapter::DestroyPublisher(class TAiFwPublisherInfo const &)
+ ?Rect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 58 NONAME ; class TRect CXnNodePluginIf::Rect(void)
+ ?AddChildL@CXnNodePluginIf@@QAEXPAV1@@Z @ 59 NONAME ; void CXnNodePluginIf::AddChildL(class CXnNodePluginIf *)
+ ?SetNode@CXnComponent@@QAEXAAVCXnNodePluginIf@@@Z @ 60 NONAME ; void CXnComponent::SetNode(class CXnNodePluginIf &)
+ ?ResetStylusCounter@CXnControlAdapter@@QAEXXZ @ 61 NONAME ; void CXnControlAdapter::ResetStylusCounter(void)
+ ?SetComponent@CXnComponentNodeImpl@@QAEXPAVCXnComponent@@@Z @ 62 NONAME ; void CXnComponentNodeImpl::SetComponent(class CXnComponent *)
+ ?LayoutUIL@TXnUiEnginePluginIf@@QAEXPAVCXnNodePluginIf@@@Z @ 63 NONAME ; void TXnUiEnginePluginIf::LayoutUIL(class CXnNodePluginIf *)
+ ?ExitPowerSaveModeL@CXnControlAdapter@@QAEXW4TModeEvent@1@@Z @ 64 NONAME ; void CXnControlAdapter::ExitPowerSaveModeL(enum CXnControlAdapter::TModeEvent)
+ ?PublisherInfo@CXnAppUiAdapter@@UAEHAAVCXnNodeAppIf@@AAVTHsPublisherInfo@@@Z @ 65 NONAME ; int CXnAppUiAdapter::PublisherInfo(class CXnNodeAppIf &, class THsPublisherInfo &)
+ ?GetThemeResource@TXnUiEngineAppIf@@QAEHABVTDesC16@@AAVRFile@@@Z @ 66 NONAME ; int TXnUiEngineAppIf::GetThemeResource(class TDesC16 const &, class RFile &)
+ ?ConstructL@CXnComponent@@IAEXXZ @ 67 NONAME ; void CXnComponent::ConstructL(void)
+ ?FindResource@CXnUtils@@SAPAVCXnResource@@AAV?$CArrayPtrSeg@VCXnResource@@@@ABVTDesC16@@AAH@Z @ 68 NONAME ; class CXnResource * CXnUtils::FindResource(class CArrayPtrSeg<class CXnResource> &, class TDesC16 const &, int &)
+ ?UnsetStateL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 69 NONAME ; void CXnNodeAppIf::UnsetStateL(class TDesC8 const &)
+ ?Uid@CXnDocument@@QAE?AVTUid@@XZ @ 70 NONAME ; class TUid CXnDocument::Uid(void)
+ ?FocusChanged@CXnControlAdapter@@UAEXW4TDrawNow@@@Z @ 71 NONAME ; void CXnControlAdapter::FocusChanged(enum TDrawNow)
+ ?SetBlank@CXnControlAdapter@@QAEXH@Z @ 72 NONAME ; void CXnControlAdapter::SetBlank(int)
+ ?ProcessMessageL@CXnAppUiAdapter@@UAEXVTUid@@ABVTDesC8@@@Z @ 73 NONAME ; void CXnAppUiAdapter::ProcessMessageL(class TUid, class TDesC8 const &)
+ ?Component@CXnNodeAppIf@@QAEAAVCXnComponent@@XZ @ 74 NONAME ; class CXnComponent & CXnNodeAppIf::Component(void)
+ ?SetLayoutCapable@CXnNodePluginIf@@QAEXH@Z @ 75 NONAME ; void CXnNodePluginIf::SetLayoutCapable(int)
+ ?MarginRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 76 NONAME ; class TRect CXnNodePluginIf::MarginRect(void)
+ ?UiEngineL@CXnAppUiAdapter@@QAEPAVTXnUiEngineAppIf@@XZ @ 77 NONAME ; class TXnUiEngineAppIf * CXnAppUiAdapter::UiEngineL(void)
+ ?ActiveView@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@XZ @ 78 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::ActiveView(void)
+ ?HandleXuikonEventL@CXnAppUiAdapter@@UAEXAAVCXnNodeAppIf@@0AAVCXnDomNode@@1@Z @ 79 NONAME ; void CXnAppUiAdapter::HandleXuikonEventL(class CXnNodeAppIf &, class CXnNodeAppIf &, class CXnDomNode &, class CXnDomNode &)
+ ?RenderUIL@TXnUiEngineAppIf@@QAEXPAVCXnNodeAppIf@@@Z @ 80 NONAME ; void TXnUiEngineAppIf::RenderUIL(class CXnNodeAppIf *)
+ ?PrepareToExit@CXnAppUiAdapter@@MAEXXZ @ 81 NONAME ; void CXnAppUiAdapter::PrepareToExit(void)
+ ?DoHandlePropertyChangeL@CXnControlAdapter@@UAEXPAVCXnProperty@@@Z @ 82 NONAME ; void CXnControlAdapter::DoHandlePropertyChangeL(class CXnProperty *)
+ ?ConstructL@CXnControlAdapter@@IAEXAAVCXnNodePluginIf@@@Z @ 83 NONAME ; void CXnControlAdapter::ConstructL(class CXnNodePluginIf &)
+ ?FocusedNode@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@XZ @ 84 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FocusedNode(void)
+ ?SetDataL@CXnComponent@@QAEXABVTDesC8@@ABVTDesC16@@H@Z @ 85 NONAME ; void CXnComponent::SetDataL(class TDesC8 const &, class TDesC16 const &, int)
+ ?OfferKeyEventL@CXnControlAdapter@@UAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 86 NONAME ; enum TKeyResponse CXnControlAdapter::OfferKeyEventL(struct TKeyEvent const &, enum TEventCode)
+ ?IsDrawingAllowed@CXnControlAdapter@@QBEHXZ @ 87 NONAME ; int CXnControlAdapter::IsDrawingAllowed(void) const
+ ?DisplayL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 88 NONAME ; class CXnProperty * CXnNodePluginIf::DisplayL(void)
+ ?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@PAVCXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 89 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class CXnDomPropertyValue *, class CXnDomStringPool &)
+ ?Rect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 90 NONAME ; class TRect CXnNodeAppIf::Rect(void)
+ ?NewL@CXnComponentNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 91 NONAME ; class CXnComponentNodeImpl * CXnComponentNodeImpl::NewL(class CXnType *)
+ ?WidgetsVisible@TXnUiEngineAppIf@@QBEHXZ @ 92 NONAME ; int TXnUiEngineAppIf::WidgetsVisible(void) const
+ ?Type@CXnNodePluginIf@@QAEPAVCXnType@@XZ @ 93 NONAME ; class CXnType * CXnNodePluginIf::Type(void)
+ ?MakeXnComponentL@MXnComponentFactory@@EAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 94 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::MakeXnComponentL(class CXnNodePluginIf &, class CXnComponent * &)
+ ?UnsetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 95 NONAME ; void CXnNodePluginIf::UnsetStateL(class TDesC8 const &)
+ ?StringValueL@CXnProperty@@QAEPAVHBufC16@@XZ @ 96 NONAME ; class HBufC16 * CXnProperty::StringValueL(void)
+ ?DisableRenderUiLC@TXnUiEnginePluginIf@@QAEXXZ @ 97 NONAME ; void TXnUiEnginePluginIf::DisableRenderUiLC(void)
+ ?SetPropertyL@CXnNodeAppIf@@QAEXPAVCXnProperty@@@Z @ 98 NONAME ; void CXnNodeAppIf::SetPropertyL(class CXnProperty *)
+ ?View@CXnAppUiAdapter@@QBEAAVCAknView@@XZ @ 99 NONAME ; class CAknView & CXnAppUiAdapter::View(void) const
+ ?ViewNodeImpl@CXnNodePluginIf@@QAEPAVCXnViewNodeImpl@@XZ @ 100 NONAME ; class CXnViewNodeImpl * CXnNodePluginIf::ViewNodeImpl(void)
+ ?StripQuotes@CXnUtils@@SAXAAPAVHBufC16@@@Z @ 101 NONAME ; void CXnUtils::StripQuotes(class HBufC16 * &)
+ ?SetPCDataL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 102 NONAME ; void CXnNodePluginIf::SetPCDataL(class TDesC8 const &)
+ ?VisibilityL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 103 NONAME ; class CXnProperty * CXnNodePluginIf::VisibilityL(void)
+ ?Draw@CXnControlAdapter@@MBEXABVTRect@@@Z @ 104 NONAME ; void CXnControlAdapter::Draw(class TRect const &) const
+ ??1CXnApplication@@UAE@XZ @ 105 NONAME ; CXnApplication::~CXnApplication(void)
+ ?DoesNodeNeedComponentImplL@MXnComponentFactory@@QAEHABVTDesC8@@@Z @ 106 NONAME ; int MXnComponentFactory::DoesNodeNeedComponentImplL(class TDesC8 const &)
+ ?ConstructL@CXnViewsNodeImpl@@IAEXPAVCXnType@@@Z @ 107 NONAME ; void CXnViewsNodeImpl::ConstructL(class CXnType *)
+ ?StringPool@TXnUiEngineAppIf@@QAEAAVCXnDomStringPool@@XZ @ 108 NONAME ; class CXnDomStringPool & TXnUiEngineAppIf::StringPool(void)
+ ?UiEngineL@CXnNodePluginIf@@QAEPAVTXnUiEnginePluginIf@@XZ @ 109 NONAME ; class TXnUiEnginePluginIf * CXnNodePluginIf::UiEngineL(void)
+ ?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@@Z @ 110 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &)
+ ?PluginNodeL@TXnUiEnginePluginIf@@QAEAAVCXnNodePluginIf@@PAV2@@Z @ 111 NONAME ; class CXnNodePluginIf & TXnUiEnginePluginIf::PluginNodeL(class CXnNodePluginIf *)
+ ?VerticalPixelValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 112 NONAME ; int TXnUiEnginePluginIf::VerticalPixelValueL(class CXnProperty *, int)
+ ?SetComponent@CXnControlAdapter@@QAEXPAVCXnComponent@@@Z @ 113 NONAME ; void CXnControlAdapter::SetComponent(class CXnComponent *)
+ ??0MXnNodePredicate@@QAE@XZ @ 114 NONAME ; MXnNodePredicate::MXnNodePredicate(void)
+ ??1CXnViewsNodeImpl@@UAE@XZ @ 115 NONAME ; CXnViewsNodeImpl::~CXnViewsNodeImpl(void)
+ ?HandleControlEventL@CXnControlAdapter@@UAEXPAVCCoeControl@@W4TCoeEvent@MCoeControlObserver@@@Z @ 116 NONAME ; void CXnControlAdapter::HandleControlEventL(class CCoeControl *, enum MCoeControlObserver::TCoeEvent)
+ ?HandleScreenDeviceChangedL@CXnControlAdapter@@UAEXXZ @ 117 NONAME ; void CXnControlAdapter::HandleScreenDeviceChangedL(void)
+ ?SizeChanged@CXnControlAdapter@@MAEXXZ @ 118 NONAME ; void CXnControlAdapter::SizeChanged(void)
+ ?CountComponentControls@CXnControlAdapter@@MBEHXZ @ 119 NONAME ; int CXnControlAdapter::CountComponentControls(void) const
+ ?HideTooltipsL@CXnNodeAppIf@@QAEXXZ @ 120 NONAME ; void CXnNodeAppIf::HideTooltipsL(void)
+ ?GetPropertyL@CXnNodeAppIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 121 NONAME ; class CXnProperty * CXnNodeAppIf::GetPropertyL(class TDesC8 const &) const
+ ?FindNodeByClassL@TXnUiEngineAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@ABVTDesC8@@0@Z @ 122 NONAME ; class RPointerArray<class CXnNodeAppIf> TXnUiEngineAppIf::FindNodeByClassL(class TDesC8 const &, class TDesC8 const &)
+ ?Match@MXnNodePredicate@@UAEHAAVCXnNode@@@Z @ 123 NONAME ; int MXnNodePredicate::Match(class CXnNode &)
+ ?GetBitmapAndMask@CXnControlAdapter@@QAEXABVTDesC16@@0AAPAVCFbsBitmap@@1@Z @ 124 NONAME ; void CXnControlAdapter::GetBitmapAndMask(class TDesC16 const &, class TDesC16 const &, class CFbsBitmap * &, class CFbsBitmap * &)
+ ?NewL@CXnViewsNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 125 NONAME ; class CXnViewsNodeImpl * CXnViewsNodeImpl::NewL(class CXnType *)
+ ?PaddingRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 126 NONAME ; class TRect CXnNodeAppIf::PaddingRect(void)
+ ?SetMarginRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 127 NONAME ; void CXnNodePluginIf::SetMarginRect(class TRect const &)
+ ?IsDialogDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 128 NONAME ; int TXnUiEnginePluginIf::IsDialogDisplaying(void)
+ ?HandleEventL@CXnAppUiAdapter@@UAEXABVTDesC16@@AAVCXnNodeAppIf@@@Z @ 129 NONAME ; void CXnAppUiAdapter::HandleEventL(class TDesC16 const &, class CXnNodeAppIf &)
+ ?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 130 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class TDesC8 const &) const
+ ?SetPropertyArrayL@CXnNodeAppIf@@QAEXPAV?$RPointerArray@VCXnProperty@@@@@Z @ 131 NONAME ; void CXnNodeAppIf::SetPropertyArrayL(class RPointerArray<class CXnProperty> *)
+ ?RemoveViewL@CXnAppUiAdapter@@QAEXAAVCAknView@@@Z @ 132 NONAME ; void CXnAppUiAdapter::RemoveViewL(class CAknView &)
+ ?EnterPowerSaveModeL@CXnComponent@@UAEXXZ @ 133 NONAME ; void CXnComponent::EnterPowerSaveModeL(void)
+ ?SetRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 134 NONAME ; void CXnNodePluginIf::SetRect(class TRect const &)
+ ??0CXnComponent@@IAE@XZ @ 135 NONAME ; CXnComponent::CXnComponent(void)
+ ?CollapseWhiteSpace@CXnUtils@@SAXAAVCXnNodePluginIf@@AAVTDes16@@@Z @ 136 NONAME ; void CXnUtils::CollapseWhiteSpace(class CXnNodePluginIf &, class TDes16 &)
+ ?SetHandleTooltip@CXnNodePluginIf@@QAEXH@Z @ 137 NONAME ; void CXnNodePluginIf::SetHandleTooltip(int)
+ ??1CXnAppUiAdapter@@UAE@XZ @ 138 NONAME ; CXnAppUiAdapter::~CXnAppUiAdapter(void)
+ ?NewL@CXnControlAdapter@@SAPAV1@AAVCXnNodePluginIf@@@Z @ 139 NONAME ; class CXnControlAdapter * CXnControlAdapter::NewL(class CXnNodePluginIf &)
+ ?EnableLongTapAnimation@CXnControlAdapter@@QAEXH@Z @ 140 NONAME ; void CXnControlAdapter::EnableLongTapAnimation(int)
+ ?SetPaddingRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 141 NONAME ; void CXnNodePluginIf::SetPaddingRect(class TRect const &)
+ ?SetFocusedNode@TXnUiEnginePluginIf@@QAEXPAVCXnNodePluginIf@@@Z @ 142 NONAME ; void TXnUiEnginePluginIf::SetFocusedNode(class CXnNodePluginIf *)
+ ?ExitPowerSaveModeL@CXnComponent@@UAEXXZ @ 143 NONAME ; void CXnComponent::ExitPowerSaveModeL(void)
+ ?GetPCData@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 144 NONAME ; class TDesC8 const & CXnNodeAppIf::GetPCData(void) const
+ ?Namespace@CXnNodeAppIf@@QAEABVTDesC8@@XZ @ 145 NONAME ; class TDesC8 const & CXnNodeAppIf::Namespace(void)
+ ?LoadPublisher@CXnAppUiAdapter@@UAEXABVTAiFwPublisherInfo@@@Z @ 146 NONAME ; void CXnAppUiAdapter::LoadPublisher(class TAiFwPublisherInfo const &)
+ ??1CXnComponentNodeImpl@@UAE@XZ @ 147 NONAME ; CXnComponentNodeImpl::~CXnComponentNodeImpl(void)
+ ?SetPropertyWithoutNotificationL@CXnNodePluginIf@@QAEXPAVCXnProperty@@@Z @ 148 NONAME ; void CXnNodePluginIf::SetPropertyWithoutNotificationL(class CXnProperty *)
+ ?GetPCData@CXnNodePluginIf@@QBEABVTDesC8@@XZ @ 149 NONAME ; class TDesC8 const & CXnNodePluginIf::GetPCData(void) const
+ ?SetPCDataL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 150 NONAME ; void CXnNodeAppIf::SetPCDataL(class TDesC8 const &)
+ ?Resources@TXnUiEnginePluginIf@@QAEAAV?$CArrayPtrSeg@VCXnResource@@@@XZ @ 151 NONAME ; class CArrayPtrSeg<class CXnResource> & TXnUiEnginePluginIf::Resources(void)
+ ?SetContentBitmaps@CXnControlAdapter@@QAEXABVTDesC16@@0@Z @ 152 NONAME ; void CXnControlAdapter::SetContentBitmaps(class TDesC16 const &, class TDesC16 const &)
+ ??1CXnControlAdapter@@UAE@XZ @ 153 NONAME ; CXnControlAdapter::~CXnControlAdapter(void)
+ ??1MXnNodePredicate@@UAE@XZ @ 154 NONAME ; MXnNodePredicate::~MXnNodePredicate(void)
+ ?HorizontalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 155 NONAME ; int TXnUiEnginePluginIf::HorizontalTwipValueL(class CXnProperty *, int)
+ ?ConstructL@CXnAppUiAdapter@@UAEXXZ @ 156 NONAME ; void CXnAppUiAdapter::ConstructL(void)
+ ?CreateFontL@CXnUtils@@SAXAAVCXnNodePluginIf@@AAPAVCFont@@AAH@Z @ 157 NONAME ; void CXnUtils::CreateFontL(class CXnNodePluginIf &, class CFont * &, int &)
+ ??0CXnApplication@@QAE@VTUid@@@Z @ 158 NONAME ; CXnApplication::CXnApplication(class TUid)
+ ?ComponentControl@CXnControlAdapter@@MBEPAVCCoeControl@@H@Z @ 159 NONAME ; class CCoeControl * CXnControlAdapter::ComponentControl(int) const
+ ?HandleLongTapEventL@CXnControlAdapter@@UAEXABVTPoint@@0@Z @ 160 NONAME ; void CXnControlAdapter::HandleLongTapEventL(class TPoint const &, class TPoint const &)
+ ?ParentL@CXnNodeAppIf@@QBEPAV1@XZ @ 161 NONAME ; class CXnNodeAppIf * CXnNodeAppIf::ParentL(void) const
+ ??1CXnComponent@@UAE@XZ @ 162 NONAME ; CXnComponent::~CXnComponent(void)
+ ?ControlAdapter@CXnComponent@@QAEPAVCXnControlAdapter@@XZ @ 163 NONAME ; class CXnControlAdapter * CXnComponent::ControlAdapter(void)
+ ?DrawContentImage@CXnControlAdapter@@IBEXXZ @ 164 NONAME ; void CXnControlAdapter::DrawContentImage(void) const
+ ?Component@CXnComponentNodeImpl@@QAEPAVCXnComponent@@XZ @ 165 NONAME ; class CXnComponent * CXnComponentNodeImpl::Component(void)
+ ?WidgetsVisible@TXnUiEnginePluginIf@@QBEHXZ @ 166 NONAME ; int TXnUiEnginePluginIf::WidgetsVisible(void) const
+ ?SetControlAdapter@CXnComponent@@QAEXPAVCXnControlAdapter@@@Z @ 167 NONAME ; void CXnComponent::SetControlAdapter(class CXnControlAdapter *)
+ ?SetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 168 NONAME ; void CXnNodePluginIf::SetStateL(class TDesC8 const &)
+ ?DoesComponentNeedCreation@CXnComponentNodeImpl@@QBEHXZ @ 169 NONAME ; int CXnComponentNodeImpl::DoesComponentNeedCreation(void) const
+ ??0CXnDocument@@QAE@AAVCEikApplication@@VTUid@@@Z @ 170 NONAME ; CXnDocument::CXnDocument(class CEikApplication &, class TUid)
+ ?FindNodeByClassL@TXnUiEnginePluginIf@@QAE?AV?$RPointerArray@VCXnNodePluginIf@@@@ABVTDesC16@@@Z @ 171 NONAME ; class RPointerArray<class CXnNodePluginIf> TXnUiEnginePluginIf::FindNodeByClassL(class TDesC16 const &)
+ ?InternalDomNodeType@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 172 NONAME ; class TDesC8 const & CXnNodeAppIf::InternalDomNodeType(void) const
+ ?StringPool@TXnUiEnginePluginIf@@QAEAAVCXnDomStringPool@@XZ @ 173 NONAME ; class CXnDomStringPool & TXnUiEnginePluginIf::StringPool(void)
+ ?SetStateL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 174 NONAME ; void CXnNodeAppIf::SetStateL(class TDesC8 const &)
+ ?Type@CXnNodeAppIf@@QAEPAVCXnType@@XZ @ 175 NONAME ; class CXnType * CXnNodeAppIf::Type(void)
+ ?BorderRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 176 NONAME ; class TRect CXnNodeAppIf::BorderRect(void)
+ ?IdL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 177 NONAME ; class CXnProperty * CXnNodePluginIf::IdL(void)
+ ?RootNodeL@TXnUiEngineAppIf@@QAEAAVCXnNodeAppIf@@XZ @ 178 NONAME ; class CXnNodeAppIf & TXnUiEngineAppIf::RootNodeL(void)
+ ?CreateXnComponentL@MXnComponentFactory@@QAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 179 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::CreateXnComponentL(class CXnNodePluginIf &, class CXnComponent * &)
+ ?RefreshMenuL@TXnUiEngineAppIf@@QAEXXZ @ 180 NONAME ; void TXnUiEngineAppIf::RefreshMenuL(void)
+ ?PaddingRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 181 NONAME ; class TRect CXnNodePluginIf::PaddingRect(void)
+ ?MeasureAdaptiveContentL@CXnControlAdapter@@UAE?AVTSize@@ABV2@@Z @ 182 NONAME ; class TSize CXnControlAdapter::MeasureAdaptiveContentL(class TSize const &)
+ ?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@0W4TPrimitiveValueType@CXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 183 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class TDesC8 const &, enum CXnDomPropertyValue::TPrimitiveValueType, class CXnDomStringPool &)
+ ?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@AAV2@@Z @ 184 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class CXnProperty &) const
+ ?MarginRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 185 NONAME ; class TRect CXnNodeAppIf::MarginRect(void)
+ ?EditMode@TXnUiEnginePluginIf@@QAEHXZ @ 186 NONAME ; int TXnUiEnginePluginIf::EditMode(void)
+ ?FindNodeByIdL@TXnUiEnginePluginIf@@QAEPAVCXnNodePluginIf@@ABVTDesC8@@0@Z @ 187 NONAME ; class CXnNodePluginIf * TXnUiEnginePluginIf::FindNodeByIdL(class TDesC8 const &, class TDesC8 const &)
+ ?MakeInterfaceL@CXnComponent@@UAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 188 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnComponent::MakeInterfaceL(class TDesC8 const &)
+ ?EnableRenderUi@CXnUiEngineImpl@@CAXPAX@Z @ 189 NONAME ; void CXnUiEngineImpl::EnableRenderUi(void *)
+ ?IsMenuDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 190 NONAME ; int TXnUiEnginePluginIf::IsMenuDisplaying(void)
+ ?IsMenuDisplaying@TXnUiEngineAppIf@@QAEHXZ @ 191 NONAME ; int TXnUiEngineAppIf::IsMenuDisplaying(void)
+ ?NewL@CXnProperty@@SAPAV1@PAVCXnDomProperty@@@Z @ 192 NONAME ; class CXnProperty * CXnProperty::NewL(class CXnDomProperty *)
+ ?ConstructL@CXnComponentNodeImpl@@IAEXPAVCXnType@@@Z @ 193 NONAME ; void CXnComponentNodeImpl::ConstructL(class CXnType *)
+ ?ChildrenL@CXnNodeAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@XZ @ 194 NONAME ; class RPointerArray<class CXnNodeAppIf> CXnNodeAppIf::ChildrenL(void)
+ ?ConvertHslToRgb@CXnUtils@@SA?AVTRgb@@HHH@Z @ 195 NONAME ; class TRgb CXnUtils::ConvertHslToRgb(int, int, int)
+ ?LoadBitmap@CXnControlAdapter@@QAEPAVCFbsBitmap@@ABVTDesC16@@@Z @ 196 NONAME ; class CFbsBitmap * CXnControlAdapter::LoadBitmap(class TDesC16 const &)
+ ??0MXnComponentFactory@@IAE@XZ @ 197 NONAME ; MXnComponentFactory::MXnComponentFactory(void)
+ ?SetComponent@CXnViewsNodeImpl@@QAEXPAVCXnComponent@@@Z @ 198 NONAME ; void CXnViewsNodeImpl::SetComponent(class CXnComponent *)
+ ?BorderRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 199 NONAME ; class TRect CXnNodePluginIf::BorderRect(void)
+ ?CreateDocumentL@CXnApplication@@MAEPAVCApaDocument@@XZ @ 200 NONAME ; class CApaDocument * CXnApplication::CreateDocumentL(void)
+ ?HandleUiReadyEventL@CXnAppUiAdapter@@UAEXXZ @ 201 NONAME ; void CXnAppUiAdapter::HandleUiReadyEventL(void)
+ ?CreateFontL@CXnUtils@@SAXABVTDesC16@@HVTFontStyle@@AAPAVCFont@@AAH@Z @ 202 NONAME ; void CXnUtils::CreateFontL(class TDesC16 const &, int, class TFontStyle, class CFont * &, int &)
+ ?GetPluginNodeArrayL@TXnUiEngineAppIf@@QAEHAAV?$RPointerArray@VCXnNodeAppIf@@@@@Z @ 203 NONAME ; int TXnUiEngineAppIf::GetPluginNodeArrayL(class RPointerArray<class CXnNodeAppIf> &)
+ ?MakeXnControlAdapterL@MXnComponentFactory@@EAEPAVCXnControlAdapter@@AAVCXnNodePluginIf@@PAV2@@Z @ 204 NONAME ; class CXnControlAdapter * MXnComponentFactory::MakeXnControlAdapterL(class CXnNodePluginIf &, class CXnControlAdapter *)
+ ?IsDrawingAllowed@CXnNodePluginIf@@QBEHXZ @ 205 NONAME ; int CXnNodePluginIf::IsDrawingAllowed(void) const
+ ?MakeInterfaceL@CXnNodeAppIf@@QAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 206 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnNodeAppIf::MakeInterfaceL(class TDesC8 const &)
+ ?VerticalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 207 NONAME ; int TXnUiEnginePluginIf::VerticalTwipValueL(class CXnProperty *, int)
+ ?Component@CXnControlAdapter@@QAEPAVCXnComponent@@XZ @ 208 NONAME ; class CXnComponent * CXnControlAdapter::Component(void)
+ ?FloatValueL@CXnProperty@@QAENXZ @ 209 NONAME ; double CXnProperty::FloatValueL(void)
+ ?SetUiEngine@TXnUiEngineAppIf@@QAEXPAVCXnUiEngine@@@Z @ 210 NONAME ; void TXnUiEngineAppIf::SetUiEngine(class CXnUiEngine *)
+ ?FindNodeByIdL@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@ABVTDesC16@@0@Z @ 211 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FindNodeByIdL(class TDesC16 const &, class TDesC16 const &)
+ ?IsEditMode@TXnUiEngineAppIf@@QAEHXZ @ 212 NONAME ; int TXnUiEngineAppIf::IsEditMode(void)
+ ?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@AAH@Z @ 213 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &, int &)
?RootNodeL@TXnUiEnginePluginIf@@QAEAAVCXnNodePluginIf@@XZ @ 214 NONAME ; class CXnNodePluginIf & TXnUiEnginePluginIf::RootNodeL(void)
?CreateAppUiL@CXnDocument@@UAEPAVCEikAppUi@@XZ @ 215 NONAME ; class CEikAppUi * CXnDocument::CreateAppUiL(void)
?PathL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 216 NONAME ; class CXnProperty * CXnNodePluginIf::PathL(void)
--- a/idlehomescreen/xmluirendering/uiengine/eabi/xn3layoutengineu.def Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/eabi/xn3layoutengineu.def Tue Sep 14 20:58:58 2010 +0300
@@ -76,129 +76,129 @@
_ZN15CXnNodePluginIf10BorderRectEv @ 75 NONAME
_ZN15CXnNodePluginIf10MarginRectEv @ 76 NONAME
_ZN15CXnNodePluginIf10SetPCDataLERK6TDesC8 @ 77 NONAME
- _ZN15CXnNodePluginIf11PaddingRectEv @ 78 NONAME
- _ZN15CXnNodePluginIf11UnsetStateLERK6TDesC8 @ 79 NONAME
- _ZN15CXnNodePluginIf11VisibilityLEv @ 80 NONAME
- _ZN15CXnNodePluginIf12SetPropertyLEP11CXnProperty @ 81 NONAME
- _ZN15CXnNodePluginIf12ViewNodeImplEv @ 82 NONAME
- _ZN15CXnNodePluginIf13SetBorderRectERK5TRect @ 83 NONAME
- _ZN15CXnNodePluginIf13SetMarginRectERK5TRect @ 84 NONAME
- _ZN15CXnNodePluginIf14IsFocusedStateEv @ 85 NONAME
- _ZN15CXnNodePluginIf14MakeInterfaceLERK6TDesC8 @ 86 NONAME
- _ZN15CXnNodePluginIf14SetPaddingRectERK5TRect @ 87 NONAME
- _ZN15CXnNodePluginIf16SetHandleTooltipEi @ 88 NONAME
- _ZN15CXnNodePluginIf16SetLayoutCapableEi @ 89 NONAME
- _ZN15CXnNodePluginIf17ComponentNodeImplEv @ 90 NONAME
- _ZN15CXnNodePluginIf19ReportTriggerEventLERK6TDesC8S2_S2_ @ 91 NONAME
- _ZN15CXnNodePluginIf31SetPropertyWithoutNotificationLEP11CXnProperty @ 92 NONAME
- _ZN15CXnNodePluginIf3IdLEv @ 93 NONAME
- _ZN15CXnNodePluginIf4RectEv @ 94 NONAME
- _ZN15CXnNodePluginIf4TypeEv @ 95 NONAME
- _ZN15CXnNodePluginIf5PathLEv @ 96 NONAME
- _ZN15CXnNodePluginIf6AppIfLEv @ 97 NONAME
- _ZN15CXnNodePluginIf6LabelLEv @ 98 NONAME
- _ZN15CXnNodePluginIf7SetRectERK5TRect @ 99 NONAME
- _ZN15CXnNodePluginIf8DisplayLEv @ 100 NONAME
- _ZN15CXnNodePluginIf9AddChildLEPS_ @ 101 NONAME
- _ZN15CXnNodePluginIf9ChildrenLEv @ 102 NONAME
- _ZN15CXnNodePluginIf9MaskPathLEv @ 103 NONAME
- _ZN15CXnNodePluginIf9NamespaceEv @ 104 NONAME
- _ZN15CXnNodePluginIf9SetDirtyLEv @ 105 NONAME
- _ZN15CXnNodePluginIf9SetStateLERK6TDesC8 @ 106 NONAME
- _ZN15CXnNodePluginIf9UiEngineLEv @ 107 NONAME
- _ZN15CXnUiEngineImpl14EnableRenderUiEPv @ 108 NONAME
- _ZN16CXnViewsNodeImpl10ConstructLEP7CXnType @ 109 NONAME
- _ZN16CXnViewsNodeImpl12SetComponentEP12CXnComponent @ 110 NONAME
- _ZN16CXnViewsNodeImpl4NewLEP7CXnType @ 111 NONAME
- _ZN16CXnViewsNodeImpl9ComponentEv @ 112 NONAME
- _ZN16CXnViewsNodeImplC1Ev @ 113 NONAME
- _ZN16CXnViewsNodeImplC2Ev @ 114 NONAME
- _ZN16CXnViewsNodeImplD0Ev @ 115 NONAME
- _ZN16CXnViewsNodeImplD1Ev @ 116 NONAME
- _ZN16CXnViewsNodeImplD2Ev @ 117 NONAME
- _ZN16MXnNodePredicate5MatchER7CXnNode @ 118 NONAME
- _ZN16MXnNodePredicateC1Ev @ 119 NONAME
- _ZN16MXnNodePredicateC2Ev @ 120 NONAME
- _ZN16MXnNodePredicateD0Ev @ 121 NONAME
- _ZN16MXnNodePredicateD1Ev @ 122 NONAME
- _ZN16MXnNodePredicateD2Ev @ 123 NONAME
- _ZN16TXnUiEngineAppIf10ActiveViewEv @ 124 NONAME
- _ZN16TXnUiEngineAppIf10IsEditModeEv @ 125 NONAME
- _ZN16TXnUiEngineAppIf10StringPoolEv @ 126 NONAME
- _ZN16TXnUiEngineAppIf11FocusedNodeEv @ 127 NONAME
- _ZN16TXnUiEngineAppIf11SetUiEngineEP11CXnUiEngine @ 128 NONAME
- _ZN16TXnUiEngineAppIf12RefreshMenuLEv @ 129 NONAME
- _ZN16TXnUiEngineAppIf13FindNodeByIdLERK6TDesC8S2_ @ 130 NONAME
- _ZN16TXnUiEngineAppIf13FindNodeByIdLERK7TDesC16S2_ @ 131 NONAME
- _ZN16TXnUiEngineAppIf16FindNodeByClassLERK6TDesC8S2_ @ 132 NONAME
- _ZN16TXnUiEngineAppIf16FindNodeByClassLERK7TDesC16S2_ @ 133 NONAME
- _ZN16TXnUiEngineAppIf16GetThemeResourceERK7TDesC16R5RFile @ 134 NONAME
- _ZN16TXnUiEngineAppIf16IsMenuDisplayingEv @ 135 NONAME
- _ZN16TXnUiEngineAppIf19GetPluginNodeArrayLER13RPointerArrayI12CXnNodeAppIfE @ 136 NONAME
- _ZN16TXnUiEngineAppIf23FindContentSourceNodesLERK6TDesC8 @ 137 NONAME
- _ZN16TXnUiEngineAppIf9RenderUILEP12CXnNodeAppIf @ 138 NONAME
- _ZN16TXnUiEngineAppIf9RootNodeLEv @ 139 NONAME
- _ZN17CXnControlAdapter10ConstructLER15CXnNodePluginIf @ 140 NONAME
- _ZN17CXnControlAdapter10LoadBitmapERK7TDesC16 @ 141 NONAME
- _ZN17CXnControlAdapter10SetVisibleEi @ 142 NONAME
- _ZN17CXnControlAdapter11SizeChangedEv @ 143 NONAME
- _ZN17CXnControlAdapter11SkinChangedEv @ 144 NONAME
- _ZN17CXnControlAdapter12FocusChangedE8TDrawNow @ 145 NONAME
- _ZN17CXnControlAdapter12SetComponentEP12CXnComponent @ 146 NONAME
- _ZN17CXnControlAdapter14ContentBitmapsERP10CFbsBitmapS2_ @ 147 NONAME
- _ZN17CXnControlAdapter14OfferKeyEventLERK9TKeyEvent10TEventCode @ 148 NONAME
- _ZN17CXnControlAdapter15SetLocalUiZoomLE10TAknUiZoom @ 149 NONAME
- _ZN17CXnControlAdapter16GetBitmapAndMaskERK7TDesC16S2_RP10CFbsBitmapS5_ @ 150 NONAME
- _ZN17CXnControlAdapter17SetContentBitmapsEP10CFbsBitmapS1_ @ 151 NONAME
- _ZN17CXnControlAdapter17SetContentBitmapsERK7TDesC16S2_ @ 152 NONAME
- _ZN17CXnControlAdapter18ExitPowerSaveModeLENS_10TModeEventE @ 153 NONAME
- _ZN17CXnControlAdapter18ResetStylusCounterEv @ 154 NONAME
- _ZN17CXnControlAdapter19EnterPowerSaveModeLENS_10TModeEventE @ 155 NONAME
- _ZN17CXnControlAdapter19HandleControlEventLEP11CCoeControlN19MCoeControlObserver9TCoeEventE @ 156 NONAME
- _ZN17CXnControlAdapter19HandleLongTapEventLERK6TPointS2_ @ 157 NONAME
- _ZN17CXnControlAdapter19HandlePointerEventLERK13TPointerEvent @ 158 NONAME
- _ZN17CXnControlAdapter20DoExitPowerSaveModeLENS_10TModeEventE @ 159 NONAME
- _ZN17CXnControlAdapter21DoEnterPowerSaveModeLENS_10TModeEventE @ 160 NONAME
- _ZN17CXnControlAdapter21HandlePropertyChangeLEP11CXnProperty @ 161 NONAME
- _ZN17CXnControlAdapter22EnableLongTapAnimationEi @ 162 NONAME
- _ZN17CXnControlAdapter23DoHandlePropertyChangeLEP11CXnProperty @ 163 NONAME
- _ZN17CXnControlAdapter23MeasureAdaptiveContentLERK5TSize @ 164 NONAME
- _ZN17CXnControlAdapter26HandleScreenDeviceChangedLEv @ 165 NONAME
- _ZN17CXnControlAdapter4NewLER15CXnNodePluginIf @ 166 NONAME
- _ZN17CXnControlAdapter8SetBlankEi @ 167 NONAME
- _ZN17CXnControlAdapter8SetDataLERK6TDesC8RK7TDesC16i @ 168 NONAME
- _ZN17CXnControlAdapter9ComponentEv @ 169 NONAME
- _ZN17CXnControlAdapterC1Ev @ 170 NONAME
- _ZN17CXnControlAdapterC2Ev @ 171 NONAME
- _ZN17CXnControlAdapterD0Ev @ 172 NONAME
- _ZN17CXnControlAdapterD1Ev @ 173 NONAME
- _ZN17CXnControlAdapterD2Ev @ 174 NONAME
- _ZN19MXnComponentFactory16MakeXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 175 NONAME
- _ZN19MXnComponentFactory18CreateXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 176 NONAME
- _ZN19MXnComponentFactory21MakeXnControlAdapterLER15CXnNodePluginIfP17CXnControlAdapter @ 177 NONAME
- _ZN19MXnComponentFactory26DoesNodeNeedComponentImplLERK6TDesC8 @ 178 NONAME
- _ZN19MXnComponentFactoryC2Ev @ 179 NONAME
- _ZN19MXnComponentFactoryD0Ev @ 180 NONAME
- _ZN19MXnComponentFactoryD1Ev @ 181 NONAME
- _ZN19MXnComponentFactoryD2Ev @ 182 NONAME
- _ZN19TXnUiEnginePluginIf10StringPoolEv @ 183 NONAME
- _ZN19TXnUiEnginePluginIf11PluginNodeLEP15CXnNodePluginIf @ 184 NONAME
- _ZN19TXnUiEnginePluginIf12FocusedNodeLEv @ 185 NONAME
- _ZN19TXnUiEnginePluginIf13AddDirtyNodeLER15CXnNodePluginIf @ 186 NONAME
- _ZN19TXnUiEnginePluginIf13FindNodeByIdLERK6TDesC8S2_ @ 187 NONAME
- _ZN19TXnUiEnginePluginIf13FindNodeByIdLERK7TDesC16S2_ @ 188 NONAME
- _ZN19TXnUiEnginePluginIf14SetFocusedNodeEP15CXnNodePluginIf @ 189 NONAME
- _ZN19TXnUiEnginePluginIf16FindNodeByClassLERK7TDesC16 @ 190 NONAME
- _ZN19TXnUiEnginePluginIf16IsMenuDisplayingEv @ 191 NONAME
- _ZN19TXnUiEnginePluginIf16ScreenDeviceSizeEv @ 192 NONAME
- _ZN19TXnUiEnginePluginIf17DisableRenderUiLCEv @ 193 NONAME
- _ZN19TXnUiEnginePluginIf18IsDialogDisplayingEv @ 194 NONAME
- _ZN19TXnUiEnginePluginIf18IsTextEditorActiveEv @ 195 NONAME
- _ZN19TXnUiEnginePluginIf18VerticalTwipValueLEP11CXnPropertyi @ 196 NONAME
- _ZN19TXnUiEnginePluginIf19VerticalPixelValueLEP11CXnPropertyi @ 197 NONAME
- _ZN19TXnUiEnginePluginIf20HorizontalTwipValueLEP11CXnPropertyi @ 198 NONAME
- _ZN19TXnUiEnginePluginIf21HorizontalPixelValueLEP11CXnPropertyi @ 199 NONAME
- _ZN19TXnUiEnginePluginIf23EnablePartialTouchInputER15CXnNodePluginIfi @ 200 NONAME
+ _ZN15CXnNodePluginIf11IsEditStateEv @ 78 NONAME
+ _ZN15CXnNodePluginIf11PaddingRectEv @ 79 NONAME
+ _ZN15CXnNodePluginIf11UnsetStateLERK6TDesC8 @ 80 NONAME
+ _ZN15CXnNodePluginIf11VisibilityLEv @ 81 NONAME
+ _ZN15CXnNodePluginIf12SetPropertyLEP11CXnProperty @ 82 NONAME
+ _ZN15CXnNodePluginIf12ViewNodeImplEv @ 83 NONAME
+ _ZN15CXnNodePluginIf13SetBorderRectERK5TRect @ 84 NONAME
+ _ZN15CXnNodePluginIf13SetMarginRectERK5TRect @ 85 NONAME
+ _ZN15CXnNodePluginIf14IsFocusedStateEv @ 86 NONAME
+ _ZN15CXnNodePluginIf14MakeInterfaceLERK6TDesC8 @ 87 NONAME
+ _ZN15CXnNodePluginIf14SetPaddingRectERK5TRect @ 88 NONAME
+ _ZN15CXnNodePluginIf16SetHandleTooltipEi @ 89 NONAME
+ _ZN15CXnNodePluginIf16SetLayoutCapableEi @ 90 NONAME
+ _ZN15CXnNodePluginIf17ComponentNodeImplEv @ 91 NONAME
+ _ZN15CXnNodePluginIf19ReportTriggerEventLERK6TDesC8S2_S2_ @ 92 NONAME
+ _ZN15CXnNodePluginIf31SetPropertyWithoutNotificationLEP11CXnProperty @ 93 NONAME
+ _ZN15CXnNodePluginIf3IdLEv @ 94 NONAME
+ _ZN15CXnNodePluginIf4RectEv @ 95 NONAME
+ _ZN15CXnNodePluginIf4TypeEv @ 96 NONAME
+ _ZN15CXnNodePluginIf5PathLEv @ 97 NONAME
+ _ZN15CXnNodePluginIf6AppIfLEv @ 98 NONAME
+ _ZN15CXnNodePluginIf6LabelLEv @ 99 NONAME
+ _ZN15CXnNodePluginIf7SetRectERK5TRect @ 100 NONAME
+ _ZN15CXnNodePluginIf8DisplayLEv @ 101 NONAME
+ _ZN15CXnNodePluginIf9AddChildLEPS_ @ 102 NONAME
+ _ZN15CXnNodePluginIf9ChildrenLEv @ 103 NONAME
+ _ZN15CXnNodePluginIf9MaskPathLEv @ 104 NONAME
+ _ZN15CXnNodePluginIf9NamespaceEv @ 105 NONAME
+ _ZN15CXnNodePluginIf9SetDirtyLEv @ 106 NONAME
+ _ZN15CXnNodePluginIf9SetStateLERK6TDesC8 @ 107 NONAME
+ _ZN15CXnNodePluginIf9UiEngineLEv @ 108 NONAME
+ _ZN15CXnUiEngineImpl14EnableRenderUiEPv @ 109 NONAME
+ _ZN16CXnViewsNodeImpl10ConstructLEP7CXnType @ 110 NONAME
+ _ZN16CXnViewsNodeImpl12SetComponentEP12CXnComponent @ 111 NONAME
+ _ZN16CXnViewsNodeImpl4NewLEP7CXnType @ 112 NONAME
+ _ZN16CXnViewsNodeImpl9ComponentEv @ 113 NONAME
+ _ZN16CXnViewsNodeImplC1Ev @ 114 NONAME
+ _ZN16CXnViewsNodeImplC2Ev @ 115 NONAME
+ _ZN16CXnViewsNodeImplD0Ev @ 116 NONAME
+ _ZN16CXnViewsNodeImplD1Ev @ 117 NONAME
+ _ZN16CXnViewsNodeImplD2Ev @ 118 NONAME
+ _ZN16MXnNodePredicate5MatchER7CXnNode @ 119 NONAME
+ _ZN16MXnNodePredicateC1Ev @ 120 NONAME
+ _ZN16MXnNodePredicateC2Ev @ 121 NONAME
+ _ZN16MXnNodePredicateD0Ev @ 122 NONAME
+ _ZN16MXnNodePredicateD1Ev @ 123 NONAME
+ _ZN16MXnNodePredicateD2Ev @ 124 NONAME
+ _ZN16TXnUiEngineAppIf10ActiveViewEv @ 125 NONAME
+ _ZN16TXnUiEngineAppIf10IsEditModeEv @ 126 NONAME
+ _ZN16TXnUiEngineAppIf10StringPoolEv @ 127 NONAME
+ _ZN16TXnUiEngineAppIf11FocusedNodeEv @ 128 NONAME
+ _ZN16TXnUiEngineAppIf11SetUiEngineEP11CXnUiEngine @ 129 NONAME
+ _ZN16TXnUiEngineAppIf12RefreshMenuLEv @ 130 NONAME
+ _ZN16TXnUiEngineAppIf13FindNodeByIdLERK6TDesC8S2_ @ 131 NONAME
+ _ZN16TXnUiEngineAppIf13FindNodeByIdLERK7TDesC16S2_ @ 132 NONAME
+ _ZN16TXnUiEngineAppIf16FindNodeByClassLERK6TDesC8S2_ @ 133 NONAME
+ _ZN16TXnUiEngineAppIf16FindNodeByClassLERK7TDesC16S2_ @ 134 NONAME
+ _ZN16TXnUiEngineAppIf16GetThemeResourceERK7TDesC16R5RFile @ 135 NONAME
+ _ZN16TXnUiEngineAppIf16IsMenuDisplayingEv @ 136 NONAME
+ _ZN16TXnUiEngineAppIf19GetPluginNodeArrayLER13RPointerArrayI12CXnNodeAppIfE @ 137 NONAME
+ _ZN16TXnUiEngineAppIf23FindContentSourceNodesLERK6TDesC8 @ 138 NONAME
+ _ZN16TXnUiEngineAppIf9RenderUILEP12CXnNodeAppIf @ 139 NONAME
+ _ZN16TXnUiEngineAppIf9RootNodeLEv @ 140 NONAME
+ _ZN17CXnControlAdapter10ConstructLER15CXnNodePluginIf @ 141 NONAME
+ _ZN17CXnControlAdapter10LoadBitmapERK7TDesC16 @ 142 NONAME
+ _ZN17CXnControlAdapter10SetVisibleEi @ 143 NONAME
+ _ZN17CXnControlAdapter11SizeChangedEv @ 144 NONAME
+ _ZN17CXnControlAdapter11SkinChangedEv @ 145 NONAME
+ _ZN17CXnControlAdapter12FocusChangedE8TDrawNow @ 146 NONAME
+ _ZN17CXnControlAdapter12SetComponentEP12CXnComponent @ 147 NONAME
+ _ZN17CXnControlAdapter14ContentBitmapsERP10CFbsBitmapS2_ @ 148 NONAME
+ _ZN17CXnControlAdapter14OfferKeyEventLERK9TKeyEvent10TEventCode @ 149 NONAME
+ _ZN17CXnControlAdapter15SetLocalUiZoomLE10TAknUiZoom @ 150 NONAME
+ _ZN17CXnControlAdapter16GetBitmapAndMaskERK7TDesC16S2_RP10CFbsBitmapS5_ @ 151 NONAME
+ _ZN17CXnControlAdapter17SetContentBitmapsEP10CFbsBitmapS1_ @ 152 NONAME
+ _ZN17CXnControlAdapter17SetContentBitmapsERK7TDesC16S2_ @ 153 NONAME
+ _ZN17CXnControlAdapter18ExitPowerSaveModeLENS_10TModeEventE @ 154 NONAME
+ _ZN17CXnControlAdapter18ResetStylusCounterEv @ 155 NONAME
+ _ZN17CXnControlAdapter19EnterPowerSaveModeLENS_10TModeEventE @ 156 NONAME
+ _ZN17CXnControlAdapter19HandleControlEventLEP11CCoeControlN19MCoeControlObserver9TCoeEventE @ 157 NONAME
+ _ZN17CXnControlAdapter19HandleLongTapEventLERK6TPointS2_ @ 158 NONAME
+ _ZN17CXnControlAdapter19HandlePointerEventLERK13TPointerEvent @ 159 NONAME
+ _ZN17CXnControlAdapter20DoExitPowerSaveModeLENS_10TModeEventE @ 160 NONAME
+ _ZN17CXnControlAdapter21DoEnterPowerSaveModeLENS_10TModeEventE @ 161 NONAME
+ _ZN17CXnControlAdapter21HandlePropertyChangeLEP11CXnProperty @ 162 NONAME
+ _ZN17CXnControlAdapter22EnableLongTapAnimationEi @ 163 NONAME
+ _ZN17CXnControlAdapter23DoHandlePropertyChangeLEP11CXnProperty @ 164 NONAME
+ _ZN17CXnControlAdapter23MeasureAdaptiveContentLERK5TSize @ 165 NONAME
+ _ZN17CXnControlAdapter26HandleScreenDeviceChangedLEv @ 166 NONAME
+ _ZN17CXnControlAdapter4NewLER15CXnNodePluginIf @ 167 NONAME
+ _ZN17CXnControlAdapter8SetBlankEi @ 168 NONAME
+ _ZN17CXnControlAdapter8SetDataLERK6TDesC8RK7TDesC16i @ 169 NONAME
+ _ZN17CXnControlAdapter9ComponentEv @ 170 NONAME
+ _ZN17CXnControlAdapterC1Ev @ 171 NONAME
+ _ZN17CXnControlAdapterC2Ev @ 172 NONAME
+ _ZN17CXnControlAdapterD0Ev @ 173 NONAME
+ _ZN17CXnControlAdapterD1Ev @ 174 NONAME
+ _ZN17CXnControlAdapterD2Ev @ 175 NONAME
+ _ZN19MXnComponentFactory16MakeXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 176 NONAME
+ _ZN19MXnComponentFactory18CreateXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 177 NONAME
+ _ZN19MXnComponentFactory21MakeXnControlAdapterLER15CXnNodePluginIfP17CXnControlAdapter @ 178 NONAME
+ _ZN19MXnComponentFactory26DoesNodeNeedComponentImplLERK6TDesC8 @ 179 NONAME
+ _ZN19MXnComponentFactoryC2Ev @ 180 NONAME
+ _ZN19MXnComponentFactoryD0Ev @ 181 NONAME
+ _ZN19MXnComponentFactoryD1Ev @ 182 NONAME
+ _ZN19MXnComponentFactoryD2Ev @ 183 NONAME
+ _ZN19TXnUiEnginePluginIf10StringPoolEv @ 184 NONAME
+ _ZN19TXnUiEnginePluginIf11PluginNodeLEP15CXnNodePluginIf @ 185 NONAME
+ _ZN19TXnUiEnginePluginIf12FocusedNodeLEv @ 186 NONAME
+ _ZN19TXnUiEnginePluginIf13AddDirtyNodeLER15CXnNodePluginIf @ 187 NONAME
+ _ZN19TXnUiEnginePluginIf13FindNodeByIdLERK6TDesC8S2_ @ 188 NONAME
+ _ZN19TXnUiEnginePluginIf13FindNodeByIdLERK7TDesC16S2_ @ 189 NONAME
+ _ZN19TXnUiEnginePluginIf14SetFocusedNodeEP15CXnNodePluginIf @ 190 NONAME
+ _ZN19TXnUiEnginePluginIf16FindNodeByClassLERK7TDesC16 @ 191 NONAME
+ _ZN19TXnUiEnginePluginIf16IsMenuDisplayingEv @ 192 NONAME
+ _ZN19TXnUiEnginePluginIf16ScreenDeviceSizeEv @ 193 NONAME
+ _ZN19TXnUiEnginePluginIf17DisableRenderUiLCEv @ 194 NONAME
+ _ZN19TXnUiEnginePluginIf18IsDialogDisplayingEv @ 195 NONAME
+ _ZN19TXnUiEnginePluginIf18IsTextEditorActiveEv @ 196 NONAME
+ _ZN19TXnUiEnginePluginIf18VerticalTwipValueLEP11CXnPropertyi @ 197 NONAME
+ _ZN19TXnUiEnginePluginIf19VerticalPixelValueLEP11CXnPropertyi @ 198 NONAME
+ _ZN19TXnUiEnginePluginIf20HorizontalTwipValueLEP11CXnPropertyi @ 199 NONAME
+ _ZN19TXnUiEnginePluginIf21HorizontalPixelValueLEP11CXnPropertyi @ 200 NONAME
_ZN19TXnUiEnginePluginIf8EditModeEv @ 201 NONAME
_ZN19TXnUiEnginePluginIf9LayoutUILEP15CXnNodePluginIf @ 202 NONAME
_ZN19TXnUiEnginePluginIf9RenderUILEP15CXnNodePluginIf @ 203 NONAME
--- a/idlehomescreen/xmluirendering/uiengine/group/xnlayoutengine.mmp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/group/xnlayoutengine.mmp Tue Sep 14 20:58:58 2010 +0300
@@ -85,6 +85,7 @@
SOURCE xnwaitdialog.cpp
SOURCE xnpublisherdata.cpp
SOURCE xnitemactivator.cpp
+SOURCE xnviewswitcher.cpp
START RESOURCE xnuiengine.rss
HEADER
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnbackgroundmanager.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnbackgroundmanager.h Tue Sep 14 20:58:58 2010 +0300
@@ -326,6 +326,23 @@
* to be stored to AknsWallpaperUtils
*/
TBool iStoreWallpaper;
+
+ /**
+ * Pointer to wallpaper image.
+ * Usually wallpaper is read from active view data, but in case of
+ * finger follow swipe, wallpaper is changed during the page switch.
+ * Therefore this is used only during finger follow.
+ *
+ * Not own.
+ */
+ mutable CFbsBitmap* iWallpaper;
+
+ /*
+ * Flag to indicate to use bitmap stored in iWallpaper
+ * instead of reading it from CXnViewData.
+ * This is used when page is being changed with finger follow swipe.
+ */
+ mutable TBool iImageChanged;
};
#endif // CXNBACKGROUNDMANAGER_H
--- a/idlehomescreen/xmluirendering/uiengine/inc/xncontroladapterimpl.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xncontroladapterimpl.h Tue Sep 14 20:58:58 2010 +0300
@@ -451,6 +451,13 @@
*/
RPointerArray< CXnControlAdapter >& ChildAdapters();
+ /*
+ * Checks if widget is Gesture destination node.
+ *
+ * @return ETrue if widget is Gesture destination.
+ */
+ TBool IsWidgetGestureDest();
+
private: // from MAknTouchGestureFwObserver
/**
* Implements gesture handling
--- a/idlehomescreen/xmluirendering/uiengine/inc/xneditor.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xneditor.h Tue Sep 14 20:58:58 2010 +0300
@@ -332,6 +332,8 @@
void NotifyViewActivatedL( const CXnViewData& aViewData );
+ void NotifyViewLoadedL( const CXnViewData& aViewData );
+
void NotifyViewDeactivatedL( const CXnViewData& /*aViewData*/ );
void NotifyConfigureWidgetL( const CHsContentInfo& aContentInfo,
@@ -341,9 +343,9 @@
void NotifyWidgetRemovalL( const CXnPluginData& aPluginData );
- void NotifyViewAdditionL( const CXnPluginData& /*aPluginData*/ );
+ void NotifyViewAdditionL( const CXnViewData& /*aViewData*/ );
- void NotifyViewRemovalL( const CXnPluginData& /*aPluginData*/ );
+ void NotifyViewRemovalL( const CXnViewData& /*aViewData*/ );
void NotifyAllViewsLoadedL();
--- a/idlehomescreen/xmluirendering/uiengine/inc/xneffectmanager.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xneffectmanager.h Tue Sep 14 20:58:58 2010 +0300
@@ -139,6 +139,7 @@
* @param aThis Active view
* @param aOther View to activate
* @param aEffect Effect uid
+ * @param aBgEffectOnly Show only background effect without view animation
* @return ETrue of effect is started, EFalse otherwise
*/
TBool BeginActivateViewEffect( const CXnViewData& aThis,
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnfocuscontrol.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnfocuscontrol.h Tue Sep 14 20:58:58 2010 +0300
@@ -106,8 +106,6 @@
CXnAppUiAdapter& iAppUiAdapter;
/** Flag to indicate whether it is allowed to show focus */
TBool iVisible;
- /** Flag to indicate refusal */
- TBool iRefused;
};
#endif // _XNFOCUSCONTROL_H
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnkeyeventdispatcher.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnkeyeventdispatcher.h Tue Sep 14 20:58:58 2010 +0300
@@ -26,6 +26,7 @@
// Uder includes
#include "xnviewmanager.h"
+#include "xnuistatelistener.h"
// Forward declarations
class CXnNode;
@@ -45,6 +46,7 @@
*/
NONSHARABLE_CLASS( CXnKeyEventDispatcher ) : public CCoeControl,
public MCoeMessageMonitorObserver,
+ public MXnUiResourceChangeObserver,
public MXnViewObserver
{
public:
@@ -77,6 +79,19 @@
*/
void MonitorWsMessage( const TWsEvent& aEvent );
+private:
+ // from MXnUiResourceChangeObserver
+
+ /**
+ * @see MXnUiResourceChangeObserver
+ */
+ void NotifyStatusPaneSizeChanged();
+
+ /**
+ * @see MXnUiResourceChangeObserver
+ */
+ void NotifyResourceChanged( TInt aType );
+
public:
// New functions
@@ -174,7 +189,24 @@
* @return Last pointer event
*/
const TPointerEvent& PointerEvent() const;
-
+
+ /**
+ * Sets activate text editor
+ *
+ * @since S60 5.2
+ * @param aNode Editor Node
+ * @param TBool True if text editor should be activated
+ */
+ void SetTextEditorActive( CXnNode* aNode, TBool aActivate );
+
+ /**
+ * Queries whether a text editor is active
+ *
+ * @since S60 5.2
+ * @return ETrue if text editor is active, EFalse otherwise
+ */
+ TBool IsTextEditorActive() const;
+
private:
// new functions
@@ -200,6 +232,7 @@
// from MXnViewObserver
void NotifyViewActivatedL( const CXnViewData& aViewData );
+ void NotifyViewLoadedL( const CXnViewData& /*aViewData*/ ) {};
void NotifyViewDeactivatedL( const CXnViewData& aViewData );
@@ -208,8 +241,8 @@
void NotifyWidgetAdditionL( const CXnPluginData& aPluginData );
void NotifyWidgetRemovalL( const CXnPluginData& aPluginData );
- void NotifyViewAdditionL( const CXnPluginData& /*aPluginData*/ ){};
- void NotifyViewRemovalL( const CXnPluginData& /*aPluginData*/ ){};
+ void NotifyViewAdditionL( const CXnViewData& /*aViewData*/ ){};
+ void NotifyViewRemovalL( const CXnViewData& /*aViewData*/ ){};
void NotifyAllViewsLoadedL(){};
void NotifyContainerActivatedL( const CXnViewData& /*aViewData*/ ){};
@@ -240,6 +273,8 @@
RPointerArray< CXnNode > iPassiveFocusedNodes;
/** Last pointer event */
TPointerEvent iPointerEvent;
+ /** Active text editor node, not owned */
+ CXnNode* iActiveTextEditor;
};
#endif //__XNKEYEVENTDISPATCHER_H__
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.h Tue Sep 14 20:58:58 2010 +0300
@@ -58,7 +58,8 @@
EIsEmpty,
EIsRemovable,
EIsActive,
- EIsInitial
+ EIsInitial,
+ EIsEditable
};
public:
@@ -373,6 +374,13 @@
inline TBool Removable() const;
/*
+ * Checks whether editable
+ *
+ * @return ETrue when editable EFalse when not
+ */
+ inline TBool Editable() const;
+
+ /*
* Queries whether this plugin is holding "empty" widget
*
* @return ETrue if empty, EFalse otherwise
@@ -440,9 +448,9 @@
void ShowOutOfMemError();
/**
- * Sets locking_status attribute (locked/none)
+ * Sets locking_status attribute (none/locked/permanent)
*
- * @param aStatus "locked" / "none"
+ * @param aStatus "none" / "locked" / "permanent"
*/
void SetLockingStatus( const TDesC8& aStatus );
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.inl Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.inl Tue Sep 14 20:58:58 2010 +0300
@@ -171,6 +171,15 @@
};
// ---------------------------------------------------------------------------
+// Returns editable
+// ---------------------------------------------------------------------------
+//
+inline TBool CXnPluginData::Editable() const
+ {
+ return( iFlags.IsSet( EIsEditable ) ? ETrue : EFalse );
+ }
+
+// ---------------------------------------------------------------------------
// Returns list of plugindata
// ---------------------------------------------------------------------------
//
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnrootdata.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnrootdata.h Tue Sep 14 20:58:58 2010 +0300
@@ -93,7 +93,7 @@
/**
* Loads remaining application views
*/
- void LoadRemainingViews();
+ void LoadRemainingViewsL();
/**
* Cancels load remaining application views
@@ -169,7 +169,21 @@
* @return number of pages allowed
*/
TInt32 MaxPages();
-
+
+ /**
+ * Returns template view's uid
+ *
+ * @return Returns template view's uid, or if not set qhd default
+ */
+ const TDesC8& TemplateViewUid() const;
+
+ /**
+ * Sets template view's uid
+ *
+ * @param Template view's uid
+ */
+ void SetTemplateViewUidL( const TDesC8& aTemplateViewUid );
+
/**
* Returns ETrue, if all views are loaded
*/
@@ -206,6 +220,8 @@
TBool iLoadForward;
/** Maximum of views allowed */
TInt32 iMaxPages;
+ /** Template view uid is uid of the view when user selects New view */
+ HBufC8* iTemplateViewUid;
/** Load error code */
TInt iLoadError;
};
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnuiengineimpl.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnuiengineimpl.h Tue Sep 14 20:58:58 2010 +0300
@@ -147,6 +147,18 @@
void LayoutUIL( CXnNode* aNode = NULL );
/**
+ * Lays out the UI
+ *
+ * This generates full re-layout starting from the given node,
+ * regardless of the current dirty set or the active view.
+ * I.e. this can be used to layout an inactive view.
+ *
+ * @since Series 60 5.2
+ * @param aNode Starting point of the layout
+ */
+ void LayoutFromNodeL( CXnNode& aNode );
+
+ /**
* Creates UI implementations for the UI, adjusts control coordinates
* according to the layout
*
@@ -154,6 +166,19 @@
* @param aNode Starting point
*/
void RenderUIL( CXnNode* aNode = NULL );
+
+ /**
+ * Creates UI implementations for the UI, adjusts control coordinates
+ * according to the layout
+ *
+ * This generates full re-layout starting from the given node,
+ * regardless of the current dirty set or the active view.
+ * I.e. this can be used to layout an inactive view.
+ *
+ * @since Series 60 5.2
+ * @param aNode Starting point
+ */
+ void RenderFromNodeL( CXnNode& aNode );
/**
* Gets the root node of the UI
@@ -506,10 +531,10 @@
* Enables partial touch input
*
* @since Series 60 5.2
- * @param aNode Editor Node
+ * @param aNode Editor Node, can be NULL when disabling partial input
* @param TBool Partial input is enabled
*/
- void EnablePartialTouchInput( CXnNode& aNode, TBool aEnable );
+ void EnablePartialTouchInput( CXnNode* aNode, TBool aEnable );
/**
* Is partial input active
@@ -548,6 +573,7 @@
* @since Series 60 3.2
*/
void PrepareRunLayoutL();
+ void PrepareRunLayoutL( CXnNode& aNode );
/**
* Runs the layout algorithm
@@ -555,6 +581,7 @@
* @since Series 60 3.2
*/
TInt RunLayoutL( CXnNode* aNode );
+ TInt RunLayoutFromNodeL( CXnNode& aNode );
/**
* Checks if layout is currently disabled
@@ -591,7 +618,7 @@
* @since Series 60 5.2
* @param TInt aType
*/
- void HandlePartialTouchInputL( CXnNode& aNode, TBool aEnable );
+ void HandlePartialTouchInputL( CXnNode* aNode, TBool aEnable );
/**
* Set node visible
@@ -635,6 +662,11 @@
void NotifyViewActivatedL( const CXnViewData& aViewData );
/**
+ * from MXnViewObserver
+ */
+ void NotifyViewLoadedL( const CXnViewData& aViewData );
+
+ /**
* from MXnViewObserver
*/
void NotifyViewDeactivatedL( const CXnViewData& /*aViewData*/ );
@@ -658,12 +690,12 @@
/**
* from MXnViewObserver
*/
- void NotifyViewAdditionL( const CXnPluginData& /*aPluginData*/ ){};
+ void NotifyViewAdditionL( const CXnViewData& aViewData );
/**
* from MXnViewObserver
*/
- void NotifyViewRemovalL( const CXnPluginData& /*aPluginData*/ ){};
+ void NotifyViewRemovalL( const CXnViewData& /*aViewData*/ ){};
/**
* from MXnViewObserver
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnviewadapter.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnviewadapter.h Tue Sep 14 20:58:58 2010 +0300
@@ -177,10 +177,21 @@
* @param aContainer Container to activate
* @param aEnterEditState ETrue if activated container should be set to edit state.
* @param aEffect Effect uid, default no effect
+ * @param aUpdateBg Whether to update wallpaper or not.
*/
void ActivateContainerL( CXnViewData& aContainer,
- TBool aEnterEditState = EFalse, TUid aEffect = TUid::Null() );
-
+ TBool aEnterEditState = EFalse, TUid aEffect = TUid::Null(),
+ TBool aUpdateBg = ETrue );
+
+ /**
+ * Sets edit state property of container
+ *
+ * @since S60 5.0
+ * @param aView container
+ * @param aEnter ETrue if container should be set to edit state.
+ */
+ void EnterEditStateL( CXnViewData& aView, TBool aEnter );
+
private:
// new functions
@@ -200,15 +211,6 @@
* @param aEnterEditState ETrue if default container should be set to edit state.
*/
void ActivateDefaultContainerL( TBool aEnterEditState = EFalse );
-
- /**
- * Sets edit state property of container
- *
- * @since S60 5.0
- * @param aView container
- * @param aEnter ETrue if container should be set to edit state.
- */
- void EnterEditStateL( CXnViewData& aView, TBool aEnter );
/**
* Callback function to be used with CPeriodic.
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnviewcontroladapter.h Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnviewcontroladapter.h Tue Sep 14 20:58:58 2010 +0300
@@ -38,7 +38,8 @@
NONSHARABLE_CLASS( CXnViewControlAdapter ) : public CXnControlAdapter,
public MXnUiStateObserver
{
-public:
+
+public:
// Constructors and destructor
/**
@@ -103,7 +104,7 @@
/**
* C++ default constructor
*/
- CXnViewControlAdapter( CXnNodePluginIf& aNode );
+ CXnViewControlAdapter();
/**
* 2nd phase constructor
@@ -112,14 +113,14 @@
private:
// data
-
- /** Node */
- CXnNodePluginIf& iNode;
/** AppUi */
CXnAppUiAdapter& iAppUi;
+
/** HS foreground status*/
MXnUiStateObserver::TForegroundStatus iForegroundStatus;
- };
+
+ //friend class CXnViewSwitcher;
+ };
#endif // _XNVIEWCONTROLADAPTER_H
--- a/idlehomescreen/xmluirendering/uiengine/src/xnappuiadapter.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnappuiadapter.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -30,6 +30,7 @@
#include "hscontentcontrolfactory.h"
#include "xnviewadapter.h"
#include "xnnode.h"
+#include "xnviewswitcher.h"
#include "xuikon_builds_cfg.hrh"
#include "debug.h"
@@ -87,7 +88,9 @@
iImpl = CXnAppUiAdapterImpl::NewL( iApplicationUid, *this );
iImpl->ConstructL();
-
+
+ iViewSwitcher = CXnViewSwitcher::NewL();
+
__TIME_ENDMARK( "CXnAppUiAdapter::ConstructL, done", time );
}
@@ -98,6 +101,8 @@
//
EXPORT_C CXnAppUiAdapter::~CXnAppUiAdapter()
{
+ delete iViewSwitcher;
+
delete iUiEngineAppIf;
delete iImpl;
@@ -471,4 +476,14 @@
return iImpl->ViewAdapter().FocusControl().MakeVisible( ETrue );
}
+// -----------------------------------------------------------------------------
+// CXnAppUiAdapter::ViewSwitcher
+//
+// -----------------------------------------------------------------------------
+//
+CXnViewSwitcher* CXnAppUiAdapter::ViewSwitcher()
+ {
+ return iViewSwitcher;
+ }
+
// End of file
--- a/idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -83,10 +83,14 @@
void HandleErrorL( TInt aErr )
{
TInt resourceId( NULL );
- if ( aErr == KErrTooBig || aErr == KErrNoMemory )
+ if ( aErr == KErrTooBig )
{
resourceId = R_QTN_HS_TOO_BIG_IMAGE_NOTE;
}
+ else if( aErr == KErrNoMemory )
+ {
+ resourceId = R_QTN_HS_WALLPAPER_OUT_OF_RAM;
+ }
else if ( aErr == KErrCancel || aErr == KErrCouldNotConnect ||
aErr == KErrCANoRights )
{
@@ -139,7 +143,8 @@
CXnBackgroundManager::CXnBackgroundManager( CXnViewManager& aViewManager, CHspsWrapper& aWrapper )
: iViewManager( aViewManager ),
iHspsWrapper( aWrapper ),
- iStoreWallpaper( ETrue )
+ iStoreWallpaper( ETrue ),
+ iImageChanged( EFalse )
{
}
@@ -226,7 +231,13 @@
{
CFbsBitmap* wallpaper( NULL );
- if( iType == EPageSpecific )
+ if( iImageChanged )
+ {
+ iImageChanged = EFalse;
+ wallpaper = iWallpaper;
+ iWallpaper = NULL;
+ }
+ else if( iType == EPageSpecific )
{
CXnViewData& viewData( iViewManager.ActiveViewData() );
wallpaper = viewData.WallpaperImage();
@@ -332,22 +343,15 @@
void CXnBackgroundManager::HandleNotifyDisk( TInt /*aError*/,
const TDiskEvent& aEvent )
{
- if( aEvent.iType == MDiskNotifyHandlerCallback::EDiskStatusChanged ||
- aEvent.iType == MDiskNotifyHandlerCallback::EDiskAdded ||
- aEvent.iType == MDiskNotifyHandlerCallback::EDiskRemoved )
+ if( aEvent.iType == MDiskNotifyHandlerCallback::EDiskStatusChanged )
{
- if( !( aEvent.iInfo.iDriveAtt & KDriveAttInternal ) )
- {
- TBool diskRemoved( aEvent.iInfo.iType == EMediaNotPresent );
-
- if( diskRemoved )
- {
- TRAP_IGNORE( RemovableDiskRemovedL() );
- }
- else
- {
- TRAP_IGNORE( RemovableDiskInsertedL() );
- }
+ if( aEvent.iInfo.iType == EMediaHardDisk )
+ {
+ TRAP_IGNORE( RemovableDiskInsertedL() );
+ }
+ else if( aEvent.iInfo.iType == EMediaNotPresent )
+ {
+ TRAP_IGNORE( RemovableDiskRemovedL() );
}
}
}
@@ -409,7 +413,7 @@
else
{
// Potentially not enough memory
- iViewManager.OomSysHandler().HandlePotentialOomL();
+ HandleErrorL( KErrNoMemory );
}
}
}
@@ -484,7 +488,8 @@
if ( oldwp.Compare( newwp ) )
{
iStoreWallpaper = ETrue;
-
+ iImageChanged = ETrue;
+ iWallpaper = aNewView.WallpaperImage();
if ( aDrawNow )
{
DrawNow();
@@ -780,9 +785,9 @@
CFbsBitmap* bitmap = viewData->WallpaperImage();
if( path != KNullDesC && bitmap )
{
- if ( !BaflUtils::FileExists( fs, path ) )
+ if ( !BaflUtils::FileExists( fs, path ) && path.Compare( KNullDesC ) != KErrNone )
{
- RemoveWallpaperFromCache( path, viewData );
+ iSkinSrv.RemoveWallpaper( path );
viewData->SetWallpaperImage( NULL );
if( viewData == &iViewManager.ActiveViewData() )
{
@@ -796,9 +801,9 @@
{
if( iBgImagePath && iBgImage )
{
- if ( !BaflUtils::FileExists( fs, *iBgImagePath ) )
+ if ( !BaflUtils::FileExists( fs, *iBgImagePath ) && iBgImagePath->Compare( KNullDesC ) != KErrNone )
{
- RemoveWallpaperFromCache( *iBgImagePath );
+ iSkinSrv.RemoveWallpaper( *iBgImagePath );
delete iBgImage;
iBgImage = NULL;
drawingNeeded = ETrue;
@@ -925,14 +930,23 @@
if( aFileName == KNullDesC )
{
- err = AknsWallpaperUtils::SetIdleWallpaper( aFileName, NULL );
+ if( viewData.WallpaperImagePath() == KNullDesC )
+ {
+ // Default already set as background.
+ err = KErrCancel;
+ }
+ else
+ {
+ err = AknsWallpaperUtils::SetIdleWallpaper( aFileName, NULL );
+ }
}
else
{
// Wallpaper is also added into the cache if it is not there already.
- err = AknsWallpaperUtils::SetIdleWallpaper( aFileName, CCoeEnv::Static(),
- R_QTN_HS_PROCESSING_NOTE, R_CHANGE_WALLPAPER_WAIT_DIALOG );
+ err = AknsWallpaperUtils::SetIdleWallpaper( aFileName, CCoeEnv::Static()/*,
+ R_QTN_HS_PROCESSING_NOTE, R_CHANGE_WALLPAPER_WAIT_DIALOG */ );
}
+
if( err == KErrNone )
{
// Remove old wallpaper from the cache
--- a/idlehomescreen/xmluirendering/uiengine/src/xncomposer.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xncomposer.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -52,6 +52,9 @@
_LIT( KCDrive, "C:" );
_LIT8( KTagXuikon, "xuikon" );
+_LIT8( KTemplateViewSetting, "templateView" );
+_LIT8( KViewUidSetting, "uid" );
+
using namespace hspswrapper;
// ======== LOCAL FUNCTIONS ========
@@ -512,6 +515,25 @@
return NULL;
}
+ RPointerArray<CItemMap>& settings( configuration->Settings() );
+
+ for ( TInt i = 0; i < settings.Count(); i++ )
+ {
+ CItemMap* setting( settings[i] );
+ if ( (setting != NULL) && setting->ItemId() == KTemplateViewSetting )
+ {
+ RPointerArray<CPropertyMap>& properties = setting->Properties();
+ for ( TInt j = 0; j < properties.Count(); j++ )
+ {
+ CPropertyMap* property( properties[i] );
+ if ( (property != NULL) && property->Name() == KViewUidSetting )
+ {
+ aRootData.SetTemplateViewUidL( property->Value() );
+ }
+ }
+ }
+ }
+
CPluginInfo& info( configuration->PluginInfo() );
aRootData.SetOwner( root );
--- a/idlehomescreen/xmluirendering/uiengine/src/xncontroladapter.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xncontroladapter.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -615,3 +615,14 @@
{
}
+
+// -----------------------------------------------------------------------------
+// CXnControlAdapter::IsWidgetGestureDest
+// -----------------------------------------------------------------------------
+//
+TBool CXnControlAdapter::IsWidgetGestureDest()
+ {
+ return iImpl->IsWidgetGestureDest();
+ }
+
+// End of file
--- a/idlehomescreen/xmluirendering/uiengine/src/xncontroladapterimpl.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xncontroladapterimpl.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -61,6 +61,7 @@
#include "xnscrollablecontroladapter.h"
#include "xnfocuscontrol.h"
#include "xneditmode.h"
+#include "xnviewswitcher.h"
_LIT8(KScrollableBoxNodeName, "scrollablebox");
_LIT8( KView, "view" );
@@ -207,7 +208,6 @@
CXnResource& aResource, RFile& aFile, RFs& aFsSession );
static void DrawFocusAppearance( CXnNode& aNode, CWindowGc& aGc );
static CXnDomNode* HasHoldTrigger( CXnDomNode* aNode );
-static void CancelFocusRefusalL( CXnUiEngine& aUiEngine );
// ============================= LOCAL FUNCTIONS ===============================
// -----------------------------------------------------------------------------
@@ -3414,30 +3414,6 @@
}
// -----------------------------------------------------------------------------
-// CancelFocusRefusalL
-// Cancels focus refusal
-// -----------------------------------------------------------------------------
-//
-static void CancelFocusRefusalL( CXnUiEngine& aUiEngine )
- {
- CXnNode* focused( aUiEngine.FocusedNode() );
-
- if ( focused )
- {
- CXnControlAdapter* control( focused->Control() );
-
- if ( control && control->RefusesFocusLoss() )
- {
- focused->HideTooltipsL();
-
- // It is now time to give up holding focus
- focused->UnsetStateL(
- XnPropertyNames::style::common::KFocus );
- }
- }
- }
-
-// -----------------------------------------------------------------------------
// Calculates scaled bitmap size (rect)
// -----------------------------------------------------------------------------
//
@@ -3690,20 +3666,7 @@
if ( aType == EEventKeyDown )
{
iLongtap = EFalse;
-
- if ( aKeyEvent.iScanCode == EStdKeyDevice3 ||
- aKeyEvent.iCode == EKeyEnter )
- {
- if ( node->IsStateSet( XnPropertyNames::style::common::KFocus ) )
- {
- // Set "pressed down"
- node->SetStateL(
- XnPropertyNames::style::common::KPressedDown );
-
- node->UiEngine()->RenderUIL();
- }
- }
-
+
_LIT8( KDown, "3" ); // EEventKeyDown == 3
CXnNode* keydown( BuildTriggerNodeL( *engine,
@@ -3765,17 +3728,7 @@
CleanupStack::PopAndDestroy( keyup );
}
}
-
- if ( aKeyEvent.iScanCode == EStdKeyDevice3 ||
- aKeyEvent.iCode == EKeyEnter )
- {
- // Reset "pressed down"
- node->UnsetStateL(
- XnPropertyNames::style::common::KPressedDown );
-
- node->UiEngine()->RenderUIL();
- }
-
+
iLongtap = EFalse;
}
}
@@ -3823,9 +3776,9 @@
if ( prop && prop->StringValue() == XnPropertyNames::KTrue )
{
CXnUiEngine* engine( node->UiEngine() );
- CXnAppUiAdapter& appui( engine->AppUiAdapter() );
-
- CancelFocusRefusalL( *engine );
+ CXnAppUiAdapter& appui( engine->AppUiAdapter() );
+
+ appui.ViewAdapter().CloseAllPopupsL();
appui.HideFocus();
@@ -3887,7 +3840,7 @@
//
TBool CXnControlAdapterImpl::HandlePointerEventL(
const TPointerEvent& aPointerEvent )
- {
+ {
const TPointerEvent& event( aPointerEvent );
CXnNode* node( &iNode.Node() );
@@ -3970,11 +3923,6 @@
if ( !menuBar )
{
- CancelFocusRefusalL( *engine );
- }
-
- if ( !menuBar && !engine->FocusedNode() )
- {
// save starting point
iButtonDownStartPoint = event.iPosition;
// Require focus to be shown
@@ -4043,21 +3991,41 @@
//
void CXnControlAdapterImpl::DoDrawL( const TRect& aRect, CWindowGc& aGc ) const
{
+ if( !iComponent )
+ {
+ return;
+ }
CXnNode& node = iComponent->Node()->Node();
DrawBordersL( aRect, node, aGc );
const_cast< CXnControlAdapterImpl* >( this )->DrawBackgroundDataL( aRect, node, aGc );
- if ( iAdapter->IsFocused() )
- {
- DrawFocusAppearance( node, aGc );
+ if ( node.IsStateSet( XnPropertyNames::style::common::KFocus ) )
+ {
+ CXnProperty* prop( node.GetPropertyL(
+ XnPropertyNames::common::KFocusAppearance ) );
+
+ if ( prop && prop->StringValue() == XnPropertyNames::KNone )
+ {
+ // Current element refuses to draw focus appearance
+ }
+ else
+ {
+ DrawFocusAppearance( node, aGc );
+ }
}
// Draw plus sign for empty plugins in edit mode.
if( node.UiEngine()->EditMode()->EditState() )
{
- const_cast< CXnControlAdapterImpl* >( this )->DrawPlusSign( node, aGc );
+ CXnControlAdapterImpl* adapter = const_cast< CXnControlAdapterImpl* >( this );
+ TBool editstate = iNode.IsEditState();
+
+ if( editstate )
+ {
+ adapter->DrawPlusSign( node, aGc );
+ }
}
if ( iAnimation )
@@ -4302,9 +4270,18 @@
TRect paddingRect = aRect;
TRect shrunkRect = paddingRect;
- shrunkRect.Shrink(
- KSkinGfxInnerRectShrink,
- KSkinGfxInnerRectShrink );
+ if ( itemID == KAknsIIDQsnFrPopupSub )
+ {
+ shrunkRect.Shrink(
+ KSkinGfxInnerRectShrink + 2,
+ KSkinGfxInnerRectShrink + 2 );
+ }
+ else
+ {
+ shrunkRect.Shrink(
+ KSkinGfxInnerRectShrink,
+ KSkinGfxInnerRectShrink );
+ }
CAknsFrameBackgroundControlContext* frameContext =
CAknsFrameBackgroundControlContext::NewL(
@@ -4334,7 +4311,7 @@
// -----------------------------------------------------------------------------
//
void CXnControlAdapterImpl::DrawBackgroundImageL(
- const TRect& aRect,
+ const TRect& /*aRect*/,
CXnNode& aNode,
CWindowGc& aGc,
CFbsBitmap* aBitmap,
@@ -4425,7 +4402,7 @@
TPoint(
rect.iTl.iX + imageRect.Width(),
rect.iTl.iY + imageRect.Height() ) );
- aGc.SetClippingRect( aRect );
+ //aGc.SetClippingRect( aRect );
if ( aMask )
{
@@ -4442,7 +4419,7 @@
TPoint(
rect.iTl.iX + imageRect.Width(),
rect.iTl.iY + imageRect.Height() ) );
- aGc.SetClippingRect( aRect );
+ //aGc.SetClippingRect( aRect );
aGc.DrawBitmap( newRect, aBitmap, bitmapRect );
}
@@ -5746,22 +5723,26 @@
{
swipe = &XnPropertyNames::action::trigger::name::swipe::direction::KRight;
}
-
+
if ( swipe && iGestureDestination )
{
CXnUiEngine* engine = iNode.Node().UiEngine();
- if ( iGestureDestination == &iNode.Node() )
- {
- CancelFocusRefusalL( *engine );
- }
// Remove focus
engine->AppUiAdapter().HideFocus();
- CXnNode* trigger( BuildSwipeTriggerNodeLC( *engine, *swipe ) );
- iGestureDestination->ReportXuikonEventL( *trigger );
- CleanupStack::PopAndDestroy( trigger );
-
+ if ( ( engine->AppUiAdapter().ViewSwitcher() != NULL ) &&
+ ( engine->AppUiAdapter().ViewSwitcher()->FingerFollowSupported() ) &&
+ ( !iGestureDestination || iGestureDestination == &iNode.Node() ) )
+ {
+ engine->AppUiAdapter().ViewSwitcher()->TouchGesture( type );
+ }
+ else if ( iGestureDestination )
+ {
+ CXnNode* trigger( BuildSwipeTriggerNodeLC( *engine, *swipe ) );
+ iGestureDestination->ReportXuikonEventL( *trigger );
+ CleanupStack::PopAndDestroy( trigger );
+ }
CXnAppUiAdapter& appui( engine->AppUiAdapter() );
CXnViewData& data( appui.ViewManager().ActiveViewData() );
@@ -5773,6 +5754,13 @@
}
}
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+TBool CXnControlAdapterImpl::IsWidgetGestureDest()
+ {
+ return ( !iGestureDestination || iGestureDestination != &iNode.Node() );
+ }
// ============================= TIconProvider ===============================
--- a/idlehomescreen/xmluirendering/uiengine/src/xneditmode.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xneditmode.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -504,6 +504,7 @@
CXnPluginData* plugin( iUiEngine.ViewManager()->
ActiveViewData().Plugin( node ) );
+
if ( plugin && plugin->Occupied() )
{
StartDragL( *plugin );
--- a/idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -235,7 +235,7 @@
CXnPluginData* plugin( viewData.Plugin( node ) );
- if ( plugin && !plugin->Occupied() )
+ if ( plugin && !plugin->Occupied() && plugin->Editable() )
{
return plugin;
}
@@ -1087,6 +1087,14 @@
}
}
+// -----------------------------------------------------------------------------
+// CXnEditor::NotifyViewLoadedL
+// -----------------------------------------------------------------------------
+//
+void CXnEditor::NotifyViewLoadedL( const CXnViewData& /*aViewData*/ )
+ {
+ }
+
// ---------------------------------------------------------------------------
// CXnEditor::NotifyConfigureWidgetL
// ---------------------------------------------------------------------------
@@ -1339,7 +1347,7 @@
// CXnEditor::NotifyViewAdditionL
// ---------------------------------------------------------------------------
//
-void CXnEditor::NotifyViewAdditionL( const CXnPluginData& /*aPluginData*/ )
+void CXnEditor::NotifyViewAdditionL( const CXnViewData& /*aViewData*/ )
{
NotifyViewListChanged();
}
@@ -1348,7 +1356,7 @@
// CXnEditor::NotifyViewRemovalL
// ---------------------------------------------------------------------------
//
-void CXnEditor::NotifyViewRemovalL( const CXnPluginData& /*aPluginData*/ )
+void CXnEditor::NotifyViewRemovalL( const CXnViewData& /*aViewData*/ )
{
NotifyViewListChanged();
}
@@ -1422,7 +1430,6 @@
KNotifyWidgetListChangedDelay,
KNotifyWidgetListChangedDelay,
TCallBack( WidgetListChangedCallBack, this ) );
-
}
// ---------------------------------------------------------------------------
@@ -1928,12 +1935,23 @@
const TDesC8& type( aInfo.Type() );
if ( ( type != KKeyWidget && type != KKeyTemplate ) ||
- aInfo.Uid() == KNullDesC8 || !aInfo.CanBeAdded() )
+ aInfo.Uid() == KNullDesC8 )
{
// malformed content info
return KErrArgument;
}
+ // the widget can not be added. Return proper error code
+ if ( IsCurrentViewFull() )
+ {
+ return KHsErrorViewFull;
+ }
+ else if ( !aInfo.CanBeAdded() )
+ {
+ return KHsErrorMaxInstanceCountExceeded;
+ }
+
+
CXnPluginData* plugin( NULL );
if( iTargetPlugin )
@@ -1947,27 +1965,9 @@
iTargetPlugin = NULL;
- // the widget can not be added. Return proper error code
- if ( IsCurrentViewFull() || !plugin )
- {
- return KHsErrorViewFull;
- }
- else
+ if ( !plugin )
{
- TInt result;
- if ( aInfo.Type() != KKeyTemplate() )
- {
- result = NonTemplateWidgetCanBeAddedRemovedL( aInfo );
- }
- else
- {
- result = TemplateWidgetCanBeAddedRemovedL( aInfo );
- }
-
- if ( !( result & ECanBeAdded ) )
- {
- return KHsErrorMaxInstanceCountExceeded;
- }
+ return KErrGeneral;
}
ret = iViewManager.LoadWidgetToPluginL( aInfo, *plugin );
@@ -2193,7 +2193,7 @@
{
CXnPluginData* plugin = plugins[ i ];
- if ( !plugin->Occupied() )
+ if ( plugin && !plugin->Occupied() && plugin->Editable() )
{
isFull = EFalse;
break;
--- a/idlehomescreen/xmluirendering/uiengine/src/xneffectmanager.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xneffectmanager.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -366,17 +366,17 @@
iBgEffect = ETrue;
}
-
+
// because of changes in nga end has to call here. Effects below are
// grouped and those will be triggered when calling GfxTransEffect::EndGroup
if ( iLandscape )
{
GfxTransEffect::Begin( thisView, KGfxControlActionDisappearLsc );
GfxTransEffect::Begin( otherView, KGfxControlActionAppearLsc );
-
+
GfxTransEffect::SetDemarcation( otherView, otherView->Position() );
GfxTransEffect::End( otherView );
-
+
GfxTransEffect::SetDemarcation( thisView, thisView->Position() );
GfxTransEffect::End( thisView );
}
@@ -387,11 +387,11 @@
GfxTransEffect::SetDemarcation( otherView, otherView->Position() );
GfxTransEffect::End( otherView );
-
+
GfxTransEffect::SetDemarcation( thisView, thisView->Position() );
GfxTransEffect::End( thisView );
- }
-
+ }
+
return ETrue;
}
@@ -452,8 +452,7 @@
void CXnEffectManager::CleanupControlEffect()
{
iBgEffect = EFalse;
- iGroupId = -1;
-
+ iGroupId = -1;
iControls.Reset();
}
--- a/idlehomescreen/xmluirendering/uiengine/src/xnfocuscontrol.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnfocuscontrol.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -109,43 +109,20 @@
{
if ( aVisible != iVisible )
{
+ iVisible = aVisible;
+
if ( !aVisible )
{
- iVisible = aVisible;
-
- iRefused = EFalse;
-
CXnNode* node( iAppUiAdapter.UiEngine().FocusedNode() );
if ( node )
{
- node->HideTooltipsL();
-
- CXnControlAdapter* control( node->Control() );
-
- if ( control && control->RefusesFocusLoss() )
- {
- // Need to keep drawing focus appearance
- iRefused = ETrue;
-
- node->UnsetStateL(
- XnPropertyNames::style::common::KPressedDown );
- }
- else
- {
- node->UnsetStateL(
- XnPropertyNames::style::common::KFocus );
- }
+ node->UnsetStateL(
+ XnPropertyNames::style::common::KFocus );
iAppUiAdapter.UiEngine().RenderUIL();
- }
+ }
}
- else
- {
- iRefused = EFalse;
-
- iVisible = aVisible;
- }
}
}
@@ -174,42 +151,17 @@
return;
}
- if ( IsVisible() || iRefused )
+ if ( IsVisible() )
{
- CXnNode* node( iAppUiAdapter.UiEngine().FocusedNode() );
+ TRect innerRect( aRect );
- if ( node )
- {
- CXnProperty* prop( NULL );
-
- TRAP_IGNORE( prop = node->GetPropertyL(
- XnPropertyNames::common::KFocusAppearance ) );
-
- if ( prop && prop->StringValue() == XnPropertyNames::KNone )
- {
- // Current element refuses to draw focus appearance
- return;
- }
-
- TRect innerRect( aRect );
-
- innerRect.Shrink(
- KSkinGfxInnerRectShrink, KSkinGfxInnerRectShrink );
-
- MAknsSkinInstance* skin( AknsUtils::SkinInstance() );
-
- if ( node->IsStateSet( XnPropertyNames::style::common::KPressedDown ) )
- {
- AknsDrawUtils::DrawFrame( skin, aGc, aRect, innerRect,
- KAknsIIDQsnFrHomePressed, KAknsIIDDefault );
- }
-
- if ( node->IsStateSet( XnPropertyNames::style::common::KFocus ) )
- {
- AknsDrawUtils::DrawFrame( skin, aGc, aRect, innerRect,
- KAknsIIDQsnFrHome, KAknsIIDDefault );
- }
- }
+ innerRect.Shrink(
+ KSkinGfxInnerRectShrink, KSkinGfxInnerRectShrink );
+
+ MAknsSkinInstance* skin( AknsUtils::SkinInstance() );
+
+ AknsDrawUtils::DrawFrame( skin, aGc, aRect, innerRect,
+ KAknsIIDQsnFrHome, KAknsIIDDefault );
}
}
--- a/idlehomescreen/xmluirendering/uiengine/src/xnkeyeventdispatcher.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnkeyeventdispatcher.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -17,9 +17,11 @@
// System includes
#include <AknUtils.h>
+#include <AknPriv.hrh>
// User includes
#include "xnappuiadapter.h"
+#include "xnviewadapter.h"
#include "xnfocuscontrol.h"
#include "xnkeyeventdispatcher.h"
#include "xntype.h"
@@ -40,7 +42,11 @@
( k == EStdKeyLeftArrow || k == EStdKeyRightArrow || \
k == EStdKeyUpArrow || k == EStdKeyDownArrow )
-const TInt KOneView = 1;
+// Constants
+const TInt KOneView( 1 );
+
+_LIT8( KEnablePartialInput, "splitinputenabled" );
+_LIT8( KTextEditor, "texteditor" );
// -----------------------------------------------------------------------------
// SetInitialFocusL
@@ -145,7 +151,11 @@
{
iCoeEnv->RemoveMessageMonitorObserver( *this );
- iUiEngine.ViewManager()->RemoveObserver( *this );
+ CXnAppUiAdapter& appui( iUiEngine.AppUiAdapter() );
+
+ appui.ViewManager().RemoveObserver( *this );
+
+ appui.UiStateListener().RemoveObserver( *this );
delete iLoseFocus;
delete iGainFocus;
@@ -171,7 +181,11 @@
{
MakeVisible( EFalse );
- iUiEngine.ViewManager()->AddObserver( *this );
+ CXnAppUiAdapter& appui( iUiEngine.AppUiAdapter() );
+
+ appui.UiStateListener().AddObserver( *this );
+
+ appui.ViewManager().AddObserver( *this );
iCoeEnv->AddMessageMonitorObserverL( *this );
}
@@ -228,6 +242,44 @@
}
// -----------------------------------------------------------------------------
+// CXnKeyEventDispatcher::NotifyStatusPaneSizeChanged()
+//
+// -----------------------------------------------------------------------------
+//
+void CXnKeyEventDispatcher::NotifyStatusPaneSizeChanged()
+ {
+ // No implementation required
+ }
+
+// -----------------------------------------------------------------------------
+// CXnKeyEventDispatcher::NotifyResourceChanged()
+//
+// -----------------------------------------------------------------------------
+//
+void CXnKeyEventDispatcher::NotifyResourceChanged( TInt aType )
+ {
+ if ( aType == KAknSplitInputEnabled )
+ {
+ if ( iActiveTextEditor )
+ {
+ CXnProperty* prop( NULL );
+
+ TRAP_IGNORE( prop =
+ iActiveTextEditor->GetPropertyL( KEnablePartialInput ) );
+
+ if ( prop && prop->StringValue() == XnPropertyNames::KTrue )
+ {
+ iUiEngine.EnablePartialTouchInput( iActiveTextEditor, ETrue );
+ }
+ }
+ }
+ else if ( aType == KAknSplitInputDisabled )
+ {
+ iUiEngine.EnablePartialTouchInput( NULL, EFalse );
+ }
+ }
+
+// -----------------------------------------------------------------------------
// CXnKeyEventDispatcher::PointerEvent()
//
// -----------------------------------------------------------------------------
@@ -238,6 +290,43 @@
}
// -----------------------------------------------------------------------------
+// CXnKeyEventDispatcher::SetTextEditorActive()
+//
+// -----------------------------------------------------------------------------
+//
+void CXnKeyEventDispatcher::SetTextEditorActive( CXnNode* aNode,
+ TBool aActivate )
+ {
+ if ( iActiveTextEditor && iActiveTextEditor != aNode )
+ {
+ CXnNode* activeTextEditor( iActiveTextEditor );
+ iActiveTextEditor = NULL;
+
+ // Run lose focus to text editor node
+ TRAP_IGNORE( SetNodeL( activeTextEditor, NULL, ETrue ) );
+ }
+
+ if ( aActivate && aNode && aNode->Type()->Type() == KTextEditor )
+ {
+ iActiveTextEditor = aNode;
+ }
+ else
+ {
+ iActiveTextEditor = NULL;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CXnKeyEventDispatcher::IsTextEditorActive
+//
+// -----------------------------------------------------------------------------
+//
+TBool CXnKeyEventDispatcher::IsTextEditorActive() const
+ {
+ return iActiveTextEditor ? ETrue : EFalse;
+ }
+
+// -----------------------------------------------------------------------------
// CXnKeyEventDispatcher::OfferKeyEventL
// Handles key events.
// -----------------------------------------------------------------------------
@@ -269,6 +358,11 @@
{
keyYesNoApps = ETrue;
+ if ( aKeyEvent.iScanCode == EStdKeyNo && aType == EEventKey )
+ {
+ iUiEngine.AppUiAdapter().ViewAdapter().CloseAllPopupsL();
+ }
+
iFocusChanged = EFalse;
// AppsKey, YesKey, NoKey events must be always handled, and if we don't
@@ -281,38 +375,45 @@
if ( IS_ARROW_KEY( aKeyEvent.iScanCode ) && aType == EEventKey )
{
- if ( !appui.FocusShown() )
+ if ( !appui.FocusShown() || !iNode )
{
appui.ShowFocus();
if ( !iNode )
{
- // Find initial location for focus
- ResolveAndSetFocusL();
-
- // If focus is still not set, we are in normal mode and the view is empty.
- // left and right arrows lead to next/previous view. When other arrows
- // are pressed, the focus is hidden.
- if( !iNode )
+ if ( iActiveTextEditor )
+ {
+ iNode = iActiveTextEditor;
+ }
+ else
{
- if( iUiEngine.ViewManager()->ViewAmount() != KOneView &&
- aKeyEvent.iScanCode == EStdKeyRightArrow )
+ // Find initial location for focus
+ ResolveAndSetFocusL();
+
+ // If focus is still not set, we are in normal mode and the view is empty.
+ // left and right arrows lead to next/previous view. When other arrows
+ // are pressed, the focus is hidden.
+ if( !iNode )
{
- iUiEngine.ViewManager()->ActivateNextViewL();
+ if( iUiEngine.ViewManager()->ViewAmount() != KOneView &&
+ aKeyEvent.iScanCode == EStdKeyRightArrow )
+ {
+ iUiEngine.ViewManager()->ActivateNextViewL();
+ }
+ else if( iUiEngine.ViewManager()->ViewAmount() != KOneView &&
+ aKeyEvent.iScanCode == EStdKeyLeftArrow )
+ {
+ iUiEngine.ViewManager()->ActivatePreviousViewL();
+ }
+ else
+ {
+ // hide focus if view is not switched
+ appui.HideFocus();
+ }
}
- else if( iUiEngine.ViewManager()->ViewAmount() != KOneView &&
- aKeyEvent.iScanCode == EStdKeyLeftArrow )
- {
- iUiEngine.ViewManager()->ActivatePreviousViewL();
- }
- else
- {
- // hide focus if view is not switched
- appui.HideFocus();
- }
+
+ return EKeyWasConsumed;
}
-
- return EKeyWasConsumed;
}
}
}
@@ -431,6 +532,14 @@
{
if ( aToLose )
{
+ CXnControlAdapter* adapter( aToLose->Control() );
+
+ // Don't change control focus when <texteditor> element is focused
+ if ( adapter && !iActiveTextEditor )
+ {
+ adapter->SetFocus( EFalse );
+ }
+
aToLose->SetDirtyL( XnDirtyLevel::ERender );
aToLose->UnsetStateL( XnPropertyNames::style::common::KFocus );
@@ -444,20 +553,34 @@
iLoseFocus = BuildTriggerNodeL( iUiEngine,
XnPropertyNames::action::trigger::name::KLoseFocus );
}
-
- aToLose->ReportXuikonEventL( *iLoseFocus );
- }
-
- CXnControlAdapter* adapter( aToLose->Control() );
-
- if ( adapter )
- {
- adapter->SetFocus( EFalse );
+
+ if ( iActiveTextEditor != aToLose )
+ {
+ aToLose->ReportXuikonEventL( *iLoseFocus );
+ }
}
}
if ( aToGain )
{
+ TBool isTextEditor( aToGain->Type()->Type() == KTextEditor );
+
+ if ( iActiveTextEditor && ( ( aSource != XnEventSource::EStylus && !isTextEditor ) ||
+ ( iActiveTextEditor->Namespace() != aToGain->Namespace() ) ||
+ ( isTextEditor && iActiveTextEditor != aToGain ) ) )
+ {
+ // Remove focus from active <texteditor> element
+ SetTextEditorActive( NULL, EFalse );
+ }
+
+ CXnControlAdapter* adapter( aToGain->Control() );
+
+ // Don't change control focus when <texteditor> element is focused
+ if ( adapter && !iActiveTextEditor )
+ {
+ adapter->SetFocus( ETrue );
+ }
+
aToGain->SetDirtyL( XnDirtyLevel::ERender );
if ( aNotify )
@@ -468,15 +591,17 @@
XnPropertyNames::action::trigger::name::KGainFocus );
}
- aToGain->ReportXuikonEventL( *iGainFocus, aSource );
+ if ( iActiveTextEditor != aToGain )
+ {
+ aToGain->ReportXuikonEventL( *iGainFocus, aSource );
+ }
}
-
- CXnControlAdapter* adapter( aToGain->Control() );
-
- if ( adapter )
+
+ if ( isTextEditor )
{
- adapter->SetFocus( ETrue );
- }
+ // Set active <texteditor> element
+ SetTextEditorActive( aToGain, ETrue );
+ }
}
}
@@ -641,6 +766,9 @@
const CXnViewData& /*aViewData*/ )
{
iMenuNode = NULL;
+
+ SetTextEditorActive( NULL, EFalse );
+
ClearPassiveFocusedNodesL();
ClearStateL();
@@ -667,11 +795,11 @@
{
ClearPassiveFocusedNodesL();
+ CXnViewData& activeViewData(
+ iUiEngine.ViewManager()->ActiveViewData() );
+
if ( iNode )
{
- CXnViewData& activeViewData(
- iUiEngine.ViewManager()->ActiveViewData() );
-
const CXnPluginData* pluginData(
activeViewData.Plugin( iNode ) );
@@ -681,6 +809,17 @@
ClearStateL();
}
}
+
+ if ( iActiveTextEditor )
+ {
+ const CXnPluginData* pluginData(
+ activeViewData.Plugin( iActiveTextEditor ) );
+
+ if ( pluginData == &aPluginData )
+ {
+ SetTextEditorActive( NULL, EFalse );
+ }
+ }
}
}
--- a/idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -27,6 +27,7 @@
#include "xnproperty.h"
#include "xnuiengine.h"
#include "xnappuiadapter.h"
+#include "xnkeyeventdispatcher.h"
#include "xncontroladapter.h"
#include "xnpopupcontroladapter.h"
#include "xnmenuadapter.h"
@@ -51,7 +52,6 @@
#include "xneffectmanager.h"
#include "xnviewadapter.h"
#include "xnbackgroundmanager.h"
-#include "xntexteditor.h"
#include "xnitemactivator.h"
// Local constants
@@ -337,10 +337,11 @@
static CXnNode* FindNextNodeFromLeftL(
RPointerArray< CXnNode >& aArray, CXnNode& aNode, TBool stayInNamespace = EFalse, CXnUiEngine* aEngine = NULL );
static CXnNode* FindNextNodeFromBelowL(
- RPointerArray< CXnNode >& aArray, CXnNode& aNode, TBool stayInNamespace = EFalse );
+ RPointerArray< CXnNode >& aArray, CXnNode& aNode, TBool stayInNamespace = EFalse, CXnUiEngine* aEngine = NULL );
static CXnNode* FindNextNodeFromAboveL(
- RPointerArray< CXnNode >& aArray, CXnNode& aNode, TBool stayInNamespace = EFalse );
+ RPointerArray< CXnNode >& aArray, CXnNode& aNode, TBool stayInNamespace = EFalse, CXnUiEngine* aEngine = NULL );
static CXnNode* FindPluginNode( CXnNode& aNode );
+static TBool IsPluginNode( CXnNode& aNode );
static TBool DoInternalFocusChangeL(
CXnUiEngine& aEngine, CXnNode& aNode, const TKeyEvent& aKeyEvent,
TEventCode aType );
@@ -2935,22 +2936,22 @@
editorNode = &aLayoutNode;
}
- if( editorNode )
- {
- XnTextEditorInterface::MXnTextEditorInterface* editorControl = NULL;
+ if ( editorNode )
+ {
+ CXnKeyEventDispatcher* eventDispatcher(
+ aEngine.AppUiAdapter().ViewAdapter().EventDispatcher() );
- XnComponentInterface::MakeInterfaceL( editorControl, editorNode->AppIfL() );
- if( editorControl )
- {
- if( aActivate )
- {
- editorControl->HandleEditorEvent(CXnTextEditor::KActivateTextEditor);
+ if ( eventDispatcher )
+ {
+ if ( aActivate )
+ {
+ eventDispatcher->SetTextEditorActive( editorNode, ETrue );
}
else
{
- editorControl->HandleEditorEvent(CXnTextEditor::KDeactivateTextEditor);
- }
- }
+ eventDispatcher->SetTextEditorActive( NULL, EFalse );
+ }
+ }
}
}
@@ -3056,17 +3057,21 @@
for ( TInt i = 0; i < plugins.Count(); i++ )
{
- CXnNode* node( plugins[i]->Owner()->LayoutNode() );
+ CXnNode* node( plugins[i]->Owner()->LayoutNode() );
+ TBool editable = plugins[i]->Editable();
+
+ if( editable )
+ {
+ node->SetStateL( XnPropertyNames::style::common::KEdit );
+ }
- node->SetStateL( XnPropertyNames::style::common::KEdit );
-
if ( !plugins[i]->Occupied() && useEmpty )
{
// Make empty space visible
SetStringPropertyToNodeL( *sp, *node,
XnPropertyNames::style::common::KVisibility,
XnPropertyNames::style::common::visibility::KVisible );
- }
+ }
}
aEngine.EditMode()->SetEditModeL( CXnEditMode::EDragAndDrop );
@@ -3734,7 +3739,7 @@
}
}
- plugins.Append( &viewData );
+ plugins.AppendL( &viewData );
RPointerArray< CXnNode > list;
CleanupClosePushL( list );
@@ -4780,7 +4785,6 @@
TBool stayInNamespace,
CXnUiEngine* aEngine )
{
-
CXnNode* nextNode = NULL;
TRect rect = aNode.PaddingRect();
@@ -4800,6 +4804,14 @@
// do not shift focus to another view
continue;
}
+ if( aEngine->IsEditMode() )
+ {
+ if( !IsPluginNode( *tmpNode ) )
+ {
+ // move only between "plugin" nodes in edit mode
+ continue;
+ }
+ }
const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace();
const TDesC8& nodeNamespace = aNode.Impl()->Namespace();
@@ -4923,6 +4935,14 @@
// do not shift focus to another view
continue;
}
+ if( aEngine->IsEditMode() )
+ {
+ if( !IsPluginNode( *tmpNode ) )
+ {
+ // move only between "plugin" nodes in edit mode
+ continue;
+ }
+ }
const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace();
const TDesC8& nodeNamespace = aNode.Impl()->Namespace();
@@ -5037,6 +5057,7 @@
for ( TInt i = 0; i < aArray.Count(); ++i )
{
CXnNode* tmpNode = aArray[i];
+
if ( !IsNodeNavigableL( *tmpNode ) )
{
continue;
@@ -5046,6 +5067,14 @@
// do not shift focus to another view
continue;
}
+ if( aEngine->IsEditMode() )
+ {
+ if( !IsPluginNode( *tmpNode ) )
+ {
+ // move only between "plugin" nodes in edit mode
+ continue;
+ }
+ }
const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace();
const TDesC8& nodeNamespace = aNode.Impl()->Namespace();
@@ -5231,6 +5260,14 @@
// do not shift focus to another view
continue;
}
+ if( aEngine->IsEditMode() )
+ {
+ if( !IsPluginNode( *tmpNode ) )
+ {
+ // move only between "plugin" nodes in edit mode
+ continue;
+ }
+ }
const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace();
const TDesC8& nodeNamespace = aNode.Impl()->Namespace();
@@ -5353,6 +5390,14 @@
// do not shift focus to another view
continue;
}
+ if( aEngine->IsEditMode() )
+ {
+ if( !IsPluginNode( *tmpNode ) )
+ {
+ // move only between "plugin" nodes in edit mode
+ continue;
+ }
+ }
const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace();
const TDesC8& nodeNamespace = aNode.Impl()->Namespace();
@@ -5470,12 +5515,7 @@
for ( TInt i = 0; i < aArray.Count(); ++i )
{
CXnNode* tmpNode = aArray[i];
- /*
- if ( tmpNode == &aNode )
- {
- continue;
- }
- */
+
if ( !IsNodeNavigableL( *tmpNode ) )
{
continue;
@@ -5485,6 +5525,14 @@
// do not shift focus to another view
continue;
}
+ if( aEngine->IsEditMode() )
+ {
+ if( !IsPluginNode( *tmpNode ) )
+ {
+ // move only between "plugin" nodes in edit mode
+ continue;
+ }
+ }
const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace();
const TDesC8& nodeNamespace = aNode.Impl()->Namespace();
@@ -5649,7 +5697,8 @@
//
static CXnNode* FindNextNodeFromBelowL(
RPointerArray< CXnNode >& aArray,
- CXnNode& aNode, TBool stayInNamespace )
+ CXnNode& aNode, TBool stayInNamespace,
+ CXnUiEngine* aEngine )
{
CXnNode* nextNode = NULL;
TRect rect = aNode.PaddingRect();
@@ -5669,6 +5718,14 @@
{
// do not shift focus to another view
continue;
+ }
+ if( aEngine->IsEditMode() )
+ {
+ if( !IsPluginNode( *tmpNode ) )
+ {
+ // move only between "plugin" nodes in edit mode
+ continue;
+ }
}
const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace();
@@ -5754,6 +5811,14 @@
// do not shift focus to another view
continue;
}
+ if( aEngine->IsEditMode() )
+ {
+ if( !IsPluginNode( *tmpNode ) )
+ {
+ // move only between "plugin" nodes in edit mode
+ continue;
+ }
+ }
const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace();
const TDesC8& nodeNamespace = aNode.Impl()->Namespace();
@@ -5825,7 +5890,8 @@
//
static CXnNode* FindNextNodeFromAboveL(
RPointerArray< CXnNode >& aArray,
- CXnNode& aNode, TBool stayInNamespace )
+ CXnNode& aNode, TBool stayInNamespace,
+ CXnUiEngine* aEngine )
{
CXnNode* nextNode = NULL;
TRect rect = aNode.PaddingRect();
@@ -5846,6 +5912,14 @@
// do not shift focus to another view
continue;
}
+ if( aEngine->IsEditMode() )
+ {
+ if( !IsPluginNode( *tmpNode ) )
+ {
+ // move only between "plugin" nodes in edit mode
+ continue;
+ }
+ }
const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace();
const TDesC8& nodeNamespace = aNode.Impl()->Namespace();
@@ -5929,6 +6003,14 @@
// do not shift focus to another view
continue;
}
+ if( aEngine->IsEditMode() )
+ {
+ if( !IsPluginNode( *tmpNode ) )
+ {
+ // move only between "plugin" nodes in edit mode
+ continue;
+ }
+ }
const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace();
const TDesC8& nodeNamespace = aNode.Impl()->Namespace();
@@ -6019,6 +6101,23 @@
}
// -----------------------------------------------------------------------------
+// IsPluginNode
+// -----------------------------------------------------------------------------
+//
+static TBool IsPluginNode( CXnNode& aNode )
+ {
+ TBool ret = EFalse;
+
+ const TDesC8& nodeType = aNode.DomNode()->Name();
+ if( nodeType == KPlugin )
+ {
+ ret = ETrue;
+ }
+
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
// DoInternalFocusChangeL
// -----------------------------------------------------------------------------
//
@@ -6050,12 +6149,11 @@
// "nav-index: appearance"...
CXnProperty* navind = aNode.NavIndexL();
if ( navind && navind->StringValue() == XnPropertyNames::style::common::KAppearance )
- {
+ {
+ CXnAppUiAdapter& appui( aEngine.AppUiAdapter() );
- CXnAppUiAdapter& appui = static_cast< CXnAppUiAdapter& >( *iAvkonAppUi );
- CXnPluginData* plugin(
- appui.ViewManager().ActiveViewData().Plugin( &aNode ) );
-
+ CXnPluginData* plugin( appui.ViewManager().ActiveViewData().Plugin( &aNode ) );
+
// find if node is in a widget that contatins some opened popup window
TBool containsPopUp = ( plugin ? plugin->IsDisplayingPopup() : EFalse );
@@ -6063,11 +6161,11 @@
RPointerArray< CXnNode >& array = aEngine.ViewManager()->AppearanceNodes();
if ( aKeyEvent.iScanCode == EStdKeyDownArrow )
{
- nextNode = FindNextNodeFromBelowL( array, aNode, containsPopUp );
+ nextNode = FindNextNodeFromBelowL( array, aNode, containsPopUp, &aEngine );
}
else if ( aKeyEvent.iScanCode == EStdKeyUpArrow )
{
- nextNode = FindNextNodeFromAboveL( array, aNode, containsPopUp );
+ nextNode = FindNextNodeFromAboveL( array, aNode, containsPopUp, &aEngine );
}
else if ( aKeyEvent.iScanCode == EStdKeyRightArrow )
{
@@ -6078,24 +6176,12 @@
nextNode = FindNextNodeFromLeftL( array, aNode, containsPopUp, &aEngine );
}
if ( nextNode )
- {
- // focus plugin node if in edit mode
- if( aEngine.IsEditMode() )
- {
- if( nextNode->Type()->Type() != KPlugin )
- {
- CXnNode* pluginNode = FindPluginNode( *nextNode );
- if( pluginNode )
- {
- nextNode = pluginNode;
- }
- }
- }
-
+ {
if( nextNode && nextNode->ScrollableControl() )
{
nextNode->ScrollableControl()->ShowItem( *nextNode );
}
+
nextNode->SetStateL( XnPropertyNames::style::common::KFocus );
return ETrue;
}
@@ -7956,18 +8042,15 @@
// -----------------------------------------------------------------------------
//
void CXnNodeImpl::SetLaidOutL()
- {
- if ( !iLayoutCapable )
- {
- return;
- }
-
- if ( iDropped || !IsNodeDisplayedL( *iNode ) )
- {
- return;
- }
-
- iLaidOut = ETrue;
+ {
+ if ( !iLayoutCapable || iDropped || !IsNodeDisplayedL( *iNode ) )
+ {
+ iLaidOut = EFalse;
+ }
+ else
+ {
+ iLaidOut = ETrue;
+ }
for ( TInt i = 0; i < iChildren.Count(); i++ )
{
@@ -9134,6 +9217,7 @@
CleanupStack::PopAndDestroy( 2 ); // lockedNodes, lockedNodeIndex
}
+/*
// -----------------------------------------------------------------------------
// CXnNodeImpl::FindNextNodeL
// -----------------------------------------------------------------------------
@@ -9162,6 +9246,7 @@
}
return node;
}
+*/
// -----------------------------------------------------------------------------
// CXnNodeImpl::Namespace
--- a/idlehomescreen/xmluirendering/uiengine/src/xnnodepluginif.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnnodepluginif.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -26,6 +26,9 @@
#include "xndomdocument.h"
#include "xnodt.h"
+_LIT8( KFocus, "focus" );
+_LIT8( KEdit, "edit" );
+
// ============================ MEMBER FUNCTIONS ===============================
// -----------------------------------------------------------------------------
@@ -207,7 +210,16 @@
//
EXPORT_C TBool CXnNodePluginIf::IsFocusedState()
{
- return iNode->IsStateSet( _L8( "focus" ) );
+ return iNode->IsStateSet( KFocus );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNodePluginIf::IsEditState
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CXnNodePluginIf::IsEditState()
+ {
+ return iNode->IsStateSet( KEdit );
}
// -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnodtparser.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnodtparser.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -88,6 +88,14 @@
_LIT8( KWidgetNodeName, "widget" );
_LIT8( KSliderNodeName, "slider" );
_LIT8( KClockNodeName, "clock" );
+_LIT8( KClockAnalog, "analog" );
+_LIT8( KClockDigital, "digital" );
+_LIT8( KClockFace, "face" );
+_LIT8( KClockFace12, "face12" );
+_LIT8( KClockFace24, "face24" );
+_LIT8( KClockDate, "date" );
+_LIT8( KClockAmpm, "ampm" );
+_LIT8( KClockDay, "day" );
_LIT8( KSoftkeyNodeName,"softkey" );
_LIT8( KConditionalTrigger,"conditional" );
_LIT8( KCondtionalOn, "true" );
@@ -511,6 +519,14 @@
name == KNewstickerNodeName ||
name == KSliderNodeName ||
name == KClockNodeName ||
+ name == KClockAnalog ||
+ name == KClockDigital ||
+ name == KClockFace ||
+ name == KClockFace12 ||
+ name == KClockFace24 ||
+ name == KClockDate ||
+ name == KClockAmpm ||
+ name == KClockDay ||
name == KStylusPopupNodeName ||
name == KPopUpNodeName ||
name == KWidgetExtensionNodeName ||
--- a/idlehomescreen/xmluirendering/uiengine/src/xnplugindata.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnplugindata.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -37,6 +37,7 @@
// Constants
_LIT8( KLockingStatusLocked, "locked" );
+_LIT8( KLockingStatusPermanent, "permanent" );
// ============================ LOCAL FUNCTIONS ================================
@@ -497,12 +498,22 @@
void CXnPluginData::Flush()
{
// Don't touch to iOwner, because this plugin might be reused later
-
+
+ // clear all flags, except editable and removable
+ TBool removable = iFlags.IsSet( EIsRemovable );
+ TBool editable = iFlags.IsSet( EIsEditable );
+
iFlags.ClearAll();
- // This is default
- iFlags.Set( EIsRemovable );
-
+ if( removable )
+ {
+ iFlags.Set( EIsRemovable );
+ }
+ if( editable )
+ {
+ iFlags.Set( EIsEditable );
+ }
+
iNode = NULL;
delete iConfigurationId;
@@ -551,7 +562,7 @@
}
// -----------------------------------------------------------------------------
-// CXnPluginData::SetEmpty()
+// CXnPluginData::SetEmptyL()
//
// -----------------------------------------------------------------------------
//
@@ -624,13 +635,20 @@
//
void CXnPluginData::SetLockingStatus( const TDesC8& aStatus )
{
- if ( aStatus.CompareF( KLockingStatusLocked ) == 0 )
+ if( aStatus.CompareF( KLockingStatusPermanent ) == 0 )
{
iFlags.Clear( EIsRemovable );
+ iFlags.Clear( EIsEditable );
+ }
+ else if( aStatus.CompareF( KLockingStatusLocked ) == 0 )
+ {
+ iFlags.Clear( EIsRemovable );
+ iFlags.Set( EIsEditable );
}
else
{
iFlags.Set( EIsRemovable );
+ iFlags.Set( EIsEditable );
}
}
--- a/idlehomescreen/xmluirendering/uiengine/src/xnrootdata.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnrootdata.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -45,6 +45,7 @@
// Constants
const TInt KScheduleInterval( 2000000 );
+_LIT8( KTemplateViewUID, "0x20026f50" );
// ============================ LOCAL FUNCTIONS ================================
@@ -94,6 +95,9 @@
//
CXnRootData::~CXnRootData()
{
+ delete iTemplateViewUid;
+ iTemplateViewUid = NULL;
+
if ( iLoadTimer )
{
iLoadTimer->Cancel();
@@ -250,7 +254,7 @@
//
// -----------------------------------------------------------------------------
//
-void CXnRootData::LoadRemainingViews()
+void CXnRootData::LoadRemainingViewsL()
{
if ( iFlags.IsClear( EIsDispose ) )
{
@@ -434,10 +438,9 @@
{
iPluginsData.Remove( index );
- if ( iViewsToDestroy.Find( aViewData ) == KErrNotFound )
+ if ( iViewsToDestroy.Find( aViewData ) == KErrNotFound &&
+ iViewsToDestroy.Append( aViewData ) == KErrNone )
{
- iViewsToDestroy.Append( aViewData );
-
iDestroyTimer->Cancel();
iDestroyTimer->Start( TTimeIntervalMicroSeconds32( 0 ),
@@ -600,6 +603,28 @@
return iMaxPages;
}
+// ---------------------------------------------------------------------------
+// Returns TemplateViewUid
+// ---------------------------------------------------------------------------
+//
+const TDesC8& CXnRootData::TemplateViewUid() const
+ {
+ const TDesC8& templateViewUid = KTemplateViewUID;
+ return iTemplateViewUid ? *iTemplateViewUid : templateViewUid; // qhd uid
+ };
+
+// ---------------------------------------------------------------------------
+// Sets TemplateViewUid
+// ---------------------------------------------------------------------------
+//
+void CXnRootData::SetTemplateViewUidL( const TDesC8& aTemplateViewUid )
+ {
+ delete iTemplateViewUid;
+ iTemplateViewUid = NULL;
+
+ iTemplateViewUid = aTemplateViewUid.AllocL();
+ };
+
// -----------------------------------------------------------------------------
// CXnRootData::RunDestroyL()
//
--- a/idlehomescreen/xmluirendering/uiengine/src/xnscrollablecontroladapter.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnscrollablecontroladapter.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -156,8 +156,7 @@
{
// Remove pressed down
focused->UnsetStateL(
- XnPropertyNames::style::common::KPressedDown );
- focused->HideTooltipsL();
+ XnPropertyNames::style::common::KFocus );
}
}
@@ -274,41 +273,47 @@
{
TRect rect( aNode.MarginRect() );
- if( !iViewPort.Contains( rect.iTl ) || !iViewPort.Contains( rect.iBr ) )
+ if ( !iViewPort.Contains( rect.iTl ) || !iViewPort.Contains( rect.iBr ) )
{
if ( iDirection == EVertical )
{
TInt delta( 0 );
- if( rect.iTl.iY < iViewPort.iTl.iY )
+ if ( rect.iTl.iY < iViewPort.iTl.iY )
{
delta = rect.iTl.iY - iViewPort.iTl.iY;
}
- else if( rect.iBr.iY > iViewPort.iBr.iY )
+ else if ( rect.iBr.iY > iViewPort.iBr.iY )
{
delta = rect.iBr.iY - iViewPort.iBr.iY;
}
- TPoint newPosition( iPreviousPosition + TPoint( 0, delta ) );
-
- ViewPositionChanged( newPosition, ETrue, 0 );
+ if ( delta != 0 )
+ {
+ TPoint newPosition( iPreviousPosition + TPoint( 0, delta ) );
+
+ ViewPositionChanged( newPosition, ETrue, 0 );
+ }
}
else
{
TInt delta( 0 );
- if( rect.iTl.iX < iViewPort.iTl.iX )
+ if ( rect.iTl.iX < iViewPort.iTl.iX )
{
delta = rect.iTl.iX - iViewPort.iTl.iX;
}
- else if( rect.iBr.iX > iViewPort.iBr.iX )
+ else if ( rect.iBr.iX > iViewPort.iBr.iX )
{
delta = rect.iBr.iX - iViewPort.iBr.iX;
}
- TPoint newPosition( iPreviousPosition + TPoint( delta, 0 ) );
-
- ViewPositionChanged( newPosition, ETrue, 0 );
+ if ( delta != 0 )
+ {
+ TPoint newPosition( iPreviousPosition + TPoint( delta, 0 ) );
+
+ ViewPositionChanged( newPosition, ETrue, 0 );
+ }
}
}
}
--- a/idlehomescreen/xmluirendering/uiengine/src/xnuiengine.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnuiengine.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -160,6 +160,16 @@
}
// -----------------------------------------------------------------------------
+// CXnUiEngine::RenderFromNodeL
+// Forwards the call to the ui engine implementation
+// -----------------------------------------------------------------------------
+void CXnUiEngine::RenderFromNodeL( CXnNode& aNode )
+ {
+ iUiEngineImpl->LayoutFromNodeL( aNode );
+ iUiEngineImpl->RenderFromNodeL( aNode );
+ }
+
+// -----------------------------------------------------------------------------
// CXnUiEngine::LayoutUIL
// Forwards the call to the ui engine implementation
// -----------------------------------------------------------------------------
@@ -170,6 +180,16 @@
}
// -----------------------------------------------------------------------------
+// CXnUiEngine::LayoutFromNodeL
+// Forwards the call to the ui engine implementation
+// -----------------------------------------------------------------------------
+//
+void CXnUiEngine::LayoutFromNodeL( CXnNode& aNode )
+ {
+ iUiEngineImpl->LayoutFromNodeL( aNode );
+ }
+
+// -----------------------------------------------------------------------------
// CXnUiEngine::Resources
// Forwards the call to the ui engine implementation
// -----------------------------------------------------------------------------
@@ -526,7 +546,7 @@
// CXnUiEngine::EnablePartialTouchInput()
// -----------------------------------------------------------------------------
//
-void CXnUiEngine::EnablePartialTouchInput( CXnNode& aNode, TBool aEnable )
+void CXnUiEngine::EnablePartialTouchInput( CXnNode* aNode, TBool aEnable )
{
iUiEngineImpl->EnablePartialTouchInput(aNode, aEnable);
}
--- a/idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -58,6 +58,7 @@
#include "xnbackgroundmanager.h"
#include "xntexteditor.h"
#include "xnrootdata.h"
+#include "xnviewswitcher.h"
#ifdef _XN_PERFORMANCE_TEST_
#include "xntimemon.h"
@@ -77,15 +78,17 @@
_LIT8( KBoxNodeName, "box" );
_LIT8( KButtonNodeName, "button" );
-_LIT8( KWidgetNodeName, "widget" );
_LIT8( KWidgetExtensionNodeName, "widgetextension" );
_LIT8( KScrollableBoxNodeName, "scrollablebox" );
_LIT8( KMenuBar, "menubar" );
_LIT8( KPopUpNodeName, "popup" );
-_LIT8( KEditorNodeName, "texteditor" );
_LIT8( KPlugin, "plugin" );
+_LIT8( KSplitScreenEnabledTrigger , "splitscreenenabled" );
+_LIT8( KSplitScreenDisabledTrigger, "splitscreendisabled" );
+
+
// LOCAL CONSTANTS AND MACROS
static const TReal KIntConversionConstant = 0.5;
static const TReal KIntPercentageConstant =
@@ -288,23 +291,6 @@
// ============================= LOCAL FUNCTIONS ===============================
// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-CXnNode* FindPlugin( CXnNode& aNode )
- {
- CXnNode* pluginNode( NULL );
- for( CXnNode* node = &aNode; node; node = node->Parent() )
- {
- if( node->DomNode()->Name() == KPlugin )
- {
- pluginNode = node;
- break;
- }
- }
- return pluginNode;
- }
-
-// -----------------------------------------------------------------------------
// GrowIfNeeded()
// When a plugin is focused, the focus is a bit bigger than its control
// (this is a hack fix to get focus visible with WRT widgets).
@@ -3183,18 +3169,18 @@
{
TInt width =
aNode.BorderRect().Width() + marginLeft + marginRight;
- if ( aColumnMargin < marginLeft )
+ if ( aColumnMargin < marginRight )
{
width -= aColumnMargin;
}
else
{
- width -= marginLeft;
+ width -= marginRight;
}
if ( width + aColumnWidth <= aParentRect.Width() )
{
offsety = aParentRect.iTl.iY + marginTop;
- if ( aColumnMargin < marginLeft )
+ if ( aColumnMargin < marginRight )
{
offsetx = aParentRect.iBr.iX - aColumnWidth +
aColumnMargin - marginRight -
@@ -3280,7 +3266,7 @@
{
offsety = aParentRect.iBr.iY - marginBottom -
aNode.BorderRect().Height();
- if ( aColumnMargin < marginLeft )
+ if ( aColumnMargin < marginRight )
{
offsetx = aParentRect.iBr.iX - aColumnWidth +
aColumnMargin - marginRight -
@@ -6030,19 +6016,21 @@
TRect parentRect;
#ifdef _XN3_DEBUG_
- RDebug::Print( _L("Xuikon: Layout:") );
- TBuf8< 256 > debug;
+ RDebug::Print( _L("*** XML UI place areas, layout phase=%d"), aLayoutPhase );
+
+ TBuf8< 256 > debug;
#endif
// Place areas according their parents and positioning
for( CXnNode* node = iterator->Value(); node; node = iterator->NextL() )
{
#ifdef _XN3_DEBUG_
- debug = node->Type()->Type();
+ debug = _L8( "* layouting node: " );
+ debug.Append( node->Type()->Type() );
CXnProperty* id( node->IdL() );
if ( id )
{
- debug.Append( _L8( ", id: " ) );
+ debug.Append( _L8( " id=" ) );
debug.Append( id->StringValue() );
}
#endif
@@ -7098,71 +7086,71 @@
if ( IsPropertyAutoL( *top ) )
{
TPtrC8 propertyName = top->Property()->Name();
- autoArray.Append( propertyName );
+ autoArray.AppendL( propertyName );
}
CXnProperty* bottom = aNode.BottomL();
if ( IsPropertyAutoL( *bottom ) )
{
TPtrC8 propertyName = bottom->Property()->Name();
- autoArray.Append( propertyName );
+ autoArray.AppendL( propertyName );
}
CXnProperty* left = aNode.LeftL();
if ( IsPropertyAutoL( *left ) )
{
TPtrC8 propertyName = left->Property()->Name();
- autoArray.Append( propertyName );
+ autoArray.AppendL( propertyName );
}
CXnProperty* right = aNode.RightL();
if ( IsPropertyAutoL( *right ) )
{
TPtrC8 propertyName = right->Property()->Name();
- autoArray.Append( propertyName );
+ autoArray.AppendL( propertyName );
}
CXnProperty* width = aNode.WidthL();
if ( IsPropertyAutoL( *width ) )
{
TPtrC8 propertyName = width->Property()->Name();
- autoArray.Append( propertyName );
+ autoArray.AppendL( propertyName );
}
if ( !width )
{
TPtrC8 propertyName = XnPropertyNames::style::common::KWidth();
- autoArray.Append( propertyName );
+ autoArray.AppendL( propertyName );
}
CXnProperty* height = aNode.HeightL();
if ( IsPropertyAutoL( *height ) )
{
TPtrC8 propertyName = height->Property()->Name();
- autoArray.Append( propertyName );
+ autoArray.AppendL( propertyName );
}
if ( !height )
{
TPtrC8 propertyName = XnPropertyNames::style::common::KHeight();
- autoArray.Append( propertyName );
+ autoArray.AppendL( propertyName );
}
CXnProperty* marginTop = aNode.MarginTopL();
if ( IsPropertyAutoL( *marginTop ) )
{
TPtrC8 propertyName = marginTop->Property()->Name();
- autoArray.Append( propertyName );
+ autoArray.AppendL( propertyName );
}
CXnProperty* marginBottom = aNode.MarginBottomL();
if ( IsPropertyAutoL( *marginBottom ) )
{
TPtrC8 propertyName = marginBottom->Property()->Name();
- autoArray.Append( propertyName );
+ autoArray.AppendL( propertyName );
}
CXnProperty* marginLeft = aNode.MarginLeftL();
if ( IsPropertyAutoL( *marginLeft ) )
{
TPtrC8 propertyName = marginLeft->Property()->Name();
- autoArray.Append( propertyName );
+ autoArray.AppendL( propertyName );
}
CXnProperty* marginRight = aNode.MarginRightL();
if ( IsPropertyAutoL( *marginRight ) )
{
TPtrC8 propertyName = marginRight->Property()->Name();
- autoArray.Append( propertyName );
+ autoArray.AppendL( propertyName );
}
if ( aParentDirection == XnPropertyNames::style::common::direction::KLTR )
@@ -7626,10 +7614,63 @@
if ( count == 0 )
{
TRect parentRect( parent->Rect() );
+
if( parent->Control() && parent->Control()->OwnsWindow() )
{
parentRect = TRect( parentRect.iTl - parent->MarginRect().iTl, parentRect.Size() );
}
+
+ RPointerArray< CXnNode >& siblings( parent->Children() );
+
+ for ( TInt i = 0; i < siblings.Count(); i++ )
+ {
+ CXnNode* sibling( siblings[i] );
+
+ if ( sibling == &aNode )
+ {
+ break;
+ }
+
+ if ( IsNodeDisplayedL( *sibling ) && !sibling->IsDropped() &&
+ !IsAbsoluteL( *sibling ) && !IsNodeTooltip( *sibling ) )
+ {
+ TRect marginRect( sibling->MarginRect() );
+
+ TInt availableWidth( parentRect.Width() );
+ TInt availableHeight( parentRect.Height() );
+
+ if ( aParentBlockProgression ==
+ XnPropertyNames::style::common::block_progression::KTB ||
+ aParentBlockProgression ==
+ XnPropertyNames::style::common::block_progression::KBT )
+ {
+ availableHeight -= marginRect.Height();
+
+ if ( availableHeight < 0 )
+ {
+ parentRect.SetHeight( 0 );
+ }
+ else
+ {
+ parentRect.SetHeight( availableHeight );
+ }
+ }
+ else // LR / RL
+ {
+ availableWidth -= marginRect.Width();
+
+ if ( availableWidth < 0 )
+ {
+ parentRect.SetWidth( 0 );
+ }
+ else
+ {
+ parentRect.SetWidth( availableWidth );
+ }
+ }
+ }
+ }
+
// I don't have any displayed childrens, fix my own size
size = CalculateTotalDimensionsL( aNode, ETrue, EFalse,
parentRect, aGraphicsDevice, aHorizontalUnitInPixels,
@@ -7928,6 +7969,37 @@
}
// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+static void ReportScreenDeviceChangedL( const CXnPluginData& aPluginData )
+ {
+ CXnNode* node( NULL );
+
+ if ( aPluginData.Node() )
+ {
+ node = aPluginData.Node()->LayoutNode();
+ }
+
+ if ( !node )
+ {
+ return;
+ }
+
+ CXnNode* trigger( BuildScreenDeviceChangeTriggerNodeLC( *node->UiEngine() ) );
+
+ node->ReportXuikonEventL( *trigger );
+
+ CleanupStack::PopAndDestroy( trigger );
+
+ RPointerArray< CXnPluginData >& plugins( aPluginData.PluginData() );
+
+ for( TInt i = 0; i < plugins.Count(); i++ )
+ {
+ ReportScreenDeviceChangedL( *plugins[i] );
+ }
+ }
+
+// -----------------------------------------------------------------------------
// FillFocusCandidatesL
// -----------------------------------------------------------------------------
//
@@ -7985,23 +8057,16 @@
CXnDepthFirstTreeIterator< CXnNode >::NewL( *aRootNode );
CleanupStack::PushL( iterator );
- RDebug::Print( _L("Xuikon: UI tree:") );
-
- TBuf8< 256 > debug;
+ RDebug::Print( _L("*** XML UI layout:") );
+
+ TBuf8< 512 > debug;
TInt level( 0 );
for( CXnNode* node = iterator->Value(); node;
node = iterator->NextL() )
{
- debug = _L8( "Xuikon: " );
-
- level = iterator->Level();
-
- for ( TInt i = 0; i < level; i++ )
- {
- debug.Append( ' ' );
- }
+ debug = _L8( "* " );
debug.Append( node->Type()->Type() );
@@ -8009,12 +8074,12 @@
if ( id )
{
- debug.Append( _L8( ", id: " ) );
+ debug.Append( _L8( " id=" ) );
debug.Append( id->StringValue() );
}
- debug.AppendFormat( _L8( ", laidout: %d" ), node->IsLaidOut() );
- debug.AppendFormat( _L8( ", displayed: %d" ),
+ debug.AppendFormat( _L8( " laidout=%d" ), node->IsLaidOut() );
+ debug.AppendFormat( _L8( " displayed=%d" ),
IsNodeDisplayedL( *node ) );
CCoeControl* control( node->Control() );
@@ -8022,12 +8087,55 @@
if ( control )
{
TBool visible( control->IsVisible() );
- TRect rect( control->Rect() );
- TPoint tl( rect.iTl );
- TPoint br( rect.iBr );
- debug.AppendFormat( _L8( ", visible %d:" ), visible );
+ debug.AppendFormat( _L8( " visible=%d" ), visible );
+
+ TRect rect;
+ TPoint tl;
+ TPoint br;
+
+ rect = node->MarginRect();
+ tl = rect.iTl;
+ br = rect.iBr;
+
+ debug.Append( _L8( "; Margin " ) );
+ debug.AppendFormat(
+ _L8( "tl(%d,%d) br(%d,%d)" ), tl.iX, tl.iY, br.iX, br.iY );
+
+ rect = node->BorderRect();
+ tl = rect.iTl;
+ br = rect.iBr;
+
+ debug.Append( _L8( "; Border " ) );
debug.AppendFormat(
- _L8( ", Tl: %d %d, Br: %d %d" ), tl.iX, tl.iY, br.iX, br.iY );
+ _L8( "tl(%d,%d) br(%d,%d)" ), tl.iX, tl.iY, br.iX, br.iY );
+
+ rect = node->PaddingRect();
+ tl = rect.iTl;
+ br = rect.iBr;
+
+ debug.Append( _L8( "; Padding " ) );
+ debug.AppendFormat(
+ _L8( "tl(%d,%d) br(%d,%d)" ), tl.iX, tl.iY, br.iX, br.iY );
+
+ rect = node->Rect();
+ tl = rect.iTl;
+ br = rect.iBr;
+
+ debug.Append( _L8( "; Content " ) );
+ debug.AppendFormat(
+ _L8( "tl(%d,%d) br(%d,%d)" ), tl.iX, tl.iY, br.iX, br.iY );
+
+ if ( control->Rect() != node->BorderRect() )
+ {
+ debug.Append( _L8( "; control rect != rect set by layout algorithm " ) );
+
+ rect = control->Rect();
+ tl = rect.iTl;
+ br = rect.iBr;
+
+ debug.AppendFormat(
+ _L8( "tl(%d,%d) br(%d,%d)" ), tl.iX, tl.iY, br.iX, br.iY );
+ }
}
else
{
@@ -8188,6 +8296,22 @@
}
// -----------------------------------------------------------------------------
+// CXnUiEngineImpl::LayoutFromNodeL()
+// -----------------------------------------------------------------------------
+//
+void CXnUiEngineImpl::LayoutFromNodeL( CXnNode& aNode )
+ {
+ PrepareRunLayoutL( aNode );
+
+ // Run layout until it is fully calculated
+ do
+ {
+ iLayoutPhase = RunLayoutFromNodeL( aNode );
+ }
+ while ( iLayoutPhase != XnLayoutPhase::ENone );
+ }
+
+// -----------------------------------------------------------------------------
// PrepareRunLayoutL()
// Set dropped flags of all nodes in the tree to ENone.
// -----------------------------------------------------------------------------
@@ -8215,6 +8339,31 @@
}
// -----------------------------------------------------------------------------
+// PrepareRunLayoutL()
+// Set dropped flags of all nodes in the tree to ENone.
+// -----------------------------------------------------------------------------
+//
+void CXnUiEngineImpl::PrepareRunLayoutL( CXnNode& aNode )
+ {
+ if ( iLayoutPhase == XnLayoutPhase::ENone )
+ {
+ iLayoutPhase = XnLayoutPhase::ELayout;
+
+ CXnNode* dirty( &aNode );
+ dirty->ClearRenderedAndLaidOut();
+
+ // Clear dropped flags recursively
+ SetNodeDroppedL( *dirty, XnNodeLayout::ENone );
+
+ if ( SetAdaptivesL( *dirty ) )
+ {
+ // Adaptive node causes measure phase
+ iLayoutPhase = XnLayoutPhase::EMeasure;
+ }
+ }
+ }
+
+// -----------------------------------------------------------------------------
// CXnUiEngineImpl::RunLayoutL()
// -----------------------------------------------------------------------------
//
@@ -8315,6 +8464,87 @@
}
// -----------------------------------------------------------------------------
+// CXnUiEngineImpl::RunLayoutL()
+// -----------------------------------------------------------------------------
+//
+TInt CXnUiEngineImpl::RunLayoutFromNodeL( CXnNode& aNode )
+ {
+ TRect clientRect( ClientRect() );
+ // Move it to 0, 0
+ clientRect.Move( -clientRect.iTl.iX, -clientRect.iTl.iY );
+
+ RPointerArray< CXnNode > laidOutList;
+ CleanupClosePushL( laidOutList );
+
+ if ( IsNodeDisplayedL( aNode ) )
+ {
+ if ( aNode.ViewNodeImpl() && !aNode.IsLaidOut() )
+ {
+ aNode.SetMarginRect( clientRect );
+ aNode.SetBorderRect( clientRect );
+ aNode.SetNormalFlowBorderRect( clientRect );
+ aNode.SetPaddingRect( clientRect );
+ aNode.SetRect( clientRect );
+ }
+
+ // Put areas to place
+ PlaceAreasL( aNode, laidOutList, iLayoutPhase,
+ *iCurrentGraphicsDevice, iHorizontalUnitInPixels,
+ iVerticalUnitInPixels );
+ }
+
+ TInt nextPhase;
+
+ switch ( iLayoutPhase )
+ {
+ case XnLayoutPhase::EMeasure:
+ nextPhase = XnLayoutPhase::ELayout;
+ break;
+ case XnLayoutPhase::ELayout:
+ // Layout is now calculated
+ aNode.SetLaidOutL();
+
+ // Check nodes which dimensions are changed
+ for ( TInt i = 0; i < laidOutList.Count(); i++ )
+ {
+ CXnNode* node( laidOutList[i] );
+ if( IsSrollableBox( *node ) && node->ScrollableControl() )
+ {
+ node->ScrollableControl()->LayoutChangedL();
+ }
+ if ( !node->IsLaidOut() )
+ {
+ continue;
+ }
+ CXnControlAdapter* adapter( node->Control() );
+ if ( adapter )
+ {
+ TRect rect;
+
+ if ( node->ViewNodeImpl() )
+ {
+ rect = ClientRect();
+ }
+ else
+ {
+ rect = node->BorderRect();
+ }
+ if ( adapter->Rect() != rect )
+ {
+ adapter->SetRect( rect );
+ }
+ }
+ }
+ /* flow through */
+ default:
+ nextPhase = XnLayoutPhase::ENone;
+ break;
+ }
+ CleanupStack::PopAndDestroy( &laidOutList );
+ return nextPhase;
+ }
+
+// -----------------------------------------------------------------------------
// CXnUiEngineImpl::RenderUIL()
// -----------------------------------------------------------------------------
//
@@ -8406,6 +8636,19 @@
}
// -----------------------------------------------------------------------------
+// CXnUiEngineImpl::RenderFromNodeL()
+// -----------------------------------------------------------------------------
+//
+void CXnUiEngineImpl::RenderFromNodeL( CXnNode& aNode )
+ {
+#ifdef _XN3_DEBUG_
+ TraceTreeL( &aNode );
+#endif
+ CCoeControl* control = WindowOwningControl( aNode );
+ control->DrawNow();
+ }
+
+// -----------------------------------------------------------------------------
// CXnUiEngineImpl::RootNode()
// -----------------------------------------------------------------------------
//
@@ -8713,8 +8956,6 @@
}
}
- ReportScreenDeviceChangeL();
-
SetClientRectL( iAppUiAdapter.ClientRect(), EFalse );
RootNode()->SetDirtyL();
@@ -8725,14 +8966,33 @@
}
// -----------------------------------------------------------------------------
+// CXnUiEngineImpl::NotifyViewLoadedL()
+// -----------------------------------------------------------------------------
+//
+void CXnUiEngineImpl::NotifyViewLoadedL( const CXnViewData& aViewData )
+ {
+ ReportScreenDeviceChangedL( aViewData );
+ }
+
+// -----------------------------------------------------------------------------
// CXnUiEngineImpl::NotifyWidgetAdditionL()
// -----------------------------------------------------------------------------
//
void CXnUiEngineImpl::NotifyWidgetAdditionL(
- const CXnPluginData& /*aPluginData*/ )
- {
- }
-
+ const CXnPluginData& aPluginData )
+ {
+ ReportScreenDeviceChangedL( aPluginData );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnUiEngineImpl::NotifyViewAdditionL()
+// -----------------------------------------------------------------------------
+//
+void CXnUiEngineImpl::NotifyViewAdditionL( const CXnViewData& aViewData )
+ {
+ ReportScreenDeviceChangedL( aViewData );
+ }
+
// -----------------------------------------------------------------------------
// CXnUiEngineImpl::DynInitMenuItemL()
// -----------------------------------------------------------------------------
@@ -9034,10 +9294,6 @@
{
HandleSkinChangeL();
}
- else if( iCurrentViewControlAdapter )
- {
- iCurrentViewControlAdapter->HandleResourceChange( aType );
- }
}
// -----------------------------------------------------------------------------
@@ -9560,7 +9816,13 @@
iClientRect );
iEditMode->SetClientRect( aRect );
-
+
+ CXnViewSwitcher* viewSwitcher( iAppUiAdapter.ViewSwitcher() );
+ if( viewSwitcher )
+ {
+ viewSwitcher->SizeChanged( aRect );
+ }
+
if ( aDrawNow )
{
RootNode()->SetDirtyL();
@@ -9848,58 +10110,50 @@
}
}
-
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
//
void CXnUiEngineImpl::ReportScreenDeviceChangeL()
- {
- CXnNode* trigger( BuildScreenDeviceChangeTriggerNodeLC( *iUiEngine ) );
-
- // Notify current orientation to iCurrentView
- iCurrentView->ReportXuikonEventL( *trigger );
-
- // Notify also plugins
- RPointerArray<CXnNode> plugins = *Plugins();
- for( TInt i=0; i<plugins.Count(); i++ )
- {
- CXnNode* pluginNode = plugins[i];
- RPointerArray<CXnNode> pluginChildren = pluginNode->Children();
- for( TInt ii=0; ii<pluginChildren.Count(); ii++ )
- {
- CXnDomNode* widgetNode = pluginChildren[ii]->DomNode();
- if( widgetNode && widgetNode->Name() == KWidgetNodeName )
- {
- pluginChildren[ii]->ReportXuikonEventL( *trigger );
- }
- }
- }
-
- CleanupStack::PopAndDestroy(); // trigger
+ {
+ // Notify current orientation to all views
+ RPointerArray< CXnPluginData >& plugins(
+ iViewManager.ActiveAppData().PluginData() );
+
+ for( TInt i = 0; i < plugins.Count(); i++ )
+ {
+ ReportScreenDeviceChangedL( *plugins[i] );
+ }
}
// -----------------------------------------------------------------------------
// CXnUiEngineImpl::HandlePartialTouchInputL()
// -----------------------------------------------------------------------------
-void CXnUiEngineImpl::HandlePartialTouchInputL( CXnNode& aNode, TBool aEnable )
- {
- CXnNode* editorplugin = FindPlugin( aNode );
- if ( !editorplugin )
- {
- User::Leave( KErrNotFound );
- }
+void CXnUiEngineImpl::HandlePartialTouchInputL( CXnNode* aNode, TBool aEnable )
+ {
+ CXnViewData& view( iViewManager.ActiveViewData() );
+
+ CXnNode* editor( aEnable ? aNode : iSplitScreenState.iPartialScreenEditorNode );
+
+ CXnPluginData* plugin( view.Plugin( editor ) );
+
+ if ( !plugin || !editor )
+ {
+ return;
+ }
+
+ CXnNode* editorplugin( plugin->Owner()->LayoutNode() );
DisableRenderUiLC();
if ( aEnable )
{
iSplitScreenState.iPartialScreenOpen = ETrue;
- iSplitScreenState.iPartialScreenEditorNode = &aNode;
+ iSplitScreenState.iPartialScreenEditorNode = editor;
// make sure that we always get up event
- CXnViewControlAdapter* control = static_cast< CXnViewControlAdapter* >(
- iViewManager.ActiveViewData().ViewNode()->Control() );
-
+ CXnViewControlAdapter* control =
+ static_cast< CXnViewControlAdapter* >( view.ViewNode()->Control() );
+
control->ResetGrabbing();
// Block progression must be bottom-to-top when partial screen is open
@@ -9966,6 +10220,17 @@
RootNode()->SetDirtyL();
ForceRenderUIL();
CleanupStack::PopAndDestroy();
+
+ if ( aEnable )
+ {
+ editor->PluginIfL().ReportTriggerEventL(
+ KSplitScreenEnabledTrigger, KNullDesC8, KNullDesC8 );
+ }
+ else
+ {
+ editor->PluginIfL().ReportTriggerEventL(
+ KSplitScreenDisabledTrigger, KNullDesC8, KNullDesC8 );
+ }
}
// -----------------------------------------------------------------------------
@@ -10063,7 +10328,7 @@
// -----------------------------------------------------------------------------
// EnablePartialTouchInput
// -----------------------------------------------------------------------------
-void CXnUiEngineImpl::EnablePartialTouchInput( CXnNode& aNode, TBool aEnable )
+void CXnUiEngineImpl::EnablePartialTouchInput( CXnNode* aNode, TBool aEnable )
{
if( aEnable && !iSplitScreenState.iPartialScreenOpen ||
!aEnable && iSplitScreenState.iPartialScreenOpen )
@@ -10139,18 +10404,11 @@
//
TBool CXnUiEngineImpl::IsTextEditorActive()
{
- if( iSplitScreenState.iPartialScreenOpen )
- {
- return ETrue;
- }
- CXnNode* focusedNode = FocusedNode();
- if( focusedNode )
- {
- if( focusedNode->Type()->Type() == KEditorNodeName )
- {
- return ETrue;
- }
- }
+ if( iKeyEventDispatcher )
+ {
+ return iKeyEventDispatcher->IsTextEditorActive();
+ }
+
return EFalse;
}
--- a/idlehomescreen/xmluirendering/uiengine/src/xnuienginepluginif.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnuienginepluginif.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -173,11 +173,15 @@
node = &( aFocusedNode->Node() );
}
- TRAP_IGNORE
- (
- node->SetStateWithoutNotificationL(
- XnPropertyNames::style::common::KFocus );
- );
+ if ( node )
+ {
+ TRAP_IGNORE( node->SetStateWithoutNotificationL(
+ XnPropertyNames::style::common::KFocus ) );
+ }
+ else
+ {
+ TRAP_IGNORE( iUiEngine->SetFocusedNodeL( NULL ) );
+ }
}
// -----------------------------------------------------------------------------
@@ -356,17 +360,6 @@
}
// -----------------------------------------------------------------------------
-// TXnUiEnginePluginIf::EnablePartialTouchInput
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void TXnUiEnginePluginIf::EnablePartialTouchInput(
- CXnNodePluginIf& aNode, TBool aEnable )
- {
- iUiEngine->EnablePartialTouchInput(aNode.Node(), aEnable);
- }
-
-// -----------------------------------------------------------------------------
// TXnUiEnginePluginIf::IsTextEditorActive
//
// -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -557,7 +557,7 @@
// -----------------------------------------------------------------------------
//
void CXnViewAdapter::ActivateContainerL( CXnViewData& aContainer,
- TBool aEnterEditState, TUid aEffect )
+ TBool aEnterEditState, TUid aEffect, TBool aUpdateBg )
{
// Returns if the container remains the same and activation is not forced
// Otherwise the old container is deactivated and the new is activated
@@ -574,13 +574,15 @@
}
const CXnViewData& active( iAppUiAdapter.ViewManager().ActiveViewData() );
-
+
+ TBool started = EFalse;
CXnEffectManager* mgr( iAppUiAdapter.EffectManager() );
-
CleanupStack::PushL( TCleanupItem( CleanupEffect, mgr ) );
- TBool started(
- mgr->BeginActivateViewEffect( active, aContainer, aEffect ) );
+ if( aEffect != TUid::Null() )
+ {
+ started = mgr->BeginActivateViewEffect( active, aContainer, aEffect );
+ }
DeactivateContainerL( EFalse );
@@ -634,14 +636,20 @@
adapter->MakeVisible( ETrue );
iAppUiAdapter.ViewManager().NotifyContainerChangedL( aContainer );
-
- iBgManager->ChangeWallpaper( active, aContainer, !started );
+
+ if( aUpdateBg )
+ {
+ iBgManager->ChangeWallpaper( active, aContainer, !started );
+ }
iAppUiAdapter.UiEngine().RenderUIL();
CleanupStack::PopAndDestroy(); // DisableRenderUiLC
-
- mgr->EndActivateViewEffect( active, aContainer, aEffect );
+
+ if( aEffect != TUid::Null() )
+ {
+ mgr->EndActivateViewEffect( active, aContainer, aEffect );
+ }
CleanupStack::PopAndDestroy(); // cleanupitem
@@ -679,6 +687,8 @@
// Deactivate container even though it hasn't changed to close all
// popups and other windows
ActivateContainerL( *viewData, aEnterEditState );
+
+ CloseAllPopupsL();
}
}
@@ -1023,6 +1033,8 @@
}
CleanupStack::PopAndDestroy( &popups );
+
+ iEventDispatcher->SetTextEditorActive( NULL, EFalse );
}
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewcontroladapter.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewcontroladapter.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -23,9 +23,9 @@
#include "xnnodepluginif.h"
#include "xnnode.h"
-#include "xndomdocument.h"
#include "xndomnode.h"
#include "xnproperty.h"
+#include "xnviewswitcher.h"
#include "xnviewcontroladapter.h"
@@ -73,7 +73,7 @@
//
CXnViewControlAdapter* CXnViewControlAdapter::NewL( CXnNodePluginIf& aNode )
{
- CXnViewControlAdapter* self = new( ELeave ) CXnViewControlAdapter( aNode );
+ CXnViewControlAdapter* self = new( ELeave ) CXnViewControlAdapter();
CleanupStack::PushL( self );
self->ConstructL( aNode );
@@ -126,8 +126,8 @@
// C++ default constructor
// -----------------------------------------------------------------------------
//
-CXnViewControlAdapter::CXnViewControlAdapter( CXnNodePluginIf& aNode )
- : iNode( aNode ), iAppUi( static_cast< CXnAppUiAdapter& >( *iAvkonAppUi ) )
+CXnViewControlAdapter::CXnViewControlAdapter() :
+ iAppUi( static_cast< CXnAppUiAdapter& >( *iAvkonAppUi ) )
{
}
@@ -187,8 +187,12 @@
//
void CXnViewControlAdapter::HandlePointerEventL(
const TPointerEvent& aPointerEvent )
- {
- if ( iForegroundStatus != EBackground )
+ {
+ if ( iForegroundStatus != EBackground &&
+ ( iAppUi.UiEngine().IsPartialInputActive() || // no swipe if partial input active
+ IsWidgetGestureDest() || // no swipe if widget handles it
+ iAppUi.ViewSwitcher() == NULL || // no swipe if VS not available
+ !iAppUi.ViewSwitcher()->ProcessPointerEventL( aPointerEvent ) ) ) // no swipe if event not handled by VS
{
iAppUi.UiEngine().DisableRenderUiLC();
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewdata.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewdata.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -33,14 +33,11 @@
#include "ainativeuiplugins.h"
#include "xnpanic.h"
-
#include "debug.h"
// Constants
_LIT8( KNs, "namespace" );
-// ============================ LOCAL FUNCTIONS ================================
-
// ============================ MEMBER FUNCTIONS ===============================
// -----------------------------------------------------------------------------
// CXnViewData::NewL()
@@ -211,6 +208,11 @@
iLoadError = err;
+ if( !iLoadError )
+ {
+ TRAP_IGNORE( iManager.NotifyViewLoadedL( *this ) );
+ }
+
return iLoadError;
}
@@ -319,7 +321,11 @@
//
CXnNode* CXnViewData::ViewNode() const
{
- return iNode->LayoutNode();
+ if( iNode )
+ {
+ return iNode->LayoutNode();
+ }
+ return NULL;
}
// -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -60,7 +60,6 @@
// Constants
_LIT8( KEmptyWidgetUid, "0x2001f47f" );
-_LIT8( KTemplateViewUID, "0x20026f50" );
const TInt KPSCategoryUid( 0x200286E3 );
const TInt KPSCrashCountKey( 1 );
@@ -892,27 +891,10 @@
// Activates the next view
// -----------------------------------------------------------------------------
//
-void CXnViewManager::ActivateNextViewL( TInt /*aEffectId*/ )
+void CXnViewManager::ActivateNextViewL()
{
CXnViewData& next( NextViewData() );
-
- if ( !next.Occupied() )
- {
- TInt err( next.Load() );
-
- if ( err )
- {
- HandleErrorNotes( err );
- return;
- }
- }
-
- // Activate view
- if ( next.Occupied() && !next.Active() )
- {
- iAppUiAdapter.ViewAdapter().ActivateContainerL(
- next, EFalse, KGfxContextActivateNextView );
- }
+ ActivateViewL( next, KGfxContextActivateNextView );
}
// -----------------------------------------------------------------------------
@@ -920,13 +902,23 @@
// Activates the previous view
// -----------------------------------------------------------------------------
//
-void CXnViewManager::ActivatePreviousViewL( TInt /*aEffectId*/ )
+void CXnViewManager::ActivatePreviousViewL()
{
CXnViewData& prev( PreviousViewData() );
+ ActivateViewL( prev, KGfxContextActivatePrevView );
+ }
- if ( !prev.Occupied() )
+// -----------------------------------------------------------------------------
+// CXnViewManager::ActivatePreviousViewL()
+// Activates the previous view
+// -----------------------------------------------------------------------------
+//
+void CXnViewManager::ActivateViewL( CXnViewData& aViewData, TUid aEffect,
+ TBool aUpdateBg )
+ {
+ if ( !aViewData.Occupied() )
{
- TInt err( prev.Load() );
+ TInt err( aViewData.Load() );
if ( err )
{
@@ -936,10 +928,10 @@
}
// Activate view
- if ( prev.Occupied() && !prev.Active() )
+ if ( aViewData.Occupied() && !aViewData.Active() )
{
iAppUiAdapter.ViewAdapter().ActivateContainerL(
- prev, EFalse, KGfxContextActivatePrevView );
+ aViewData, EFalse, aEffect, aUpdateBg );
}
}
@@ -954,11 +946,14 @@
{
return KErrGeneral;
}
-
+
+ // If phone layout is mirrored new view needs to be added to left. Other right.
+ TInt mirror = AknLayoutUtils::LayoutMirrored() ? 0 : 1;
+
// Add new view (template view) to hsps
CAddPluginResult* result = iHspsWrapper->AddPluginL(
iRootData->ConfigurationId(), aInfo.Uid(),
- ViewIndex() + 1 );
+ ViewIndex() + mirror );
CleanupStack::PushL( result );
TInt retval( result->Status() );
@@ -987,7 +982,7 @@
TInt index( views.Find( &ActiveViewData() ) );
- views.InsertL( newView, index + 1 );
+ views.InsertL( newView, index + mirror );
// Root data owns the new view now
CleanupStack::Pop( newView );
@@ -1030,11 +1025,14 @@
return;
}
-
+
+ // If phone layout is mirrored new view needs to be added to left. Other right.
+ TInt mirror = AknLayoutUtils::LayoutMirrored() ? 0 : 1;
+
// Add new view (template view) to hsps
CAddPluginResult* result = iHspsWrapper->AddPluginL(
- iRootData->ConfigurationId(), KTemplateViewUID,
- ViewIndex() + 1 );
+ iRootData->ConfigurationId(), iRootData->TemplateViewUid(),
+ ViewIndex() + mirror );
CleanupStack::PushL( result );
TInt status( result->Status() );
@@ -1070,16 +1068,16 @@
TInt index( views.Find( &ActiveViewData() ) );
- views.InsertL( newView, index + 1 );
+ views.InsertL( newView, index + mirror );
// Root data owns the new view now
CleanupStack::Pop( newView );
- // Activate view
- iAppUiAdapter.ViewAdapter().ActivateContainerL( *newView, ETrue );
-
// Inform observers about added view
NotifyViewAdditionL( *newView );
+
+ // Activate view
+ iAppUiAdapter.ViewAdapter().ActivateContainerL( *newView, ETrue );
}
else
{
@@ -1411,7 +1409,7 @@
UpdateCachesL();
// Schedule remaining views loading
- iRootData->LoadRemainingViews();
+ iRootData->LoadRemainingViewsL();
}
HandleErrorNotes( err );
@@ -1485,7 +1483,7 @@
TRAP_IGNORE( bg.StoreWallpaperL() );
- self->NotifyContainerActivatedL( active );
+ TRAP_IGNORE( self->NotifyContainerActivatedL( active ) );
return KErrNone;
}
@@ -1507,6 +1505,19 @@
}
// -----------------------------------------------------------------------------
+// CXnViewManager::NotifyViewLoadedL()
+// Notifies view is activated
+// -----------------------------------------------------------------------------
+//
+void CXnViewManager::NotifyViewLoadedL( const CXnViewData& aViewData )
+ {
+ for ( TInt i = 0; i < iObservers.Count(); i++ )
+ {
+ iObservers[i]->NotifyViewLoadedL( aViewData );
+ }
+ }
+
+// -----------------------------------------------------------------------------
// CXnViewManager::NotifyViewDeactivatedL()
// Notifies view is deactivated
// -----------------------------------------------------------------------------
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewswitcher.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,986 @@
+/*
+ * Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: Implementation for wrapper for a box
+ *
+ */
+
+// System includes
+#include <akntouchgesturefwevents.h>
+#include <centralrepository.h>
+
+#include <activeidle2domaincrkeys.h>
+#include <gfxtranseffect/gfxtranseffect.h>
+
+#ifdef RD_TACTILE_FEEDBACK
+#include <touchfeedback.h>
+#endif // RD_TACTILE_FEEDBACK
+
+// User includes
+#include "xnappuiadapter.h"
+#include "xnuiengine.h"
+#include "xnproperty.h"
+#include "xnviewmanager.h"
+#include "xnviewdata.h"
+#include "xndomnode.h"
+#include "xnnode.h"
+#include "xnviewcontroladapter.h"
+#include "xneffectmanager.h"
+#include "xnrootdata.h"
+#include "xnviewadapter.h"
+#include "xnbackgroundmanager.h"
+
+#include "xnviewswitcher.h"
+
+// Constants
+const TInt KDrawDelay( 25000 ); // 16100 = 62 fps
+const TInt KDragTreshold( 30 );
+const TInt KMaxScrollSpeed( 150 );
+const TInt KMinScrollSpeed( 20 );
+const TInt KAnimationDuration( 500000 );
+const TInt KDragOffsetForBackground( 100 );
+const TInt KDragOffsetForPageSwitch( 50 );
+
+enum TViewPosition
+ {
+ KCurrentView, KNextView, KPreviousView
+ };
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void HideAdapter( CXnControlAdapter* aAdapter )
+ {
+ if( aAdapter )
+ {
+ aAdapter->Window().SetOrdinalPosition( -1 );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void ShowAdapter( CXnControlAdapter* aAdapter )
+ {
+ if( aAdapter )
+ {
+ aAdapter->Window().SetOrdinalPosition( 1 );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// Changes window position
+// -----------------------------------------------------------------------------
+//
+void SetWindowPosition( CXnControlAdapter* aAdapter, const TPoint& aPos )
+ {
+ if( aAdapter )
+ {
+ aAdapter->Window().SetPosition( aPos );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// Hide/Show control
+// -----------------------------------------------------------------------------
+//
+void SetVisible( CCoeControl* aControl, TBool aVisible )
+ {
+ if( aControl )
+ {
+ aControl->MakeVisible( aVisible );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// ShowNodes
+// -----------------------------------------------------------------------------
+//
+void ShowNodesL( CXnNode& aNode, TBool aShow )
+ {
+ CXnDomStringPool* sp( aNode.DomNode()->StringPool() );
+
+ CXnProperty* prop( NULL );
+ if( aShow )
+ {
+ prop = CXnProperty::NewL(
+ XnPropertyNames::style::common::KDisplay,
+ XnPropertyNames::style::common::display::KBlock,
+ CXnDomPropertyValue::EString, *sp );
+ }
+ else
+ {
+ prop = CXnProperty::NewL(
+ XnPropertyNames::style::common::KDisplay,
+ XnPropertyNames::style::common::display::KNone,
+ CXnDomPropertyValue::EString, *sp );
+ }
+ CleanupStack::PushL( prop );
+
+ aNode.SetPropertyWithoutNotificationL( prop );
+ CleanupStack::Pop( prop );
+ }
+
+// -----------------------------------------------------------------------------
+// IsNodeVisible
+// -----------------------------------------------------------------------------
+//
+TBool IsNodeVisibleL( CXnNode& aNode )
+ {
+ CXnProperty* displayProp( aNode.DisplayL() );
+
+ if ( displayProp )
+ {
+ const TDesC8& display( displayProp->StringValue() );
+
+ if ( display == XnPropertyNames::style::common::display::KBlock )
+ {
+ return ETrue;
+ }
+ }
+ return EFalse;
+ }
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CXnViewSwitcher::NewL
+// Symbian static 1st phase constructor
+// -----------------------------------------------------------------------------
+//
+CXnViewSwitcher* CXnViewSwitcher::NewL()
+ {
+ CXnViewSwitcher* self = new (ELeave) CXnViewSwitcher();
+
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CXnViewSwitcher::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CXnViewSwitcher::ConstructL()
+ {
+ iFingerFollowSupported = IsFingerFollowSupportedL();
+ iTimer = CPeriodic::NewL( CActive::EPriorityUserInput );
+ iViewSwitchState = KViewSwitchIdle;
+ }
+
+// -----------------------------------------------------------------------------
+// CXnViewSwitcher::CXnViewSwitcher
+// C++ default constructor
+// -----------------------------------------------------------------------------
+//
+CXnViewSwitcher::CXnViewSwitcher() :
+ iAppUi(static_cast<CXnAppUiAdapter&> (*iAvkonAppUi))
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CXnViewSwitcher::~CXnViewSwitcher
+// C++ destructor
+// -----------------------------------------------------------------------------
+//
+CXnViewSwitcher::~CXnViewSwitcher()
+ {
+ if (iTimer->IsActive())
+ {
+ iTimer->Cancel();
+ }
+ delete iTimer;
+ }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+TBool CXnViewSwitcher::FingerFollowSupported() const
+ {
+ return iFingerFollowSupported;
+ }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+TBool CXnViewSwitcher::ProcessPointerEventL(const TPointerEvent& aPointerEvent )
+ {
+ TBool consumed(EFalse);
+
+ if ( FingerFollowSupported() )
+ {
+ TPoint parentPos = aPointerEvent.iParentPosition;
+
+ switch (aPointerEvent.iType)
+ {
+ case TPointerEvent::EButton1Down:
+ {
+ if ( iViewSwitchState == KViewSwitchBegin || iViewSwitchState
+ == KViewSwitchIdle )
+ {
+ if (iTimer->IsActive())
+ {
+ iTimer->Cancel();
+ }
+ if( SetupViewsL() )
+ {
+ iViewSwitchState = KViewSwitchBegin;
+ iStartPosition = parentPos;
+ iScrollSpeed = KMaxScrollSpeed;
+ iTickAmount = 0;
+ iDirection = KCurrentView;
+ iScrollDistance = 0;
+ iScrollDirectionDistance = 0;
+ }
+ }
+ else if( iViewSwitchState == KViewSwitchDragOngoing )
+ {
+ consumed = ETrue;
+ }
+ else if( iViewSwitchState == KViewSwitchScroll )
+ {
+ consumed = ETrue;
+
+ if( iActivateView == KCurrentView )
+ {
+ if (iTimer->IsActive())
+ {
+ iTimer->Cancel();
+ }
+
+ iViewSwitchState = KViewSwitchDragOngoing;
+ consumed = ETrue;
+ iViewStartPosition = iViewPosition;
+ iScrollDistance = 0;
+ iScrollDirectionDistance = 0;
+ iStartPosition = parentPos;
+
+ iTimer->Start( 0, KDrawDelay, TCallBack(
+ TimerCallback, this ) );
+ }
+ else if( iActivateView == KNextView )
+ {
+ if( iCurrentView.iAdapter && iNextView.iAdapter &&
+ iPreviousView.iAdapter )
+ {
+ if (iTimer->IsActive())
+ {
+ iTimer->Cancel();
+ }
+
+ iViewSwitchState = KViewSwitchDragOngoing;
+ iActivateView = KCurrentView;
+
+ if( iPreviousView.iAdapter == iNextView.iAdapter )
+ {
+ iPreviousView = iCurrentView;
+ iCurrentView = iNextView;
+ iNextView = iPreviousView;
+ }
+ else
+ {
+ iPreviousView = iCurrentView;
+
+ iCurrentView = iNextView;
+
+ iNextView.iReadyToDraw = EFalse;
+ CXnViewData* nextViewData(
+ ViewData( *iCurrentView.iViewData, KNextView ) );
+ CXnNode* nextViewNode( nextViewData->ViewNode() );
+ if( nextViewNode )
+ {
+ iNextView.iAdapter = nextViewNode->Control();
+ iNextView.iViewData = nextViewData;
+ iNextView.iBgDrawn = EFalse;
+ }
+ }
+
+ iViewStartPosition = iCurrentView.iAdapter->Window().Position();
+ iScrollDistance = 0;
+ iScrollDirectionDistance = 0;
+ iStartPosition = parentPos;
+
+ iScrollSpeed = KMaxScrollSpeed;
+ iTickAmount = 0;
+ iTimer->Start( 0, KDrawDelay, TCallBack(
+ TimerCallback, this ) );
+ }
+ consumed = ETrue;
+ }
+ else if( iActivateView == KPreviousView )
+ {
+ if( iCurrentView.iAdapter && iNextView.iAdapter &&
+ iPreviousView.iAdapter )
+ {
+ if (iTimer->IsActive())
+ {
+ iTimer->Cancel();
+ }
+
+ iViewSwitchState = KViewSwitchDragOngoing;
+ iActivateView = KCurrentView;
+
+ if( iPreviousView.iAdapter == iNextView.iAdapter )
+ {
+ iNextView = iCurrentView;
+ iCurrentView = iPreviousView;
+ iPreviousView = iNextView;
+ }
+ else
+ {
+ iNextView = iCurrentView;
+
+ iCurrentView = iPreviousView;
+
+ iPreviousView.iReadyToDraw = EFalse;
+ CXnViewData* prevViewData(
+ ViewData( *iCurrentView.iViewData, KPreviousView ) );
+ CXnNode* prevViewNode( prevViewData->ViewNode() );
+ if( prevViewNode )
+ {
+ iPreviousView.iAdapter = prevViewNode->Control();
+ iPreviousView.iViewData = prevViewData;
+ iPreviousView.iBgDrawn = EFalse;
+ }
+ }
+
+ iViewStartPosition = iCurrentView.iAdapter->Window().Position();
+ iScrollDistance = 0;
+ iScrollDirectionDistance = 0;
+ iStartPosition = parentPos;
+
+ iScrollSpeed = KMaxScrollSpeed;
+ iTickAmount = 0;
+ iTimer->Start( 0, KDrawDelay, TCallBack(
+ TimerCallback, this ) );
+ }
+ consumed = ETrue;
+ }
+ }
+ }
+ break;
+ case TPointerEvent::EDrag:
+ {
+ if( iViewSwitchState == KViewSwitchIdle )
+ {
+ consumed = EFalse;
+ }
+ else if( iViewSwitchState == KViewSwitchBegin )
+ {
+ TPoint delta = parentPos - iStartPosition;
+
+ if( Abs(delta.iX) > KDragTreshold || Abs(delta.iY) > KDragTreshold )
+ {
+#ifdef RD_TACTILE_FEEDBACK
+ MTouchFeedback* feedback( MTouchFeedback::Instance() );
+
+ if ( feedback )
+ {
+ feedback->InstantFeedback( ETouchFeedbackBasic );
+ }
+#endif
+
+ iViewSwitchState = KViewSwitchDragOngoing;
+ iActivateView = KCurrentView;
+ iViewPosition.iY = iCurrentView.iAdapter->Position().iY;
+ iViewPosition.iX = 0;
+ iStartPosition = parentPos;
+
+ StartViewDraggingL();
+
+ iTimer->Start( 0, KDrawDelay, TCallBack(
+ TimerCallback, this ) );
+ }
+ consumed = ETrue;
+ }
+ else if( iViewSwitchState == KViewSwitchDragOngoing )
+ {
+ iScrollDistance = parentPos.iX - iStartPosition.iX;
+ consumed = ETrue;
+ }
+ else
+ {
+ consumed = EFalse;
+ }
+ }
+ break;
+ case TPointerEvent::EButton1Up:
+ {
+ if( iViewSwitchState == KViewSwitchBegin )
+ {
+ iViewSwitchState = KViewSwitchIdle;
+ }
+ else if( iViewSwitchState == KViewSwitchDragOngoing )
+ {
+ if (iTimer->IsActive())
+ {
+ iTimer->Cancel();
+ }
+
+#ifdef RD_TACTILE_FEEDBACK
+/*
+ MTouchFeedback* feedback( MTouchFeedback::Instance() );
+
+ if ( feedback )
+ {
+ feedback->InstantFeedback( ETouchFeedbackBasic );
+ }
+*/
+#endif
+
+ consumed = ETrue;
+
+ StartViewScrolling();
+ iViewSwitchState = KViewSwitchScroll;
+ }
+ else if( iViewSwitchState == KViewSwitchScroll )
+ {
+ consumed = ETrue;
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+ return consumed;
+ }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CXnViewSwitcher::TouchGesture( TAknTouchGestureFwType& /*aTouchGesture*/ )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CXnViewSwitcher::SizeChanged
+// -----------------------------------------------------------------------------
+//
+void CXnViewSwitcher::SizeChanged( TRect aRect )
+ {
+ iRect = aRect;
+ }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+TBool CXnViewSwitcher::SetupViewsL()
+ {
+ TBool ret = EFalse;
+
+ CXnViewManager& wManager = iAppUi.ViewManager();
+ iCurrentView.iViewData = &wManager.ActiveViewData();
+ iCurrentView.iAdapter = iCurrentView.iViewData->ViewNode()->Control();
+ iCurrentView.iReadyToDraw = ETrue;
+ iCurrentView.iBgDrawn = ETrue;
+
+ iViewStartPosition = TPoint( 0, iCurrentView.iAdapter->Window().Position().iY );
+
+ if ( wManager.ViewAmount() > 1 )
+ {
+ ret = ETrue;
+
+ CXnNode* nextViewNode( wManager.NextViewData().ViewNode() );
+ if( nextViewNode )
+ {
+ iNextView.iAdapter = nextViewNode->Control();
+ iNextView.iViewData = &wManager.NextViewData();
+ }
+
+ CXnNode* prevViewNode( wManager.PreviousViewData().ViewNode() );
+ if( prevViewNode && prevViewNode == nextViewNode )
+ {
+ // Only 2 views in Homesceern -> previous = next
+ iPreviousView = iNextView;
+ }
+ else if( prevViewNode )
+ {
+ iPreviousView.iAdapter = prevViewNode->Control();
+ iPreviousView.iViewData = &wManager.PreviousViewData();
+ }
+ }
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CXnViewSwitcher::PrepareViewL( CXnViewSwitcher::TViewInformation& aView )
+ {
+ if( !aView.iAdapter || !aView.iViewData )
+ {
+ return;
+ }
+
+ CXnControlAdapter& adapter = *aView.iAdapter;
+ RWindow& win( adapter.Window() );
+ win.SetOrdinalPosition( -1 );
+ adapter.MakeVisible( ETrue );
+
+ CXnNode* viewNode( aView.iViewData->ViewNode() );
+ TBool nodesVisible( IsNodeVisibleL( *viewNode ) );
+ if( !nodesVisible )
+ {
+ // Set visible temporarily
+ ShowNodesL( *viewNode, ETrue );
+ }
+
+ iAppUi.ViewAdapter().EnterEditStateL( *aView.iViewData, EFalse );
+
+ viewNode->UiEngine()->RenderFromNodeL( *viewNode );
+ aView.iReadyToDraw = ETrue;
+ }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CXnViewSwitcher::StartViewDraggingL()
+ {
+ // Remove focused node, in order to prevent activate triggers
+ CXnNode* currentViewNode =
+ iAppUi.ViewManager().ActiveViewData(). Node()->LayoutNode();
+ CXnUiEngine* engine(currentViewNode->UiEngine());
+
+ CXnNode* focusedNode = engine->FocusedNode();
+ if (focusedNode)
+ {
+ focusedNode->UnsetStateL(XnPropertyNames::style::common::KPressedDown);
+ focusedNode->UnsetStateL(XnPropertyNames::style::common::KFocus);
+ }
+
+ // Send button up to prevent long tapping
+ TPointerEvent pointerEvent;
+ pointerEvent.iType = TPointerEvent::EButton1Up;
+ if ( iCurrentView.iAdapter )
+ {
+ iCurrentView.iAdapter->CXnControlAdapter::HandlePointerEventL(
+ pointerEvent);
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CXnViewSwitcher::StartViewScrolling()
+ {
+ TInt screenWidth = iCurrentView.iAdapter->Window().Size().iWidth;
+
+ UpdateViewToBeActivated( KDragOffsetForPageSwitch );
+
+ switch (iActivateView)
+ {
+ case KPreviousView:
+ {
+ iScrollDistance = screenWidth - iViewPosition.iX;
+ }
+ break;
+ case KNextView:
+ {
+ iScrollDistance = -screenWidth - iViewPosition.iX;
+ }
+ break;
+ default: // KCurrentView
+ {
+ iScrollDistance = -iViewPosition.iX;
+ }
+ break;
+ }
+
+ TInt minSpeed = Abs( iScrollDistance / ( KAnimationDuration / KDrawDelay ) );
+ iScrollSpeed = Abs( iScrollSpeed );
+ if( iScrollSpeed < minSpeed )
+ {
+ iScrollSpeed = minSpeed;
+ }
+ if( iScrollSpeed < KMinScrollSpeed )
+ {
+ iScrollSpeed = KMinScrollSpeed;
+ }
+ if (iTimer->IsActive())
+ {
+ iTimer->Cancel();
+ }
+
+ iTimer->Start(KDrawDelay, KDrawDelay, TCallBack(
+ TimerCallback, this));
+ }
+
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CXnViewSwitcher::ViewSwitchEndedL()
+ {
+ iViewSwitchState = KViewSwitchIdle;
+
+ if (iTimer->IsActive())
+ {
+ iTimer->Cancel();
+ }
+
+ iViewPosition.iX = 0;
+
+ if ( iCurrentView.iAdapter )
+ {
+ CXnViewManager& wManager( iAppUi.ViewManager() );
+ CXnViewData* activeViewData( &wManager.ActiveViewData() );
+
+ switch( iActivateView )
+ {
+ case KCurrentView:
+ SetVisible( iNextView.iAdapter, EFalse );
+ SetVisible( iPreviousView.iAdapter, EFalse );
+
+ if( iCurrentView.iViewData && activeViewData != iCurrentView.iViewData )
+ {
+ wManager.ActivateViewL( *iCurrentView.iViewData, TUid::Null(), EFalse );
+ }
+ break;
+ case KPreviousView:
+ if ( iPreviousView.iAdapter )
+ {
+ SetVisible( iCurrentView.iAdapter, EFalse );
+ if( iPreviousView.iAdapter != iNextView.iAdapter )
+ {
+ SetVisible( iNextView.iAdapter, EFalse );
+ }
+
+ CXnViewData* prevViewData( ViewData( *iCurrentView.iViewData, KPreviousView ) );
+ if( prevViewData && activeViewData != prevViewData )
+ {
+ wManager.ActivateViewL( *prevViewData, TUid::Null(), EFalse );
+ }
+ }
+ break;
+ case KNextView:
+ if ( iNextView.iAdapter )
+ {
+ SetVisible( iCurrentView.iAdapter, EFalse );
+ if( iPreviousView.iAdapter != iNextView.iAdapter )
+ {
+ SetVisible( iPreviousView.iAdapter, EFalse );
+ }
+
+ CXnViewData* nextViewData( ViewData( *iCurrentView.iViewData, KNextView ) );
+ if( nextViewData && activeViewData != nextViewData )
+ {
+ wManager.ActivateViewL( *nextViewData, TUid::Null(), EFalse );
+ }
+ }
+ break;
+ }
+
+ ClearViews();
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CXnViewSwitcher::Scroll()
+ {
+ TInt scrollStep = iScrollDistance / 1.5;
+
+ if( Abs( scrollStep ) > Abs( iScrollSpeed ) )
+ {
+ scrollStep = ( scrollStep > 0 ) ? iScrollSpeed : -iScrollSpeed;
+ }
+
+ iViewPosition.iX += scrollStep;
+ iScrollDistance -= scrollStep;
+ }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CXnViewSwitcher::DoScroll()
+ {
+ SetWindowPosition( iCurrentView.iAdapter, iViewPosition );
+
+ if( iViewPosition.iX < 0 && iNextView.iAdapter )
+ {
+ // next view shown
+ if( !iNextView.iReadyToDraw )
+ {
+ TRAP_IGNORE( PrepareViewL( iNextView ) );
+ if( iPreviousView.iAdapter == iNextView.iAdapter )
+ {
+ iPreviousView.iReadyToDraw = ETrue;
+ }
+ }
+
+ ShowAdapter( iNextView.iAdapter );
+ if( iPreviousView.iAdapter != iNextView.iAdapter )
+ {
+ HideAdapter( iPreviousView.iAdapter );
+ }
+
+ TPoint pos( TPoint( iViewPosition.iX + iRect.Width(), iViewPosition.iY ) );
+ SetWindowPosition( iNextView.iAdapter, pos );
+ }
+
+ else if( iViewPosition.iX > 0 && iPreviousView.iAdapter )
+ {
+ // previous view shown
+ if( !iPreviousView.iReadyToDraw )
+ {
+ TRAP_IGNORE( PrepareViewL( iPreviousView ) );
+ }
+
+ ShowAdapter( iPreviousView.iAdapter );
+ if( iPreviousView.iAdapter != iNextView.iAdapter )
+ {
+ HideAdapter( iNextView.iAdapter );
+ }
+ TPoint pos( TPoint( iViewPosition.iX - iRect.Width(), iViewPosition.iY ) );
+ SetWindowPosition( iPreviousView.iAdapter, pos );
+ }
+
+ else
+ {
+ HideAdapter( iPreviousView.iAdapter );
+ HideAdapter( iNextView.iAdapter );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+TInt CXnViewSwitcher::TimerCallback(TAny *aPtr)
+ {
+ CXnViewSwitcher* self = reinterpret_cast<CXnViewSwitcher*> (aPtr);
+
+ if( self->iViewSwitchState == KViewSwitchDragOngoing )
+ {
+ TInt prevViewPos( self->iViewPosition.iX );
+ self->iViewPosition.iX = self->iViewStartPosition.iX + self->iScrollDistance;
+ self->DoScroll();
+
+ self->UpdateViewToBeActivated( KDragOffsetForBackground );
+
+ // Hack for informing NGA to draw.
+ self->iAppUi.ViewAdapter().BgManager().DrawNow(TRect(0,0,1,1));
+
+ // Scroll speed is average drag delta between timer callbacks.
+ self->iTickAmount++;
+
+ TInt scrollDistance = self->iViewPosition.iX - prevViewPos;
+
+ if( ( scrollDistance < 0 && self->iScrollDirectionDistance > 0 ) ||
+ ( scrollDistance > 0 && self->iScrollDirectionDistance < 0 ) )
+ {
+ // Scroll direction has been changed
+ self->iScrollDirectionDistance = scrollDistance;
+ self->iScrollSpeed = scrollDistance;
+ self->iTickAmount = 1;
+ }
+ else
+ {
+ self->iScrollDirectionDistance += scrollDistance;
+ self->iScrollSpeed = self->iScrollDistance / self->iTickAmount;
+ }
+
+ if( scrollDistance < 0 )
+ {
+ self->iDirection = KNextView;
+ }
+ else if( scrollDistance > 0 )
+ {
+ self->iDirection = KPreviousView;
+ }
+
+ return 0;
+ }
+
+ if ( Abs( self->iScrollDistance ) <= 2 )
+ {
+ TRAP_IGNORE( self->ViewSwitchEndedL() );
+ }
+ else
+ {
+ self->Scroll();
+ self->DoScroll();
+
+ // Hack for inforing NGA to draw.
+ self->iAppUi.ViewAdapter().BgManager().DrawNow(TRect(0,0,1,1));
+ }
+ return 0;
+ }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+TBool CXnViewSwitcher::IsFingerFollowSupportedL() const
+ {
+ CRepository* repository =
+ CRepository::NewL(TUid::Uid(KCRUidActiveIdleLV));
+ TBool value(EFalse);
+ TInt err(repository->Get(KAIFingerFollowSupport, value));
+ delete repository;
+
+ return value && (KErrNone == err);
+ }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+CXnViewData* CXnViewSwitcher::ViewData( CXnViewData& aCurrentViewData,
+ TInt aView )
+ {
+ CXnRootData& rootData = iAppUi.ViewManager().ActiveAppData();
+ RPointerArray<CXnPluginData>& rootDataArr = rootData.PluginData();
+
+ CXnViewData* ret( NULL );
+
+ TInt viewAmount( rootDataArr.Count() );
+ for( TInt i = 0; i < viewAmount; i++ )
+ {
+ CXnViewData* viewData = static_cast<CXnViewData*>( rootDataArr[i] );
+ if( &aCurrentViewData == viewData )
+ {
+ if( aView == KNextView )
+ {
+ if( i < viewAmount - 1 )
+ {
+ ret = static_cast<CXnViewData*>( rootDataArr[i + 1] );
+ }
+ else
+ {
+ ret = static_cast<CXnViewData*>( rootDataArr[0] );
+ }
+ break;
+ }
+ else if( aView == KPreviousView )
+ {
+ if( i == 0 )
+ {
+ ret = static_cast<CXnViewData*>( rootDataArr[viewAmount - 1] );
+ }
+ else
+ {
+ ret = static_cast<CXnViewData*>( rootDataArr[i - 1] );
+ }
+ break;
+ }
+ }
+ }
+
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CXnViewSwitcher::ClearViews()
+ {
+ TPoint p( 0, iCurrentView.iAdapter->Window().Position().iY );
+ SetWindowPosition( iCurrentView.iAdapter, p );
+ SetWindowPosition( iPreviousView.iAdapter, p );
+ SetWindowPosition( iNextView.iAdapter, p );
+ ShowAdapter( iPreviousView.iAdapter );
+ ShowAdapter( iNextView.iAdapter );
+ ShowAdapter( iCurrentView.iAdapter );
+ iCurrentView.iAdapter = NULL;
+ iCurrentView.iViewData = NULL;
+ iCurrentView.iReadyToDraw = EFalse;
+ iCurrentView.iBgDrawn = EFalse;
+ iNextView.iAdapter = NULL;
+ iNextView.iViewData = NULL;
+ iNextView.iReadyToDraw = EFalse;
+ iNextView.iBgDrawn = EFalse;
+ iPreviousView.iAdapter = NULL;
+ iPreviousView.iViewData = NULL;
+ iPreviousView.iReadyToDraw = EFalse;
+ iPreviousView.iBgDrawn = EFalse;
+ }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CXnViewSwitcher::UpdateViewToBeActivated( TInt aOffset )
+ {
+ if ( iViewPosition.iX > aOffset && iDirection == KPreviousView &&
+ iScrollDirectionDistance > aOffset / 2)
+ {
+ if( iActivateView != KPreviousView &&
+ iPreviousView.iViewData && iCurrentView.iViewData )
+ {
+ iActivateView = KPreviousView;
+ if( !iPreviousView.iBgDrawn )
+ {
+ ChangeBackground( *iCurrentView.iViewData,
+ *iPreviousView.iViewData );
+ iPreviousView.iBgDrawn = ETrue;
+ iNextView.iBgDrawn = EFalse;
+ iCurrentView.iBgDrawn = EFalse;
+ }
+ }
+ }
+ else if ( iViewPosition.iX < -aOffset && iDirection == KNextView &&
+ iScrollDirectionDistance < -aOffset / 2 )
+ {
+ if( iActivateView != KNextView &&
+ iNextView.iViewData && iCurrentView.iViewData )
+ {
+ iActivateView = KNextView;
+ if( !iNextView.iBgDrawn )
+ {
+ ChangeBackground( *iCurrentView.iViewData,
+ *iNextView.iViewData );
+ iPreviousView.iBgDrawn = EFalse;
+ iNextView.iBgDrawn = ETrue;
+ iCurrentView.iBgDrawn = EFalse;
+ }
+ }
+ }
+ else if( iActivateView != KCurrentView &&
+ iPreviousView.iViewData && iNextView.iViewData && iCurrentView.iViewData )
+ {
+ if( Abs( iScrollDirectionDistance ) > aOffset / 2 )
+ {
+ iActivateView = KCurrentView;
+ if( !iCurrentView.iBgDrawn )
+ {
+ ChangeBackground( ( iPreviousView.iBgDrawn ) ? *iPreviousView.iViewData :
+ *iNextView.iViewData, *iCurrentView.iViewData );
+ iPreviousView.iBgDrawn = EFalse;
+ iNextView.iBgDrawn = EFalse;
+ iCurrentView.iBgDrawn = ETrue;
+ }
+ }
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CXnViewSwitcher::ChangeBackground( CXnViewData& aCurrent, CXnViewData& aNext )
+ {
+ CXnBackgroundManager& bg( iAppUi.ViewAdapter().BgManager() );
+
+ GfxTransEffect::Begin( &bg, KGfxControlActionBgImgToImgAppear );
+
+ bg.ChangeWallpaper( aCurrent, aNext, EFalse );
+
+ GfxTransEffect::SetDemarcation( &bg, bg.Position() );
+ GfxTransEffect::End( &bg );
+ }
+
+// End of file
--- a/idlehomescreen/xmluirendering/uiengine/src/xnwallpaperview.rss Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnwallpaperview.rss Tue Sep 14 20:58:58 2010 +0300
@@ -66,6 +66,16 @@
}
// ----------------------------------------------------
+// r_qtn_hs_wallpaper_out_of_ram
+//
+// ----------------------------------------------------
+//
+RESOURCE TBUF r_qtn_hs_wallpaper_out_of_ram
+ {
+ buf = qtn_memlo_ram_out_of_mem;
+ }
+
+// ----------------------------------------------------
// r_qtn_hs_drm_protected_image_note
//
// ----------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnwidgetextensionadapter.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnwidgetextensionadapter.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -98,12 +98,12 @@
//
void CXnWidgetExtensionAdapter::HandleScreenDeviceChangedL()
{
- if( IsVisible() )
+ if( iPopup )
{
- CCoeControl::MakeVisible( EFalse );
+ HidePopupL();
}
- CXnControlAdapter::HandleScreenDeviceChangedL();
-
+
+ CXnControlAdapter::HandleScreenDeviceChangedL();
}
// -----------------------------------------------------------------------------
@@ -178,7 +178,7 @@
}
CXnPluginData* plugin(
- iAppUiAdapter->ViewManager().ActiveViewData().Plugin( &iNode.Node() ) );
+ iAppUiAdapter->ViewManager().ActiveViewData().Plugin( &iNode.Node() ) );
if ( !plugin )
{
@@ -186,6 +186,7 @@
}
SetPointerCapture( aVisible );
+ Window().SetPointerGrab( aVisible );
plugin->SetIsDisplayingPopup( aVisible, &iNode.Node() );
@@ -231,6 +232,11 @@
effectStarted = ETrue;
}
+ if ( aVisible && OwnsWindow() )
+ {
+ Window().SetOrdinalPosition( 0 );
+ }
+
CCoeControl::MakeVisible( aVisible );
if ( effectStarted )
@@ -247,8 +253,7 @@
//
void CXnWidgetExtensionAdapter::HandlePointerEventL(
const TPointerEvent& aPointerEvent )
- {
-
+ {
// in case of popup, we have to make sure that
// it will be closed after tapping outside of the
// area of itself and its parent
--- a/menufw/hierarchynavigator/hnengine/src/hnengine.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/hierarchynavigator/hnengine/src/hnengine.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -192,7 +192,7 @@
if( !( aSuiteName.Compare( KRoot8 ) ) )
{
CLiwGenericParamList* uriParams =
- UriQueryToLiwListLC( aUriQuery, aUriFragment, aSuiteName );
+ UriQueryToLiwListLC( aUriQuery, aUriFragment, aSuiteName );
CLiwGenericParamList* params = CLiwGenericParamList::NewLC();
params->AppendL( iMetaDataModel->GetSuiteParameters( 0 ) );
params->AppendL( *uriParams );
@@ -205,7 +205,7 @@
else
{
CLiwGenericParamList* params =
- UriQueryToLiwListLC( aUriQuery, aUriFragment, aSuiteName );
+ UriQueryToLiwListLC( aUriQuery, aUriFragment, aSuiteName );
HBufC* suiteName = HnConvUtils::Str8ToStrLC( aSuiteName );
params->AppendL( TLiwGenericParam( KNewSuiteParamNameEn,
@@ -267,27 +267,27 @@
// ---------------------------------------------------------------------------
//
EXPORT_C void CHnEngine::LoadSuitesFromUriL( const TDesC8& aUri )
- {
- DEBUG(("_MM_:CHnEngine::LoadSuitesFromUriL IN"));
- DEBUG8(("_MM_:\tURI: %S",&aUri));
+ {
+ DEBUG(("_MM_:CHnEngine::LoadSuitesFromUriL IN"));
+ DEBUG8(("_MM_:\tURI: %S",&aUri));
- TBool consumed(EFalse);
+ TBool consumed(EFalse);
if ( aUri.Find( KSetFocusWithPref ) != KErrNotFound )
- {
- LoadFromCrL( aUri );
- consumed = ETrue;
- }
+ {
+ LoadFromCrL( aUri );
+ consumed = ETrue;
+ }
if ( !consumed )
- {
- consumed = HandleActionL( aUri );
- }
+ {
+ consumed = HandleActionL( aUri );
+ }
if ( !consumed )
- {
- LoadSuitesL( aUri );
- }
+ {
+ LoadSuitesL( aUri );
+ }
DEBUG(("_MM_:CHnEngine::LoadSuitesFromUriL OUT"));
}
@@ -353,19 +353,19 @@
ret = HandleSetFocusEventL( aParams );
}
else if (aEventName == KAppGainForeground )
- {
- //force matrix gain foreground
+ {
+ //force matrix gain foreground
DEBUG(("_MM_:CHnEngine::HandleModelEventL EForegroundGain"));
iControllerInterface.NotifyUiRefreshL( EForegroundGain );
ret = KErrNone;
- }
+ }
else if (aEventName == KAppGainBackground )
- {
- //force matrix gain background
+ {
+ //force matrix gain background
DEBUG(("_MM_:CHnEngine::HandleModelEventL EBackgroundGain"));
iControllerInterface.NotifyUiRefreshL( EBackgroundGain );
ret = KErrNone;
- }
+ }
return ret;
}
@@ -602,41 +602,41 @@
TInt posSuite( 0 );
TInt posItem( 0 );
- TInt64 suiteCustomId( KErrNotFound );
- TInt64 itemCustomId( KErrNotFound );
+ TInt64 suiteCustomId( KErrNotFound );
+ TInt64 itemCustomId( KErrNotFound );
- // Get suite's and item's custom ids.
- const TLiwGenericParam* paramSuiteId = aParams.FindFirst( posSuite, KSuiteCustomId8 );
- const TLiwGenericParam* paramItemId = aParams.FindFirst( posItem, KItemCustomId8 );
+ // Get suite's and item's custom ids.
+ const TLiwGenericParam* paramSuiteId = aParams.FindFirst( posSuite, KSuiteCustomId8 );
+ const TLiwGenericParam* paramItemId = aParams.FindFirst( posItem, KItemCustomId8 );
- if ( posSuite >= 0 && posItem >= 0 )
- {
- suiteCustomId = paramSuiteId->Value().AsTInt64();
- itemCustomId = paramItemId->Value().AsTInt64();
+ if ( posSuite >= 0 && posItem >= 0 )
+ {
+ suiteCustomId = paramSuiteId->Value().AsTInt64();
+ itemCustomId = paramItemId->Value().AsTInt64();
- // Get matching suite.
- CHnSuiteModel* suiteModel = iSuiteContainer->GetMatchingSuiteModel( suiteCustomId );
+ // Get matching suite.
+ CHnSuiteModel* suiteModel = iSuiteContainer->GetMatchingSuiteModel( suiteCustomId );
- if ( suiteModel )
- {
- // If suite is not null, then find matching item model.
- TInt index( KErrNotFound );
- CHnItemModel* itemModel = suiteModel->GetMatchingItemModelL( itemCustomId, index );
+ if ( suiteModel )
+ {
+ // If suite is not null, then find matching item model.
+ TInt index( KErrNotFound );
+ CHnItemModel* itemModel = suiteModel->GetMatchingItemModelL( itemCustomId, index );
- if ( itemModel )
- {
- // If itemModel is not null then set highlight and set highligh
- // on matching item.
- suiteModel->SetSuiteHighlightL( index );
- iControllerInterface.HandleSuiteEventL( ESuiteHighlightChanged, suiteModel );
- }
- else
- {
- suiteModel->QueueFocus( itemCustomId );
- }
- }
- }
+ if ( itemModel )
+ {
+ // If itemModel is not null then set highlight and set highligh
+ // on matching item.
+ suiteModel->SetSuiteHighlightL( index );
+ iControllerInterface.HandleSuiteEventL( ESuiteHighlightChanged, suiteModel );
+ }
+ else
+ {
+ suiteModel->QueueFocus( itemCustomId );
+ }
+ }
+ }
DEBUG(("_MM_:CHnEngine::HandleSetFocusEventL OUT"));
return KErrNone;
@@ -895,11 +895,40 @@
{
TInt length = tmpSource.Find( aSeparator );
+ if( aSeparator == HnLogicalRelations::KParamUid8
+ && length != KErrNotFound )
+ {
+ TInt ampPos( KErrNotFound );
+ TInt eqPos( KErrNotFound );
+ do
+ {
+ ampPos = tmpSource.Mid(
+ length + HnLogicalRelations::KParamUid8().Length() ).
+ Find( HnLogicalRelations::KLogicalAnd8 );
+ if( ampPos >= 0 )
+ {
+ length += (ampPos + HnLogicalRelations::KParamUid8().Length());
+ ampPos = 0;
+ }
+ else if( (length + HnLogicalRelations::KParamUid8().Length())
+ == tmpSource.Length())
+ {
+ length = KErrNotFound;
+ }
+ }while( !ampPos );
+ }
+
if ( length >= 0 )
{
token.Set( tmpSource.Mid( 0, length ) );
tokens.AppendL( token.AllocL() );
tmpSource.Set( tmpSource.Mid( length + 1 ) );
+ if( aSeparator == HnLogicalRelations::KLogicalEqual8 )
+ {
+ token.Set( tmpSource );
+ tokens.AppendL( token.AllocL() );
+ break;
+ }
}
else
{
@@ -993,16 +1022,16 @@
// ---------------------------------------------------------------------------
//
void CHnEngine::LoadFromCrL( const TDesC8& aUri )
- {
- HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() );
- uriBuf->Des().Copy( aUri );
+ {
+ HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() );
+ uriBuf->Des().Copy( aUri );
- TUriParser8 parser;
- parser.Parse( *uriBuf );
- User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound );
+ TUriParser8 parser;
+ parser.Parse( *uriBuf );
+ User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound );
- const TDesC8& query = parser.Extract( EUriQuery );
- RPointerArray< HBufC8 > params = SplitL( query, HnLogicalRelations::KLogicalAnd8);
+ const TDesC8& query = parser.Extract( EUriQuery );
+ RPointerArray< HBufC8 > params = SplitL( query, HnLogicalRelations::KParamUid8);
TBuf8<KApaMaxAppGroupName + KTimeStampBufferLength + KUidStringLength + 2> item;
@@ -1020,34 +1049,34 @@
appgrname.Append( *paramValue[1] );
}
- //get current time
- TTime currentTime;
- currentTime.HomeTime();
- TDateTime date(currentTime.DateTime());
- item.Format(KCRepTimeFormat, &appgrname , date.Year(), date.Month(),
- date.Day(), date.Hour(), date.Minute(), date.Second(), date.MicroSecond());
- }
+ //get current time
+ TTime currentTime;
+ currentTime.HomeTime();
+ TDateTime date(currentTime.DateTime());
+ item.Format(KCRepTimeFormat, &appgrname , date.Year(), date.Month(),
+ date.Day(), date.Hour(), date.Minute(), date.Second(), date.MicroSecond());
+ }
else if ( !paramValue[0]->Compare( KKeyTypeUid ) )
- {
- item.Append( KComma8 );
+ {
+ item.Append( KComma8 );
if( paramValue[1]->Length()<=KUidStringLength )
{
item.Append( *paramValue[1] );
}
- }
+ }
CleanupStack::PopAndDestroy( ¶mValue );
}
TBuf<KApaMaxAppGroupName + KTimeStampBufferLength + KUidStringLength + 2> item1;
item1.Copy(item);
- CRepository *cenRep = CRepository::NewLC( KCRUidMenu );
- cenRep->Set(KMenuShowFolder, item1);
- CleanupStack::PopAndDestroy( cenRep );
+ CRepository *cenRep = CRepository::NewLC( KCRUidMenu );
+ cenRep->Set(KMenuShowFolder, item1);
+ CleanupStack::PopAndDestroy( cenRep );
params.ResetAndDestroy();
CleanupStack::PopAndDestroy( uriBuf );
- }
+ }
// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
@@ -1081,96 +1110,96 @@
// ---------------------------------------------------------------------------
//
TBool CHnEngine::HandleActionL( const TDesC8& aUri )
- {
- TBool exitActionConsumed(EFalse);
+ {
+ TBool exitActionConsumed(EFalse);
- HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() );
- uriBuf->Des().Copy( aUri );
+ HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() );
+ uriBuf->Des().Copy( aUri );
- TUriParser8 parser;
+ TUriParser8 parser;
parser.Parse( *uriBuf );
User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound );
const TDesC8& host8 = parser.Extract( EUriHost );
const TDesC8& query = parser.Extract( EUriQuery );
- RBuf action;
+ RBuf action;
CleanupClosePushL( action );
CLiwGenericParamList* paramsUri = UriQueryToLiwListLC( query, KNullDesC8, KNullDesC8 );
HnLiwUtils::GetStringL( *paramsUri, KActionParams, action );
if ( !action.Compare( KActionExit ) )
- {
- RBuf host;
- host.CreateL( host8.Length() );
- CleanupClosePushL( host );
- host.Copy(host8);
- CHnSuiteModel* suiteModel = iSuiteContainer->GetSuiteModel( host );
- TBool exitHideHostNotFound( ETrue );
- if( suiteModel && suiteModel->ExitMode() == EExitModeHide )
- {
- exitHideHostNotFound = EFalse;
- }
+ {
+ RBuf host;
+ host.CreateL( host8.Length() );
+ CleanupClosePushL( host );
+ host.Copy(host8);
+ CHnSuiteModel* suiteModel = iSuiteContainer->GetSuiteModel( host );
+ TBool exitHideHostNotFound( ETrue );
+ if( suiteModel && suiteModel->ExitMode() == EExitModeHide )
+ {
+ exitHideHostNotFound = EFalse;
+ }
- if ( exitHideHostNotFound )
- {
- //send to foreground
- CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
- CleanupStack::PushL( pl );
- HandleModelEventL( KAppGainForeground, *pl );
- CleanupStack::PopAndDestroy( pl );
- }
- else
- {
- //send to background
- CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
- CleanupStack::PushL( pl );
- HandleModelEventL( KAppGainBackground, *pl );
- CleanupStack::PopAndDestroy( pl );
- }
+ if ( exitHideHostNotFound )
+ {
+ //send to foreground
+ CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
+ CleanupStack::PushL( pl );
+ HandleModelEventL( KAppGainForeground, *pl );
+ CleanupStack::PopAndDestroy( pl );
+ }
+ else
+ {
+ //send to background
+ CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
+ CleanupStack::PushL( pl );
+ HandleModelEventL( KAppGainBackground, *pl );
+ CleanupStack::PopAndDestroy( pl );
+ }
- if ( exitHideHostNotFound && iSuiteContainer->GetLastSuiteModel() == suiteModel )
- {
+ if ( exitHideHostNotFound && iSuiteContainer->GetLastSuiteModel() == suiteModel )
+ {
HandleBackEventL( host, 1 );
- }
- else
- {
- //reset to root
+ }
+ else
+ {
+ //reset to root
CLiwGenericParamList* params = CLiwGenericParamList::NewLC();
params->AppendL( iMetaDataModel->GetSuiteParameters( 0 ) );
- ResetModelsL();
+ ResetModelsL();
InitializeL( *params );
CleanupStack::PopAndDestroy( params );
- }
+ }
- CleanupStack::PopAndDestroy( &host );
- exitActionConsumed = ETrue;
- }
+ CleanupStack::PopAndDestroy( &host );
+ exitActionConsumed = ETrue;
+ }
CleanupStack::PopAndDestroy( paramsUri );
CleanupStack::PopAndDestroy( &action );
CleanupStack::PopAndDestroy( uriBuf );
return exitActionConsumed;
- }
+ }
// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
//
void CHnEngine::LoadSuitesL( const TDesC8& aUri )
- {
- TBool sendToForeground(EFalse);
- HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() );
- uriBuf->Des().Copy( aUri );
+ {
+ TBool sendToForeground(EFalse);
+ HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() );
+ uriBuf->Des().Copy( aUri );
- TUriParser8 parser;
- parser.Parse( *uriBuf );
- User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound );
+ TUriParser8 parser;
+ parser.Parse( *uriBuf );
+ User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound );
- CDesC8ArrayFlat* suiteNameArray = new( ELeave ) CDesC8ArrayFlat( KDefaultGranularity ) ;
- CleanupStack::PushL( suiteNameArray );
+ CDesC8ArrayFlat* suiteNameArray = new( ELeave ) CDesC8ArrayFlat( KDefaultGranularity ) ;
+ CleanupStack::PushL( suiteNameArray );
- const TDesC8& host = parser.Extract( EUriHost );
+ const TDesC8& host = parser.Extract( EUriHost );
RBuf8 host8;
CleanupClosePushL( host8 );
if (host.Compare( KNullDesC8 ))
@@ -1181,19 +1210,19 @@
DEBUG8(( "_MM_:\tURI host part: %S", &host8 ));
}
- const TDesC8& path = parser.Extract( EUriPath );
- if (path.Compare( KNullDesC8 ))
- {
- HBufC8* path8 = HBufC8::NewLC( path.Length() );
- path8->Des().Copy( path );
- path8->Des().LowerCase();
- ParseSuiteUriPathL( *path8, *suiteNameArray );
- CleanupStack::PopAndDestroy( path8 );
- }
+ const TDesC8& path = parser.Extract( EUriPath );
+ if (path.Compare( KNullDesC8 ))
+ {
+ HBufC8* path8 = HBufC8::NewLC( path.Length() );
+ path8->Des().Copy( path );
+ path8->Des().LowerCase();
+ ParseSuiteUriPathL( *path8, *suiteNameArray );
+ CleanupStack::PopAndDestroy( path8 );
+ }
- TBool suiteExists( EFalse );
- iMetaDataModel->IgnoreEvaluations( ETrue );
- iMetaDataModel->QueueForeground( CHnMdModel::EWhenAnySuiteIsEvaluated );
+ TBool suiteExists( EFalse );
+ iMetaDataModel->IgnoreEvaluations( ETrue );
+ iMetaDataModel->QueueForeground( CHnMdModel::EWhenAnySuiteIsEvaluated );
if( host8.Length() == 0 || ( host8.Length() > 0 &&
!iMetaDataModel->SuiteModelExistsL( host8 ) ) )
@@ -1202,101 +1231,101 @@
suiteNameArray->AppendL( KRoot8 );
}
- for( TInt i = 0; i < suiteNameArray->Count(); ++i )
- {
- suiteExists = iMetaDataModel->SuiteModelExistsL(
- ( *suiteNameArray )[i] );
- TBool nextExists = i < suiteNameArray->Count() - 1 &&
- iMetaDataModel->SuiteModelExistsL( ( *suiteNameArray )[i + 1] );
- TBool isLast = ( i == ( suiteNameArray->Count() - 1 ) );
+ for( TInt i = 0; i < suiteNameArray->Count(); ++i )
+ {
+ suiteExists = iMetaDataModel->SuiteModelExistsL(
+ ( *suiteNameArray )[i] );
+ TBool nextExists = i < suiteNameArray->Count() - 1 &&
+ iMetaDataModel->SuiteModelExistsL( ( *suiteNameArray )[i + 1] );
+ TBool isLast = ( i == ( suiteNameArray->Count() - 1 ) );
- TBool turnOnEvaluation = ( suiteExists && ( !nextExists || isLast ) );
- if( turnOnEvaluation || !suiteExists )
- {
- iMetaDataModel->IgnoreEvaluations( EFalse );
- }
+ TBool turnOnEvaluation = ( suiteExists && ( !nextExists || isLast ) );
+ if( turnOnEvaluation || !suiteExists )
+ {
+ iMetaDataModel->IgnoreEvaluations( EFalse );
+ }
- TInt err( KErrNone );
+ TInt err( KErrNone );
- // Ignore loading new suite if the last suite in model is the same
- // as first one in the uri.
- if ( i == 0 )
- {
- if ( SuitesAreTheSameL( iMetaDataModel->GetLastSuite()->SuiteName(), (*suiteNameArray)[i] ) )
- {
- HandleTheSameSuitesL( nextExists, parser.Extract( EUriQuery ) );
- sendToForeground = ETrue;
- continue;
- }
- }
+ // Ignore loading new suite if the last suite in model is the same
+ // as first one in the uri.
+ if ( i == 0 )
+ {
+ if ( SuitesAreTheSameL( iMetaDataModel->GetLastSuite()->SuiteName(), (*suiteNameArray)[i] ) )
+ {
+ HandleTheSameSuitesL( nextExists, parser.Extract( EUriQuery ) );
+ sendToForeground = ETrue;
+ continue;
+ }
+ }
- if( suiteExists )
- {
- if (!nextExists)
- {
- // Tricky: queue foreground so that if the suite is evaluated synchronously
- // the foreground will be gained.
- iMetaDataModel->QueueForeground( CHnMdModel::EWhenAnySuiteIsEvaluated );
- }
- err = LoadSuiteFromUriL(
- ( *suiteNameArray )[i], parser.Extract( EUriQuery ), parser.Extract( EUriFragment ) );
- if ( KErrNone == err && !nextExists && iMetaDataModel->IsForegroundQueued() )
- {
- // Tricky: if foreground is still queued it means that the suite is evaluated
- // asynchronously. Override the previos foreground queue setting with one
- // that will be effective only if the last loaded suite is evaluated.
- iMetaDataModel->QueueForeground( CHnMdModel::EWhenCurrentTopSuiteIsEvaluated );
- }
- if ( err != KErrNone )
- {
- sendToForeground = ETrue;
- }
- }
+ if( suiteExists )
+ {
+ if (!nextExists)
+ {
+ // Tricky: queue foreground so that if the suite is evaluated synchronously
+ // the foreground will be gained.
+ iMetaDataModel->QueueForeground( CHnMdModel::EWhenAnySuiteIsEvaluated );
+ }
+ err = LoadSuiteFromUriL(
+ ( *suiteNameArray )[i], parser.Extract( EUriQuery ), parser.Extract( EUriFragment ) );
+ if ( KErrNone == err && !nextExists && iMetaDataModel->IsForegroundQueued() )
+ {
+ // Tricky: if foreground is still queued it means that the suite is evaluated
+ // asynchronously. Override the previos foreground queue setting with one
+ // that will be effective only if the last loaded suite is evaluated.
+ iMetaDataModel->QueueForeground( CHnMdModel::EWhenCurrentTopSuiteIsEvaluated );
+ }
+ if ( err != KErrNone )
+ {
+ sendToForeground = ETrue;
+ }
+ }
- if( !suiteExists || err != KErrNone || !nextExists )
- {
- CHnFilter* filter = CHnFilter::NewLC();
+ if( !suiteExists || err != KErrNone || !nextExists )
+ {
+ CHnFilter* filter = CHnFilter::NewLC();
- filter->SetSuiteId(
- iSuiteContainer->GetLastSuiteModel()->CustomId() );
+ filter->SetSuiteId(
+ iSuiteContainer->GetLastSuiteModel()->CustomId() );
- filter->SetEvaluateSuiteL( ETrue );
- iMetaDataModel->IgnoreEvaluations( EFalse );
+ filter->SetEvaluateSuiteL( ETrue );
+ iMetaDataModel->IgnoreEvaluations( EFalse );
- TRAPD( err, iMetaDataModel->EvaluateL( *filter ) );
+ TRAPD( err, iMetaDataModel->EvaluateL( *filter ) );
- CleanupStack::PopAndDestroy( filter );
- if( err )
- {
- iMetaDataModel->DeleteLastSuite();
- iSuiteContainer->PopSuiteModelL(
- HnConvUtils::Str8ToStr( ( *suiteNameArray )[i] )->Des() );
- sendToForeground = ETrue;
- }
- break;
- }
- }
+ CleanupStack::PopAndDestroy( filter );
+ if( err )
+ {
+ iMetaDataModel->DeleteLastSuite();
+ iSuiteContainer->PopSuiteModelL(
+ HnConvUtils::Str8ToStr( ( *suiteNameArray )[i] )->Des() );
+ sendToForeground = ETrue;
+ }
+ break;
+ }
+ }
- // set highlight only when path is valid!
- if( suiteExists )
- {
- HighlightPlacementFromUriL( parser.Extract( EUriFragment ) );
- }
+ // set highlight only when path is valid!
+ if( suiteExists )
+ {
+ HighlightPlacementFromUriL( parser.Extract( EUriFragment ) );
+ }
CleanupStack::PopAndDestroy( &host8 );
- CleanupStack::PopAndDestroy( suiteNameArray );
- CleanupStack::PopAndDestroy( uriBuf );
+ CleanupStack::PopAndDestroy( suiteNameArray );
+ CleanupStack::PopAndDestroy( uriBuf );
// send to foreground
- if ( sendToForeground )
- {
- CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
- CleanupStack::PushL( pl );
- HandleModelEventL( KAppGainForeground, *pl );
- CleanupStack::PopAndDestroy( pl );
- iMetaDataModel->QueueForeground( CHnMdModel::ENever );
- }
+ if ( sendToForeground )
+ {
+ CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
+ CleanupStack::PushL( pl );
+ HandleModelEventL( KAppGainForeground, *pl );
+ CleanupStack::PopAndDestroy( pl );
+ iMetaDataModel->QueueForeground( CHnMdModel::ENever );
+ }
- }
+ }
// End of file
--- a/menufw/hierarchynavigator/hnmetadatamodel/inc/hnglobals.h Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/hierarchynavigator/hnmetadatamodel/inc/hnglobals.h Tue Sep 14 20:58:58 2010 +0300
@@ -110,7 +110,12 @@
/**
* Has not.
*/
- _LIT8( KLogicalHasNot8, "HASNOT" );
+ _LIT8( KLogicalHasNot8, "HASNOT" );
+
+ /**
+ * Uid param for uri.
+ */
+ _LIT8( KParamUid8, "&uid=" );
}
/**
@@ -427,11 +432,11 @@
// info notes for notifying lack of configuration files
_LIT( KDebugNoteDirNotFound,
- "Directory containing suite configuration not found!" );
+ "Directory containing suite configuration not found!" );
_LIT( KDebugNoteFileNotFound,
- "File containing suite configuration not found!" );
+ "File containing suite configuration not found!" );
_LIT( KDebugNoteOtherError,
- "Loading suite configuration returned error: %d" );
+ "Loading suite configuration returned error: %d" );
_LIT8( KStar8, "*" );
@@ -518,9 +523,9 @@
* Order in which drives are searched for suites.
*/
const TInt KDriveSearchOrder[] = { EDriveY, EDriveX, EDriveW, EDriveV, EDriveU,
- EDriveT, EDriveS, EDriveR, EDriveQ, EDriveP, EDriveO, EDriveN, EDriveM,
- EDriveL, EDriveK, EDriveJ, EDriveI, EDriveH, EDriveG, EDriveF, EDriveE,
- EDriveD, EDriveC, EDriveB, EDriveA, EDriveZ };
+ EDriveT, EDriveS, EDriveR, EDriveQ, EDriveP, EDriveO, EDriveN, EDriveM,
+ EDriveL, EDriveK, EDriveJ, EDriveI, EDriveH, EDriveG, EDriveF, EDriveE,
+ EDriveD, EDriveC, EDriveB, EDriveA, EDriveZ };
/**
* Type of the widget which displays Suite data
@@ -562,10 +567,10 @@
* Custom item ids.
*/
enum TCustomId
- {
- ECustomIdFirstItem = -2,
- ECustomIdLastItem = -3
- };
+ {
+ ECustomIdFirstItem = -2,
+ ECustomIdLastItem = -3
+ };
/**
* Suite's exit mode
@@ -580,8 +585,8 @@
* Type of change in items number
*/
enum TItemsChangeType {
- EItemsAdded = 0,
- EItemsRemoved
+ EItemsAdded = 0,
+ EItemsRemoved
};
_LIT8( KExitModeParams, "params:exit" );
--- a/menufw/hierarchynavigator/hnmetadatamodel/inc/hnrepositoryobserver.h Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/hierarchynavigator/hnmetadatamodel/inc/hnrepositoryobserver.h Tue Sep 14 20:58:58 2010 +0300
@@ -39,7 +39,7 @@
NONSHARABLE_CLASS( CHnRepositoryObserver ):
public CBase,
public MCenRepNotifyHandlerCallback
- {
+ {
public:
/**
@@ -98,7 +98,7 @@
*/
CCenRepNotifyHandler* iNotifyHandler;
- };
+ };
/**
* Widget Type Repository Observer.
@@ -110,7 +110,7 @@
* @ingroup group_hnmetadatamodel
*/
NONSHARABLE_CLASS( CHnRepositoryWidgetTypeObserver ): public CHnRepositoryObserver
- {
+ {
public:
/**
@@ -164,7 +164,7 @@
* @param aCmnPtrs Common pointers.
* @since S60 v5.0
*/
- CHnRepositoryWidgetTypeObserver( THnMdCommonPointers* aCmnPtrs );
+ CHnRepositoryWidgetTypeObserver( THnMdCommonPointers* aCmnPtrs );
private:
@@ -173,24 +173,23 @@
*
* @since S60 v5.0
*/
- void ConstructL( const TUid aRepositoryUid );
+ void ConstructL( const TUid aRepositoryUid );
private:
- /**
- * Array holding ids of widgets being switched.
- * It is used to eliminate double refresh for such suites.
- */
- RArray<TUint32> iWidgetSwitches;
+ /**
+ * Array holding ids of widgets being switched.
+ * It is used to eliminate double refresh for such suites.
+ */
+ RArray<TUint32> iWidgetSwitches;
- };
+ };
NONSHARABLE_CLASS( CHnRepositoryShowFolderObserver ): public CHnRepositoryObserver,
- public MLiwNotifyCallback,
- public MHnSuiteObserver
- {
+ public MLiwNotifyCallback
+ {
public:
/**
@@ -201,26 +200,26 @@
virtual ~CHnRepositoryShowFolderObserver();
/**
- * Factory function.
- *
- * @param aCmnPtrs Common pointers.
- * @return Repository Observer.
- * @since S60 v5.0
- */
- static CHnRepositoryShowFolderObserver* NewL(
- THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid,
- const TUint32 aId);
+ * Factory function.
+ *
+ * @param aCmnPtrs Common pointers.
+ * @return Repository Observer.
+ * @since S60 v5.0
+ */
+ static CHnRepositoryShowFolderObserver* NewL(
+ THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid,
+ const TUint32 aId);
- /**
- * Factory function.
- *
- * @param aCmnPtrs Common pointers.
- * @return Repository Observer.
- * @since S60 v5.0
- */
- static CHnRepositoryShowFolderObserver* NewLC(
- THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid,
- const TUint32 aId);
+ /**
+ * Factory function.
+ *
+ * @param aCmnPtrs Common pointers.
+ * @return Repository Observer.
+ * @since S60 v5.0
+ */
+ static CHnRepositoryShowFolderObserver* NewLC(
+ THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid,
+ const TUint32 aId);
/**
* Change handler method.
@@ -250,14 +249,6 @@
CLiwGenericParamList& aEventParamList,
const CLiwGenericParamList& aInParamList);
- /**
- * From MHnSuiteObserver
- */
- virtual void HandleSuiteEventL ( THnCustomSuiteEvent aCustomSuiteEvent,
- CHnSuiteModel *aModel );
-
-
-
private:
/**
@@ -266,7 +257,7 @@
* @param aCmnPtrs Common pointers.
* @since S60 v5.0
*/
- CHnRepositoryShowFolderObserver( THnMdCommonPointers* aCmnPtrs, TUint32 iId );
+ CHnRepositoryShowFolderObserver( THnMdCommonPointers* aCmnPtrs, TUint32 iId );
/**
* Extracts the folder name from the CR key.
@@ -274,14 +265,14 @@
* @param aNewValue The CR key.
* @since S60 v5.0
*/
- void ExtractCRKeyShowFolderName( const TDesC& aNewValue );
+ void ExtractCRKeyShowFolderName( const TDesC& aNewValue );
- /**
- * Request get list for parent folder of an application.
- *
- * @param aFolderId A parent folder id
- * @since S60 v5.0
- */
+ /**
+ * Request get list for parent folder of an application.
+ *
+ * @param aFolderId A parent folder id
+ * @since S60 v5.0
+ */
void GetShowFolderL( TUint32 aFolderId );
/**
@@ -308,21 +299,21 @@
*
* @since S60 v5.0
*/
- void ConstructL( const TUid aRepositoryUid );
+ void ConstructL( const TUid aRepositoryUid );
private:
- /**
+ /**
* Folder application group name.
*/
- TBuf8<KApaMaxAppGroupName> iCRKeyFolderName;
+ TBuf8<KApaMaxAppGroupName> iCRKeyFolderName;
/**
* Mcs id for an application item in a folder with a given app group name.
*/
- TBuf8<KUidStringLength> iCRKeyFolderItemUid;
+ TBuf8<KUidStringLength> iCRKeyFolderItemUid;
- /**
+ /**
* Own.
* Intance of the service handler.
*/
@@ -332,7 +323,7 @@
* Flag describing the type of notification.
*/
TInt iNotifyType;
- };
+ };
#endif /*HNREPOSITORYOBSERVER_H_*/
--- a/menufw/hierarchynavigator/hnmetadatamodel/src/hnmdmodel.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/hierarchynavigator/hnmetadatamodel/src/hnmdmodel.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -247,9 +247,9 @@
// ---------------------------------------------------------------------------
//
EXPORT_C TBool CHnMdModel::IsForegroundQueued() const
- {
- return iForegroundQueued;
- }
+ {
+ return iForegroundQueued;
+ }
// ---------------------------------------------------------------------------
//
@@ -264,13 +264,13 @@
if ( IsForegroundQueued() && ( !iForegroundTriggeringSuite ||
iForegroundTriggeringSuite == aJustEvaluatedSuite ) )
- {
- CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
- CleanupStack::PushL( pl );
- iCmnPtrs.iModelEventObserver->HandleModelEventL( KAppGainForeground, *pl );
- CleanupStack::PopAndDestroy( pl );
- QueueForeground( ENever );
- }
+ {
+ CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
+ CleanupStack::PushL( pl );
+ iCmnPtrs.iModelEventObserver->HandleModelEventL( KAppGainForeground, *pl );
+ CleanupStack::PopAndDestroy( pl );
+ QueueForeground( ENever );
+ }
}
// ---------------------------------------------------------------------------
@@ -316,11 +316,11 @@
{
TInt err( KErrNone );
- RXmlEngDocument xmlDoc;
- // Xml model provider takes ownership of xmlDoc.
- TRAP( err, iXmlModelProvider->GetModelL( aGenre, xmlDoc ) );
+ RXmlEngDocument xmlDoc;
+ // Xml model provider takes ownership of xmlDoc.
+ TRAP( err, iXmlModelProvider->GetModelL( aGenre, xmlDoc ) );
- TXmlEngElement element;
+ TXmlEngElement element;
if ( !err )
{
element = xmlDoc.DocumentElement().AsElement();
@@ -342,10 +342,10 @@
TInt pos( 0 );
newSuite->GetSuiteParameters().FindFirst( pos, KSuiteName8);
if ( pos == KErrNotFound )
- {
- newSuite->GetSuiteParameters().AppendL(
- TLiwGenericParam(KSuiteName8, TLiwVariant( aGenre ) ) );
- }
+ {
+ newSuite->GetSuiteParameters().AppendL(
+ TLiwGenericParam(KSuiteName8, TLiwVariant( aGenre ) ) );
+ }
iCmnPtrs.iContainer->PushNewSuiteModelL( newSuite->SuiteName() );
iCmnPtrs.iContainer->GetLastSuiteModel()->GetItemsOrder()->
@@ -355,9 +355,9 @@
iLoadedSuites.AppendL( newSuite );
}
else
- {
- MMPERF(("CHnMdModel::LoadSuiteL - Error TRAPPED!"));
- }
+ {
+ MMPERF(("CHnMdModel::LoadSuiteL - Error TRAPPED!"));
+ }
return err;
}
@@ -395,8 +395,8 @@
// ---------------------------------------------------------------------------
//
TInt CHnMdModel::LoadedSuitesCount()
- {
- return iLoadedSuites.Count();
- }
+ {
+ return iLoadedSuites.Count();
+ }
--- a/menufw/hierarchynavigator/hnmetadatamodel/src/hnrepositoryobserver.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/hierarchynavigator/hnmetadatamodel/src/hnrepositoryobserver.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -229,7 +229,7 @@
TInt ret = iRepository->Create( iId, KBlank );
iNotifyHandler = CCenRepNotifyHandler::NewL(
*this, *iRepository,
- CCenRepNotifyHandler::EStringKey, iId );
+ CCenRepNotifyHandler::EStringKey, iId );
iNotifyHandler->StartListeningL();
}
@@ -273,23 +273,23 @@
//++Show Folder
if( aId == iId && aNewValue.Length())
- {
+ {
iNotifyType = 0;
- ExtractCRKeyShowFolderName( aNewValue );
+ ExtractCRKeyShowFolderName( aNewValue );
- // iCRKeyFolderItemUid can contain mcs id or uid
- // in case of uid it will be replaced whith id in HandleNotifyL callback
- if( iCRKeyFolderItemUid.Length()>0 )
- {
- if( iCRKeyFolderItemUid.FindF( KHexPrefix8 )==0 )
- {
- iNotifyType |= EAPP_UID;
- }
- else
- {
- iNotifyType |= EAPP_ID;
- }
- }
+ // iCRKeyFolderItemUid can contain mcs id or uid
+ // in case of uid it will be replaced whith id in HandleNotifyL callback
+ if( iCRKeyFolderItemUid.Length()>0 )
+ {
+ if( iCRKeyFolderItemUid.FindF( KHexPrefix8 )==0 )
+ {
+ iNotifyType |= EAPP_UID;
+ }
+ else
+ {
+ iNotifyType |= EAPP_ID;
+ }
+ }
CHnMdBaseKey* inDataKey = HnMdKeyFactory::CreateL(
KInData8, KKeyTypeMap, KDefaultParentId8 );
@@ -392,7 +392,7 @@
CleanupStack::PopAndDestroy( id );
}
CleanupStack::PopAndDestroy( inDataKey );
- }
+ }
DEBUG(("_MM_:CHnRepositoryShowFolderObserver::HandleNotifyStringL OUT"));
@@ -403,91 +403,91 @@
// ---------------------------------------------------------------------------
//
void CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName( const TDesC& aNewValue )
- {
- DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName IN" ));
- iCRKeyFolderName.Copy( KBlank );
- iCRKeyFolderItemUid.Copy( KBlank );
+ {
+ DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName IN" ));
+ iCRKeyFolderName.Copy( KBlank );
+ iCRKeyFolderItemUid.Copy( KBlank );
- int keyValueLength = aNewValue.Length();
- if( keyValueLength )
- {
- TApaAppGroupName folder;
- TBuf<KTimeStampBufferLength + KUidStringLength + 1> tempBuf;
- TBuf<KTimeStampBufferLength> timeStamp;
+ int keyValueLength = aNewValue.Length();
+ if( keyValueLength )
+ {
+ TApaAppGroupName folder;
+ TBuf<KTimeStampBufferLength + KUidStringLength + 1> tempBuf;
+ TBuf<KTimeStampBufferLength> timeStamp;
- TInt ret = aNewValue.Find( KComma );
- if( (ret == KErrNotFound )|| ( ret == ( keyValueLength-1 ) ) )
- {
- DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (bad CR key value input) OUT" ));
- return; //bad CR key value input
- }
- if( ret>KApaMaxAppGroupName )
- {
- return;
- }
- folder.Copy(aNewValue.Left(ret));
- if( aNewValue.Length()-ret > tempBuf.MaxLength() )
- {
- return;
- }
- tempBuf.Copy(aNewValue.Mid( ret + 1 ) );
+ TInt ret = aNewValue.Find( KComma );
+ if( (ret == KErrNotFound )|| ( ret == ( keyValueLength-1 ) ) )
+ {
+ DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (bad CR key value input) OUT" ));
+ return; //bad CR key value input
+ }
+ if( ret>KApaMaxAppGroupName )
+ {
+ return;
+ }
+ folder.Copy(aNewValue.Left(ret));
+ if( aNewValue.Length()-ret > tempBuf.MaxLength() )
+ {
+ return;
+ }
+ tempBuf.Copy(aNewValue.Mid( ret + 1 ) );
- TInt posUid = tempBuf.Find( KComma );
- if ( KErrNotFound != posUid )
- {
- if( posUid>KTimeStampBufferLength )
- {
- return;
- }
- timeStamp.Copy( tempBuf.Left(posUid) );
- if( tempBuf.Length()-(posUid+1) > KUidStringLength )
- {
- return;
- }
- iCRKeyFolderItemUid.Copy( tempBuf.Mid( posUid + 1 ) );
- }
- else
- {
+ TInt posUid = tempBuf.Find( KComma );
+ if ( KErrNotFound != posUid )
+ {
+ if( posUid>KTimeStampBufferLength )
+ {
+ return;
+ }
+ timeStamp.Copy( tempBuf.Left(posUid) );
+ if( tempBuf.Length()-(posUid+1) > KUidStringLength )
+ {
+ return;
+ }
+ iCRKeyFolderItemUid.Copy( tempBuf.Mid( posUid + 1 ) );
+ }
+ else
+ {
if( tempBuf.Length()>KTimeStampBufferLength )
{
return;
}
- timeStamp.Copy( tempBuf );
- }
+ timeStamp.Copy( tempBuf );
+ }
- TTime currentTime;
- currentTime.HomeTime();
- TTimeIntervalSeconds interval;
+ TTime currentTime;
+ currentTime.HomeTime();
+ TTimeIntervalSeconds interval;
- TTime timeStampTime;
- ret = timeStampTime.Set(timeStamp);
+ TTime timeStampTime;
+ ret = timeStampTime.Set(timeStamp);
- if(ret == KErrGeneral )
- {
- DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (bad timestamp) OUT" ));
- return; // bad time stamp value
- }
+ if(ret == KErrGeneral )
+ {
+ DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (bad timestamp) OUT" ));
+ return; // bad time stamp value
+ }
- ret = currentTime.SecondsFrom( timeStampTime, interval );
+ ret = currentTime.SecondsFrom( timeStampTime, interval );
- if( interval.Int() < 0 )
- {//negative timestamp is set ahead of current time...!
- DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (negative interval) OUT" ));
- return;
- }
+ if( interval.Int() < 0 )
+ {//negative timestamp is set ahead of current time...!
+ DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (negative interval) OUT" ));
+ return;
+ }
- if(( interval.Int()) > KTimeStampCutOff )
- {//positive timestamp but more than 5 seconds
- DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (more than 5 seconds) OUT" ));
- return;
- }
- else
- {
- iCRKeyFolderName.Copy(folder);
- }
- }
- DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName OUT" ));
- }
+ if(( interval.Int()) > KTimeStampCutOff )
+ {//positive timestamp but more than 5 seconds
+ DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (more than 5 seconds) OUT" ));
+ return;
+ }
+ else
+ {
+ iCRKeyFolderName.Copy(folder);
+ }
+ }
+ DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName OUT" ));
+ }
// ---------------------------------------------------------------------------
//
@@ -615,9 +615,9 @@
TInt aEventId,
CLiwGenericParamList& aEventParamList,
const CLiwGenericParamList& /*aInParamList*/)
- {
- DEBUG(("_MM_:CHnRepositoryShowFolderObserver::HandleNotifyL IN"));
- if( aEventId == KLiwEventCanceled )
+ {
+ DEBUG(("_MM_:CHnRepositoryShowFolderObserver::HandleNotifyL IN"));
+ if( aEventId == KLiwEventCanceled )
{
return KErrNotFound;
}
@@ -732,7 +732,6 @@
if ( iCmnPtrs->iContainer->GetLastSuiteModel()->CustomId() != varId.AsTInt64() )
{
iCmnPtrs->iModelEventObserver->HandleModelEventL( KNewSuiteLoadedMdEvent, *paramList );
- iCmnPtrs->iContainer->GetLastSuiteModel()->RegisterSuiteObserverL( this );
iCmnPtrs->iModel->QueueForeground( CHnMdModel::EWhenCurrentTopSuiteIsEvaluated );
}
else
@@ -769,37 +768,8 @@
CleanupStack::PopAndDestroy( &varId );
}
- DEBUG(("_MM_:CHnRepositoryShowFolderObserver::HandleNotifyL OUT"));
- return KErrNone;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CHnRepositoryShowFolderObserver::HandleSuiteEventL ( THnCustomSuiteEvent aCustomSuiteEvent,
- CHnSuiteModel *aModel )
- {
-
- if ( aCustomSuiteEvent == ESuiteModelInitialized && iCRKeyFolderItemUid.Length() > 0 )
- {
- if (iCRKeyFolderItemUid.Length() > 0 )
- {
- TLex8 lex( iCRKeyFolderItemUid );
- TInt64 id (0);
- TInt err = lex.Val( id );
- TInt focus( KErrNotFound );
- // If suite is not null, then find matching item model.
- CHnItemModel* itemModel = aModel->GetMatchingItemModelL( id, focus );
- aModel->SetSuiteHighlightL( focus );
- }
- iCRKeyFolderItemUid.Copy( KBlank );
- aModel->UnregisterSuiteObserver( this );
- CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
- CleanupStack::PushL( pl );
- iCmnPtrs->iModelEventObserver->HandleModelEventL( KAppGainForeground, *pl );
- CleanupStack::PopAndDestroy( pl );
- }
- }
+ DEBUG(("_MM_:CHnRepositoryShowFolderObserver::HandleNotifyL OUT"));
+ return KErrNone;
+ }
// End of File
Binary file menufw/menufwui/matrixmenu/help/data/xhtml.zip has changed
--- a/menufw/menufwui/matrixmenu/inc/mmappui.h Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/matrixmenu/inc/mmappui.h Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Application UI class
-* Version : %version: MM_83.1.2.1.23.1.21 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_83.1.2.1.23.1.24 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -372,7 +372,8 @@
enum TExitKeyType
{
EExitKeyApplication,
- EExitKeyRed
+ EExitKeyRed,
+ ECommingFromBackground
};
/**
@@ -1011,10 +1012,10 @@
*/
TBool iHasFocus;
- /**
+ /**
* ETrue if Matrix is hidden from TS which is used on startup.
*/
- TBool isHiddenFromFS;
+ TBool isHiddenFromFS;
/**
* Own.
--- a/menufw/menufwui/matrixmenu/src/mmappui.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/matrixmenu/src/mmappui.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -12,8 +12,8 @@
* Contributors:
*
* Description: Application UI class
-* Version : %version: MM_176.1.28.1.83 % << Don't touch! Updated by Synergy at check-out.
-* Version : %version: MM_176.1.28.1.83 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_176.1.28.1.87 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_176.1.28.1.87 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -106,8 +106,8 @@
iIsKastorEffectStarted = EFalse;
StartLayoutSwitchFullScreen( AknTransEffect::EApplicationStart );
- RefreshUiPanesL( ETrue );
Cba()->MakeVisible( EFalse );
+ StatusPane()->MakeVisible( EFalse );
StatusPane()->SwitchLayoutL( R_AVKON_STATUS_PANE_LAYOUT_USUAL );
iDummyTemplateLib = CMmTemplateLibrary::NewL();
@@ -340,7 +340,7 @@
iCurrentContainer->MakeVisible( EFalse );
iDummyContainer->DrawNow();
}
- CleanupForExitL( EExitKeyApplication );
+ CleanupForExitL( ECommingFromBackground );
User::LeaveIfError( iCoeEnv->WsSession().SetWindowGroupOrdinalPosition(
CEikonEnv::Static()->RootWin().Identifier(), 0 ) );
iAppkeyHandler->StartL();
@@ -494,11 +494,6 @@
MMPERF(("CMmAppUi::HandleBackCommandL - START"));
DEBUG16(("\t_Mm_:current genre: %S",&iCurrentSuiteModel->SuiteName()));
- iDummyContainer->MakeVisible( ETrue );
- RefreshUiPanesL( ETrue );
- iCurrentContainer->MakeVisible( EFalse );
- iDummyContainer->DrawNow();
-
iHNInterface->HandleBackEventL( iCurrentSuiteModel->SuiteName() );
MMPERF(("CMmAppUi::HandleBackCommandL - DONE"));
@@ -1023,7 +1018,6 @@
if ( IsEditMode() )
{
-
TInt modelId = iCurrentSuiteModel->IdByIndex( aModelItemIndex );
if (modelId != KErrNotFound)
{
@@ -1823,6 +1817,11 @@
aWidgetContainer &&
iCurrentContainer->IsHighlightVisible() &&
iCurrentContainer->WidgetType() != aWidgetContainer->WidgetType();
+
+ if( iCurrentContainer && !highlightVisibleBefore )
+ {
+ iCurrentContainer->SetHighlightVisibilityL( EFalse );
+ }
HandleWidgetChangeRefreshL( aWidgetContainer );
@@ -2377,7 +2376,6 @@
//
void CMmAppUi::HandleSuiteModelInitializedL( CHnSuiteModel* aModel )
{
-
StatusPane()->MakeVisible( ETrue );
Cba()->MakeVisible( ETrue );
if ( aModel == iHNInterface->GetLastSuiteModelL() )
@@ -2496,27 +2494,47 @@
iCurrentContainer->CancelDragL( EFalse );
SetEditModeL( EFalse );
}
-
+
+ THnSuiteWidgetType widgetType = iCurrentContainer
+ ? iCurrentContainer->WidgetType() : EUnspecified;
+
// reset model - revert to root if current view is not a suite view
CHnSuiteModel* model = iHNInterface->GetLastSuiteModelL();
- if ( model && aExitKey == EExitKeyApplication )
+
+ TBool commingFromBackground( aExitKey == ECommingFromBackground );
+
+ if( model && ( aExitKey == EExitKeyApplication || commingFromBackground ) )
{
TBool topSuiteIsBeingEvaluated =
!model->GetItemsOrder()->IsSuiteReadyToShow();
TBool topSuiteChanged = ResetToRootL();
model = NULL; // ResetToRootL might have deleted the model
TBool presentationChangeExpected = topSuiteChanged || topSuiteIsBeingEvaluated;
+
+
+ TBool mustDrawImmediately = !presentationChangeExpected
+ || !iDummyContainer->IsVisible() || commingFromBackground;
- TBool mustDrawImmediately =
- !presentationChangeExpected || !iDummyContainer->IsVisible();
-
- if ( iCurrentContainer && mustDrawImmediately )
+ if( iCurrentContainer )
{
- DEBUG(("\t_Mm_:Top item index reset"));
- iCurrentContainer->ResetWidgetPosition();
- iCurrentContainer->Widget()->UpdateScrollBarsL();
- iCurrentContainer->MakeVisible( ETrue );
- iCurrentContainer->DrawNow();
+ if( commingFromBackground )
+ {
+ //do not draw the widget if the previous widget type is diffenernt than the current one
+ mustDrawImmediately &= ( widgetType
+ == iCurrentContainer->WidgetType() );
+
+ iCurrentContainer->SetWidgetCommingFromBackground( ETrue );
+ }
+
+ if( mustDrawImmediately )
+ {
+ DEBUG(("\t_Mm_:Top item index reset"));
+ iCurrentContainer->ResetWidgetPosition();
+ iCurrentContainer->Widget()->UpdateScrollBarsL();
+ iCurrentContainer->MakeVisible( ETrue );
+ iCurrentContainer->DrawNow();
+ iCurrentContainer->SetWidgetCommingFromBackground( EFalse );
+ }
}
}
@@ -2603,6 +2621,7 @@
if( !succeeded )
{
+ StartLayoutSwitchFullScreen( AknTransEffect::EApplicationExit );
ShowHomescreenL( EExitReally );
}
}
@@ -2804,7 +2823,11 @@
ResetContainerMapToRootL();
if( iCurrentContainer )
{
+ const TInt FirstItemIndex = 0;
+ iCurrentContainer->GetSuiteModelL()->SetSuiteHighlightL( FirstItemIndex );
+ iMakeHightlightedItemFullyVisible = ETrue;
iCurrentContainer->ResetWidgetPosition();
+ iCurrentContainer->SetEditModeL( EFalse );
AddToStackL( iCurrentContainer );
}
RefreshUiPanesL( ETrue );
@@ -3035,23 +3058,22 @@
isHiddenFromFS = EFalse;
}
- if (iCurrentContainer && iCurrentSuiteModel )
- {
- iCurrentContainer->HandleForegroundGainedL();
- iDummyContainer->MakeVisible( EFalse );
- iCurrentContainer->MakeVisible( ETrue );
- RefreshUiPanesL();
+ if( iCurrentContainer && iCurrentSuiteModel )
+ {
+ iCurrentContainer->HandleForegroundGainedL();
+ iDummyContainer->MakeVisible( EFalse );
+ iCurrentContainer->MakeVisible( ETrue );
+ RefreshUiPanesL();
+ }
+ if( iSkinChangeNeeded && !iSkinChangeInProgress )
+ {
+ MAknsSkinInstance* skinInstance = AknsUtils::SkinInstance();
+ if( skinInstance && !skinInstance->IsUpdateInProgress() )
+ {
+ RefreshIconsL();
+ }
+ }
}
- if (iSkinChangeNeeded && !iSkinChangeInProgress)
- {
- MAknsSkinInstance* skinInstance = AknsUtils::SkinInstance();
- if (skinInstance && !skinInstance->IsUpdateInProgress())
- {
- RefreshIconsL();
-
- }
- }
- }
// ---------------------------------------------------------------------------
//
--- a/menufw/menufwui/mmwidgets/bwins/mmwidgetsu.def Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/bwins/mmwidgetsu.def Tue Sep 14 20:58:58 2010 +0300
@@ -40,4 +40,5 @@
?AllowMove@CMmWidgetContainer@@QBEHXZ @ 39 NONAME ; int CMmWidgetContainer::AllowMove(void) const
?SetTriggerMoveItemL@CMmWidgetContainer@@QAEXHPAVCLiwGenericParamList@@@Z @ 40 NONAME ; void CMmWidgetContainer::SetTriggerMoveItemL(int, class CLiwGenericParamList *)
?SetExDialogOpened@CMmWidgetContainer@@QAEXH@Z @ 41 NONAME ; void CMmWidgetContainer::SetExDialogOpened(int)
+ ?SetWidgetCommingFromBackground@CMmWidgetContainer@@UAEXH@Z @ 42 NONAME ; void CMmWidgetContainer::SetWidgetCommingFromBackground(int)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/menufw/menufwui/mmwidgets/data/grid/lct/akn_logical_template_3_vga.xml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<dhuiml version="1.0" xmlns="http://www.series60.com/xml/dhuiml/1">
+
+<orientation id ="portrait" lct="uiaccel_main_aa_listscroll_pane" variety="0">
+
+ <element id="nohighlight">
+ <layout id="anchor" name="anchor" lct="cell_hc_apps_pane" variety="3" >
+ <textvisual id="mul_title" lct="cell_hc_apps_pane_t1" variety="0" >
+ <attributesetter name="text" targetvalue="mul_title" category="data" />
+ </textvisual>
+ <imagevisual id="mul_icon" lct="cell_hc_apps_pane_g1" variety="0" halign="center" >
+ <attributesetter name="imagepath" targetvalue="mul_icon" category="data" />
+ </imagevisual>
+ <imagevisual id="mul_indicator_1" lct="cell_hc_apps_pane_g2" variety="0" >
+ <attributesetter name="imagepath" targetvalue="mul_indicator_1" category="data" />
+ </imagevisual>
+ <imagevisual id="mul_indicator_2" lct="cell_hc_apps_pane_g3" variety="0" >
+ <attributesetter name="imagepath" targetvalue="mul_indicator_2" category="data" />
+ </imagevisual>
+ </layout>
+ </element>
+
+ <element id="highlight">
+ </element>
+</orientation>
+
+<orientation id ="landscape" lct="uiaccel_main_aa_listscroll_pane" variety="0" >
+
+ <element id="nohighlight">
+ <layout id="anchor" name="anchor" lct="cell_app_pane" variety="2" >
+ <textvisual id="mul_title" lct="cell_app_pane_t1" variety="0" >
+ <attributesetter name="text" targetvalue="mul_title" category="data" />
+ </textvisual>
+ <imagevisual id="mul_icon" lct="cell_app_pane_g1" variety="0" halign="center" >
+ <attributesetter name="imagepath" targetvalue="mul_icon" category="data" />
+ </imagevisual>
+ <imagevisual id="mul_indicator_1" lct="cell_app_pane_g2" variety="0" >
+ <attributesetter name="imagepath" targetvalue="mul_indicator_1" category="data" />
+ </imagevisual>
+ </layout>
+ </element>
+
+ <element id ="highlight">
+ </element>
+
+</orientation>
+</dhuiml>
--- a/menufw/menufwui/mmwidgets/eabi/mmwidgetsu.def Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/eabi/mmwidgetsu.def Tue Sep 14 20:58:58 2010 +0300
@@ -41,4 +41,5 @@
_ZN18CMmWidgetContainer19SetTriggerMoveItemLEiP20CLiwGenericParamList @ 40 NONAME
_ZNK18CMmWidgetContainer9AllowMoveEv @ 41 NONAME
_ZN18CMmWidgetContainer17SetExDialogOpenedEi @ 42 NONAME
+ _ZN18CMmWidgetContainer30SetWidgetCommingFromBackgroundEi @ 43 NONAME
--- a/menufw/menufwui/mmwidgets/group/bld.inf Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Build information file for project mmwidgets
-* Version : %version: 8.1.3.1.8 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: 8.1.3.1.9 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -26,78 +26,54 @@
../rom/mmwidgets.iby CORE_APP_LAYER_IBY_EXPORT_PATH(mmwidgets.iby)
// list exports
-../data/list/custom/akn_single_large_graphic_pane.xml Z:/resource/list/custom/akn_single_large_graphic_pane.xml
-
-../data/list/custom/akn_logical_template_1.xml Z:/resource/list/custom/akn_logical_template_1.xml
-
-../data/list/custom/akn_logical_template_2.xml Z:/resource/list/custom/akn_logical_template_2.xml
-
-../data/list/custom/akn_logical_template_3.xml Z:/resource/list/custom/akn_logical_template_3.xml
-
-../data/list/custom/akn_logical_template_4.xml Z:/resource/list/custom/akn_logical_template_4.xml
-
-../data/list/custom/akn_logical_template_5.xml Z:/resource/list/custom/akn_logical_template_5.xml
-
-../data/list/custom/akn_logical_template_6.xml Z:/resource/list/custom/akn_logical_template_6.xml
-
-../data/list/custom/akn_logical_template_7.xml Z:/resource/list/custom/akn_logical_template_7.xml
-
-../data/list/custom/akn_logical_template_8.xml Z:/resource/list/custom/akn_logical_template_8.xml
-
-../data/list/custom/akn_logical_template_10.xml Z:/resource/list/custom/akn_logical_template_10.xml
-
-../data/list/custom/akn_logical_template_11.xml Z:/resource/list/custom/akn_logical_template_11.xml
-
-../data/list/custom/akn_logical_template_12.xml Z:/resource/list/custom/akn_logical_template_12.xml
-
-../data/list/custom/akn_logical_template_13.xml Z:/resource/list/custom/akn_logical_template_13.xml
+../data/list/custom/akn_single_large_graphic_pane.xml Z:/resource/list/custom/akn_single_large_graphic_pane.xml
+../data/list/custom/akn_logical_template_1.xml Z:/resource/list/custom/akn_logical_template_1.xml
+../data/list/custom/akn_logical_template_2.xml Z:/resource/list/custom/akn_logical_template_2.xml
+../data/list/custom/akn_logical_template_3.xml Z:/resource/list/custom/akn_logical_template_3.xml
+../data/list/custom/akn_logical_template_4.xml Z:/resource/list/custom/akn_logical_template_4.xml
+../data/list/custom/akn_logical_template_5.xml Z:/resource/list/custom/akn_logical_template_5.xml
+../data/list/custom/akn_logical_template_6.xml Z:/resource/list/custom/akn_logical_template_6.xml
+../data/list/custom/akn_logical_template_7.xml Z:/resource/list/custom/akn_logical_template_7.xml
+../data/list/custom/akn_logical_template_8.xml Z:/resource/list/custom/akn_logical_template_8.xml
+../data/list/custom/akn_logical_template_10.xml Z:/resource/list/custom/akn_logical_template_10.xml
+../data/list/custom/akn_logical_template_11.xml Z:/resource/list/custom/akn_logical_template_11.xml
+../data/list/custom/akn_logical_template_12.xml Z:/resource/list/custom/akn_logical_template_12.xml
+../data/list/custom/akn_logical_template_13.xml Z:/resource/list/custom/akn_logical_template_13.xml
// grid exports
-../data/grid/custom/akn_single_large_graphic_pane.xml Z:/resource/grid/custom/akn_single_large_graphic_pane.xml
-
-../data/grid/custom/akn_logical_template_1.xml Z:/resource/grid/custom/akn_logical_template_1.xml
-
-../data/grid/custom/akn_logical_template_2.xml Z:/resource/grid/custom/akn_logical_template_2.xml
-
-../data/grid/custom/akn_logical_template_3.xml Z:/resource/grid/custom/akn_logical_template_3.xml
-
-../data/grid/custom/akn_logical_template_4.xml Z:/resource/grid/custom/akn_logical_template_4.xml
-
-//lct exports
-../data/list/lct/akn_list_single_hc_apps_pane.xml Z:/resource/list/lct/akn_list_single_hc_apps_pane.xml
-
-../data/list/lct/akn_single_large_graphic_pane.xml Z:/resource/list/lct/akn_single_large_graphic_pane.xml
-
-../data/list/lct/akn_logical_template_1.xml Z:/resource/list/lct/akn_logical_template_1.xml
+../data/grid/custom/akn_single_large_graphic_pane.xml Z:/resource/grid/custom/akn_single_large_graphic_pane.xml
+../data/grid/custom/akn_logical_template_1.xml Z:/resource/grid/custom/akn_logical_template_1.xml
+../data/grid/custom/akn_logical_template_2.xml Z:/resource/grid/custom/akn_logical_template_2.xml
+../data/grid/custom/akn_logical_template_3.xml Z:/resource/grid/custom/akn_logical_template_3.xml
+../data/grid/custom/akn_logical_template_4.xml Z:/resource/grid/custom/akn_logical_template_4.xml
-../data/list/lct/akn_logical_template_2.xml Z:/resource/list/lct/akn_logical_template_2.xml
-
-../data/list/lct/akn_logical_template_3.xml Z:/resource/list/lct/akn_logical_template_3.xml
-
-../data/list/lct/akn_logical_template_4.xml Z:/resource/list/lct/akn_logical_template_4.xml
-
-../data/list/lct/akn_logical_template_5.xml Z:/resource/list/lct/akn_logical_template_5.xml
-
-../data/list/lct/akn_logical_template_6.xml Z:/resource/list/lct/akn_logical_template_6.xml
+//lct list exports
+../data/list/lct/akn_list_single_hc_apps_pane.xml Z:/resource/list/lct/akn_list_single_hc_apps_pane.xml
+../data/list/lct/akn_single_large_graphic_pane.xml Z:/resource/list/lct/akn_single_large_graphic_pane.xml
+../data/list/lct/akn_logical_template_1.xml Z:/resource/list/lct/akn_logical_template_1.xml
+../data/list/lct/akn_logical_template_2.xml Z:/resource/list/lct/akn_logical_template_2.xml
+../data/list/lct/akn_logical_template_3.xml Z:/resource/list/lct/akn_logical_template_3.xml
+../data/list/lct/akn_logical_template_4.xml Z:/resource/list/lct/akn_logical_template_4.xml
+../data/list/lct/akn_logical_template_5.xml Z:/resource/list/lct/akn_logical_template_5.xml
+../data/list/lct/akn_logical_template_6.xml Z:/resource/list/lct/akn_logical_template_6.xml
+../data/list/lct/akn_logical_template_6a.xml Z:/resource/list/lct/akn_logical_template_6a.xml
+../data/list/lct/akn_logical_template_7.xml Z:/resource/list/lct/akn_logical_template_7.xml
+../data/list/lct/akn_logical_template_8.xml Z:/resource/list/lct/akn_logical_template_8.xml
+../data/list/lct/akn_logical_template_12.xml Z:/resource/list/lct/akn_logical_template_12.xml
-../data/list/lct/akn_logical_template_6a.xml Z:/resource/list/lct/akn_logical_template_6a.xml
-
-../data/list/lct/akn_logical_template_7.xml Z:/resource/list/lct/akn_logical_template_7.xml
+//lct grid exports
+../data/grid/lct/akn_logical_template_3_vga.xml Z:/resource/grid/lct/akn_logical_template_3_vga.xml
+../data/grid/lct/akn_logical_template_3.xml Z:/resource/grid/lct/akn_logical_template_3.xml
-../data/list/lct/akn_logical_template_8.xml Z:/resource/list/lct/akn_logical_template_8.xml
-
-../data/list/lct/akn_logical_template_12.xml Z:/resource/list/lct/akn_logical_template_12.xml
-
-../data/grid/lct/akn_logical_template_3.xml Z:/resource/grid/lct/akn_logical_template_3.xml
../inc/mmdraganddropobserver.h |../../../inc/mmdraganddropobserver.h
-../inc/mmlongtapobserver.h |../../../inc/mmlongtapobserver.h
+../inc/mmlongtapobserver.h |../../../inc/mmlongtapobserver.h
../inc/mmkeyeventobserver.h |../../../inc/mmkeyeventobserver.h
../inc/mmwidgetobserver.h |../../../inc/mmwidgetobserver.h
../inc/mmwidgetcontainer.h |../../../inc/mmwidgetcontainer.h
../inc/mmvisibilityobserver.h |../../../inc/mmvisibilityobserver.h
../inc/mmtemplatelibrary.h |../../../inc/mmtemplatelibrary.h
-../inc/mmwidgetsconstants.h |../../../inc/mmwidgetsconstants.h
+../inc/mmwidgetsconstants.h |../../../inc/mmwidgetsconstants.h
PRJ_MMPFILES
mmwidgets.mmp
--- a/menufw/menufwui/mmwidgets/inc/mmdraweranimator.h Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/inc/mmdraweranimator.h Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: CMmDrawerAnimator declaration
-* Version : %version: MM_17.1.10 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_17.1.11 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -160,8 +160,8 @@
* and end in the EDrag floating item position, when item had been start drag.
*
* @since S60 v5.0
- * @param aDraggedIndex Draged item index to be animated.
- * @param aPoint End position of animated item.
+ * @param aDraggedIndex Draged item index to be animated.
+ * @param aPoint End position of animated item.
*/
void AnimateDragItemStartL( TInt aDraggedIndex, TPoint aPoint );
@@ -239,11 +239,6 @@
TTimeIntervalMicroSeconds iDelay;
/**
- * Last redraw time
- */
- TTime iLastRedrawTime;
-
- /**
* Effects api.
*/
MAknListBoxTfx *iTransTfx;
--- a/menufw/menufwui/mmwidgets/inc/mmgrid.h Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/inc/mmgrid.h Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: CMmGrid declaration
-* Version : %version: MM_32.1.25 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_32.1.26 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -397,25 +397,6 @@
void ProcessScrollEventL( CEikScrollBar* aScrollBar,
TEikScrollEvent aEventType );
- /**
- * Handles periodic events from @c iRedrawTimer.
- * Such events are generated at equal time intervals while
- * the view is being scrolled using the scrollbar.
- * This function typically calls @c ProcessScrollEventL,
- * which actually scrolls the view and causes a redraw.
- */
- void HandleRedrawTimerEventL();
-
-private:
- /**
- * Callback function for @c iRedrawTimer.
- * It simply calls @c HandleRedrawTimerEventL and returns 0.
- *
- * @param aPtr A pointer to CMmGrid object.
- * @return 0 (always).
- */
- static TInt RedrawTimerCallback( TAny* aPtr );
-
private:
/**
* Grid model.
@@ -472,26 +453,6 @@
*/
TPoint iButton1DownPos;
- /**
- * ETrue if the view is being scrolled with the scrollbar.
- */
- TBool iScrollbarThumbIsBeingDragged;
-
- /**
- * Stores the number of scrollbar events that were ignored.
- * It is only used while scrolling the view using scrollbar,
- * in such situation the scroll events that this object receives
- * are ignored, and actual scrolling is done only when
- * iRedrawTimer completes.
- */
- TInt iSkippedScrollbarEventsCount;
-
- /**
- * A timer that initiates redraws at certain time intervals.
- * It is used to refresh the view while scrolling with
- * the scrollbar.
- */
- CPeriodic* iRedrawTimer;
};
#endif // C_MMGRID_H
--- a/menufw/menufwui/mmwidgets/inc/mmgridcontainer.h Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/inc/mmgridcontainer.h Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: CMmGridContainer declaration
-* Version : %version: MM_29.1.14 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_29.1.15 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -212,6 +212,11 @@
* @return ETrue if visible, EFalse otherwise.
*/
TBool ItemIsVisible( TInt aItemIndex ) const;
+
+ /**
+ * Sets a proper flag if the widget is brought to foreground.
+ */
+ virtual void SetWidgetCommingFromBackground( TBool /*aCommingFromBackground*/ );
private:
/**
--- a/menufw/menufwui/mmwidgets/inc/mmlistbox.h Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/inc/mmlistbox.h Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: CMmListBox
-* Version : %version: MM_22.1.17 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_22.1.19 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -23,7 +23,7 @@
#include <e32std.h>
#include <e32base.h>
#include <aknlists.h>
-#include <e32cmn.h>
+#include <e32cmn.h>
class CMmListBoxModel;
class CMmListBoxItemDrawer;
@@ -41,47 +41,47 @@
* @ingroup group_mmwidgets
*/
NONSHARABLE_CLASS( CMmListBox ) : public CEikFormattedCellListBoxTypedef
- {
+ {
public:
/**
* Two-phased constructor.
- *
+ *
* @since S60 v3.0
* @param aParent Parent control.
* @param aFlags Flags.
- * @param aTemplateLibrary Template library for drawer.
+ * @param aTemplateLibrary Template library for drawer.
* @return List box.
*/
static CMmListBox* NewL( const CCoeControl* aParent, TInt aFlags,
CMmTemplateLibrary* aTemplateLibrary );
-
+
/**
* Two-phased constructor.
- *
+ *
* @since S60 v3.0
* @param aParent Parent control.
* @param aFlags Flags.
- * @param aTemplateLibrary Template library for drawer.
+ * @param aTemplateLibrary Template library for drawer.
* @return List box.
*/
static CMmListBox* NewLC( const CCoeControl* aParent, TInt aFlags,
CMmTemplateLibrary* aTemplateLibrary );
-
+
/**
- * Destructor.
- *
- * @since S60 v3.0
- */
- virtual ~CMmListBox();
-
- /**
+ * Destructor.
+ *
+ * @since S60 v3.0
+ */
+ virtual ~CMmListBox();
+
+ /**
* Gets the listbox model.
*
* @since S60 v3.0
* @return Listbox model.
*/
- CMmListBoxModel * MmModel();
-
+ CMmListBoxModel * MmModel();
+
/**
* Sets the listbox model.
*
@@ -97,43 +97,43 @@
* @return Listbox view.
*/
CListBoxView* MakeViewClassInstanceL();
-
- /**
+
+ /**
* Creates the item drawer for listbox.
- *
- * @param aTemplateLibrary Template library for drawer.
+ *
+ * @param aTemplateLibrary Template library for drawer.
* @since S60 v3.0
*/
void CreateItemDrawerL( CMmTemplateLibrary* aTemplateLibrary );
-
- /**
+
+ /**
* Sets the flag.
- *
+ *
* @since S60 v3.0
* @param aFlag Avkon list flag
*/
void SetListFlag( TInt aFlag );
-
- /**
+
+ /**
* Clears the flag.
- *
+ *
* @since S60 v3.0
* @param aFlag Avkon list flag
*/
void ClearListFlag( TInt aFlag );
-
+
public: // from base class CCoeControl.
/**
- * From CCoeControl.
+ * From CCoeControl.
* Handles pointer events.
- *
+ *
* @since S60 v3.0
* @param aPointerEvent Pointer event.
*/
- void HandlePointerEventL( const TPointerEvent& aPointerEvent );
-
+ void HandlePointerEventL( const TPointerEvent& aPointerEvent );
+
/**
* From base class.
*
@@ -141,9 +141,9 @@
* @param aKeyEvent Key event.
* @param aType Event code.
*/
- TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
+ TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
TEventCode aType );
-
+
/**
* Adjusts the given rectangle.
*
@@ -152,28 +152,28 @@
* @return Error code.
*/
TInt AdjustRectHeightToWholeNumberOfItems( TRect& aRect ) const;
-
+
/**
* Sets item drawer and view background context.
*
* @since S60 v3.0
* @param aBgContext Background context.
*/
- void SetItemDrawerAndViewBgContext(
+ void SetItemDrawerAndViewBgContext(
CAknsBasicBackgroundControlContext * aBgContext );
-
+
/**
* Updates scrollbar.
*
* @since S60 v3.0
*/
void UpdateScrollBarsL();
-
+
/**
* Special version of Update scrollbar that never calls DrawNow()
*/
void UpdateScrollBarsNoRedrawL();
-
+
/**
* Checks if all items fit in view rectangle.
*
@@ -181,7 +181,7 @@
* @return Do all items fit in view rectangle.
*/
TBool AllItemsFitInViewRect();
-
+
/**
* Handles scrollbar visibility change.
*
@@ -189,7 +189,7 @@
* @return Is redraw needed.
*/
TBool HandleScrollbarVisibilityChangeL();
-
+
/**
* Sets marquee adapter.
*
@@ -197,7 +197,7 @@
* @param aAdapter Marquee adapter.
*/
void SetMarqueeAdapter( CMmMarqueeAdapter* aAdapter );
-
+
/**
* Notifies that marquee is being drawn.
*
@@ -205,76 +205,76 @@
* @param aIsMarqueeBeingDrawn Is marquee being drawn.
*/
void SetMarqueeDrawing( TBool aIsMarqueeBeingDrawn );
-
+
/**
* Handles item removal. redraws view, updates scrollbar.
*
* @since S60 v3.0
*/
void HandleItemRemovalL();
-
+
/**
* Redraws items in view if it is necessary.
*
* @since S60 v3.0
* @param aPreviousCurrent Previously current item index.
* @param aCurrent Current item index.
- *
+ *
* @return true if anything was drawn.
*/
- TBool RedrawIfNecessary( TInt aPreviousCurrent, TInt aCurrent );
-
- /**
- * Overridden from base class to allow for drawing scrollbar
- * background in mirrored layout.
- *
- * @param aRect clipping rect
- */
- void Draw(const TRect& aRect) const;
-
- /**
+ TBool RedrawIfNecessary( TInt aPreviousCurrent, TInt aCurrent );
+
+ /**
+ * Overridden from base class to allow for drawing scrollbar
+ * background in mirrored layout.
+ *
+ * @param aRect clipping rect
+ */
+ void Draw(const TRect& aRect) const;
+
+ /**
* Draws the listbox view.
*
* @since S60 v5.0
*/
- void DrawView();
-
+ void DrawView();
+
/**
* Set the vertical item offset;
* @param aOffset The offset to set to the widget.
- *
+ *
* @since S60 v5.0
*/
void SetVerticalItemOffset( TInt aOffset );
/**
* Gets the current widget vertical item offset.
- *
+ *
* @since S60 v5.0
* @return The current widget vertical item offset.
*/
TInt VerticalItemOffset() const;
-
+
/**
* Simply sets the item height members in widget and view.
*/
void SetItemHeight( TInt aItemHeight );
-
+
/**
* Updates scrollbar thumbs.
*/
void UpdateScrollBarThumbs();
-
+
/**
* Counts the number of component controls which this component owns.
- */
+ */
TInt CountComponentControls() const;
-
+
/**
* Disables/enables child component (scrollbar) drawing.
*/
void SetDisableChildComponentDrawing( TBool aDisable );
-
+
/**
* Handles scrolling event.
*
@@ -282,51 +282,51 @@
* @param aScrollBar Scrollbar being scrolled.
* @param aEventType Type of scrollbar event.
*/
- void HandleScrollEventL( CEikScrollBar* aScrollBar,
+ void HandleScrollEventL( CEikScrollBar* aScrollBar,
TEikScrollEvent aEventType );
-
+
private:
/**
* Default constructor.
- *
+ *
* @since S60 v3.0
*/
- CMmListBox();
-
+ CMmListBox();
+
/**
* 2nd phase constructor.
- *
+ *
* @since S60 v3.0
* @param aParent Parent control.
* @param aFlags Flags.
- * @param aTemplateLibrary Template library for drawer.
+ * @param aTemplateLibrary Template library for drawer.
*/
- void ConstructL( const CCoeControl* aParent, TInt aFlags,
+ void ConstructL( const CCoeControl* aParent, TInt aFlags,
CMmTemplateLibrary* aTemplateLibrary );
-
+
/**
* Handles pointer events when edit mode is enabled.
- *
+ *
* This method is only called during edit mode. It selectively passes
* only some of the pointer events to CAknGrid::HandlePointerEventL
* in order to disable flicking and panning.
- *
+ *
* @param aPointerEvent pointer event
*/
void HandlePointerEventInEditModeL( const TPointerEvent& aPointerEvent );
-
+
/**
* Scrolls the view if pointer is close to the top/bottom edge.
- *
+ *
* This method is used only when edit mode is active. In a way it
* brings back the focus based scrolling behavior that was present
* in CAknGrid before ODE scrolling was introduced.
*/
void HandleScrollingInEditMode( const TPointerEvent& aPointerEvent );
-
+
/**
* Checks if pointer position is within the scroll-triggering area.
- *
+ *
* @param aPointerEvent pointer event
* @return true if pointer above the top scrolling threshold.
*/
@@ -335,120 +335,88 @@
/**
* Checks if pointer position is within the scroll-triggering area.
- *
+ *
* @param aPointerEvent pointer event
* @return true if pointer below the bottom scrolling threshold.
*/
TBool IsPointerInBottomScrollingThreshold(
const TPointerEvent& aPointerEvent ) const;
-
+
/**
* Scrolls the view if the pointer is near top/bottom edge of the screen.
- *
+ *
* Assumes that current item index is the index of the item under the
* pointer. The time value returned is based on the distance of the pointer
* from the top/bottom edge of the grid view (this makes the scrolling speed
* dependent of how close the pointer is to the edge).
* If there is no need to continue scrolling because the beginning/end of
* the list has already been reached, 0 is returned.
- *
+ *
* @param aPointerEvent pointer event
* @return time to wait before calling this method again (in microseconds)
* or 0 if already at the beginning/end of the list
*/
TInt ScrollIfNeeded( const TPointerEvent& aPointerEvent );
-
+
+ /**
+ * Minimal scrolling (setting top item index and vertical offset) with
+ * boundary checking and WITHOUT redrawing.
+ *
+ * @param aDistanceInPixels Distance to scroll.
+ */
+ void ScrollWithoutRedraw( TInt aDistanceInPixels );
+
/**
* Ensures that elements are drawn correctly when mirrored layout is
* used and scrollbar is visible by shifting ViewRect to the right.
*/
void FixViewForMirroredLayout();
-
+
/**
* Redraws the background under the vertical scrollbar in mirrored layout.
- *
+ *
* The reason such method is needed is that view rectangle is shifted
* to the right in mirrored layout and does not cover the scrollbar
* area. In normal (non-mirrored) mode this method does nothing.
*/
void RedrawScrollbarBackground() const;
-
+
/**
* Does actual handling of scroll events.
- *
+ *
* @param aScrollBar Scrollbar being scrolled.
* @param aEventType Type of scrollbar event.
*/
- void ProcessScrollEventL( CEikScrollBar* aScrollBar,
+ void ProcessScrollEventL( CEikScrollBar* aScrollBar,
TEikScrollEvent aEventType );
-
- /**
- * Handles periodic events from @c iRedrawTimer.
- * Such events are generated at equal time intervals while
- * the view is being scrolled using the scrollbar.
- * This function typically calls @c ProcessScrollEventL,
- * which actually scrolls the view and causes a redraw.
- */
- void HandleRedrawTimerEventL();
-
-private:
- /**
- * Callback function for @c iRedrawTimer.
- * It simply calls @c HandleRedrawTimerEventL and returns 0.
- *
- * @param aPtr A pointer to CMmListBox object.
- * @return 0 (always).
- */
- static TInt RedrawTimerCallback( TAny* aPtr );
-
+
private: // Data
/**
* Item drawer.
*/
CMmListBoxItemDrawer* iMmDrawer;
-
+
/**
* Multimedia Menu model.
*/
- CMmListBoxModel* iMmModel;
+ CMmListBoxModel* iMmModel;
/**
* marquee adapter.
*/
- CMmMarqueeAdapter* iMarqueeAdapter;
+ CMmMarqueeAdapter* iMarqueeAdapter;
/**
* Blocks scrollbar drawing. When this flag is set scrollbars components
- * are blocked in the CountComponentControls() method;
+ * are blocked in the CountComponentControls() method;
*/
- TBool iDisableChildComponentDrawing;
-
- /**
+ TBool iDisableChildComponentDrawing;
+
+ /**
* This member is only used in edit mode to store the position of the pointer
* during EButton1Down event.
*/
TPoint iButton1DownPos;
-
- /**
- * ETrue if the view is being scrolled with the scrollbar.
- */
- TBool iScrollbarThumbIsBeingDragged;
-
- /**
- * Stores the number of scrollbar events that were ignored.
- * It is only used while scrolling the view using scrollbar,
- * in such situation the scroll events that this object receives
- * are ignored, and actual scrolling is done only when
- * iRedrawTimer completes.
- */
- TInt iSkippedScrollbarEventsCount;
-
- /**
- * A timer that initiates redraws at certain time intervals.
- * It is used to refresh the view while scrolling with
- * the scrollbar.
- */
- CPeriodic* iRedrawTimer;
- };
-
+ };
+
#endif // MMLISTBOX_H
--- a/menufw/menufwui/mmwidgets/inc/mmlistboxcontainer.h Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/inc/mmlistboxcontainer.h Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: CMmListBoxContainer
-* Version : %version: MM_21.1.10 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_21.1.11 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -166,6 +166,13 @@
*/
THnSuiteWidgetType WidgetType();
+ /**
+ * Sets a proper flag if the widget is brought to foreground.
+ *
+ * @param aCommingFromBackground indicates whether the widget is brought to foreground.
+ */
+ virtual void SetWidgetCommingFromBackground( TBool aCommingFromBackground );
+
public:
/**
* Draws the widget view.
@@ -189,7 +196,7 @@
* @return The current widget vertical item offset.
*/
virtual TInt VerticalItemOffset() const;
-
+
protected: // from CMmWidgetContainer
/**
--- a/menufw/menufwui/mmwidgets/inc/mmlistboxview.h Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/inc/mmlistboxview.h Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description:
-* Version : %version: MM_12.1.9 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_12.1.10 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -187,6 +187,13 @@
* @return
*/
TInt ModelItemsCount();
+
+ /**
+ * Sets a proper flag if the list is brought to foreground.
+ *
+ * @param aCommingFromBackground indicates whether the list is brought to foreground.
+ */
+ void SetListCommingFromBackground(TBool aCommingFromBackground);
private:
@@ -223,7 +230,14 @@
* @since S60 v3.0
* @param aIndex Current Item index.
*/
- void SetPreviouslyDrawnCurrentItemIndex( TBool aIndex );
+ void SetPreviouslyDrawnCurrentItemIndex( TBool aIndex );
+
+ /**
+ * Gets the flag indicating if the list is being brought to foreground.
+ * @return Last item index.
+ */
+ TBool GetListCommingFromBackground() const;
+
private:
@@ -236,6 +250,11 @@
* When ETrue, disables ScrollToMakeItemVisible method.
*/
TBool iScrollToItemDisabled;
+
+ /**
+ * When ETrue the list is being brought from background
+ */
+ TBool iListCommingFromBackground;
};
#endif // MMLISTBOXVIEW_H
--- a/menufw/menufwui/mmwidgets/inc/mmwidgetcontainer.h Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/inc/mmwidgetcontainer.h Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description:
-* Version : %version: MM_48.1.43 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_48.1.46 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -697,6 +697,11 @@
* Widget position cache.
*/
TMmWidgetPosition WidgetPositionCache() const;
+
+ /**
+ * Sets a proper flag if the widget is brought to foreground.
+ */
+ IMPORT_C virtual void SetWidgetCommingFromBackground( TBool /*aCommingFromBackground*/ );
public: // from MMmVisibilityObserver
@@ -1076,6 +1081,10 @@
*/
TBool iHighlightVisibleBeforeLongTap;
+ /**
+ * ETrue if widget highlight must be reset.
+ */
+ TBool iResetHighlight;
};
#endif // MMMWIDGETCONTAINER_H
--- a/menufw/menufwui/mmwidgets/inc/mmwidgetsconstants.h Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/inc/mmwidgetsconstants.h Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Constants for the matrixmenu
-* Version : %version: 33.1.14 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: 33.1.16 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -27,121 +27,138 @@
* Grid constants' namespace.
*/
namespace MmGrid
- {
- /**
- * X component of the 4x3 layout.
- */
- const TInt K4By3LayoutX = 4;
+ {
+ /**
+ * X component of the 4x3 layout.
+ */
+ const TInt K4By3LayoutX = 4;
- /**
- * Y component of the 4x3 layout.
- */
- const TInt K4By3LayoutY = 3;
+ /**
+ * Y component of the 4x3 layout.
+ */
+ const TInt K4By3LayoutY = 3;
- /**
- * X component of the 3x4 layout.
- */
+ /**
+ * X component of the 3x4 layout.
+ */
- const TInt K3By4LayoutX = 3;
+ const TInt K3By4LayoutX = 3;
- /**
- * Y component of the 3x4 layout.
- */
- const TInt K3By4LayoutY = 4;
+ /**
+ * Y component of the 3x4 layout.
+ */
+ const TInt K3By4LayoutY = 4;
- /**
- * X component of the 4x5 layout.
- */
- const TInt K4By5LayoutX = 4;
+ /**
+ * X component of the 4x5 layout.
+ */
+ const TInt K4By5LayoutX = 4;
- /**
- * Y component of the 5x4 layout.
- */
- const TInt K4By5LayoutY = 5;
+ /**
+ * Y component of the 5x4 layout.
+ */
+ const TInt K4By5LayoutY = 5;
- /**
- * X component of the 5x4 layout.
- */
- const TInt K5By4LayoutX = 5;
+ /**
+ * X component of the 5x4 layout.
+ */
+ const TInt K5By4LayoutX = 5;
- /**
- * Y component of the 5x4 layout.
- */
- const TInt K5By4LayoutY = 4;
+ /**
+ * Y component of the 5x4 layout.
+ */
+ const TInt K5By4LayoutY = 4;
- /**
- * Below this value, default highlight in 3x4 grid
- * is set up on the first item. Otherwize, on the default
- * highlight.
- */
- const TInt K3By4Threshold(5);
+ /**
+ * Below this value, default highlight in 3x4 grid
+ * is set up on the first item. Otherwize, on the default
+ * highlight.
+ */
+ const TInt K3By4Threshold( 5 );
- /**
- * Below this value, default highlight in 4x3 grid
- * is set up on the first item. Otherwize, on the default
- * highlight.
- */
- const TInt K4By3Threshold(6);
+ /**
+ * Below this value, default highlight in 4x3 grid
+ * is set up on the first item. Otherwize, on the default
+ * highlight.
+ */
+ const TInt K4By3Threshold( 6 );
- /**
- * Below this value, default highlight in 5x4 grid
- * is set up on the first item. Otherwize, on the default
- * highlight.
- */
- const TInt K5By4Threshold(8);
+ /**
+ * Below this value, default highlight in 5x4 grid
+ * is set up on the first item. Otherwize, on the default
+ * highlight.
+ */
+ const TInt K5By4Threshold( 8 );
- /**
- * Below this value, default highlight in 4x5 grid
- * is set up on the first item. Otherwize, on the default
- * highlight.
- */
- const TInt K4By5Threshold(10);
+ /**
+ * Below this value, default highlight in 4x5 grid
+ * is set up on the first item. Otherwize, on the default
+ * highlight.
+ */
+ const TInt K4By5Threshold( 10 );
- /**
- * Default highlight in 3x4 grid.
- */
- const TInt K3By4DefaultHighlight(4);
+ /**
+ * Default highlight in 3x4 grid.
+ */
+ const TInt K3By4DefaultHighlight( 4 );
- /**
- * Default highlight in 4x3 grid.
- */
- const TInt K4By3DefaultHighlight(5);
+ /**
+ * Default highlight in 4x3 grid.
+ */
+ const TInt K4By3DefaultHighlight( 5 );
- /**
- * Default highlight in 5x4 grid.
- */
- const TInt K5By4DefaultHighlight(7);
+ /**
+ * Default highlight in 5x4 grid.
+ */
+ const TInt K5By4DefaultHighlight( 7 );
- /**
- * Default highlight in 4x5 grid.
- */
- const TInt K4By5DefaultHighlight(8);
+ /**
+ * Default highlight in 4x5 grid.
+ */
+ const TInt K4By5DefaultHighlight( 8 );
- /**
- * Number of rows in portrait/non-zoom mode;
- */
- const TInt KRowsPortraitZoomNormal(4);
+ /**
+ * Number of rows in portrait/non-zoom mode;
+ */
+ const TInt KRowsPortraitZoomNormal( 4 );
- /**
- * Number of columns in landscape/non-zoom mode;
- */
- const TInt KColsPortraitZoomNormal(3);
+ /**
+ * Number of columns in landscape/non-zoom mode;
+ */
+ const TInt KColsPortraitZoomNormal( 3 );
- /**
- * Number of rows in portrait/non-zoom mode;
- */
- const TInt KRowsLandscapeZoomNormal(3);
+ /**
+ * Number of rows in portrait/non-zoom mode;
+ */
+ const TInt KRowsLandscapeZoomNormal( 3 );
- /**
- * Number of columns in landscape/non-zoom mode;
- */
- const TInt KColsLandscapeZoomNormal(4);
+ /**
+ * Number of columns in landscape/non-zoom mode;
+ */
+ const TInt KColsLandscapeZoomNormal( 4 );
/**
* Focus based scrolling item threshold for grid.
*/
const TReal KFocusScrollingThreshold( 0.27 );
- }
+
+ /**
+ * Scrolling step (in pixels) for grid.
+ */
+ const TInt KScrollingStep( 10 );
+
+ /**
+ * Determines the speed of focus-based scrolling in edit mode.
+ * Minimal delay of scrolling in the grid layout.
+ */
+ const TInt KEditModeScrollingGridMinDelay( 2000 );
+
+ /**
+ * Determines the speed of focus-based scrolling in edit mode.
+ * Maximal delay of scrolling in the grid layout.
+ */
+ const TInt KEditModeScrollingGridMaxDelay( 30000 );
+ }
/**
* Listbox constants' namespace.
@@ -163,13 +180,30 @@
* Focus based scrolling item threshold for list.
*/
const TReal KFocusScrollingThreshold( 0.55 );
+
+ /**
+ * Scrolling step (in pixels) for listbox.
+ */
+ const TInt KScrollingStep( 10 );
+
+ /**
+ * Determines the speed of focus-based scrolling in edit mode.
+ * Minimal delay of scrolling in the listbox layout.
+ */
+ const TInt KEditModeScrollingListBoxMinDelay( 4000 );
+
+ /**
+ * Determines the speed of focus-based scrolling in edit mode.
+ * Maximal delay of scrolling in the listbox layout.
+ */
+ const TInt KEditModeScrollingListBoxMaxDelay( 30000 );
}
/**
* Drag and drop related constants.
*/
namespace MmEffects
- {
+ {
/**
* Threshold for items shift.
*/
@@ -219,33 +253,27 @@
* Time between two butto repeat events.
*/
const TInt KDragRepeatRespawn( 2 );
-
- /**
- * Determines the speed of focus-based scrolling in edit mode.
- */
- const TInt KEditModeScrollingDelayFactor = 4000;
}
/**
* Templates' related constants.
*/
namespace MmTemplateContants
- {
- /**
- * If a custom (non LCT) template is used, this is
- * its default scrollbar width.
- */
- const TInt KCustomTemplateScrolbarWidth (25);
+ {
+ /**
+ * If a custom (non LCT) template is used, this is
+ * its default scrollbar width.
+ */
+ const TInt KCustomTemplateScrolbarWidth( 25 );
- const TInt KTemplateChildTextLength (64);
+ const TInt KTemplateChildTextLength( 64 );
- const TInt KSubCellsCount (6);
+ const TInt KSubCellsCount( 6 );
- const TInt KItemSubCellsText (300);
+ const TInt KItemSubCellsText( 300 );
- const TInt KMoveIndicatorStartingPos ( 32 );
-
- }
+ const TInt KMoveIndicatorStartingPos( 32 );
+ }
/**
* Shortcut constants.
@@ -270,13 +298,13 @@
}
namespace MmMarqueeConstants
- {
- const TInt KTextTrimmingThreshold (80);
- const TInt KClippingBufLength (80);
- const TInt KLoops (1);
- const TInt KScrollAmount (6);
- const TInt KScrollDelay (1000000);
- }
+ {
+ const TInt KTextTrimmingThreshold( 80 );
+ const TInt KClippingBufLength( 80 );
+ const TInt KLoops( 1 );
+ const TInt KScrollAmount( 6 );
+ const TInt KScrollDelay( 1000000 );
+ }
/**
* Matrix Template Library panic notice.
*/
@@ -448,10 +476,4 @@
*/
const TInt KDragTreshold = 18;
-/**
- * The interval between redraws when scrolling using the scrollbar.
- * This will give us nice ~30 fps.
- */
-const TInt KScrollingRedrawInterval = 33333;
-
#endif // MMWIDGETSCONSTANTS_H
--- a/menufw/menufwui/mmwidgets/rom/mmwidgets.iby Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/rom/mmwidgets.iby Tue Sep 14 20:58:58 2010 +0300
@@ -21,45 +21,51 @@
#include <data_caging_paths_for_iby.hrh>
-file=ABI_DIR\BUILD_DIR\mmwidgets.dll SHARED_LIB_DIR\mmwidgets.dll
+file=ABI_DIR\BUILD_DIR\mmwidgets.dll SHARED_LIB_DIR\mmwidgets.dll
-data=\epoc32\data\z\resource\list\custom\akn_single_large_graphic_pane.xml resource\list\custom\akn_single_large_graphic_pane.xml
-data=\epoc32\data\z\resource\list\custom\akn_logical_template_1.xml resource\list\custom\akn_logical_template_1.xml
-data=\epoc32\data\z\resource\list\custom\akn_logical_template_2.xml resource\list\custom\akn_logical_template_2.xml
-data=\epoc32\data\z\resource\list\custom\akn_logical_template_3.xml resource\list\custom\akn_logical_template_3.xml
-data=\epoc32\data\z\resource\list\custom\akn_logical_template_4.xml resource\list\custom\akn_logical_template_4.xml
-data=\epoc32\data\z\resource\list\custom\akn_logical_template_5.xml resource\list\custom\akn_logical_template_5.xml
-data=\epoc32\data\z\resource\list\custom\akn_logical_template_6.xml resource\list\custom\akn_logical_template_6.xml
-data=\epoc32\data\z\resource\list\custom\akn_logical_template_7.xml resource\list\custom\akn_logical_template_7.xml
-data=\epoc32\data\z\resource\list\custom\akn_logical_template_8.xml resource\list\custom\akn_logical_template_8.xml
-data=\epoc32\data\z\resource\list\custom\akn_logical_template_10.xml resource\list\custom\akn_logical_template_10.xml
-data=\epoc32\data\z\resource\list\custom\akn_logical_template_11.xml resource\list\custom\akn_logical_template_11.xml
-data=\epoc32\data\z\resource\list\custom\akn_logical_template_12.xml resource\list\custom\akn_logical_template_12.xml
-data=\epoc32\data\z\resource\list\custom\akn_logical_template_13.xml resource\list\custom\akn_logical_template_13.xml
+data=\epoc32\data\z\resource\list\custom\akn_single_large_graphic_pane.xml resource\list\custom\akn_single_large_graphic_pane.xml
+data=\epoc32\data\z\resource\list\custom\akn_logical_template_1.xml resource\list\custom\akn_logical_template_1.xml
+data=\epoc32\data\z\resource\list\custom\akn_logical_template_2.xml resource\list\custom\akn_logical_template_2.xml
+data=\epoc32\data\z\resource\list\custom\akn_logical_template_3.xml resource\list\custom\akn_logical_template_3.xml
+data=\epoc32\data\z\resource\list\custom\akn_logical_template_4.xml resource\list\custom\akn_logical_template_4.xml
+data=\epoc32\data\z\resource\list\custom\akn_logical_template_5.xml resource\list\custom\akn_logical_template_5.xml
+data=\epoc32\data\z\resource\list\custom\akn_logical_template_6.xml resource\list\custom\akn_logical_template_6.xml
+data=\epoc32\data\z\resource\list\custom\akn_logical_template_7.xml resource\list\custom\akn_logical_template_7.xml
+data=\epoc32\data\z\resource\list\custom\akn_logical_template_8.xml resource\list\custom\akn_logical_template_8.xml
+data=\epoc32\data\z\resource\list\custom\akn_logical_template_10.xml resource\list\custom\akn_logical_template_10.xml
+data=\epoc32\data\z\resource\list\custom\akn_logical_template_11.xml resource\list\custom\akn_logical_template_11.xml
+data=\epoc32\data\z\resource\list\custom\akn_logical_template_12.xml resource\list\custom\akn_logical_template_12.xml
+data=\epoc32\data\z\resource\list\custom\akn_logical_template_13.xml resource\list\custom\akn_logical_template_13.xml
-data=\epoc32\data\z\resource\grid\custom\akn_single_large_graphic_pane.xml resource\grid\custom\akn_single_large_graphic_pane.xml
-data=\epoc32\data\z\resource\grid\custom\akn_logical_template_1.xml resource\grid\custom\akn_logical_template_1.xml
-data=\epoc32\data\z\resource\grid\custom\akn_logical_template_2.xml resource\grid\custom\akn_logical_template_2.xml
-data=\epoc32\data\z\resource\grid\custom\akn_logical_template_3.xml resource\grid\custom\akn_logical_template_3.xml
-data=\epoc32\data\z\resource\grid\custom\akn_logical_template_4.xml resource\grid\custom\akn_logical_template_4.xml
+data=\epoc32\data\z\resource\grid\custom\akn_single_large_graphic_pane.xml resource\grid\custom\akn_single_large_graphic_pane.xml
+data=\epoc32\data\z\resource\grid\custom\akn_logical_template_1.xml resource\grid\custom\akn_logical_template_1.xml
+data=\epoc32\data\z\resource\grid\custom\akn_logical_template_2.xml resource\grid\custom\akn_logical_template_2.xml
+data=\epoc32\data\z\resource\grid\custom\akn_logical_template_3.xml resource\grid\custom\akn_logical_template_3.xml
+data=\epoc32\data\z\resource\grid\custom\akn_logical_template_4.xml resource\grid\custom\akn_logical_template_4.xml
//lct exports
-data=\epoc32\data\z\resource\list\lct\akn_list_single_hc_apps_pane.xml resource\list\lct\akn_list_single_hc_apps_pane.xml
-data=\epoc32\data\z\resource\list\lct\akn_single_large_graphic_pane.xml resource\list\lct\akn_single_large_graphic_pane.xml
-data=\epoc32\data\z\resource\list\lct\akn_logical_template_1.xml resource\list\lct\akn_logical_template_1.xml
-data=\epoc32\data\z\resource\list\lct\akn_logical_template_2.xml resource\list\lct\akn_logical_template_2.xml
-data=\epoc32\data\z\resource\list\lct\akn_logical_template_3.xml resource\list\lct\akn_logical_template_3.xml
-data=\epoc32\data\z\resource\list\lct\akn_logical_template_4.xml resource\list\lct\akn_logical_template_4.xml
-data=\epoc32\data\z\resource\list\lct\akn_logical_template_5.xml resource\list\lct\akn_logical_template_5.xml
-data=\epoc32\data\z\resource\list\lct\akn_logical_template_6.xml resource\list\lct\akn_logical_template_6.xml
-data=\epoc32\data\z\resource\list\lct\akn_logical_template_6a.xml resource\list\lct\akn_logical_template_6a.xml
-data=\epoc32\data\z\resource\list\lct\akn_logical_template_7.xml resource\list\lct\akn_logical_template_7.xml
-data=\epoc32\data\z\resource\list\lct\akn_logical_template_8.xml resource\list\lct\akn_logical_template_8.xml
-data=\epoc32\data\z\resource\list\lct\akn_logical_template_12.xml resource\list\lct\akn_logical_template_12.xml
+data=\epoc32\data\z\resource\list\lct\akn_list_single_hc_apps_pane.xml resource\list\lct\akn_list_single_hc_apps_pane.xml
+data=\epoc32\data\z\resource\list\lct\akn_single_large_graphic_pane.xml resource\list\lct\akn_single_large_graphic_pane.xml
+data=\epoc32\data\z\resource\list\lct\akn_logical_template_1.xml resource\list\lct\akn_logical_template_1.xml
+data=\epoc32\data\z\resource\list\lct\akn_logical_template_2.xml resource\list\lct\akn_logical_template_2.xml
+data=\epoc32\data\z\resource\list\lct\akn_logical_template_3.xml resource\list\lct\akn_logical_template_3.xml
+data=\epoc32\data\z\resource\list\lct\akn_logical_template_4.xml resource\list\lct\akn_logical_template_4.xml
+data=\epoc32\data\z\resource\list\lct\akn_logical_template_5.xml resource\list\lct\akn_logical_template_5.xml
+data=\epoc32\data\z\resource\list\lct\akn_logical_template_6.xml resource\list\lct\akn_logical_template_6.xml
+data=\epoc32\data\z\resource\list\lct\akn_logical_template_6a.xml resource\list\lct\akn_logical_template_6a.xml
+data=\epoc32\data\z\resource\list\lct\akn_logical_template_7.xml resource\list\lct\akn_logical_template_7.xml
+data=\epoc32\data\z\resource\list\lct\akn_logical_template_8.xml resource\list\lct\akn_logical_template_8.xml
+data=\epoc32\data\z\resource\list\lct\akn_logical_template_12.xml resource\list\lct\akn_logical_template_12.xml
-data=\epoc32\data\z\resource\grid\lct\akn_logical_template_3.xml resource\grid\lct\akn_logical_template_3.xml
+
+#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+ data=\epoc32\data\z\resource\grid\lct\akn_logical_template_3_vga.xml resource\grid\lct\akn_logical_template_3.xml
+#else
+ data=\epoc32\data\z\resource\grid\lct\akn_logical_template_3.xml resource\grid\lct\akn_logical_template_3.xml
+#endif
+
#endif // MATRIXWIDGETS_IBY
--- a/menufw/menufwui/mmwidgets/src/mmdraweranimator.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/src/mmdraweranimator.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description:
- * Version : %version: MM_44 % << Don't touch! Updated by Synergy at check-out.
+ * Version : %version: MM_45 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -141,6 +141,10 @@
refreshRect.BoundingRect( beforeRect );
refreshRect.BoundingRect( afterRect );
}
+ if( current.GetFloatingItemType() == EPostDragRefreshItem )
+ {
+ iDrawer.RemoveFloatingItem( i-- );
+ }
}
const TInt highlightedItemIndex = iDrawer.Widget()->View()->CurrentItemIndex();
if( iLastNotedHighlight != highlightedItemIndex )
--- a/menufw/menufwui/mmwidgets/src/mmgrid.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/src/mmgrid.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description:
-* Version : %version: MM_106 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_108 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -51,7 +51,6 @@
//
CMmGrid::~CMmGrid()
{
- delete iRedrawTimer;
}
// -----------------------------------------------------------------------------
@@ -216,35 +215,18 @@
void CMmGrid::HandleScrollEventL( CEikScrollBar* aScrollBar,
TEikScrollEvent aEventType )
{
- if ( aEventType == EEikScrollThumbDragVert && !iScrollbarThumbIsBeingDragged )
+ if ( aEventType == EEikScrollThumbDragVert )
{
- iScrollbarThumbIsBeingDragged = ETrue;
static_cast<CMmListBoxItemDrawer*>(
View()->ItemDrawer() )->EnableCachedDataUse( ETrue );
- iRedrawTimer->Start( KScrollingRedrawInterval, KScrollingRedrawInterval,
- TCallBack( &CMmGrid::RedrawTimerCallback, static_cast<TAny*>( this ) ) );
}
else if ( aEventType == EEikScrollThumbReleaseVert )
{
- iScrollbarThumbIsBeingDragged = EFalse;
static_cast<CMmListBoxItemDrawer*>(
View()->ItemDrawer() )->EnableCachedDataUse( EFalse );
- // The view will be redrawn with cache disabled when ProcessScrollEventL
- // calls the base class's HandleScrollEventL method -- no need to
- // explicitly redraw the view.
- iRedrawTimer->Cancel();
}
-
- if ( !iScrollbarThumbIsBeingDragged )
- {
ProcessScrollEventL( aScrollBar, aEventType );
}
- else
- {
- __ASSERT_DEBUG( aEventType == EEikScrollThumbDragVert, User::Invariant() );
- ++iSkippedScrollbarEventsCount;
- }
- }
// -----------------------------------------------------------------------------
// Clearing ELeftDownInViewRect flag before invoking the base class
@@ -379,12 +361,12 @@
//
void CMmGrid::ScrollWithoutRedraw( TInt distanceInPixels )
{
- CAknGridView* view = static_cast<CAknGridView*>( iView );
+ CAknGridView* view = static_cast<CAknGridView*> ( iView );
const TInt rowHeight = ItemHeight();
const TInt numOfCols = view->NumberOfColsInView();
const TInt itemCount = iModel->NumberOfItems();
TInt totalNumberOfRows = itemCount / numOfCols;
- if ( itemCount % numOfCols )
+ if( itemCount % numOfCols )
{
++totalNumberOfRows;
}
@@ -396,8 +378,8 @@
desiredViewPosition += distanceInPixels;
const TInt viewPositionMin = 0;
- const TInt viewPositionMax =
- Max( 0, ( totalNumberOfRows * rowHeight ) - view->ViewRect().Height() );
+ const TInt viewPositionMax = Max( 0, ( totalNumberOfRows * rowHeight )
+ - view->ViewRect().Height() );
desiredViewPosition = Min( desiredViewPosition, viewPositionMax );
desiredViewPosition = Max( desiredViewPosition, viewPositionMin );
@@ -416,47 +398,45 @@
//
TInt CMmGrid::ScrollIfNeeded( const TPointerEvent& aPointerEvent )
{
- CAknGridView* view = static_cast<CAknGridView*>( View() );
TInt nextScrollDelay = 0;
TBool readyForScrolling = iMmDrawer->GetAnimator()->IsReadyForNewAnimation()
- && iMmDrawer->GetFloatingItemCount() != 0;
+ && iMmDrawer->GetFloatingItemCount() != 0;
- if ( IsPointerInTopScrollingThreshold( aPointerEvent ) )
- {
- // scroll up by one row
- TInt newCurrentItemIndex = CurrentItemIndex() - view->NumberOfColsInView();
- if ( newCurrentItemIndex < 0 )
- {
- newCurrentItemIndex = CurrentItemIndex();
- }
-
- nextScrollDelay = MmEffects::KEditModeScrollingDelayFactor *
- Max( 1, aPointerEvent.iPosition.iY - Rect().iTl.iY );
+ if( IsPointerInTopScrollingThreshold( aPointerEvent ) )
+ {
+ // scroll up
+ TInt startPos = MmGrid::KFocusScrollingThreshold * TReal(
+ View()->ItemSize().iHeight );
+ TInt diff = Max( 1, Min( aPointerEvent.iPosition.iY
+ - Rect().iTl.iY, startPos ) );
+ nextScrollDelay = ( (TReal) diff / (TReal) startPos )
+ * ( MmGrid::KEditModeScrollingGridMaxDelay
+ - MmGrid::KEditModeScrollingGridMinDelay )
+ + MmGrid::KEditModeScrollingGridMinDelay;
- if ( readyForScrolling )
- {
- ScrollWithoutRedraw( -iItemHeight );
- View()->SetCurrentItemIndex( newCurrentItemIndex );
- }
- }
- else if ( IsPointerInBottomScrollingThreshold( aPointerEvent) )
- {
- TInt newCurrentItemIndex = CurrentItemIndex() + view->NumberOfColsInView();
- if ( newCurrentItemIndex > iModel->NumberOfItems() - 1 )
- {
- newCurrentItemIndex = CurrentItemIndex();
- }
+ if( readyForScrolling )
+ {
+ ScrollWithoutRedraw( -MmGrid::KScrollingStep );
+ }
+ }
+ else if( IsPointerInBottomScrollingThreshold( aPointerEvent ) )
+ {
+ // scroll down
+ TInt startPos = MmGrid::KFocusScrollingThreshold * TReal(
+ View()->ItemSize().iHeight );
+ TInt diff = Max( 1, Min( Rect().iBr.iY
+ - aPointerEvent.iPosition.iY, startPos ) );
+ nextScrollDelay = ( (TReal) diff / (TReal) startPos )
+ * ( MmGrid::KEditModeScrollingGridMaxDelay
+ - MmGrid::KEditModeScrollingGridMinDelay )
+ + MmGrid::KEditModeScrollingGridMinDelay;
- nextScrollDelay = MmEffects::KEditModeScrollingDelayFactor *
- Max( 1, Rect().iBr.iY - aPointerEvent.iPosition.iY );
-
- if ( readyForScrolling )
- {
- ScrollWithoutRedraw( iItemHeight );
- View()->SetCurrentItemIndex( newCurrentItemIndex );
- }
- }
+ if( readyForScrolling )
+ {
+ ScrollWithoutRedraw( MmGrid::KScrollingStep );
+ }
+ }
return nextScrollDelay;
}
@@ -601,7 +581,6 @@
}
DoSetupLayoutL();
- iRedrawTimer = CPeriodic::NewL( EPriorityRealTime );
}
// -----------------------------------------------------------------------------
@@ -961,33 +940,6 @@
//
// -----------------------------------------------------------------------------
//
-void CMmGrid::HandleRedrawTimerEventL()
- {
- if ( iSkippedScrollbarEventsCount )
- {
- ProcessScrollEventL( ScrollBarFrame()->VerticalScrollBar(),
- EEikScrollThumbDragVert );
- }
- iSkippedScrollbarEventsCount = 0;
- }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TInt CMmGrid::RedrawTimerCallback( TAny* aPtr )
- {
- CMmGrid* self = static_cast<CMmGrid*>( aPtr );
- TRAP_IGNORE( self->HandleRedrawTimerEventL() );
- // Do not bother returning a meaningful error code, CPeriodic will ignore it
- // anyway.
- return 0;
- }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
void CMmGrid::SetVerticalItemOffset(TInt aOffset)
{
static_cast<CMmGridView*> (View())->SetItemOffsetInPixels(aOffset);
--- a/menufw/menufwui/mmwidgets/src/mmgridcontainer.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/src/mmgridcontainer.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -12,8 +12,8 @@
* Contributors:
*
* Description:
-* Version : %version: MM_76 % << Don't touch! Updated by Synergy at check-out.
-* Version : %version: MM_76 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_77 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_77 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -400,5 +400,14 @@
return isVisible;
}
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void CMmGridContainer::SetWidgetCommingFromBackground( TBool /*aCommingFromBackground*/)
+ {
+ }
+
// End of File
+
--- a/menufw/menufwui/mmwidgets/src/mmlistbox.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/src/mmlistbox.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -58,7 +58,6 @@
//
CMmListBox::~CMmListBox()
{
- delete iRedrawTimer;
}
// -----------------------------------------------------------------------------
@@ -120,7 +119,6 @@
iItemDrawer->SetDrawMark(EFalse);
CEikListBox::ConstructL(aParent,aFlags);
iMmDrawer->SetView( this );
- iRedrawTimer = CPeriodic::NewL( EPriorityRealTime );
}
// -----------------------------------------------------------------------------
@@ -234,53 +232,68 @@
//
// -----------------------------------------------------------------------------
//
+void CMmListBox::ScrollWithoutRedraw( TInt distanceInPixels )
+ {
+ // desired view position relative to the first item in list (always positive)
+ TInt desiredViewPosition = ItemHeight() * TopItemIndex() - VerticalItemOffset();
+ desiredViewPosition += distanceInPixels;
+
+ const TInt viewPositionMax = Max( 0, ( iModel->NumberOfItems()
+ * ItemHeight() ) - iView->ViewRect().Height() );
+
+ desiredViewPosition = Min( desiredViewPosition, viewPositionMax );
+ desiredViewPosition = Max( desiredViewPosition, 0 );
+
+ ASSERT( desiredViewPosition >= 0 );
+
+ SetTopItemIndex( desiredViewPosition / ItemHeight() );
+ SetVerticalItemOffset( -( desiredViewPosition % ItemHeight() ) );
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
TInt CMmListBox::ScrollIfNeeded( const TPointerEvent& aPointerEvent )
{
TInt nextScrollDelay = 0;
- TBool readyForScrolling =
- iMmDrawer->GetAnimator()->IsReadyForNewAnimation()
- && iMmDrawer->GetFloatingItemCount() != 0;
-
- if ( IsPointerInTopScrollingThreshold( aPointerEvent ) )
- {
- // scroll up by one row
- TInt newCurrentItemIndex = CurrentItemIndex() - 1;
+ TBool readyForScrolling = iMmDrawer->GetAnimator()->IsReadyForNewAnimation()
+ && iMmDrawer->GetFloatingItemCount() != 0;
- if ( newCurrentItemIndex >= 0 )
- {
- nextScrollDelay = MmEffects::KEditModeScrollingDelayFactor *
- Max( 1, aPointerEvent.iPosition.iY - Rect().iTl.iY );
- if (readyForScrolling)
+ if( IsPointerInTopScrollingThreshold( aPointerEvent ) )
{
- View()->VScrollTo( View()->CalcNewTopItemIndexSoItemIsVisible(
- newCurrentItemIndex ) );
- View()->SetCurrentItemIndex( newCurrentItemIndex );
- UpdateScrollBarThumbs();
+ // scroll up
+ TInt startPos = MmListBox::KFocusScrollingThreshold * TReal(
+ View()->ItemSize().iHeight );
+ TInt diff = Max( 1, Min( aPointerEvent.iPosition.iY
+ - Rect().iTl.iY, startPos ) );
+ nextScrollDelay = ( (TReal) diff / (TReal) startPos )
+ * ( MmListBox::KEditModeScrollingListBoxMaxDelay
+ - MmListBox::KEditModeScrollingListBoxMinDelay )
+ + MmListBox::KEditModeScrollingListBoxMinDelay;
+ if( readyForScrolling )
+ {
+ ScrollWithoutRedraw( -MmListBox::KScrollingStep );
+ }
}
- }
- }
- else if ( IsPointerInBottomScrollingThreshold( aPointerEvent) )
- {
- // scroll down by one row
- TInt lastItemIndex = iModel->NumberOfItems() - 1;
- TInt newCurrentItemIndex = CurrentItemIndex() + 1;
-
+ else if( IsPointerInBottomScrollingThreshold( aPointerEvent ) )
+ {
+ // scroll down
+ TInt startPos = MmListBox::KFocusScrollingThreshold * TReal(
+ View()->ItemSize().iHeight );
+ TInt diff = Max( 1, Min( Rect().iBr.iY
+ - aPointerEvent.iPosition.iY, startPos ) );
+ nextScrollDelay = ( (TReal) diff / (TReal) startPos )
+ * ( MmListBox::KEditModeScrollingListBoxMaxDelay
+ - MmListBox::KEditModeScrollingListBoxMinDelay )
+ + MmListBox::KEditModeScrollingListBoxMinDelay;
- if ( newCurrentItemIndex <= lastItemIndex )
- {
- nextScrollDelay = MmEffects::KEditModeScrollingDelayFactor *
- Max( 1, Rect().iBr.iY - aPointerEvent.iPosition.iY );
-
- if (readyForScrolling)
- {
- View()->VScrollTo( View()->CalcNewTopItemIndexSoItemIsVisible(
- newCurrentItemIndex ) );
- View()->SetCurrentItemIndex( newCurrentItemIndex );
- UpdateScrollBarThumbs();
+ if( readyForScrolling )
+ {
+ ScrollWithoutRedraw( MmListBox::KScrollingStep );
+ }
}
- }
- }
return nextScrollDelay;
}
@@ -389,33 +402,6 @@
//
// -----------------------------------------------------------------------------
//
-void CMmListBox::HandleRedrawTimerEventL()
- {
- if ( iSkippedScrollbarEventsCount )
- {
- ProcessScrollEventL( ScrollBarFrame()->VerticalScrollBar(),
- EEikScrollThumbDragVert );
- }
- iSkippedScrollbarEventsCount = 0;
- }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TInt CMmListBox::RedrawTimerCallback( TAny* aPtr )
- {
- CMmListBox* self = static_cast<CMmListBox*>( aPtr );
- TRAP_IGNORE( self->HandleRedrawTimerEventL() );
- // Do not bother returning a meaningful error code, CPeriodic will ignore it
- // anyway.
- return 0;
- }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
TKeyResponse CMmListBox::OfferKeyEventL(
const TKeyEvent& aKeyEvent,TEventCode aType )
{
@@ -956,34 +942,17 @@
void CMmListBox::HandleScrollEventL( CEikScrollBar* aScrollBar,
TEikScrollEvent aEventType )
{
- if ( aEventType == EEikScrollThumbDragVert && !iScrollbarThumbIsBeingDragged )
+ if ( aEventType == EEikScrollThumbDragVert )
{
- iScrollbarThumbIsBeingDragged = ETrue;
static_cast<CMmListBoxItemDrawer*>(
View()->ItemDrawer() )->EnableCachedDataUse( ETrue );
- iRedrawTimer->Start( KScrollingRedrawInterval, KScrollingRedrawInterval,
- TCallBack( &CMmListBox::RedrawTimerCallback, static_cast<TAny*>( this ) ) );
}
else if ( aEventType == EEikScrollThumbReleaseVert )
{
- iScrollbarThumbIsBeingDragged = EFalse;
static_cast<CMmListBoxItemDrawer*>(
View()->ItemDrawer() )->EnableCachedDataUse( EFalse );
- // The view will be redrawn with cache disabled when ProcessScrollEventL
- // calls the base class's HandleScrollEventL method -- no need to
- // explicitly redraw the view.
- iRedrawTimer->Cancel();
}
-
- if ( !iScrollbarThumbIsBeingDragged )
- {
- ProcessScrollEventL( aScrollBar, aEventType );
- }
- else
- {
- __ASSERT_DEBUG( aEventType == EEikScrollThumbDragVert, User::Invariant() );
- ++iSkippedScrollbarEventsCount;
- }
+ ProcessScrollEventL( aScrollBar, aEventType );
}
// End of file
--- a/menufw/menufwui/mmwidgets/src/mmlistboxcontainer.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/src/mmlistboxcontainer.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description:
-* Version : %version: MM_66 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_67 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -35,6 +35,7 @@
#include "mmtemplatelibrary.h"
#include "mmpostevaluationprocessor.h"
#include "mmdraweranimator.h"
+#include "mmlistboxview.h"
// ============================ MEMBER FUNCTIONS ===============================
@@ -327,4 +328,16 @@
{
iListBox->UpdateScrollBarThumbs();
}
+
+//----------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CMmListBoxContainer::SetWidgetCommingFromBackground(
+ TBool aCommingFromBackground )
+ {
+ CMmListBoxView* view = static_cast<CMmListBoxView*> ( Widget()->View() );
+ view->SetListCommingFromBackground( aCommingFromBackground );
+ }
+
// End of File
--- a/menufw/menufwui/mmwidgets/src/mmlistboxitemdrawer.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/src/mmlistboxitemdrawer.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -342,7 +342,7 @@
iZoomIconIndex = tempZoomIconIndex;
}
}
- else
+ else if( type != EPostDragRefreshItem )
{
iFloatingItems.Remove( i );
}
--- a/menufw/menufwui/mmwidgets/src/mmlistboxview.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/src/mmlistboxview.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description:
- * Version : %version: MM_55 % << Don't touch! Updated by Synergy at check-out.
+ * Version : %version: MM_56 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -81,6 +81,7 @@
void CMmListBoxView::ConstructL ()
{
iPreviouslyDrawnCurrentItemIndex = KErrNotFound;
+ iListCommingFromBackground = EFalse;
}
// -----------------------------------------------------------------------------
@@ -247,8 +248,9 @@
view->UpdateAverageItemHeight ();
CMmListBoxModel* model = static_cast< CMmListBoxModel* > ( iModel );
- if ( model && model->GetSuiteModel()
- && !model->GetSuiteModel()->GetItemsOrder()->IsSuiteReadyToShow() )
+ if( model && model->GetSuiteModel()
+ && !model->GetSuiteModel()->GetItemsOrder()->IsSuiteReadyToShow()
+ && !GetListCommingFromBackground() )
{
return;
}
@@ -630,4 +632,23 @@
iScrollToItemDisabled = aDisable;
}
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+TBool CMmListBoxView::GetListCommingFromBackground() const
+ {
+ return iListCommingFromBackground;
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void CMmListBoxView::SetListCommingFromBackground(
+ TBool aCommingFromBackground )
+ {
+ iListCommingFromBackground = aCommingFromBackground;
+ }
+
// End of file
--- a/menufw/menufwui/mmwidgets/src/mmwidgetcontainer.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/src/mmwidgetcontainer.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description:
-* Version : %version: MM_71.1.17.1.70 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_71.1.17.1.75 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -111,7 +111,8 @@
, iRecipientId( KErrNotFound )
, iEventParameters( NULL )
, iDialogOpened( EFalse )
- , iHighlightVisibleBeforeLongTap( EFalse )
+ , iHighlightVisibleBeforeLongTap( EFalse )
+ , iResetHighlight( EFalse )
{
iWidgetPositionCache.iValid = EFalse;
}
@@ -142,7 +143,7 @@
// cancel longTap timer, avoid showing popupmenu
if( !aEnable )
{
- TRAP_IGNORE( iLongTapDetector->PointerEventL( TPointerEvent() ) );
+ TRAP_IGNORE( iLongTapDetector->CancelAnimationL() );
}
}
}
@@ -215,8 +216,8 @@
{
iDraggedIndex = KErrNotFound;
}
- iItemRelativeTapPoint = aPointerEvent.iPosition - iWidget->View()->ItemPos(
- iDraggedIndex );
+ iItemRelativeTapPoint = aPointerEvent.iPosition
+ - iWidget->View()->ItemPos( iDraggedIndex );
}
// -----------------------------------------------------------------------------
@@ -313,7 +314,7 @@
{
iDragAndDropObserver->HandleDragOverL( GetHighlight() );
}
-
+
TPoint centerPoint( aPointerEvent.iPosition );
if( WidgetType() == EGridWidget )
{ // move item's TL corner by half width/height to center item horizontally.
@@ -326,7 +327,7 @@
// move item's L of corner by half height to center item horizontally.
centerPoint.iY -= ( iWidget->View()->ItemSize( highlight ).iHeight / 2 );
}
-
+
if( !tooFast )
{
TSize itemSize = iWidget->View()->ItemSize( highlight );
@@ -677,6 +678,16 @@
HandleButtonDownL( aPointerEvent );
iDragAndDropObserver->HandleDragStartL( GetHighlight() );
}
+ else if( IsNoItemDragged() && ( aPointerEvent.iType
+ == TPointerEvent::EButton1Up ) )
+ {
+ iWidget->View()->ItemDrawer()->SetFlags(
+ CListItemDrawer::ESingleClickDisabledHighlight );
+ TInt highlight = GetHighlight();
+ CListBoxView* view = Widget()->View();
+ Widget()->DrawNow( TRect( view->ItemPos( highlight ),
+ view->ItemSize( highlight ) ) );
+ }
else if( ( aPointerEvent.iType == TPointerEvent::EDrag
|| aPointerEvent.iType == TPointerEvent::EButtonRepeat )
&& iDraggedIndex != KErrNotFound )
@@ -1143,9 +1154,9 @@
if( resp == EKeyWasNotConsumed )
{
- resp = iWidget->OfferKeyEventL( aKeyEvent, aType );
+ resp = iWidget->OfferKeyEventL( aKeyEvent, aType );
}
-
+
if( iKeyEventObserver )
{
resp = iKeyEventObserver->HandleKeyPressedL( aKeyEvent, aType );
@@ -1165,7 +1176,7 @@
SetHighlightVisibilityL( ETrue );
SetDefaultHighlightL( ETrue );
- HandleForegroundGainedL();
+ HandleForegroundGainedL();
}
}
return resp;
@@ -1733,7 +1744,9 @@
iWidgetPositionCache.iValid = EFalse;
iWidgetPositionCache.iHighlightedItemId = KErrNotFound;
Widget()->SetTopItemIndex( 0 );
+ Widget()->View()->SetCurrentItemIndex( 0 );
SetVerticalItemOffset( 0 );
+ iResetHighlight = ETrue;
}
// ---------------------------------------------------------------------------
@@ -1877,11 +1890,12 @@
//
EXPORT_C TBool CMmWidgetContainer::ScrollToItemL( TInt aIndex )
{
- TInt scrollConsumed( EFalse );
+ TBool scrollConsumed( EFalse );
if( aIndex >= 0 && aIndex <= NumberOfItems() )
{
scrollConsumed = AlignBottomOfViewL();
- if ( !scrollConsumed && Widget()->View()->ItemIsPartiallyVisible(aIndex))
+ if ( ( !scrollConsumed || iResetHighlight )
+ && Widget()->View()->ItemIsPartiallyVisible(aIndex) )
{
// the case when the item is partially visible at top or
// bottom of screen. The view is scrolled the offset to
@@ -1897,7 +1911,6 @@
ScrollInPixelsL( offset );
scrollConsumed = ETrue;
}
-
}
else if( !Widget()->View()->ItemIsVisible( aIndex ) )
{
@@ -1907,6 +1920,7 @@
AlignBottomOfViewL();
scrollConsumed = ETrue;
}
+ iResetHighlight = EFalse;
}
return scrollConsumed;
}
@@ -2069,4 +2083,14 @@
iListBoxObserver->HandleListBoxEventL( aListBox, aEventType );
}
}
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CMmWidgetContainer::SetWidgetCommingFromBackground( TBool /*aCommingFromBackground*/)
+ {
+ // this method must not be implemented. Change and implement only descended methods.
+ }
+
//End of file
--- a/menufw/menusuites/foldersuite/data/matrixmenudata.xml Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menusuites/foldersuite/data/matrixmenudata.xml Tue Sep 14 20:58:58 2010 +0300
@@ -160,22 +160,38 @@
mask_id="16405"
param="messaging:audiomsg"/>
- <menu:shortcut flags="hidden"
+ <menu:shortcut flags="hidden"
uid="0x99999991"
long_name="&qtn_apps_undefined_list;"
icon_file="aimcsplugin.mif"
- icon_id="16388"
- mask_id="16389"
- icon_skin_minor_id="0x1af5"
+ icon_id="16410"
+ mask_id="16411"
+ icon_skin_minor_id="0x24ba"
icon_skin_major_id="0x101F86E3"/>
-
- <menu:shortcut uid="0x99999989"
+
+ <menu:shortcut uid="0x99999989"
long_name="&qtn_apps_dialledcalls_list;"
icon_file="aimcsplugin.mif"
icon_id="16398"
mask_id="16399"
param="logs:dialed"/>
+ <menu:shortcut flags="hidden"
+ uid="0x99999990"
+ long_name="&qtn_apps_manage_list;"
+ icon_file="aimcsplugin.mif"
+ icon_id="16408"
+ mask_id="16409"
+ icon_skin_minor_id="0x25f0"
+ icon_skin_major_id="0x101F86E3"/>
+
+ <menu:shortcut uid="0x99999992"
+ long_name="&qtn_apps_profiles_list;"
+ icon_file="profileapp_aif.mif"
+ icon_id="16384"
+ mask_id="16385"
+ param="profiles"/>
+
<!-- Menu Application Launcher -->
<menu:application uid="0x101F4CD2"/>
<!-- Themes Application Launcher -->
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/menufw/menusuites/foldersuite/data/matrixmenudata_vga.xml Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,431 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE xcfwml SYSTEM "matrixmenudata.dtd">
+<menu:data xmlns:menu="http:://www.s60.com/xml/applicationshell/1" version="5.0">
+ <menu:folder title_name="&qtn_fldr_root_level;" long_name="&qtn_fldr_root_level;" short_name="&qtn_fldr_root_level;">
+ <!--Calendar-->
+ <menu:application uid="0x10005901"/>
+ <!--Contacts application-->
+ <menu:application uid="0x101F4CCE"/>
+ <!--Music folder-->
+ <menu:folder title_name="&qtn_apps_music_title;"
+ long_name="&qtn_apps_music_list;"
+ short_name="&qtn_apps_music_grid;"
+ applicationgroup_name="Music"
+ icon_file="z:\resource\apps\matrixmenudata.mif"
+ icon_id="16384"
+ mask_id="16385"
+ icon_skin_minor_id="0x2176"
+ icon_skin_major_id="0x101F86E3">
+ <!-- Music Player (MusicPlayer)-->
+ <menu:application uid="0x102072C3"/>
+ <!-- Radio -->
+ <menu:application uid="0x10207A89"/>
+ <!-- Ovi Music -->
+ <menu:application uid="0x101FFB51"/>
+ <!--FM transmitter-->
+ <menu:application uid="0x10282BEF"/>
+ </menu:folder>
+ <!--Video & TV Folder-->
+ <menu:folder title_name="&qtn_apps_videotv_title;"
+ long_name="&qtn_apps_videotv_list;"
+ short_name="&qtn_apps_videotv_grid;"
+ applicationgroup_name="TV&Video"
+ icon_file="z:\resource\apps\matrixmenudata.mif"
+ icon_id="16390"
+ mask_id="16391"
+ icon_skin_minor_id="0x217d"
+ icon_skin_major_id="0x101F86E3" >
+ <!-- Videos -->
+ <menu:application uid="0x200159B2"/>
+ <!-- video services folder -->
+ <menu:folder title_name="&qtn_apps_video_list;"
+ long_name="&qtn_apps_video_list;"
+ short_name="&qtn_apps_video_grid;"
+ applicationgroup_name="VideoServices"
+ icon_file="z:\resource\apps\VideoServices_AIF.mif"
+ icon_id="16384"
+ mask_id="16385">
+ <!-- Youtube-->
+ <menu:application uid="0x2000FBBA"/>
+ </menu:folder>
+ <!--web tv folder-->
+ <menu:folder title_name="&qtn_apps_webtv_widgets_title;"
+ long_name="&qtn_apps_webtv_wigdets_list;"
+ short_name="&qtn_apps_webtv_wigdets_grid;"
+ applicationgroup_name="WebTv"
+ icon_file="z:\resource\apps\vasco_icons.mif"
+ icon_id="16384"
+ mask_id="16385">
+ <!--WebTV Demo-->
+ <menu:application uid="0x2000DDB6" predefined_widget="true"/>
+ <!--CNN Video-->
+ <menu:application uid="0x2000DD9D" predefined_widget="true"/>
+ <!--Nat Geo-->
+ <menu:application uid="0x2000DDA6" predefined_widget="true"/>
+ <!--E!-->
+ <menu:application uid="0x2000DDA0" predefined_widget="true"/>
+ <!--Movie Teasers-->
+ <menu:application uid="0x2000dadb" predefined_widget="true"/>
+ <!--Get more link-->
+ <menu:url uid="0x99999988" short_name="&qtn_apps_get_more_grid;" long_name="&qtn_apps_get_more_list;"
+ title_name="&qtn_apps_get_more_list;" url="http://more.store.ovi.mobi/av_webtv"
+ lock_delete="1" icon_file="z:\resource\apps\vasco_icons.mif" icon_id="16388" mask_id="16389"/>
+ <menu:application uid="0x2000DDBD" predefined_widget="true"/> <!--Al Jazeera-->
+ <menu:application uid="0x2000DDBE" predefined_widget="true"/> <!--Terra TV LTA-->
+ <menu:application uid="0x2000DDBF" predefined_widget="true"/> <!--Terra TV Brazil-->
+ <menu:application uid="0x2000DD93" predefined_widget="true"/> <!--WebTV - ifeng ifeng.wgz -->
+ <menu:application uid="0x2000DD94" predefined_widget="true"/> <!--WebTV - Bh TV Local bhtv_local.wgz -->
+ <menu:application uid="0x2000DD95" predefined_widget="true"/> <!--WebTV - Bh TV Live bhtv_live.wgz -->
+ <menu:application uid="0x2000DD96" predefined_widget="true"/> <!--WebTV - M1TV m1tv.wgz -->
+ <menu:application uid="0x2000DD97" predefined_widget="true"/> <!--WebTV - imgo imgo.wgz -->
+ <menu:application uid="0x2000DD98" predefined_widget="true"/> <!--WebTV - 8tv 8tv.wgz -->
+ <menu:application uid="0x2000DD99" predefined_widget="true"/> <!--WebTV - vesti_russia vesti_russia.wgz -->
+ <menu:application uid="0x2000DD9A" predefined_widget="true"/> <!--WebTV - aftonbladettv aftonbladettv.wgz -->
+ <menu:application uid="0x2000DD9B" predefined_widget="true"/> <!--WebTV - bbcatv bbcatv_webtv.wgz -->
+ <menu:application uid="0x2000DD9C" predefined_widget="true"/> <!--WebTV - channelnewsasia channelnewsasia.wgz -->
+ <menu:application uid="0x2000DD9E" predefined_widget="true"/> <!--WebTV - digiturk digiturk.wgz -->
+ <menu:application uid="0x2000DD9F" predefined_widget="true"/> <!--WebTV - efe_videos efe_videos.wgz -->
+ <menu:application uid="0x2000DDA1" predefined_widget="true"/> <!--WebTV - eros_widget eros_widget.wgz -->
+ <menu:application uid="0x2000DDA2" predefined_widget="true"/> <!--WebTV - india_today india_today.wgz -->
+ <menu:application uid="0x2000DDA3" predefined_widget="true"/> <!--WebTV - iplayer iplayer.wgz -->
+ <menu:application uid="0x2000DDA4" predefined_widget="true"/> <!--WebTV - makansutra makansutra.wgz -->
+ <menu:application uid="0x2000DDA5" predefined_widget="true"/> <!--WebTV - mtvs mtvs.wgz -->
+ <menu:application uid="0x2000DDA7" predefined_widget="true"/> <!--WebTV - nokiaonyoutube nokiaonyoutube.wgz -->
+ <menu:application uid="0x2000DDA8" predefined_widget="true"/> <!--WebTV - nrk_mobiltv nrk_mobiltv.wgz -->
+ <menu:application uid="0x2000DDA9" predefined_widget="true"/> <!--WebTV - ontv ontv.wgz -->
+ <menu:application uid="0x2000DDAA" predefined_widget="true"/> <!--WebTV - paramount paramount.wgz -->
+ <menu:application uid="0x2000DDAB" predefined_widget="true"/> <!--WebTV - sftvreader sftvreader.wgz -->
+ <menu:application uid="0x2000DDAC" predefined_widget="true"/> <!--WebTV - sina WebTV-2.wgz -->
+ <menu:application uid="0x2000DDAD" predefined_widget="true"/> <!--WebTV - skynews skynews.wgz -->
+ <menu:application uid="0x2000DDAE" predefined_widget="true"/> <!--WebTV - sohuwebtv sohuwebtv.wgz -->
+ <menu:application uid="0x2000DDAF" predefined_widget="true"/> <!--WebTV - tudou tudou.wgz -->
+ <menu:application uid="0x2000DDB0" predefined_widget="true"/> <!--WebTV - tv2news tv2news.wgz -->
+ <menu:application uid="0x2000DDB1" predefined_widget="true"/> <!--WebTV - tv2play tv2play.wgz -->
+ <menu:application uid="0x2000DDB2" predefined_widget="true"/> <!--WebTV - tv3 tv3.wgz -->
+ <menu:application uid="0x2000DDB3" predefined_widget="true"/> <!--WebTV - viasat_no viasat_no.wgz -->
+ <menu:application uid="0x2000DDB4" predefined_widget="true"/> <!--WebTV - viasat_se viasat_se.wgz -->
+ <menu:application uid="0x2000DDB5" predefined_widget="true"/> <!--WebTV - virtualmalaysia virtualmalaysia.wgz -->
+ <menu:application uid="0x2000DDB7" predefined_widget="true"/> <!--WebTV - yle yle.wgz -->
+ <menu:application uid="0x2000DDB8" predefined_widget="true"/> <!--WebTV - youku youku.wgz -->
+ <!--Extra WRT widget uid's-->
+ <menu:application uid="0x2000DDBC" predefined_widget="true"/>
+ <menu:application uid="0x2000DDBB" predefined_widget="true"/>
+ <menu:application uid="0x2000DDBA" predefined_widget="true"/>
+ <menu:application uid="0x2000DD80" predefined_widget="true"/>
+ <menu:application uid="0x2000DD81" predefined_widget="true"/>
+ <menu:application uid="0x2000DD82" predefined_widget="true"/>
+ <menu:application uid="0x2000DD83" predefined_widget="true"/>
+ <menu:application uid="0x2000DD84" predefined_widget="true"/>
+ <menu:application uid="0x2000DD85" predefined_widget="true"/>
+ <menu:application uid="0x2000DD86" predefined_widget="true"/>
+ <menu:application uid="0x2000DD87" predefined_widget="true"/>
+ <menu:application uid="0x2000DD88" predefined_widget="true"/>
+ <menu:application uid="0x2000DD89" predefined_widget="true"/>
+ <menu:application uid="0x2000DD8A" predefined_widget="true"/>
+ <menu:application uid="0x2000DD8B" predefined_widget="true"/>
+ <menu:application uid="0x2000DD8C" predefined_widget="true"/>
+ <menu:application uid="0x2000DD8D" predefined_widget="true"/>
+ <menu:application uid="0x2000DD8E" predefined_widget="true"/>
+ <menu:application uid="0x2000DD8F" predefined_widget="true"/>
+ <menu:application uid="0x2000DD90" predefined_widget="true"/>
+ <menu:application uid="0x2000DD91" predefined_widget="true"/>
+ <menu:application uid="0x2000DD92" predefined_widget="true"/>
+ </menu:folder>
+ </menu:folder>
+ <!--Internet folder-->
+ <!-- now using qgnmenugroupweb available in skin -->
+ <!-- <menu:folder title_name="&qtn_apps_browserng_title;"
+ long_name="&qtn_apps_internet_list;"
+ short_name="&qtn_apps_internet_grid;"
+ applicationgroup_name="internet"
+ icon_file="z:\resource\apps\matrixmenudata.mif"
+ icon_id="16386"
+ mask_id="16387"
+ icon_skin_minor_id="0x2005"
+ icon_skin_major_id="0x101F86E3" > -->
+ <!--Browser-->
+ <menu:application uid="0x10008D39"/>
+ <!--Online Search-->
+ <!-- <menu:application uid="0x20000907"/> -->
+ <!-- </menu:folder> -->
+ <!--Messaging application-->
+ <menu:application uid="0x100058C5"/>
+ <!--Photos application-->
+ <menu:application uid="0x200009EE"/>
+ <!--Ovi Store application-->
+ <menu:application uid="0x20007803" />
+ <!--Settings/Control Panel-->
+ <menu:application uid="0x100058EC"/>
+ <!--Maps application-->
+ <menu:application uid="0x20001F63"/>
+ <!--Social Networks-->
+ <menu:folder title_name="&qtn_apps_social_networks_title;"
+ long_name="&qtn_apps_social_networks_list;"
+ short_name="&qtn_apps_social_networks_grid;"
+ applicationgroup_name="Social Networks"
+ icon_file="z:\resource\apps\matrixmenudata.mif"
+ icon_id="16394"
+ mask_id="16395"
+ icon_skin_minor_id="0x2618"
+ icon_skin_major_id="0x101F86E3">
+ <!--Communities-->
+ <menu:application uid="0x2000DD5A" predefined_widget="true"/>
+ <!--Facebook-->
+ <menu:application uid="0x2002699D"/>
+ <!--Twitter-->
+ <menu:application uid="0x200269A1"/>
+ <!--RenRen-->
+ <menu:application uid="0x2002F952"/>
+ <!-- Hi5 -->
+ <menu:application uid="0x2000DD56"/>
+ <!-- LinkedIn -->
+
+ </menu:folder>
+ <!--Application folder-->
+ <menu:folder applicationgroup_name="applications"
+ default="1"
+ title_name="&qtn_apps_appsfolder_title;"
+ long_name="&qtn_apps_applications_list;"
+ short_name="&qtn_apps_applications_grid;"
+ icon_file="z:\resource\apps\matrixmenudata.mif"
+ icon_id="16392"
+ mask_id="16393"
+ icon_skin_minor_id="0x2174"
+ icon_skin_major_id="0x101F86E3">
+ <!-- eMail application -->
+ <menu:application uid="0x2001E277"/>
+ <!--Clock-->
+ <menu:application uid="0x10005903"/>
+ <!-- Log -->
+ <menu:application uid="0x101F4CD5"/>
+ <!--Office folder-->
+ <menu:folder title_name="&qtn_apps_office_title;"
+ long_name="&qtn_apps_office_list;"
+ short_name="&qtn_apps_office_grid;"
+ applicationgroup_name="Office"
+ icon_file="z:\resource\apps\matrixmenudata.mif"
+ icon_id="16398"
+ mask_id="16399"
+ icon_skin_minor_id="0x1ead"
+ icon_skin_major_id="0x101F86E3">
+ <!--File Manager-->
+ <menu:application uid="0x101F84EB"/>
+ <!--Ovi Files-->
+ <menu:application uid="0x2000DD58" predefined_widget="true"/>
+ <!--Dictionary-->
+ <menu:application uid="0x200159D0"/>
+ <!--Intranet-->
+ <menu:application uid="0x20002595"/>
+ <!--Notes-->
+ <menu:application uid="0x10005907"/>
+ <!--Quick office -->
+ <menu:application uid="0x200002C0"/>
+ <!--Zip-->
+ <menu:application uid="0x2000023D"/>
+ <!--Calculator-->
+ <menu:application uid="0x10005902"/>
+ <!--Podcasting-->
+ <menu:application uid="0x100058CA"/>
+ <!--Voice recorder-->
+ <menu:application uid="0x10282411"/>
+ <!--Adobe PDF-->
+ <menu:application uid="0x2000CD2B"/>
+ <!--F secure-->
+ <menu:application uid="0x20001c27"/>
+ <!--Message reader-->
+ <menu:application uid="0x10201B00"/>
+ <!--Multiscanner-->
+ <menu:application uid="0x2000F5BF"/>
+ </menu:folder>
+ <!--Tools folder-->
+ <!-- Sushi -->
+ <!-- <menu:folder title_name="&qtn_apps_tools_title;"
+ long_name="&qtn_apps_tools_list;"
+ short_name="&qtn_apps_tools_grid;"
+ applicationgroup_name="Tools"
+ icon_file="z:\resource\apps\att_icons.mif"
+ icon_id="16400"
+ mask_id="16401"> -->
+ <!-- Vasco -->
+ <menu:folder title_name="&qtn_apps_tools_title;"
+ long_name="&qtn_apps_tools_list;"
+ short_name="&qtn_apps_tools_grid;"
+ applicationgroup_name="Tools"
+ icon_file="z:\resource\apps\vasco_icons.mif"
+ icon_id="16386"
+ mask_id="16387">
+ <!--Phone setup-->
+ <menu:application uid="0x200122A4"/>
+ <!--Sw update-->
+ <menu:application uid="0x2001FE2F"/>
+ <!--Ovi sync-->
+ <menu:application uid="0x20016C02"/>
+ <!-- Settings wizard -->
+ <menu:application uid="0x10281C96"/>
+ <!--My Nokia-->
+ <menu:application uid="0x2000F8A6"/>
+ <!--Font Magnifier-->
+ <menu:application uid="0x2002DEFF"/>
+ <!--About-->
+ <menu:application uid="0x10005A22"/>
+ </menu:folder>
+ <!--Search application-->
+ <menu:application uid="0x200044D5"/>
+ <!-- Downloaded (if possible) -->
+ <menu:folder title_name="&qtn_apps_my_apps_title;"
+ long_name="&qtn_apps_my_apps_list;"
+ short_name="&qtn_apps_my_apps_grid;"
+ applicationgroup_name="Downloaded"
+ icon_file="z:\resource\apps\taika_icons.mif"
+ icon_id="16392"
+ mask_id="16393"
+ icon_skin_minor_id="0x2173"
+ icon_skin_major_id="0x101F86E3">
+ </menu:folder>
+ <!-- User Guide -->
+ <menu:application uid="0x10005234"/>
+ <!-- Chat IM -->
+ <menu:application uid="0x2000DD59" predefined_widget="true"/>
+ <!--Camera-->
+ <menu:application uid="0x101F857A"/>
+ <!--Photo Editor-->
+ <menu:application uid="0x20026F35"/>
+ <!--Video Editor-->
+ <menu:application uid="0x20026F2F"/>
+ <!--Games folder-->
+ <menu:folder title_name="&qtn_apps_games_title;"
+ long_name="&qtn_apps_games_list;"
+ short_name="&qtn_apps_games_grid;"
+ applicationgroup_name="Games"
+ icon_file="z:\resource\apps\matrixmenudata.mif"
+ icon_id="16396"
+ mask_id="16397"
+ icon_skin_minor_id="0x2184"
+ icon_skin_major_id="0x101F86E3" >
+ <!--Games/N-Gage application-->
+ <!-- <menu:application uid="0x20007B39" /> -->
+ <!--Climate mission-->
+ <!--<menu:application uid="0x2002A09D"/> -->
+ <!--Maps OVI challenge-->
+ <!-- <menu:application uid="0x2002A08C"/> -->
+ </menu:folder>
+ <!--Here and Now-->
+ <menu:application uid="0x2000E557"/>
+ <!--Traveler-->
+ <menu:application uid="0x2001E1AE"/>
+ <!-- PinFree.me -->
+
+ <!-- Operator menu -->
+ <menu:application uid="0x10008D5E"/>
+ <!-- Plus all widgets -->
+ </menu:folder>
+ <menu:folder flags="hidden" long_name="mcsplugin_folder">
+ <menu:application uid="0x100058EC"
+ view="0x10207250"
+ icon_file="aimcsplugin.mif"
+ icon_id="16394"
+ mask_id="16395"
+ long_name="&qtn_apps_connectivity_list;"/>
+
+ <menu:application uid="0x100058EC"
+ view="0x10283321"
+ icon_file="aimcsplugin.mif"
+ icon_id="16392"
+ mask_id="16393"
+ long_name="&qtn_apps_installations_list;"/>
+
+ <menu:shortcut uid="0x99999999"
+ long_name="&qtn_apps_newmessage_list;"
+ icon_file="aimcsplugin.mif"
+ icon_id="16406"
+ mask_id="16407"
+ icon_skin_minor_id="0x2056"
+ icon_skin_major_id="0x101F86E3"
+ param="messaging:msg"/>
+
+ <menu:shortcut uid="0x99999998"
+ long_name="&qtn_apps_msgtypeselection_list;"
+ icon_file="aimcsplugin.mif"
+ icon_id="16388"
+ mask_id="16389"
+ icon_skin_minor_id="0x2058"
+ icon_skin_major_id="0x101F86E3"
+ param="messaging:seltype"/>
+
+ <menu:shortcut uid="0x99999997"
+ long_name="&qtn_apps_newemail_list;"
+ icon_file="aimcsplugin.mif"
+ icon_id="16402"
+ mask_id="16403"
+ param="messaging:email"/>
+
+ <menu:shortcut uid="0x99999996"
+ long_name="&qtn_apps_newsyncml_list;"
+ icon_file="aimcsplugin.mif"
+ icon_id="16390"
+ mask_id="16391"
+ icon_skin_minor_id="0x205a"
+ icon_skin_major_id="0x101F86E3"
+ param="messaging:syncmlmail"/>
+
+ <menu:shortcut uid="0x99999995"
+ long_name="&qtn_apps_newpostcard_list;"
+ icon_file="aimcsplugin.mif"
+ icon_id="16400"
+ mask_id="16401"
+ icon_skin_minor_id="0x2057"
+ icon_skin_major_id="0x101F86E3"
+ param="messaging:postcard"/>
+
+ <menu:shortcut uid="0x99999994"
+ long_name="&qtn_apps_newaudiomsg_list;"
+ icon_file="aimcsplugin.mif"
+ icon_id="16404"
+ mask_id="16405"
+ param="messaging:audiomsg"/>
+
+ <menu:shortcut flags="hidden"
+ uid="0x99999991"
+ long_name="&qtn_apps_undefined_list;"
+ icon_file="aimcsplugin.mif"
+ icon_id="16410"
+ mask_id="16411"
+ icon_skin_minor_id="0x24ba"
+ icon_skin_major_id="0x101F86E3"/>
+
+ <menu:shortcut uid="0x99999989"
+ long_name="&qtn_apps_dialledcalls_list;"
+ icon_file="aimcsplugin.mif"
+ icon_id="16398"
+ mask_id="16399"
+ param="logs:dialed"/>
+
+ <menu:shortcut flags="hidden"
+ uid="0x99999990"
+ long_name="&qtn_apps_manage_list;"
+ icon_file="aimcsplugin.mif"
+ icon_id="16408"
+ mask_id="16409"
+ icon_skin_minor_id="0x25f0"
+ icon_skin_major_id="0x101F86E3"/>
+
+ <menu:shortcut uid="0x99999992"
+ long_name="&qtn_apps_profiles_list;"
+ icon_file="profileapp_aif.mif"
+ icon_id="16384"
+ mask_id="16385"
+ param="profiles"/>
+
+ <!-- Menu Application Launcher -->
+ <menu:application uid="0x101F4CD2"/>
+ <!-- Themes Application Launcher -->
+ <menu:application uid="0x10005A32"/>
+ <!-- Photos Suite launcher -->
+ <menu:application uid="0x200104E4"/>
+ <!-- Video Suite launcher -->
+ <menu:application uid="0x200211FA"/>
+ <!-- Conversation application -->
+ <menu:application uid="0x2002A540"/>
+ </menu:folder>
+ </menu:folder>
+</menu:data>
--- a/menufw/menusuites/foldersuite/group/bld.inf Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menusuites/foldersuite/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
@@ -42,7 +42,11 @@
#ifdef _MATRIX_MENU_INCLUDE_TEST_CONTENT
../data/matrixmenudatatestcontent.xml Z:/private/200113DD/content/matrixmenudata.xml
#else
+// #if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+// ../data/matrixmenudata_vga.xml Z:/private/200113DD/content/matrixmenudata.xml
+// #else
../data/matrixmenudata.xml Z:/private/200113DD/content/matrixmenudata.xml
+// #endif
#endif
../data/matrixmenudata.dtd Z:/private/200113DD/content/01/matrixmenudata.dtd
Binary file menufw/menusuites/foldersuite/loc/matrixmenudata.loc has changed
--- a/taskswitcher/contextengine/tsfswpreviewprovider/inc/tspreviewobserver.h Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/contextengine/tsfswpreviewprovider/inc/tspreviewobserver.h Tue Sep 14 20:58:58 2010 +0300
@@ -61,7 +61,7 @@
* @param aWgId Window group id of the application
* @param aClockwise marks direction of the rotation (ETrue - clockwise, EFalse - counter clockwise)
*/
- virtual void HandleFswPpApplicationBitmapRotation( TInt aWgId, TBool aClockwise ) = 0;
+ virtual void HandleFswPpApplicationBitmapRotation( TInt aWgId, TInt aFbsHandle, TBool aClockwise ) = 0;
};
#endif // TSPREVIEWOBSERVER_H
--- a/taskswitcher/contextengine/tsfswpreviewprovider/src/tspropertylistener.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/contextengine/tsfswpreviewprovider/src/tspropertylistener.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -71,12 +71,14 @@
}
case EOperationBitmapRotation90:
{
- iObs.HandleFswPpApplicationBitmapRotation( iWgId, ETrue );
+ iObs.HandleFswPpApplicationBitmapRotation( iWgId,
+ iFbsBitmapId, ETrue );
break;
}
case EOperationBitmapRotation270:
{
- iObs.HandleFswPpApplicationBitmapRotation( iWgId, EFalse );
+ iObs.HandleFswPpApplicationBitmapRotation( iWgId,
+ iFbsBitmapId, EFalse );
break;
}
default:
--- a/taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/inc/previewprovidercrp.h Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/inc/previewprovidercrp.h Tue Sep 14 20:58:58 2010 +0300
@@ -117,7 +117,7 @@
/*
* Allocate resources and take screenshot
*/
- void ScreenshotL();
+ void ScreenshotL( TBool aRotation );
/**
* Takes the screenshot.
@@ -144,7 +144,7 @@
/**
* Notifies the PreviewProviderClient when screenshot is ready for copying.
*/
- void ScaleCompleteL(const CFbsBitmap& aBitmap);
+ void ScaleCompleteL( const CFbsBitmap& aBitmap, TBool aRotation );
/**
* Notifies the PreviewProviderClient when an application has been exited.
@@ -152,11 +152,6 @@
void UnregisterComplete( TInt aWgId );
/**
- * Notifies the PreviewProviderClient that specific bitmap needs rotation.
- */
- void BitmapRotationNeeded( TInt aWgId, TBool aClockwise );
-
- /**
* Uses window server front buffer to create a screenshot.
* @param aFront preallocated destination bitmap
* @param aFront Front buffer.
--- a/taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/src/previewprovidercrp.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/src/previewprovidercrp.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -33,7 +33,7 @@
// CONSTANTS
const TInt KImpId( 0x20016BEC );
-const TInt KMinTimeForOrientationSwitch = 1; // 1 second
+const TInt64 KMinTimeForOrientationSwitch = 500000; // 0.5 second
// --------------------------------------------------------------------------
// CPreviewProviderCRP::CreateL
@@ -126,7 +126,7 @@
iScreenshotMode = static_cast<TDisplayMode>( in.ReadInt32L() );
break;
case NPreviewMsg::ETakePreview:
- ScreenshotL();
+ ScreenshotL( FALSE );
break;
case NPreviewMsg::EAckPreviewReady:
RemoveScreenshot( in.ReadInt32L() );
@@ -172,21 +172,18 @@
{
TTime currTime;
currTime.HomeTime();
- TTimeIntervalSeconds secondsFrom;
- TInt err = currTime.SecondsFrom( iScreenChangedTime, secondsFrom );
- if ( err != KErrNone || secondsFrom.Int() > KMinTimeForOrientationSwitch )
+ TTimeIntervalMicroSeconds micSecondsFrom = currTime.MicroSecondsFrom( iScreenChangedTime );
+ if ( micSecondsFrom.Int64() > KMinTimeForOrientationSwitch )
{
if ( iLastWgIdRedraw )
{
- TRAP_IGNORE( ScreenshotL() );
+ TRAP_IGNORE( ScreenshotL( FALSE ) );
}
}
else
{
// Reset time to allow screenshot taking on next wg change
iScreenChangedTime = 0;
- // Order screenshot rotation
- BitmapRotationNeeded( iPrevId?iPrevId:iPrevReg, iClockwiseRot );
}
iPrevReg = 0;
}
@@ -198,7 +195,9 @@
iScreenChangedTime.HomeTime();
if ( iLastWgIdRedraw )
{
- TRAP_IGNORE( ScreenshotL() );
+ TRAP_IGNORE(
+ ScreenshotL( TRUE );
+ );
}
}
else if ( aEvent.Type() == TWservCrEvent::EScreenDrawing )
@@ -213,13 +212,22 @@
// CPreviewProviderCRP::ScaleComplete
// --------------------------------------------------------------------------
//
-void CPreviewProviderCRP::ScaleCompleteL( const CFbsBitmap& aBitmap )
+void CPreviewProviderCRP::ScaleCompleteL( const CFbsBitmap& aBitmap,
+ TBool aRotation )
{
TSLOG_CONTEXT( ScaleComplete, TSLOG_LOCAL );
TSLOG_IN();
+ TInt msgType = NPreviewMsg::EPreviewReady;
+ if ( aRotation )
+ {
+ msgType = iClockwiseRot ?
+ NPreviewMsg::EBitmapRotationNeeded90 :
+ NPreviewMsg::EBitmapRotationNeeded270;
+ }
+
const TInt msg[] = {
- NPreviewMsg::EPreviewReady,
+ msgType,
iPrevId?iPrevId:iPrevReg,
aBitmap.Handle()
};
@@ -252,28 +260,6 @@
TSLOG_OUT();
}
-
-// --------------------------------------------------------------------------
-// CPreviewProviderCRP::BitmapRotationNeeded
-// --------------------------------------------------------------------------
-//
-void CPreviewProviderCRP::BitmapRotationNeeded( TInt aWgId, TBool aClockwise )
- {
- TSLOG_CONTEXT( BitmapRotationNeeded, TSLOG_LOCAL );
- TSLOG_IN();
-
- const TInt msg[] = {
- aClockwise ? NPreviewMsg::EBitmapRotationNeeded90 : NPreviewMsg::EBitmapRotationNeeded270,
- aWgId,
- 0
- };
- TPckgC<TInt[sizeof(msg) / sizeof(TInt)]> buf(msg);
- SendMessage(buf);
-
- TSLOG_OUT();
- }
-
-
// --------------------------------------------------------------------------
// CPreviewProviderCRP::Register
// --------------------------------------------------------------------------
@@ -313,12 +299,12 @@
// CPreviewProviderCRP::ScreenShotL
// --------------------------------------------------------------------------
//
-void CPreviewProviderCRP::ScreenshotL()
+void CPreviewProviderCRP::ScreenshotL( TBool aRotation )
{
CFbsBitmap* screenshot = new (ELeave)CFbsBitmap();
CleanupStack::PushL( screenshot );
ScreenshotL( *screenshot );
- ScaleCompleteL( *screenshot );
+ ScaleCompleteL( *screenshot, aRotation );
iScreenshots.InsertL( screenshot, iScreenshots.Count() );
CleanupStack::Pop( screenshot );
CheckOverflow();
--- a/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswdatalist.h Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswdatalist.h Tue Sep 14 20:58:58 2010 +0300
@@ -149,6 +149,11 @@
*/
TInt FindMostTopParentWgId( TInt aWgId );
+ /**
+ * Remove all screenshots from hidden apps, they are not used.
+ */
+ void RemoveHiddenAppsScrenshotsL();
+
private:
/**
* Adds running apps to the list.
--- a/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswengine.h Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswengine.h Tue Sep 14 20:58:58 2010 +0300
@@ -140,7 +140,8 @@
// from MTsFastSwapPreviewObserver
void HandleFswPpApplicationChange( TInt aWgId, TInt aFbsHandle );
void HandleFswPpApplicationUnregistered( TInt aWgId );
- void HandleFswPpApplicationBitmapRotation( TInt aWgId, TBool aClockwise );
+ void HandleFswPpApplicationBitmapRotation( TInt aWgId,
+ TInt aFbsHandle, TBool aClockwise );
void RotateL( CFbsBitmap& aBitmap, TInt aWgId, TBool aClockwise );
--- a/taskswitcher/contextengine/tsfswserver/engine/src/tsfswdatalist.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/contextengine/tsfswserver/engine/src/tsfswdatalist.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -737,6 +737,10 @@
if ( (iData[i]->Widget() == aConsiderWidgets) &&
!CheckIfExists(*iData[i], aListToFit) )
{
+ if( aConsiderWidgets )
+ {
+ RemoveScreenshot( iData[i]->AppUid().iUid );
+ }
delete iData[i];
iData.Remove(i);
changed = ETrue;
@@ -831,5 +835,29 @@
return changed;
}
+// --------------------------------------------------------------------------
+// CTsFswDataList::RemoveScreenshotFromParent
+// --------------------------------------------------------------------------
+//
+void CTsFswDataList::RemoveHiddenAppsScrenshotsL()
+ {
+ RArray<TInt> hiddenWgIds;
+ THashMapIter<TInt, CFbsBitmap*> iter( iScreenshots );
+ while ( const TInt* wgIdkey = iter.NextKey() )
+ {
+ TInt wgId = *wgIdkey;
+ TBool hidden = HiddenApps()->IsHiddenL( AppUidForWgIdL( wgId),
+ iWsSession, wgId );
+ if( hidden )
+ {
+ hiddenWgIds.Append( wgId );
+ }
+ }
+ for ( TInt i = 0; i < hiddenWgIds.Count(); i++)
+ {
+ RemoveScreenshot( hiddenWgIds[i] );
+ }
+ hiddenWgIds.Reset();
+ }
// end of file
--- a/taskswitcher/contextengine/tsfswserver/engine/src/tsfswengine.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/contextengine/tsfswserver/engine/src/tsfswengine.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -364,6 +364,7 @@
void CTsFswEngine::HiddenAppListUpdated()
{
UpdateTaskList();
+ TRAP_IGNORE( iDataList->RemoveHiddenAppsScrenshotsL(); )
}
// --------------------------------------------------------------------------
@@ -489,10 +490,15 @@
wgId = aWgId;
}
TInt err = iDataList->AppUidForWgId( wgId, appUid );
- if ( err || appUid == KTsCameraUid )
+ TBool hidden = EFalse;
+ TRAP_IGNORE(
+ hidden = iDataList->HiddenApps()->IsHiddenL( appUid, iWsSession, aWgId) );
+ if ( err ||
+ KTsCameraUid == appUid ||
+ hidden )
{
- // Dont't assign screenshot to camera app
- TSLOG0( TSLOG_LOCAL, "Screenshot for camera - ignore" );
+ // Dont't assign screenshot to camera app or hidden app
+ TSLOG0( TSLOG_LOCAL, "Screenshot for camera or hidden app - ignore" );
iPreviewProvider->AckPreview(aFbsHandle);
TSLOG_OUT();
return;
@@ -529,11 +535,14 @@
// Callback from CTsFastSwapPreviewProvider
// --------------------------------------------------------------------------
//
-void CTsFswEngine::HandleFswPpApplicationBitmapRotation( TInt aWgId, TBool aClockwise )
+void CTsFswEngine::HandleFswPpApplicationBitmapRotation( TInt aWgId,
+ TInt aFbsHandle, TBool aClockwise )
{
TSLOG_CONTEXT( HandleFswPpApplicationBitmapRotation, TSLOG_LOCAL );
TSLOG1_IN( "aWgId = %d", aWgId );
+ HandleFswPpApplicationChange( aWgId, aFbsHandle );
+
CFbsBitmap** bmp = iDataList->FindScreenshot(aWgId);
if ( bmp )
--- a/taskswitcher/taskswitcherui/taskswitcherapp/group/tsapp.mmp Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/group/tsapp.mmp Tue Sep 14 20:58:58 2010 +0300
@@ -20,7 +20,9 @@
#include <platform_paths.hrh>
#include "../inc/tsuid.hrh"
-EPOCHEAPSIZE 0x100000 0xa00000 // 1 Mb - 10 Mb
+#ifndef WINSCW
+ EPOCHEAPSIZE 0x100000 0xa00000 // 1 Mb - 10 Mb
+#endif
EPOCSTACKSIZE 0x5000 // 20KB
TARGET taskswitcher.exe
@@ -37,6 +39,7 @@
SOURCE tstaskswitcher.cpp
SOURCE tsappview.cpp
SOURCE tsfastswaparea.cpp
+SOURCE tsfastswapareautils.cpp
SOURCE tsfastswapgrid.cpp
SOURCE tsdevicestate.cpp
SOURCE tseventcontroler.cpp
@@ -81,6 +84,7 @@
LIBRARY akntouchgesturefw.lib
LIBRARY aknphysics.lib
LIBRARY touchfeedback.lib
+LIBRARY bitmaptransforms.lib
DEBUGLIBRARY flogger.lib
--- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappui.h Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappui.h Tue Sep 14 20:58:58 2010 +0300
@@ -45,9 +45,6 @@
public:
enum {
- //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- //TODO make maping to NGA transition id
- //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ENoneTransition = 0,
EForegroundTransition = 3,
EBackgroundTransition = 4,
@@ -214,6 +211,13 @@
* Currently it recognises only camera app as multimedia app.
*/
TBool IsUnderlyingAppMultimediaL();
+
+ /**
+ * Obtain aplication id by it's window group Id.
+ *
+ * @return TUid aplication id.
+ */
+ TUid GetAppIdL( TInt aWgId );
private:
--- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h Tue Sep 14 20:58:58 2010 +0300
@@ -34,6 +34,8 @@
class CTsEventControler;
class MTsDataChangeObserver;
class CAknLongTapAnimation;
+class CTsFastSwapAreaExtension;
+class CAknPointerEventSuppressor;
/**
* Taskswitcher Fast Swap area UI.
@@ -180,6 +182,13 @@
void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType);
public:
+
+ enum TsFastSwapAreaGridData {
+ EMaxItemsOnScreen = 1,
+ EGridItemWidth,
+ EGridItemGap
+ };
+
/**
* Implements drag gesture handling
* @see MTsEventControlerObserver
@@ -229,6 +238,21 @@
*/
TBool WgOnTaskList( TInt aWgId );
+ /**
+ * Returns full grid view size.
+ */
+ TSize GridWorldSize();
+
+ /**
+ * Retrieves number of items in grid
+ */
+ TInt GridItemCount();
+
+ /**
+ * Returnes value of the requested grid data
+ */
+ TInt GetGridItemData( TsFastSwapAreaGridData aDataType );
+
public:
// from CCoeControl
TInt CountComponentControls() const;
@@ -262,23 +286,21 @@
* Switches to another application.
*/
void SwitchToApp( TInt aWgId, const TUid& aUid );
-
- /**
- * Makes a copy of the given bitmap.
- * Also scaled to the given size, but maintains aspect ratio,
- * so the size of the returned bitmap may be less then aSize.
- */
- CFbsBitmap* CopyBitmapL( TInt aFbsHandle, TSize aSize );
/**
- * Called from HandleFswContentChanged.
+ * Update and prepare data for grid.
*/
- void HandleFswContentChangedL();
+ void GetContentForGrid();
/**
- * Shows the content from iArray on the screen.
+ * Obtain actual data from server.
+ */
+ void GetContentL();
+
+ /**
+ * Prepare the content from iArray to be shown on the screen.
*/
- void RenderContentL( TBool aSuppressAnimation = EFalse );
+ void RenderContentL( );
/**
* Creates the ganes grid control.
@@ -296,11 +318,6 @@
* @param aItemCount number of items in grid
*/
void LayoutGridViewL( TInt aItemCount );
-
- /**
- * Returns rectangles for fast swap area controls
- */
- void GetFastSwapAreaRects( RArray<TAknLayoutRect>& aRects );
/**
* Creates a stylus popup instance (iPopup) if not yet done.
@@ -320,22 +337,6 @@
void NotifyChange();
/**
- * Retrieves and returns size for image graphics.
- */
- TSize PreferredImageSize();
-
- /**
- * Retrieves number of items in grid
- */
- TInt GridItemCount();
-
- /**
- * Calculates the correct size if aspect ratio needs to be preserved.
- */
- TSize CalculateSizePreserveRatio(const TSize& aTargetAreaSize,
- const TSize& aSourceSize);
-
- /**
* Selects next item in grid
*/
void SelectNextItem();
@@ -350,11 +351,6 @@
void CenterItem( TInt aRedrawDelay);
/**
- * Returns full grid view size.
- */
- TSize GridWorldSize();
-
- /**
* Updates grid, called for manual grid scroll update
*
* @param aForceRedraw if set to ETrue - redraw will be forced
@@ -369,53 +365,12 @@
TSize ViewSize();
/**
- * Returns the position of the given item inside grid world rect.
- * Returns point in the middle of the view rectangle.
- *
- * @param aItemIdx index of the item for which calculation will be done
- */
- TPoint ItemViewPosition( TInt aItemIdx );
-
- /**
- * Returns index of the shown item, based on the logical
- * position of the grids view. Item that is closest to the
- * middle of screen is returned.
- *
- * @param aViewPos grids view position. This must be point in
- * the middle of the view rectangle
- * @return index of the item
- */
- TInt ViewToVisibleItem( const TPoint aViewPos );
-
- /**
- * Launches increasing pop-up feedback.
- */
- void LaunchPopupFeedback();
-
- /**
* Show highlight when disabled and
* consume EEventKeyUp that follows after event that swiched on the highlight.
*/
TKeyResponse ShowHighlightOnKeyEvent(const TKeyEvent& aKeyEvent, TEventCode aType);
/**
- * Returns current screen orientation:
- *
- * @return 1 if landscape, 0 if portait
- */
- TInt GetCurrentScreenOrientation();
-
- /**
- * Retrieves variety value, based on current screen resolution.
- *
- * @param aVariety result of the function, 0 value means portrait
- * value of 1 indicates landscape
- * @return ETrue if screen resolution differs from vale returned by
- * layout meta data functions.
- */
- TBool GetVariety( TInt& aVariety );
-
- /**
* Cancels long tap animation.
*/
void CancelLongTapAnimation( TBool aDisablePopup = ETrue );
@@ -434,6 +389,9 @@
// parent control
CCoeControl& iParent;
+ // utility helper class
+ CTsFastSwapAreaExtension* iFastSwapExt;
+
// device state
// not own
CTsDeviceState& iDeviceState;
@@ -485,6 +443,8 @@
// Key event handling
TBool iConsumeEvent;
TBool iKeyEvent;
+ CAknPointerEventSuppressor* iEventSupressor;
+ TBool iSupressDrag;
// App closing handling
RArray<TInt> iIsClosing;
@@ -495,6 +455,9 @@
CAknLongTapAnimation* iLongTapAnimation;
CTsFastSwapTimer* iLongTapAnimationTimer;
TBool iLongTapAnimationRunning;
+
+ // Screenshot handling
+ RArray<TInt> iPrevScreenshots;
};
#endif // TSFASTSWAPAREA_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapareautils.h Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,220 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Fast swap area utilities classes
+ *
+*/
+
+#ifndef TSFASTSWAPAREAUTILS_H_
+#define TSFASTSWAPAREAUTILS_H_
+
+#include <e32base.h>
+
+// Forwar class declarations
+class CEikonEnv;
+class TAknLayoutRect;
+class CTsFastSwapTimer;
+class CTsFastSwapArea;
+class CTsFastSwapGrid;
+class CTsFswEntry;
+class CBitmapScaler;
+class CTsFastSwapAreaExtension;
+
+
+/**
+ * Interface for observing timer class.
+ */
+class MTsFastSwapTimerObserver
+ {
+public:
+ /**
+ * Called when timer is completed
+ */
+ virtual void TimerCompletedL( CTsFastSwapTimer* aSource ) = 0;
+ };
+
+
+
+/**
+ * Timer class for handling timed events
+ */
+class CTsFastSwapTimer : public CTimer
+ {
+public:
+ // Constructor
+ CTsFastSwapTimer( MTsFastSwapTimerObserver& aObserver );
+ // Destructor
+ ~CTsFastSwapTimer();
+ // 2nd phase constructor
+ void ConstructL();
+
+private: // From CTimer
+ void RunL();
+
+private: // Data
+ MTsFastSwapTimerObserver* iObserver; // not own
+ };
+
+
+
+/**
+ * Asynchronous class for handling screenshots loading
+ * and rescaling to achieve better quality.
+ */
+class CTsBitmapScaleTask : public CActive
+ {
+public:
+ CTsBitmapScaleTask( CTsFastSwapAreaExtension& aObserver );
+ ~CTsBitmapScaleTask();
+ void StartLD( CFbsBitmap* aSourceBitmap,
+ CFbsBitmap* aTargetBitmap );
+private:
+ void RunL();
+ void DoCancel();
+private:
+ // Data
+ CTsFastSwapAreaExtension& iObserver;
+ CBitmapScaler* iScaler; // owned
+ CFbsBitmap* iSourceBmp; // owned
+ };
+
+
+
+/**
+ * Utility class containg methods for fast swap area handling.
+ */
+class CTsFastSwapAreaExtension: public CBase
+ {
+
+public:
+
+ /**
+ * Two-phase constructor.
+ *
+ * @param aRect Area where fast swap info & list should draw itself.
+ * @param aParent Parent CoeControl.
+ */
+ static CTsFastSwapAreaExtension* NewL( CTsFastSwapArea& aFastSwapArea,
+ CEikonEnv& aEnv);
+
+ /**
+ * @copydoc NewL
+ */
+ static CTsFastSwapAreaExtension* NewLC( CTsFastSwapArea& aFastSwapArea,
+ CEikonEnv& aEnv );
+
+ /**
+ * Destructor.
+ */
+ ~CTsFastSwapAreaExtension();
+
+private:
+
+ /**
+ * @copydoc NewL
+ */
+ void ConstructL();
+
+ /**
+ * C++ constructor.
+ */
+ CTsFastSwapAreaExtension( CTsFastSwapArea& aFastSwapArea,
+ CEikonEnv& aEnv );
+
+public:
+
+ /**
+ * Returns current screen orientation:
+ *
+ * @return 1 if landscape, 0 if portait
+ */
+ TInt GetCurrentScreenOrientation();
+
+ /**
+ * Retrieves variety value, based on current screen resolution.
+ *
+ * @param aVariety result of the function, 0 value means portrait
+ * value of 1 indicates landscape
+ * @return ETrue if screen resolution differs from vale returned by
+ * layout meta data functions.
+ */
+ TBool GetVariety( TInt& aVariety );
+
+ /**
+ * Returns rectangles for fast swap area controls
+ */
+ void GetFastSwapAreaRects( RArray<TAknLayoutRect>& aRects );
+
+ /**
+ * Returns the position of the given item inside grid world rect.
+ * Returns point in the middle of the view rectangle.
+ *
+ * @param aItemIdx index of the item for which calculation will be done
+ */
+ TPoint ItemViewPosition( TInt aItemIdx );
+
+ /**
+ * Returns index of the shown item, based on the logical
+ * position of the grids view. Item that is closest to the
+ * middle of screen is returned.
+ *
+ * @param aViewPos grids view position. This must be point in
+ * the middle of the view rectangle
+ * @return index of the item
+ */
+ TInt ViewToVisibleItem( const TPoint aViewPos );
+
+ /**
+ * Launches increasing pop-up feedback.
+ */
+ void LaunchPopupFeedback();
+
+ /**
+ * Retrieves and returns size for image graphics.
+ */
+ TSize PreferredImageSize();
+
+ /**
+ * Calculates the correct size if aspect ratio needs to be preserved.
+ */
+ TSize CalculateSizePreserveRatio(const TSize& aTargetAreaSize,
+ const TSize& aSourceSize);
+
+ /**
+ * Makes a copy of the given bitmap.
+ * Also scaled to the given size, but maintains aspect ratio,
+ * so the size of the returned bitmap may be less then aSize.
+ */
+ CFbsBitmap* CopyBitmapL( TInt aFbsHandle, TSize aSize, TBool aIsScreenshot );
+
+ /**
+ * Cancels ongoing scale tasks
+ */
+ void CancelScaleTasks();
+
+ /**
+ * Callback for updating task list.
+ */
+ void ScaleFinished( CTsBitmapScaleTask* iFinishedTask );
+
+private: // Data
+
+ CTsFastSwapArea& iFastSwapArea;
+
+ CEikonEnv& iEnv;
+
+ RPointerArray<CTsBitmapScaleTask> iScaleTasks;
+
+ };
+
+#endif /* TSFASTSWAPAREAUTILS_H_ */
--- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapgrid.h Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapgrid.h Tue Sep 14 20:58:58 2010 +0300
@@ -22,9 +22,9 @@
#include <AknGrid.h>
#include <aknconsts.h>
#include "tsdevicestate.h"
+#include "tsfastswapareautils.h"
class CAknsFrameBackgroundControlContext;
-class CTsFastSwapTimer;
/**
* Observer for handling fast swap grid events
@@ -42,16 +42,6 @@
};
-class MTsFastSwapTimerObserver
- {
-public:
- /**
- * Called when timer is completed
- */
- virtual void TimerCompletedL( CTsFastSwapTimer* aSource ) = 0;
- };
-
-
/**
* Avkon grid implementing custom item drawer
*/
@@ -375,25 +365,4 @@
};
-
-/**
- * Timer class for handling highlight bevaiour
- */
-class CTsFastSwapTimer : public CTimer
- {
-public:
- // Constructor
- CTsFastSwapTimer( MTsFastSwapTimerObserver& aObserver );
- // Destructor
- ~CTsFastSwapTimer();
- // 2nd phase constructor
- void ConstructL();
-
-private: // From CTimer
- void RunL();
-
-private: // Data
- MTsFastSwapTimerObserver* iObserver; // not own
- };
-
#endif /* TSFASTSWAPGRID_H_ */
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -155,6 +155,7 @@
iApplicationTask.SetWgId( iWg.Identifier() );
// And finally, go to background.
+ iForeground = ETrue;
MoveAppToBackground( ENoneTransition );
iEikonEnv->RootWin().SetOrdinalPosition(-1, ECoeWinPriorityNeverAtFront);
@@ -167,11 +168,6 @@
iUiStarted = EFalse;
iDisableAppKeyHandling = EFalse;
- // Set process priority to high to avoid being
- // locked by heavy ui apps processing
- iEikonEnv->WsSession().ComputeMode(RWsSession::EPriorityControlDisabled);
- RProcess().SetPriority(EPriorityHigh);
-
iForegroundDelayed = EFalse;
iDelayedForegroundInProgress = EFalse;
@@ -183,7 +179,7 @@
// Perform the first phase of two phase construction
// -----------------------------------------------------------------------------
//
-CTsAppUi::CTsAppUi(): iForeground( ETrue ),
+CTsAppUi::CTsAppUi(): iForeground( EFalse ),
iApplicationTask( iCoeEnv->WsSession() )
{
// no implementation required
@@ -196,7 +192,7 @@
//
CTsAppUi::~CTsAppUi()
{
- if( GfxTransEffect::IsRegistered( iAppView ) )
+ if( iAppView && GfxTransEffect::IsRegistered( iAppView ) )
{
GfxTransEffect::Deregister(iAppView);
@@ -270,6 +266,7 @@
TUint aSubCom )
{
const TDesC8* ptr = reinterpret_cast<const TDesC8*>(iAppView);
+ GfxTransEffect::AbortFullScreen();
GfxTransEffect::Abort(iAppView);
GfxTransEffect::Begin( iAppView, aTranstionId );
GfxTransEffect::SetDemarcation( iAppView, iAppView->Rect() );
@@ -301,6 +298,7 @@
{
// App start animation
const TDesC8* ptr = reinterpret_cast<const TDesC8*>(iAppView);
+ GfxTransEffect::AbortFullScreen();
GfxTransEffect::Abort(iAppView);
TInt groupId = GfxTransEffect::BeginGroup();
GfxTransEffect::BeginFullScreen(
@@ -538,6 +536,8 @@
//
TInt CTsAppUi::GoToBackgroundTimerCallback( TAny* aParam )
{
+ TSLOG_STATIC_CONTEXT( GoToBackgroundTimerCallback, TSLOG_LOCAL, RThread().Id() );
+ TSLOG_IN();
CTsAppUi* self = static_cast<CTsAppUi*>( aParam );
if ( self->iGoToBackgroundTimer )
{
@@ -550,7 +550,7 @@
// Notify
self->HandleSwitchToBackgroundEvent();
-
+ TSLOG_OUT();
return 0;
}
@@ -584,6 +584,10 @@
TSLOG_CONTEXT( MoveAppToForeground, TSLOG_LOCAL );
TSLOG_IN();
+ if ( !iUiStarted )
+ {
+ TRAP_IGNORE( iUnderAppWgId = WgIdOfUnderlyingAppL(EFalse) );
+ }
iUiStarted = ETrue;
// Request window server to bring our application
@@ -626,7 +630,8 @@
{
iForeground = EFalse;
SetTaskswitcherStateProperty( KTaskswitcherBackgroundValue );
-
+
+ iAppView->MakeVisible( EFalse );
// notify view
iAppView->HandleSwitchToBackgroundEvent();
@@ -743,7 +748,6 @@
{
SetOrientationL(EAppUiOrientationPortrait);
}
- RProcess().SetPriority(EPriorityForeground);
SetFullScreenApp(EFalse);
iEikonEnv->RootWin().SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront);
}
@@ -765,7 +769,6 @@
iEikonEnv->RootWin().SetOrdinalPosition(-1, ECoeWinPriorityNeverAtFront);
SetOrientationL(EAppUiOrientationAutomatic);
SetFullScreenApp(EFalse);
- RProcess().SetPriority(EPriorityHigh);
}
TSLOG_OUT();
}
@@ -802,12 +805,16 @@
void CTsAppUi::HandleWsEventL(const TWsEvent& aEvent,
CCoeControl* aDestination)
{
+ TSLOG_CONTEXT( CTsAppUi::HandleWsEventL, TSLOG_LOCAL );
CAknAppUi::HandleWsEventL(aEvent, aDestination);
TInt eventType = aEvent.Type();
if ( eventType == EEventWindowGroupListChanged )
{
TInt wgId = WgIdOfUnderlyingAppL(EFalse);
+ TSLOG2( TSLOG_INFO, "WgIdOfUnderlyingAppL: %d appId: %d",
+ wgId, GetAppIdL( wgId ).iUid );
if ( iForeground &&
+ wgId &&
wgId != iUnderAppWgId &&
!iAppView->AppCloseInProgress(iUnderAppWgId) &&
!iAppView->WgOnTaskList(wgId) )
@@ -820,6 +827,7 @@
}
iUnderAppWgId = wgId;
}
+ TSLOG_OUT();
}
@@ -829,12 +837,19 @@
//
TInt CTsAppUi::WgIdOfUnderlyingAppL( TBool aIgnoreParentChild )
{
+ TSLOG_CONTEXT( CTsAppUi::WgIdOfUnderlyingAppL, TSLOG_LOCAL );
TInt retVal(0);
TInt underlyingWg = CheckForUnderlyingHiddenAppsL();
if ( !underlyingWg )
{
- TApaTaskList taskList( iEikonEnv->WsSession() );
+ TApaTaskList taskList(iEikonEnv->WsSession());
underlyingWg = taskList.FindByPos(0).WgId();
+ if ( !(GetAppIdL(underlyingWg).iUid) )
+ {
+ TSLOG1 (TSLOG_INFO, "Incorrect underlying window group: %d.", underlyingWg );
+ TSLOG0 (TSLOG_INFO, "No association to appId, nor special handling for underlying hidden apps.Change return value into 0.");
+ underlyingWg = 0;
+ }
}
if ( aIgnoreParentChild )
@@ -846,6 +861,7 @@
TInt parentWg = GetTopParentWg( underlyingWg );
retVal = parentWg ? parentWg : underlyingWg;
}
+ TSLOG_OUT();
return retVal;
}
@@ -916,10 +932,7 @@
TInt underlyingWg(allWgIds[0].iId);
CleanupStack::PopAndDestroy(&allWgIds);
- CApaWindowGroupName* windowName =
- CApaWindowGroupName::NewLC( iEikonEnv->WsSession(), underlyingWg );
- TUid appUid = windowName->AppUid();
- CleanupStack::PopAndDestroy( windowName );
+ TUid appUid = GetAppIdL( underlyingWg );
if( appUid == KTsCameraUid ||
appUid == KTsTelephoneUid )
{
@@ -939,10 +952,7 @@
TApaTaskList taskList( iEikonEnv->WsSession() );
TInt underlyingWg = taskList.FindByPos(0).WgId();
- CApaWindowGroupName* windowName =
- CApaWindowGroupName::NewLC( iEikonEnv->WsSession(), underlyingWg );
- TUid appUid = windowName->AppUid();
- CleanupStack::PopAndDestroy( windowName );
+ TUid appUid = GetAppIdL( underlyingWg );
if ( appUid == KTsCameraUid )
{
retVal = ETrue;
@@ -961,4 +971,18 @@
return iDelayedForegroundInProgress;
}
+// -----------------------------------------------------------------------------
+// CTsAppUi::GetAppIdL
+// -----------------------------------------------------------------------------
+//
+TUid CTsAppUi::GetAppIdL( TInt aWgId )
+ {
+ TUid retVal;
+ CApaWindowGroupName* windowName =
+ CApaWindowGroupName::NewLC( iEikonEnv->WsSession(), aWgId );
+ retVal = windowName->AppUid();
+ CleanupStack::PopAndDestroy( windowName );
+ return retVal;
+ }
+
// End of file
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappview.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappview.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -205,9 +205,18 @@
bgTport.LayoutRect( iViewRect,
AknLayoutScalable_Apps::bg_popup_window_pane_cp01( variety ) );
iBgContextOuterRect = bgTport.Rect();
- bgTport.LayoutRect( iBgContextOuterRect,
- AknLayoutScalable_Avkon::aid_inside_area_window_primary( variety ) );
- iBgContextInnerRect = bgTport.Rect();
+ if( iBgContextOuterRect == iViewRect )
+ {
+ //full screen
+ iBgContextInnerRect = iBgContextOuterRect;
+ }
+ else
+ {
+ bgTport.LayoutRect( iBgContextOuterRect,
+ AknLayoutScalable_Avkon::
+ aid_inside_area_window_primary( variety ) );
+ iBgContextInnerRect = bgTport.Rect();
+ }
TSLOG4( TSLOG_INFO, "outer rect for popup = %d %d %d %d",
iBgContextOuterRect.iTl.iX, iBgContextOuterRect.iTl.iY,
iBgContextOuterRect.iBr.iX, iBgContextOuterRect.iBr.iY );
@@ -243,7 +252,6 @@
iAppsHeading->ConstructL( KNullDesC() );
iAppsHeading->SetLayout( CAknPopupHeadingPane::EListHeadingPane );
- //TODO: check why we need to set rect (set already in contructL)
iFastSwapArea->SetRect( rects[1] ); // cannot be before iAppsHeading constructL
iAppsHeading->SetRect( rects[0] );
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -28,12 +28,11 @@
#include <aknlayoutscalable_apps.cdl.h>
#include <layoutmetadata.cdl.h>
#include <aknlists.h>
-#include <touchfeedback.h>
-#include <akntransitionutils.h>
-#include <akntranseffect.h>
#include <aknlongtapanimation.h>
+#include <aknpointereventsuppressor.h>
#include "tsfastswaparea.h"
+#include "tsfastswapareautils.h"
#include "tsapplogging.h"
#include "tsfswclient.h"
#include "tsappui.h"
@@ -58,6 +57,7 @@
const TInt KAppKeyTypeLong = 2;
const TInt KLayoutItemCount = 4;
+const TInt KLayoutItemGap = 0;
const TInt KRedrawTime = 250000; // 0.25 sec
const TInt KRedrawTimeForLayoutSwitch = 700000; // 0.7 sec
@@ -66,12 +66,17 @@
const TInt KOrientationSwitchTime = 1000000; // 1 sec
const TInt KLongTapAnimationInitTime = 150000; // 0.15 sec
const TInt KLongTapAnimationTimeout = 1000000; // 1 sec
+const TInt KPointerEventSuppressorMaxTapDuration = 400000; // 0.4 sec
+const TInt KPointerEventSuppressorMaxTapMoveWidth = 3;
+const TInt KPointerEventSuppressorMaxTapMoveHeight = 8;
const TInt KMaxGranularity = 4;
const TUid KTsMenuUid = { 0x101f4cd2 };
const TUid KTsHomescreenUid = { 0x102750f0 };
+
+
// -----------------------------------------------------------------------------
// CTsFastSwapArea::NewL
// -----------------------------------------------------------------------------
@@ -109,7 +114,9 @@
CTsDeviceState& aDeviceState,
CTsEventControler& aEventHandler) :
iParent(aParent), iDeviceState(aDeviceState), iEvtHandler(aEventHandler),
- iIgnoreLayoutSwitch(EFalse), iWidgetClosingCount(0), iLongTapAnimationRunning(EFalse)
+ iGridItemGap(KLayoutItemGap), iIgnoreLayoutSwitch(EFalse),
+ iSupressDrag(EFalse),iWidgetClosingCount(0),
+ iLongTapAnimationRunning(EFalse)
{
// no implementation required
}
@@ -131,6 +138,9 @@
delete iOrientationSignalTimer;
delete iLongTapAnimation;
delete iLongTapAnimationTimer;
+ delete iFastSwapExt;
+ iPrevScreenshots.Close();
+ delete iEventSupressor;
}
// -----------------------------------------------------------------------------
@@ -143,6 +153,9 @@
SetRect( aRect );
+ // Create utility class
+ iFastSwapExt = CTsFastSwapAreaExtension::NewL( *this, *iEikonEnv );
+
// setup grid
ReCreateGridL();
@@ -175,6 +188,12 @@
iActivateOnPointerRelease = TPoint();
iHandlePointerCandidate = EFalse;
+ iEventSupressor = CAknPointerEventSuppressor::NewL();
+ TSize maxTapMove(KPointerEventSuppressorMaxTapMoveWidth,
+ KPointerEventSuppressorMaxTapMoveHeight );
+ iEventSupressor->SetMaxTapMove(maxTapMove);
+ iEventSupressor->SetMaxTapDuration(KPointerEventSuppressorMaxTapDuration);
+
ActivateL();
}
@@ -241,25 +260,31 @@
//
void CTsFastSwapArea::LayoutGridL()
{
+ TSLOG_CONTEXT( CTsFastSwapArea::LayoutGridL, TSLOG_LOCAL );
+ TSLOG_IN();
+
RArray<TAknLayoutRect> rects;
CleanupClosePushL(rects);
rects.ReserveL(KLayoutItemCount);
- GetFastSwapAreaRects(rects);
+ iFastSwapExt->GetFastSwapAreaRects(rects);
TAknLayoutRect gridAppPane = rects[0];
TAknLayoutRect gridItem = rects[1];
TAknLayoutRect gridImage = rects[2];
- TAknLayoutRect gridNextItem = rects[3];
+
CleanupStack::PopAndDestroy(&rects);
iGrid->SetRect(gridAppPane.Rect());
+ CTsAppUi* appUi = static_cast<CTsAppUi*>(iEikonEnv->AppUi());
+
TInt variety;
- TBool disable = GetVariety(variety);
+ TBool disable = iFastSwapExt->GetVariety(variety);
if ( disable )
{
- TRAP_IGNORE(static_cast<CTsAppUi*>(iEikonEnv->AppUi())->RequestPopUpL());
+ TRAP_IGNORE(appUi->RequestPopUpL());
}
variety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0; // double check to avoid layout panic
+ TSLOG1( TSLOG_INFO, "variety %d", variety );
TAknLayoutScalableParameterLimits gridParams =
AknLayoutScalable_Apps::cell_tport_appsw_pane_ParamLimits( variety );
@@ -290,14 +315,6 @@
iGrid->ItemDrawer()->FormattedCellData()->SetSubCellColorsL(1, colors);
iGrid->SetStrokeColors(textColor, highlightTextColor);
- if ( AknLayoutUtils::LayoutMirrored() )
- {
- iGridItemGap = gridItem.Rect().iTl.iX - gridNextItem.Rect().iBr.iX;
- }
- else
- {
- iGridItemGap = gridNextItem.Rect().iTl.iX - gridItem.Rect().iBr.iX;
- }
iMaxItemsOnScreen = Rect().Width() / gridItem.Rect().Width();
if ( iMaxItemsOnScreen > 1 )
{
@@ -309,7 +326,6 @@
}
}
iGridItemWidth = gridItem.Rect().Width();
-
// Update item drawer
iGrid->UpdateItemDrawerLayoutDataL();
@@ -318,8 +334,10 @@
if ( disable )
{
- TRAP_IGNORE(static_cast<CTsAppUi*>(iEikonEnv->AppUi())->DisablePopUpL());
+ TRAP_IGNORE(appUi->DisablePopUpL());
}
+
+ TSLOG_OUT();
}
@@ -332,7 +350,7 @@
RArray<TAknLayoutRect> rects;
CleanupClosePushL(rects);
rects.ReserveL(KLayoutItemCount);
- GetFastSwapAreaRects(rects);
+ iFastSwapExt->GetFastSwapAreaRects(rects);
TAknLayoutRect gridItem = rects[1];
CleanupStack::PopAndDestroy(&rects);
if ( aItemCount )
@@ -361,48 +379,6 @@
}
}
-
-// --------------------------------------------------------------------------
-// CTsFastSwapArea::GetFastSwapAreaRects
-// --------------------------------------------------------------------------
-//
-void CTsFastSwapArea::GetFastSwapAreaRects( RArray<TAknLayoutRect>& aRects )
- {
- TAknLayoutRect gridAppPane;
- TAknLayoutRect gridItem;
- TAknLayoutRect gridImage;
- TAknLayoutRect gridNextItem;
-
- TInt variety;
- TBool disable = GetVariety(variety);
- if ( disable )
- {
- TRAP_IGNORE(static_cast<CTsAppUi*>(iEikonEnv->AppUi())->RequestPopUpL());
- }
- variety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0; // double check to avoid layout panic
-
- gridAppPane.LayoutRect( Rect(),
- AknLayoutScalable_Apps::tport_appsw_pane( variety ) );
- aRects.Append(gridAppPane);
-
- gridItem.LayoutRect( gridAppPane.Rect(),
- AknLayoutScalable_Apps::cell_tport_appsw_pane( variety, 0, 0 ) );
- aRects.Append(gridItem);
-
- gridImage.LayoutRect( gridItem.Rect(),
- AknLayoutScalable_Apps::cell_tport_appsw_pane_g1( variety ) );
- aRects.Append(gridImage);
- gridNextItem.LayoutRect( gridAppPane.Rect(),
- AknLayoutScalable_Apps::cell_tport_appsw_pane_cp03( variety ) );
- aRects.Append(gridNextItem);
-
- if ( disable )
- {
- TRAP_IGNORE(static_cast<CTsAppUi*>(iEikonEnv->AppUi())->DisablePopUpL());
- }
- }
-
-
// --------------------------------------------------------------------------
// CTsFastSwapArea::Setup
// --------------------------------------------------------------------------
@@ -554,7 +530,7 @@
}
// Orientation update
- iPrevScreenOrientation = GetCurrentScreenOrientation();
+ iPrevScreenOrientation = iFastSwapExt->GetCurrentScreenOrientation();
iOrientationSignalTimer->Cancel();
iOrientationSignalTimer->After(KOrientationSwitchTime);
}
@@ -624,8 +600,31 @@
{
TSLOG_CONTEXT( HandleFswContentChanged, TSLOG_LOCAL );
TSLOG_IN();
+
+ //prepare grid with current content from fastswap server
+ GetContentForGrid();
+ // draw
+ UpdateGrid( ETrue, ETrue );
+ // notify observer, if present
+ NotifyChange();
+
+ TSLOG_OUT();
+ }
- TRAPD( err, HandleFswContentChangedL() );
+// --------------------------------------------------------------------------
+// CTsFastSwapArea::GetContentForGrid
+// --------------------------------------------------------------------------
+//
+void CTsFastSwapArea::GetContentForGrid()
+ {
+ TSLOG_CONTEXT( GetContentForGrid, TSLOG_LOCAL );
+ TSLOG_IN();
+ TRAPD( err,
+ // get current content from fastswap server
+ GetContentL();
+ // prepare grid content
+ RenderContentL();
+ )
if ( err != KErrNone )
{
TSLOG1( TSLOG_INFO, "leave occured: %d", err );
@@ -635,25 +634,23 @@
}
// --------------------------------------------------------------------------
-// CTsFastSwapArea::HandleFswContentChangedL
+// CTsFastSwapArea::GetContentL
// --------------------------------------------------------------------------
//
-void CTsFastSwapArea::HandleFswContentChangedL()
+void CTsFastSwapArea::GetContentL()
{
- TSLOG_CONTEXT( HandleFswContentChangedL, TSLOG_LOCAL );
+ TSLOG_CONTEXT( GetContentL, TSLOG_LOCAL );
TSLOG_IN();
-
- // get current content from fastswap server
iFSClient->GetContentL( iArray );
-
-#ifdef _DEBUG
+
+ #ifdef _DEBUG
for ( TInt i = 0, ie = iArray.Count(); i != ie; ++i )
{
CTsFswEntry* e = iArray[i];
const TDesC& name( e->AppName() );
TSLOG4( TSLOG_INFO, "[%d]: %d %d %S", i, e->WgId(), e->AppUid(), &name );
}
-#endif
+ #endif
// Update closing widget count if necessary
if ( iWidgetClosingCount )
@@ -668,13 +665,6 @@
}
iWidgetClosingCount = widgetCount;
}
-
- // draw
- RenderContentL();
-
- // notify observer, if present
- NotifyChange();
-
TSLOG_OUT();
}
@@ -682,13 +672,16 @@
// CTsFastSwapArea::RenderContentL
// --------------------------------------------------------------------------
//
-void CTsFastSwapArea::RenderContentL( TBool aSuppressAnimation )
+void CTsFastSwapArea::RenderContentL( )
{
TSLOG_CONTEXT( RenderContentL, TSLOG_LOCAL );
TSLOG_IN();
_LIT(KSeparator, "\t");
+ // Cancel ongoing scaling
+ iFastSwapExt->CancelScaleTasks();
+
CArrayPtr<CGulIcon>* iconArray = new ( ELeave ) CAknIconArray( KMaxGranularity );
CleanupStack::PushL( iconArray );
CDesCArrayFlat* textArray = new ( ELeave ) CDesCArrayFlat( KMaxGranularity );
@@ -697,10 +690,15 @@
CleanupClosePushL(closeItemArray);
RArray<TInt> strokeItemArray;
CleanupClosePushL(strokeItemArray);
+ RArray<TInt> screenshotList;
+ CleanupClosePushL(screenshotList);
// Update view based on number of items
LayoutGridViewL( iArray.Count() );
+ CArrayPtr<CGulIcon>* oldIconArray =
+ iGrid->ItemDrawer()->FormattedCellData()->IconArray();
+
for ( TInt i = 0; i < iArray.Count(); ++i )
{
const TDesC& appName( iArray[i]->AppName() );
@@ -713,19 +711,21 @@
formAppName.Append(appName);
textArray->AppendL(formAppName);
CleanupStack::PopAndDestroy(&formAppName);
- TSize sz = PreferredImageSize();
-
+ TSize sz = iFastSwapExt->PreferredImageSize();
+
// take the screenshot or appicon+mask and make a copy and scale
CFbsBitmap* bitmap = 0;
TInt h = iArray[i]->ScreenshotHandle();
TSLOG2( TSLOG_INFO, "'%S' screenshot handle %d", &appName, h );
TInt maskh = 0;
CFbsBitmap* mask = 0;
+ TBool isScreenshot( ETrue );
if ( !h )
{
// No screenshot, take app icon
h = iArray[i]->AppIconBitmapHandle();
maskh = iArray[i]->AppIconMaskHandle();
+ isScreenshot = EFalse;
TSLOG1( TSLOG_INFO, "using appicon, handle = %d", h );
}
else
@@ -734,11 +734,31 @@
strokeItemArray.AppendL(i);
}
__ASSERT_DEBUG( h, User::Invariant() );
- bitmap = CopyBitmapL( h, sz );
+
+ // check screenshot - if it exists already, use it
+ // so there is no unnecessary scaling performed
+ screenshotList.AppendL( h );
+ TInt idx = iPrevScreenshots.Find( h );
+ if ( idx != KErrNotFound && oldIconArray && idx < oldIconArray->Count() )
+ {
+ CGulIcon* existingIcon = oldIconArray->At( idx );
+ if ( existingIcon->Bitmap() )
+ {
+ h = existingIcon->Bitmap()->Handle();
+ if ( existingIcon->Mask() )
+ {
+ maskh = existingIcon->Mask()->Handle();
+ }
+ isScreenshot = EFalse;
+ }
+ }
+
+ // create bitmap for grid item
+ bitmap = iFastSwapExt->CopyBitmapL( h, sz, isScreenshot );
CleanupStack::PushL( bitmap );
if ( maskh )
{
- mask = CopyBitmapL( maskh, sz );
+ mask = iFastSwapExt->CopyBitmapL( maskh, sz, EFalse );
}
CleanupStack::PushL( mask );
@@ -753,10 +773,16 @@
closeItemArray.AppendL(i);
}
}
+ // Update screenshot list
+ iPrevScreenshots.Reset();
+ for ( TInt i = 0; i < screenshotList.Count(); i++ )
+ {
+ iPrevScreenshots.AppendL( screenshotList[i] );
+ }
+ CleanupStack::PopAndDestroy( &screenshotList );
+
// Setup grid
iGrid->Model()->SetItemTextArray(textArray);
- CArrayPtr<CGulIcon>* oldIconArray =
- iGrid->ItemDrawer()->FormattedCellData()->IconArray();
if(oldIconArray)
{
delete oldIconArray;
@@ -785,37 +811,9 @@
{
iGrid->SetCurrentDataIndex( GridItemCount() - 1 );
}
- UpdateGrid( ETrue, !aSuppressAnimation );
-
TSLOG_OUT();
}
-// --------------------------------------------------------------------------
-// CTsFastSwapArea::CopyBitmapL
-// Copy and scale.
-// --------------------------------------------------------------------------
-//
-CFbsBitmap* CTsFastSwapArea::CopyBitmapL( TInt aFbsHandle, TSize aSize )
- {
- CFbsBitmap* ret = new (ELeave) CFbsBitmap();
- CleanupStack::PushL( ret );
-
- CFbsBitmap* bmp = new (ELeave) CFbsBitmap();
- CleanupStack::PushL( bmp );
- User::LeaveIfError( bmp->Duplicate( aFbsHandle ) );
-
- // do not always use aSize, preserving the aspect ratio is quite
- // important when showing app icons instead of screenshots
- TSize sz = CalculateSizePreserveRatio( aSize, bmp->SizeInPixels() );
- User::LeaveIfError( ret->Create( sz, bmp->DisplayMode() ) );
-
- AknIconUtils::ScaleBitmapL( sz, ret, bmp );
-
- CleanupStack::PopAndDestroy( bmp );
- CleanupStack::Pop( ret );
-
- return ret;
- }
// --------------------------------------------------------------------------
// CTsFastSwapArea::CountComponentControls
@@ -891,19 +889,22 @@
iGrid->ShowHighlight();
}
- // get the current task list
- HandleFswContentChanged();
+ //prepare grid with current content from fastswap server
+ GetContentForGrid();
+ //restore default selection
+ RestoreSelectedIndex();
+ // draw
+ UpdateGrid( ETrue, EFalse );
+ // notify observer, if present
+ NotifyChange();
// and then start listening for changes
iFSClient->Subscribe( *this );
- RestoreSelectedIndex();
- UpdateGrid(EFalse, EFalse);
-
iRedrawTimer->Cancel();
iRedrawTimer->After(KRedrawTime);
// give feedback
- LaunchPopupFeedback();
+ iFastSwapExt->LaunchPopupFeedback();
iPrevAppCount = iArray.Count();
@@ -1049,9 +1050,11 @@
//
void CTsFastSwapArea::HandlePointerEventL( const TPointerEvent& aPointerEvent )
{
+ TBool supressed = iEventSupressor->SuppressPointerEvent( aPointerEvent );
iKeyEvent = EFalse;
if(aPointerEvent.iType == TPointerEvent::EButton1Down)
{
+ iSupressDrag = EFalse;
iHandlePointerCandidate = ETrue;
iTapEvent = aPointerEvent;
iGrid->EnableAknEventHandling(EFalse);
@@ -1064,10 +1067,15 @@
iLongTapAnimationTimer->After(KLongTapAnimationInitTime);
}
}
+ else if( aPointerEvent.iType == TPointerEvent::EDrag )
+ {
+ iSupressDrag = supressed;
+ }
else if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
{
CancelLongTapAnimation( EFalse );
- if( iActivateOnPointerRelease != TPoint() )
+ if( iActivateOnPointerRelease != TPoint() ||
+ iSupressDrag)
{
iHandlePointerCandidate = ETrue;
TapL(iActivateOnPointerRelease);
@@ -1201,7 +1209,7 @@
}
else if ( aSource == iOrientationSignalTimer )
{
- TInt currentOrientation = GetCurrentScreenOrientation();
+ TInt currentOrientation = iFastSwapExt->GetCurrentScreenOrientation();
if ( currentOrientation != iPrevScreenOrientation )
{
// Order layout change
@@ -1275,7 +1283,7 @@
{
static_cast<CTsAppUi*>(iEikonEnv->AppUi())->RequestPopUpL();
// give feedback
- LaunchPopupFeedback();
+ iFastSwapExt->LaunchPopupFeedback();
// save index for later use & show popup
iAppIndexForPopup = aIndex;
iPopup->SetPosition( aPoint, CAknStylusPopUpMenu::EPositionTypeLeftBottom );
@@ -1317,24 +1325,6 @@
}
// -----------------------------------------------------------------------------
-// CTsFastSwapArea::PreferredImageSize
-// -----------------------------------------------------------------------------
-//
-TSize CTsFastSwapArea::PreferredImageSize()
- {
- TAknLayoutRect gridImage;
- TRAP_IGNORE(
- RArray<TAknLayoutRect> rects;
- CleanupClosePushL(rects);
- rects.ReserveL(KLayoutItemCount);
- GetFastSwapAreaRects(rects);
- gridImage = rects[2];
- CleanupStack::PopAndDestroy(&rects);
- );
- return gridImage.Rect().Size();
- }
-
-// -----------------------------------------------------------------------------
// CTsFastSwapArea::GridItemCount
// -----------------------------------------------------------------------------
//
@@ -1343,6 +1333,32 @@
return iGrid->Model()->ItemTextArray()->MdcaCount();
}
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapArea::GridItemCount
+// -----------------------------------------------------------------------------
+//
+TInt CTsFastSwapArea::GetGridItemData( TsFastSwapAreaGridData aDataType )
+ {
+ TInt retVal;
+ switch ( aDataType )
+ {
+ case EMaxItemsOnScreen:
+ retVal = iMaxItemsOnScreen;
+ break;
+ case EGridItemWidth:
+ retVal = iGridItemWidth;
+ break;
+ case EGridItemGap:
+ retVal = iGridItemGap;
+ break;
+ default:
+ retVal = KErrArgument;
+ break;
+ }
+ return retVal;
+ }
+
// -----------------------------------------------------------------------------
// CTsFastSwapArea::HandleListBoxEventL
// -----------------------------------------------------------------------------
@@ -1371,25 +1387,6 @@
}
}
-// --------------------------------------------------------------------------
-// CTsFastSwapArea::CalculateSizePreserveRatio
-// --------------------------------------------------------------------------
-//
-TSize CTsFastSwapArea::CalculateSizePreserveRatio(
- const TSize& aTargetAreaSize,
- const TSize& aSourceSize )
- {
- const TReal
- resizedAspectRatio(aTargetAreaSize.iWidth/(TReal)aTargetAreaSize.iHeight);
- const TReal
- orginalAspectRatio(aSourceSize.iWidth/(TReal)aSourceSize.iHeight);
- //this condition avoid empty margins ( bigger output ). to realy fit area change it
- const TReal scaleFactor =
- ( orginalAspectRatio > resizedAspectRatio ) ?
- (aTargetAreaSize.iHeight /(TReal)aSourceSize.iHeight) ://scale by height
- (aTargetAreaSize.iWidth /(TReal)aSourceSize.iWidth) ;//scale by width
- return TSize(aSourceSize.iWidth * scaleFactor, aSourceSize.iHeight * scaleFactor);
- }
// --------------------------------------------------------------------------
// CTsFastSwapArea::SelectNextItem
@@ -1421,7 +1418,7 @@
{
if( iMaxItemsOnScreen < GridItemCount() )
{
- TInt visibleItem = ViewToVisibleItem( ViewPos() );
+ TInt visibleItem = iFastSwapExt->ViewToVisibleItem( ViewPos() );
if(iKeyEvent)
{
visibleItem = SelectedIndex();
@@ -1462,7 +1459,7 @@
//
void CTsFastSwapArea::UpdateGrid( TBool aForceRedraw, TBool aAnimate )
{
- TPoint targetPoint = ItemViewPosition( SelectedIndex() );
+ TPoint targetPoint = iFastSwapExt->ItemViewPosition( SelectedIndex() );
if ( aForceRedraw || targetPoint.iX != ViewPos().iX )
{
if ( aAnimate )
@@ -1646,7 +1643,7 @@
}
// -----------------------------------------------------------------------------
-// CTsFastSwapArea::ViewSize
+// CTsFastSwapArea::ViewPos
// -----------------------------------------------------------------------------
//
TPoint CTsFastSwapArea::ViewPos() const
@@ -1664,211 +1661,6 @@
return retVal;
}
-// -----------------------------------------------------------------------------
-// CTsFastSwapArea::ItemPosition
-// -----------------------------------------------------------------------------
-//
-TPoint CTsFastSwapArea::ItemViewPosition( TInt aItemIdx )
- {
- TPoint retVal = Rect().iTl;
- if ( aItemIdx < 0 )
- {
- // No items
- retVal.iX = 0;
- }
- else if ( aItemIdx == 0 )
- {
- // First item
- if( AknLayoutUtils::LayoutMirrored() )
- {
- if ( GridItemCount() > iMaxItemsOnScreen )
- {
- retVal.iX = GridWorldSize().iWidth - Rect().Width();
- }
- else
- {
- retVal.iX = 0;
- }
- }
- else // normal layout
- {
- retVal.iX = 0;
- }
- }
- else if ( aItemIdx == GridItemCount() - 1 )
- {
- // Last item selected
- if( AknLayoutUtils::LayoutMirrored() )
- {
- retVal.iX = 0;
- }
- else // normal layout
- {
- if ( GridItemCount() > iMaxItemsOnScreen )
- {
- retVal.iX = GridWorldSize().iWidth - Rect().Width();
- }
- else
- {
- retVal.iX = 0;
- }
- }
- }
- else
- {
- // Middle item
- TInt screenMiddleItemOffset = ( Rect().Width() - iGridItemWidth ) / 2;
- if( AknLayoutUtils::LayoutMirrored() )
- {
- retVal.iX = iGridItemWidth * ( GridItemCount() - 1 - aItemIdx ) - screenMiddleItemOffset;
- retVal.iX += ( GridItemCount() - 1 - aItemIdx ) * iGridItemGap;
- }
- else // normal layout
- {
- retVal.iX = iGridItemWidth * aItemIdx - screenMiddleItemOffset;
- retVal.iX += iGridItemGap * aItemIdx;
- }
- if ( retVal.iX < 0 )
- {
- retVal.iX = 0;
- }
- else if ( retVal.iX + Rect().Width() > GridWorldSize().iWidth )
- {
- retVal.iX = GridWorldSize().iWidth - Rect().Width();
- }
- }
-
- // Return middle of the view rectangle
- retVal.iX += Rect().Width() / 2;
-
- return retVal;
- }
-
-// -----------------------------------------------------------------------------
-// CTsFastSwapArea::ViewToVisibleItem
-// -----------------------------------------------------------------------------
-//
-TInt CTsFastSwapArea::ViewToVisibleItem( const TPoint aViewPos )
- {
- TInt retVal(0);
- TPoint absViewPos = aViewPos;
- absViewPos.iX -= Rect().Width() / 2;
- if ( absViewPos.iX < 0 )
- {
- if ( AknLayoutUtils::LayoutMirrored() )
- {
- // View crossed left border of grid world rect, last item selected
- retVal = GridItemCount() - 1;
- }
- else // normal layout
- {
- // View crossed left border of grid world rect, first item selected
- retVal = 0;
- }
- }
- else if ( absViewPos.iX + Rect().Width() > GridWorldSize().iWidth )
- {
- if ( AknLayoutUtils::LayoutMirrored() )
- {
- // View crossed right border of grid world rect, first item selected
- retVal = 0;
- }
- else // normal layout
- {
- // View crossed right border of grid world rect, last item selected
- retVal = GridItemCount() - 1;
- }
- }
- else
- {
- TInt retItemPosX(0);
- TInt offsetCheck = GridWorldSize().iWidth;
- // View inside of grid world rect
- for ( TInt i = 0 ; i < GridItemCount(); i++ )
- {
- TInt itemPosX = ItemViewPosition( i ).iX;
- TInt offset = aViewPos.iX - itemPosX;
- if ( Abs( offset ) <= offsetCheck )
- {
- offsetCheck = Abs( offset );
- retVal = i;
- retItemPosX = itemPosX;
- }
- else
- {
- break;
- }
- }
- // Check if item is fully visible. If not
- // return next one if possible
- if ( retItemPosX - iGridItemWidth / 2 < absViewPos.iX &&
- retVal + 1 < GridItemCount() )
- {
- retVal++;
- }
- }
-
- return retVal;
- }
-
-
-// -----------------------------------------------------------------------------
-// CTsFastSwapArea::LaunchPopupFeedback
-// -----------------------------------------------------------------------------
-//
-void CTsFastSwapArea::LaunchPopupFeedback()
- {
- if ( AknLayoutUtils::PenEnabled() )
- {
- MTouchFeedback* feedback = MTouchFeedback::Instance();
- if ( feedback )
- {
- TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
- if ( CAknTransitionUtils::TransitionsEnabled(
- AknTransEffect::EComponentTransitionsOff ) )
- {
- fbLogicalType = ETouchFeedbackIncreasingPopUp;
- }
- feedback->InstantFeedback( this,
- fbLogicalType,
- ETouchFeedbackVibra,
- TPointerEvent() );
- }
- }
- }
-
-
-// -----------------------------------------------------------------------------
-// CTsFastSwapArea::GetCurrentScreenOrientation
-// -----------------------------------------------------------------------------
-//
-TInt CTsFastSwapArea::GetCurrentScreenOrientation()
- {
- TPixelsAndRotation availableRect;
- iEikonEnv->ScreenDevice()->GetDefaultScreenSizeAndRotation(availableRect);
- return availableRect.iPixelSize.iWidth > availableRect.iPixelSize.iHeight;
- }
-
-
-// -----------------------------------------------------------------------------
-// CTsFastSwapArea::GetVariety
-// -----------------------------------------------------------------------------
-//
-TBool CTsFastSwapArea::GetVariety( TInt& aVariety )
- {
- aVariety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0;
- TBool foreground = static_cast<CTsAppUi*>(iEikonEnv->AppUi())->IsForeground();
- if ( foreground )
- {
- TInt screenOrientation = GetCurrentScreenOrientation();
- if ( aVariety != screenOrientation )
- {
- aVariety = screenOrientation;
- return ETrue;
- }
- }
- return EFalse;
- }
// -----------------------------------------------------------------------------
// CTsFastSwapArea::IsAppClosing
@@ -1924,6 +1716,7 @@
{
retVal = ETrue;
}
+
iPrevAppCount = appCount;
return retVal;
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapareautils.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,572 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Taskswitcher Fast Swap area UI
+ *
+*/
+
+#include <w32std.h>
+#include <eikenv.h>
+#include <layoutmetadata.cdl.h>
+#include <touchfeedback.h>
+#include <akntransitionutils.h>
+#include <akntranseffect.h>
+#include <aknlayoutscalable_apps.cdl.h>
+#include <bitmaptransforms.h>
+
+
+#include "tsfastswapareautils.h"
+#include "tsfastswaparea.h"
+#include "tsappui.h"
+#include "tsfswentry.h"
+
+
+const TInt KLayoutItemCount = 4;
+
+ /* ================================================================================
+ * CTsFastSwapTimer
+ * ================================================================================
+ */
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapTimer::CTsFastSwapTimer
+// -----------------------------------------------------------------------------
+//
+CTsFastSwapTimer::CTsFastSwapTimer( MTsFastSwapTimerObserver& aObserver )
+: CTimer( EPriorityStandard ),
+ iObserver( &aObserver )
+ {
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapTimer::CTsGridHighlightTimer
+// -----------------------------------------------------------------------------
+//
+CTsFastSwapTimer::~CTsFastSwapTimer()
+ {
+ Cancel();
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapTimer::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CTsFastSwapTimer::ConstructL()
+ {
+ CTimer::ConstructL();
+ CActiveScheduler::Add( this );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapTimer::CTsGridHighlightTimer
+// -----------------------------------------------------------------------------
+//
+void CTsFastSwapTimer::RunL()
+ {
+ iObserver->TimerCompletedL(this);
+ }
+
+
+
+/* ================================================================================
+ * CTsBitmapScaleTask
+ * ================================================================================
+ */
+
+// -----------------------------------------------------------------------------
+// CTsBitmapScaleTask::
+// -----------------------------------------------------------------------------
+//
+CTsBitmapScaleTask::CTsBitmapScaleTask( CTsFastSwapAreaExtension& aObserver )
+: CActive(EPriorityStandard),
+ iObserver( aObserver )
+ {
+ CActiveScheduler::Add( this );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTsBitmapScaleTask::
+// -----------------------------------------------------------------------------
+//
+CTsBitmapScaleTask::~CTsBitmapScaleTask()
+ {
+ Cancel();
+ delete iScaler;
+ delete iSourceBmp;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTsBitmapScaleTask::
+// -----------------------------------------------------------------------------
+//
+void CTsBitmapScaleTask::StartLD( CFbsBitmap* aSourceBitmap,
+ CFbsBitmap* aTargetBitmap )
+ {
+ if ( !iScaler )
+ {
+ iSourceBmp = aSourceBitmap;
+ iScaler = CBitmapScaler::NewL();
+ iScaler->Scale( &iStatus, *aSourceBitmap, *aTargetBitmap );
+ SetActive();
+ }
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTsBitmapScaleTask::
+// -----------------------------------------------------------------------------
+//
+void CTsBitmapScaleTask::RunL()
+ {
+ iObserver.ScaleFinished( this );
+ delete this;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTsBitmapScaleTask::
+// -----------------------------------------------------------------------------
+//
+void CTsBitmapScaleTask::DoCancel()
+ {
+ iScaler->Cancel();
+ }
+
+
+/* ================================================================================
+ * CTsFastSwapAreaExtension
+ * ================================================================================
+ */
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::NewL
+// -----------------------------------------------------------------------------
+//
+CTsFastSwapAreaExtension* CTsFastSwapAreaExtension::NewL( CTsFastSwapArea& aFastSwapArea,
+ CEikonEnv& aEnv )
+ {
+ CTsFastSwapAreaExtension* self = CTsFastSwapAreaExtension::NewLC(
+ aFastSwapArea, aEnv );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::NewLC
+// -----------------------------------------------------------------------------
+//
+CTsFastSwapAreaExtension* CTsFastSwapAreaExtension::NewLC( CTsFastSwapArea& aFastSwapArea,
+ CEikonEnv& aEnv )
+ {
+ CTsFastSwapAreaExtension* self = new (ELeave) CTsFastSwapAreaExtension(
+ aFastSwapArea, aEnv );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::~CTsFastSwapAreaExtension
+// -----------------------------------------------------------------------------
+//
+CTsFastSwapAreaExtension::~CTsFastSwapAreaExtension()
+ {
+ iScaleTasks.ResetAndDestroy();
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CTsFastSwapAreaExtension::ConstructL()
+ {
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::CTsFastSwapAreaExtension
+// -----------------------------------------------------------------------------
+//
+CTsFastSwapAreaExtension::CTsFastSwapAreaExtension( CTsFastSwapArea& aFastSwapArea,
+ CEikonEnv& aEnv )
+: iFastSwapArea( aFastSwapArea ),
+ iEnv( aEnv )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::GetCurrentScreenOrientation
+// -----------------------------------------------------------------------------
+//
+TInt CTsFastSwapAreaExtension::GetCurrentScreenOrientation()
+ {
+ TPixelsAndRotation availableRect;
+ iEnv.ScreenDevice()->GetDefaultScreenSizeAndRotation(availableRect);
+ return availableRect.iPixelSize.iWidth > availableRect.iPixelSize.iHeight;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::GetVariety
+// -----------------------------------------------------------------------------
+//
+TBool CTsFastSwapAreaExtension::GetVariety( TInt& aVariety )
+ {
+ aVariety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0;
+ TBool foreground = static_cast<CTsAppUi*>(iEnv.AppUi())->IsForeground();
+ if ( foreground )
+ {
+ TInt screenOrientation = GetCurrentScreenOrientation();
+ if ( aVariety != screenOrientation )
+ {
+ aVariety = screenOrientation;
+ return ETrue;
+ }
+ }
+ return EFalse;
+ }
+
+
+// --------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::GetFastSwapAreaRects
+// --------------------------------------------------------------------------
+//
+void CTsFastSwapAreaExtension::GetFastSwapAreaRects( RArray<TAknLayoutRect>& aRects )
+ {
+ TAknLayoutRect gridAppPane;
+ TAknLayoutRect gridItem;
+ TAknLayoutRect gridImage;
+ TInt variety;
+ TBool disable = GetVariety(variety);
+ if ( disable )
+ {
+ TRAP_IGNORE(static_cast<CTsAppUi*>(iEnv.AppUi())->RequestPopUpL());
+ }
+ variety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0; // double check to avoid layout panic
+ gridAppPane.LayoutRect( iFastSwapArea.Rect(),
+ AknLayoutScalable_Apps::tport_appsw_pane_g1( variety ) );
+ aRects.Append(gridAppPane);
+
+ gridItem.LayoutRect( gridAppPane.Rect(),
+ AknLayoutScalable_Apps::cell_tport_appsw_pane( variety, 0, 0 ) );
+ aRects.Append(gridItem);
+
+ gridImage.LayoutRect( gridItem.Rect(),
+ AknLayoutScalable_Apps::cell_tport_appsw_pane_g1( variety ) );
+ aRects.Append(gridImage);
+
+ if ( disable )
+ {
+ TRAP_IGNORE(static_cast<CTsAppUi*>(iEnv.AppUi())->DisablePopUpL());
+ }
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::ItemPosition
+// -----------------------------------------------------------------------------
+//
+TPoint CTsFastSwapAreaExtension::ItemViewPosition( TInt aItemIdx )
+ {
+ TPoint retVal = iFastSwapArea.Rect().iTl;
+ TInt maxItemsOnScreen = iFastSwapArea.GetGridItemData( CTsFastSwapArea::EMaxItemsOnScreen );
+ TInt gridItemWidth = iFastSwapArea.GetGridItemData( CTsFastSwapArea::EGridItemWidth );
+ TInt gridItemGap = iFastSwapArea.GetGridItemData( CTsFastSwapArea::EGridItemGap );
+
+ if ( aItemIdx < 0 )
+ {
+ // No items
+ retVal.iX = 0;
+ }
+ else if ( aItemIdx == 0 )
+ {
+ // First item
+ if( AknLayoutUtils::LayoutMirrored() )
+ {
+ if ( iFastSwapArea.GridItemCount() > maxItemsOnScreen )
+ {
+ retVal.iX = iFastSwapArea.GridWorldSize().iWidth - iFastSwapArea.Rect().Width();
+ }
+ else
+ {
+ retVal.iX = 0;
+ }
+ }
+ else // normal layout
+ {
+ retVal.iX = 0;
+ }
+ }
+ else if ( aItemIdx == iFastSwapArea.GridItemCount() - 1 )
+ {
+ // Last item selected
+ if( AknLayoutUtils::LayoutMirrored() )
+ {
+ retVal.iX = 0;
+ }
+ else // normal layout
+ {
+ if ( iFastSwapArea.GridItemCount() > maxItemsOnScreen )
+ {
+ retVal.iX = iFastSwapArea.GridWorldSize().iWidth - iFastSwapArea.Rect().Width();
+ }
+ else
+ {
+ retVal.iX = 0;
+ }
+ }
+ }
+ else
+ {
+ // Middle item
+ TInt screenMiddleItemOffset = ( iFastSwapArea.Rect().Width() - gridItemWidth ) / 2;
+ if( AknLayoutUtils::LayoutMirrored() )
+ {
+ retVal.iX = gridItemWidth * ( iFastSwapArea.GridItemCount() - 1 - aItemIdx ) - screenMiddleItemOffset;
+ retVal.iX += ( iFastSwapArea.GridItemCount() - 1 - aItemIdx ) * gridItemGap;
+ }
+ else // normal layout
+ {
+ retVal.iX = gridItemWidth * aItemIdx - screenMiddleItemOffset;
+ retVal.iX += gridItemGap * aItemIdx;
+ }
+ if ( retVal.iX < 0 )
+ {
+ retVal.iX = 0;
+ }
+ // aligin to grid end edge in case
+ // (item's position + draw area) extends over grid area and
+ // (all items cover more than grid area or penultimate item)
+ else if ( retVal.iX + iFastSwapArea.Rect().Width() > iFastSwapArea.GridWorldSize().iWidth &&
+ (iFastSwapArea.GridWorldSize().iWidth > gridItemWidth * iFastSwapArea.GridItemCount() ||
+ (aItemIdx > 1 && aItemIdx == iFastSwapArea.GridItemCount() - 2 )) )
+ {
+ retVal.iX = iFastSwapArea.GridWorldSize().iWidth - iFastSwapArea.Rect().Width();
+ }
+ }
+
+ // Return middle of the view rectangle
+ retVal.iX += iFastSwapArea.Rect().Width() / 2;
+
+ return retVal;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::ViewToVisibleItem
+// -----------------------------------------------------------------------------
+//
+TInt CTsFastSwapAreaExtension::ViewToVisibleItem( const TPoint aViewPos )
+ {
+ TInt retVal(0);
+ TPoint absViewPos = aViewPos;
+ absViewPos.iX -= iFastSwapArea.Rect().Width() / 2;
+ if ( absViewPos.iX < 0 )
+ {
+ if ( AknLayoutUtils::LayoutMirrored() )
+ {
+ // View crossed left border of grid world rect, last item selected
+ retVal = iFastSwapArea.GridItemCount() - 1;
+ }
+ else // normal layout
+ {
+ // View crossed left border of grid world rect, first item selected
+ retVal = 0;
+ }
+ }
+ else if ( absViewPos.iX + iFastSwapArea.Rect().Width() > iFastSwapArea.GridWorldSize().iWidth )
+ {
+ if ( AknLayoutUtils::LayoutMirrored() )
+ {
+ // View crossed right border of grid world rect, first item selected
+ retVal = 0;
+ }
+ else // normal layout
+ {
+ // View crossed right border of grid world rect, last item selected
+ retVal = iFastSwapArea.GridItemCount() - 1;
+ }
+ }
+ else
+ {
+ TInt retItemPosX(0);
+ TInt offsetCheck = iFastSwapArea.GridWorldSize().iWidth;
+ // View inside of grid world rect
+ for ( TInt i = 0 ; i < iFastSwapArea.GridItemCount(); i++ )
+ {
+ TInt itemPosX = ItemViewPosition( i ).iX;
+ TInt offset = aViewPos.iX - itemPosX;
+ if ( Abs( offset ) <= offsetCheck )
+ {
+ offsetCheck = Abs( offset );
+ retVal = i;
+ retItemPosX = itemPosX;
+ }
+ else
+ {
+ break;
+ }
+ }
+ // Check if item is fully visible. If not
+ // return next one if possible
+ TInt gridItemWidth = iFastSwapArea.GetGridItemData( CTsFastSwapArea::EGridItemWidth );
+ if ( retItemPosX - gridItemWidth / 2 < absViewPos.iX &&
+ retVal + 1 < iFastSwapArea.GridItemCount() )
+ {
+ retVal++;
+ }
+ }
+
+ return retVal;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::LaunchPopupFeedback
+// -----------------------------------------------------------------------------
+//
+void CTsFastSwapAreaExtension::LaunchPopupFeedback()
+ {
+ if ( AknLayoutUtils::PenEnabled() )
+ {
+ MTouchFeedback* feedback = MTouchFeedback::Instance();
+ if ( feedback )
+ {
+ TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
+ if ( CAknTransitionUtils::TransitionsEnabled(
+ AknTransEffect::EComponentTransitionsOff ) )
+ {
+ fbLogicalType = ETouchFeedbackIncreasingPopUp;
+ }
+ feedback->InstantFeedback( &iFastSwapArea,
+ fbLogicalType,
+ ETouchFeedbackVibra,
+ TPointerEvent() );
+ }
+ }
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::PreferredImageSize
+// -----------------------------------------------------------------------------
+//
+TSize CTsFastSwapAreaExtension::PreferredImageSize()
+ {
+ TAknLayoutRect gridImage;
+ TRAP_IGNORE(
+ RArray<TAknLayoutRect> rects;
+ CleanupClosePushL(rects);
+ rects.ReserveL(KLayoutItemCount);
+ GetFastSwapAreaRects(rects);
+ gridImage = rects[2];
+ CleanupStack::PopAndDestroy(&rects);
+ );
+ return gridImage.Rect().Size();
+ }
+
+// --------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::CalculateSizePreserveRatio
+// --------------------------------------------------------------------------
+//
+TSize CTsFastSwapAreaExtension::CalculateSizePreserveRatio(
+ const TSize& aTargetAreaSize,
+ const TSize& aSourceSize )
+ {
+ const TReal
+ resizedAspectRatio(aTargetAreaSize.iWidth/(TReal)aTargetAreaSize.iHeight);
+ const TReal
+ orginalAspectRatio(aSourceSize.iWidth/(TReal)aSourceSize.iHeight);
+ //this condition avoid empty margins ( bigger output ). to realy fit area change it
+ const TReal scaleFactor =
+ ( orginalAspectRatio > resizedAspectRatio ) ?
+ (aTargetAreaSize.iHeight /(TReal)aSourceSize.iHeight) ://scale by height
+ (aTargetAreaSize.iWidth /(TReal)aSourceSize.iWidth) ;//scale by width
+ return TSize(aSourceSize.iWidth * scaleFactor, aSourceSize.iHeight * scaleFactor);
+ }
+
+
+// --------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::CopyBitmapL
+// Copy and scale.
+// --------------------------------------------------------------------------
+//
+CFbsBitmap* CTsFastSwapAreaExtension::CopyBitmapL( TInt aFbsHandle, TSize aSize, TBool aIsScreenshot )
+ {
+ CFbsBitmap* ret = new (ELeave) CFbsBitmap();
+ CleanupStack::PushL( ret );
+
+ CFbsBitmap* bmp = new (ELeave) CFbsBitmap();
+ CleanupStack::PushL( bmp );
+ User::LeaveIfError( bmp->Duplicate( aFbsHandle ) );
+
+ // First scale using normal method, to show "draft" screenshots.
+ // Do not always use aSize, preserving the aspect ratio is quite
+ // important when showing app icons instead of screenshots
+ TSize sz = CalculateSizePreserveRatio( aSize, bmp->SizeInPixels() );
+ User::LeaveIfError( ret->Create( sz, bmp->DisplayMode() ) );
+ AknIconUtils::ScaleBitmapL( sz, ret, bmp );
+
+ // Second, if it is screenshot, perform quality improvement scaling
+ if ( aIsScreenshot )
+ {
+ CTsBitmapScaleTask* rotaTask = new (ELeave) CTsBitmapScaleTask( *this );
+ CleanupStack::PushL( rotaTask );
+ iScaleTasks.AppendL( rotaTask );
+ rotaTask->StartLD( bmp, ret ); // ownership of bmp transferred
+ CleanupStack::Pop( rotaTask );
+ CleanupStack::Pop( bmp );
+ }
+ else
+ {
+ CleanupStack::PopAndDestroy( bmp );
+ }
+
+ CleanupStack::Pop( ret );
+ return ret;
+ }
+
+
+// --------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::CancelScaleTasks
+// --------------------------------------------------------------------------
+//
+void CTsFastSwapAreaExtension::CancelScaleTasks()
+ {
+ iScaleTasks.ResetAndDestroy();
+ }
+
+
+// --------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::ScaleFinished
+// --------------------------------------------------------------------------
+//
+void CTsFastSwapAreaExtension::ScaleFinished( CTsBitmapScaleTask* iFinishedTask )
+ {
+ TInt task = iScaleTasks.Find( iFinishedTask );
+ if ( task != KErrNotFound )
+ {
+ iScaleTasks.Remove( task );
+ }
+ iFastSwapArea.DrawDeferred();
+ }
+
+ // End of file
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapgrid.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapgrid.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -515,16 +515,14 @@
EMbmAvkonQgn_indi_button_preview_close_mask
));
- TAknLayoutRect gridAppPane;
TAknLayoutRect gridItem;
TAknLayoutRect gridImage;
TAknLayoutRect gridCloseButton;
TAknLayoutRect gridCloseIcon;
TInt variety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0;
- TRect source = iParent ? iParent->Rect() : Rect();
- gridAppPane.LayoutRect( source,
- AknLayoutScalable_Apps::tport_appsw_pane( variety ) );
- gridItem.LayoutRect( gridAppPane.Rect(),
+
+ TRect source = Rect();
+ gridItem.LayoutRect( source,
AknLayoutScalable_Apps::cell_tport_appsw_pane( variety, 0, 0 ) );
gridImage.LayoutRect( gridItem.Rect(),
AknLayoutScalable_Apps::cell_tport_appsw_pane_g1( variety ) );
@@ -865,53 +863,5 @@
retVal.iBr.iY -= iCloseButtonRect.iBr.iY - iCloseIconRect.iBr.iY;
return retVal;
}
-
-
-
- /* ================================================================================
- * CTsGridHighlightTimer
- * ================================================================================
- */
-
-// -----------------------------------------------------------------------------
-// CTsGridHighlightTimer::CTsGridHighlightTimer
-// -----------------------------------------------------------------------------
-//
-CTsFastSwapTimer::CTsFastSwapTimer( MTsFastSwapTimerObserver& aObserver )
-: CTimer( EPriorityStandard ),
- iObserver( &aObserver )
- {
- }
-
-
-// -----------------------------------------------------------------------------
-// CTsGridHighlightTimer::CTsGridHighlightTimer
-// -----------------------------------------------------------------------------
-//
-CTsFastSwapTimer::~CTsFastSwapTimer()
- {
- Cancel();
- }
-
-
-// -----------------------------------------------------------------------------
-// CTsGridHighlightTimer::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CTsFastSwapTimer::ConstructL()
- {
- CTimer::ConstructL();
- CActiveScheduler::Add( this );
- }
-
-
-// -----------------------------------------------------------------------------
-// CTsGridHighlightTimer::CTsGridHighlightTimer
-// -----------------------------------------------------------------------------
-//
-void CTsFastSwapTimer::RunL()
- {
- iObserver->TimerCompletedL(this);
- }
-
+
// End of file
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsphysicsengine.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsphysicsengine.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -72,7 +72,7 @@
void CTsPhysicsEngine::ConstructL(MAknPhysicsObserver& aPhysicObserver,
CCoeControl& aViewControl)
{
- iPhysics = CAknPhysics::NewL(aPhysicObserver, &aViewControl);//TODO:
+ iPhysics = CAknPhysics::NewL(aPhysicObserver, &aViewControl);
iTaskswitcherPhysics = CTsPhysics::NewL(aPhysicObserver);
}
--- a/taskswitcher/taskswitcherui/taskswitcherappecom/group/tsappecom.mmp Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/taskswitcherui/taskswitcherappecom/group/tsappecom.mmp Tue Sep 14 20:58:58 2010 +0300
@@ -44,6 +44,7 @@
LIBRARY ecom.lib
LIBRARY apgrfx.lib
LIBRARY cone.lib
+LIBRARY apparc.lib
DEBUGLIBRARY flogger.lib
--- a/taskswitcher/taskswitcherui/taskswitcherappecom/inc/tsappecom.h Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/taskswitcherui/taskswitcherappecom/inc/tsappecom.h Tue Sep 14 20:58:58 2010 +0300
@@ -21,6 +21,7 @@
#include <e32base.h>
#include <akncapserveralternatefsplugin.h>
+#include <apgcli.h>
/**
* Taskswitcher ecom plugin which is loaded by AknCapServer as an alternate Fast
@@ -102,7 +103,28 @@
* Defines the P&S property.
*/
void DefineTaskswitcherStateProperty();
-
+
+ /**
+ * Checks if Task Switcher is running.
+ */
+ TBool IsTaskSwitcherStarted();
+
+ /**
+ * Starts Task Switche app by calling StartTaskSwitcherL.
+ *
+ * @return KErrNone if succesful or error code.
+ */
+ TInt StartTaskSwitcher();
+
+ /**
+ * Starts Task Switche app.
+ *
+ * @return KErrNone if succesful or error code.
+ */
+ TInt StartTaskSwitcherL();
+
+private:
+ RApaLsSession iApaLsSession;
};
#endif // TSAPPECOM_H
--- a/taskswitcher/taskswitcherui/taskswitcherappecom/src/tsappecom.cpp Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/taskswitcherui/taskswitcherappecom/src/tsappecom.cpp Tue Sep 14 20:58:58 2010 +0300
@@ -74,6 +74,7 @@
TSLOG_IN();
DefineTaskswitcherStateProperty();
+ User::LeaveIfError( iApaLsSession.Connect() );
TSLOG_OUT();
}
@@ -85,6 +86,7 @@
//
CTsEcomPlugin::~CTsEcomPlugin()
{
+ iApaLsSession.Close();
}
// ---------------------------------------------------------------------------
@@ -188,18 +190,11 @@
TSLOG_CONTEXT( CTsEcomPlugin::IsReady, TSLOG_LOCAL );
TSLOG_IN();
- TBool ret = EFalse;
- CEikonEnv* eikonEnv = CEikonEnv::Static();
+ TBool ret = ETrue;
- if ( eikonEnv )
+ if( !IsTaskSwitcherStarted() )
{
- TApaTaskList taskList( eikonEnv->WsSession() );
- TApaTask task = taskList.FindApp( KTaskswitcherAppUidValue );
-
- if ( task.Exists() )
- {
- ret = ETrue;
- }
+ ret = (KErrNone == StartTaskSwitcher()) ? ETrue : EFalse;
}
TSLOG1_OUT( "IsReady returns: %d", ret );
@@ -249,4 +244,72 @@
TSLOG_OUT();
}
+// -----------------------------------------------------------------------------
+// CTsEcomPlugin::IsTaskSwitcherStarted
+// -----------------------------------------------------------------------------
+//
+TBool CTsEcomPlugin::IsTaskSwitcherStarted()
+ {
+ TSLOG_CONTEXT( CTsEcomPlugin::IsTaskSwitcherStarted, TSLOG_LOCAL );
+ TSLOG_IN();
+
+ TBool ret(EFalse);
+ CEikonEnv* eikonEnv = CEikonEnv::Static();
+ if ( eikonEnv )
+ {
+ TApaTaskList taskList( eikonEnv->WsSession() );
+ TApaTask task = taskList.FindApp( KTaskswitcherAppUidValue );
+ if ( task.Exists() )
+ {
+ ret = ETrue;
+ }
+ }
+ TSLOG1( TSLOG_INFO, "TaskSwitcherStarted: %d", ret);
+ TSLOG_OUT();
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
+// CTsEcomPlugin::StartTaskSwitcher
+// -----------------------------------------------------------------------------
+//
+TInt CTsEcomPlugin::StartTaskSwitcher()
+ {
+ TInt ret(0);
+ TRAPD(err, ret = StartTaskSwitcherL() );
+ if( KErrNone != err )
+ {
+ ret = err;
+ }
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
+// CTsEcomPlugin::StartTaskSwitcherL
+// -----------------------------------------------------------------------------
+//
+TInt CTsEcomPlugin::StartTaskSwitcherL()
+ {
+ TSLOG_CONTEXT( CTsEcomPlugin::StartTaskSwitcher, TSLOG_LOCAL );
+ TSLOG_IN();
+ TInt ret(KErrNone);
+
+ TApaAppInfo appInfo;
+ TApaAppCapabilityBuf capabilityBuf;
+ ret = iApaLsSession.GetAppInfo( appInfo, KTaskswitcherAppUidValue );
+ if ( !ret )
+ {
+ TFileName appName = appInfo.iFullName;
+ CApaCommandLine* cmdLine = CApaCommandLine::NewLC();
+ cmdLine->SetExecutableNameL( appName );
+ cmdLine->SetCommandL( EApaCommandRun );
+ ret = iApaLsSession.StartApp( *cmdLine );
+ CleanupStack::PopAndDestroy( cmdLine );
+ }
+
+ TSLOG1( TSLOG_INFO, "RApaLsSession::StartApp returned with: %d", ret );
+ TSLOG_OUT();
+ return ret;
+ }
+
// End of file