--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/homescreen_plat/hs_renderingplugin_api/hs_renderingplugin_api.metaxml Wed Apr 14 15:47:59 2010 +0300
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<api id="33b42b58fde503a976613f372680ae87" dataversion="2.0">
+ <name>HS Rendering Plug-in API</name>
+ <description>API allows the widget developer to create his own rendering plugin, which can be taken into use in widget declaration.</description>
+ <type>c++</type>
+ <collection>idlehomescreen</collection>
+ <libs>
+ <lib name="extrenderingplugin.lib"/>
+ </libs>
+ <release category="platform" sinceversion="5.2"/>
+ <attributes>
+ <htmldocprovided>no</htmldocprovided>
+ <adaptation>no</adaptation>
+ </attributes>
+</api>
--- a/homescreen_plat/hs_renderingplugin_api/inc/xnextrenderingpluginadapter.h Wed Mar 31 21:17:19 2010 +0300
+++ b/homescreen_plat/hs_renderingplugin_api/inc/xnextrenderingpluginadapter.h Wed Apr 14 15:47:59 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description: External rendering plugin adapter header
+* Description: External rendering plugin adapter
*
*/
@@ -28,7 +28,12 @@
class MXnExtEventHandler;
/**
- * CXnExtRenderingPluginAdapter class
+ * Base class for the external rendering plug-ins. Widget developer
+ * can implement own rendering plug-in if stock plug-ins do not
+ * provide sufficient functionality. Baddly written plug-in can
+ * ruin the Homescreen performance as it runs in the Homescreen
+ * process. Power save mode must be obeyed in order to maximize
+ * the standby times of the device.
*
*
* @code
@@ -36,61 +41,72 @@
* @endcode
*
* @lib extrenderingplugin.lib
- * @since S60 v5.0
+ * @since S60 v5.2
*/
class CXnExtRenderingPluginAdapter : public CCoeControl
{
public: // Constructor and destructor
/**
* Two-phased constructor.
+ *
+ * @since Series 60 5.2
*/
IMPORT_C static CXnExtRenderingPluginAdapter* NewL( TUid aImplUid );
/**
* Destructor.
+ *
+ * @since Series 60 5.2
*/
IMPORT_C virtual ~CXnExtRenderingPluginAdapter();
-private: // Constructors
- /**
- * Constructor
- */
- // CXnExtRenderingPluginAdapter();
-
- /**
- * Second phase constructor
- */
- // void ConstructL();
-
public: // New functions,
/**
- * Returns the implementation uid.
+ * Returns the ECOM implementation uid.
+ *
+ * @since Series 60 5.2
*/
IMPORT_C TUid ImplUid() const;
/**
- * Enters power save mode.
+ * Is called when Homescreen enters power save mode.
+ * In power save mode all the timers, outstanding requests and animations
+ * must be cancelled in order to save battery.
+ *
+ * @since Series 60 5.2
*/
IMPORT_C virtual void EnterPowerSaveModeL();
/**
- * Exits power save mode.
+ * Is called when Homescreen exists power save mode.
+ *
+ * @since Series 60 5.2
*/
IMPORT_C virtual void ExitPowerSaveModeL();
/**
- * Informs skin change.
+ * Informs skin change. If plug-in is responsible of loading skin
+ * graphics, all the graphics must be reloaded.
+ *
+ * @since Series 60 5.2
*/
IMPORT_C virtual void SkinChanged();
/**
- * Informs focuschange.
+ * Informs that plug-in element has gained a focus and highlight must be
+ * drawn if appropriate.
+ *
+ * @since Series 60 5.2
+ * @param aDrawNow whether plug-in should draw itself.
*/
IMPORT_C virtual void FocusChanged( TDrawNow aDrawNow );
/**
- * Informs size change.
+ * Informs that plug-in element size has changed. Size can change if the
+ * plug-in element is declared relatively to parent element.
+ *
+ * @since Series 60 5.2
*/
IMPORT_C virtual void SizeChanged();
--- a/homescreen_plat/menu_settings_api/menu_settings_api.metaxml Wed Mar 31 21:17:19 2010 +0300
+++ b/homescreen_plat/menu_settings_api/menu_settings_api.metaxml Wed Apr 14 15:47:59 2010 +0300
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<api id="3f80fb289efe39ff2107c2f067d360f6" dataversion="2.0">
<name>Menu Settings API</name>
- <description>Provides infromation about Menu current state.</description>
+ <description>Provides infromation about the current state of Menu application.</description>
<type>c++</type>
<collection>menufw</collection>
<libs/>
Binary file idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.confml has changed
--- a/idlehomescreen/data/qhd_tch/root_2001f482/group/bld.inf Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/root_2001f482/group/bld.inf Wed Apr 14 15:47:59 2010 +0300
@@ -25,7 +25,6 @@
// Support for productization and Carbide.Ui customization
//********************************************************
../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/root_2001f482/hsps/manifest.dat
-//../hsps/00/rootconfiguration.xml /epoc32/data/Z/resource/homescreen/root_2001f482/hsps/rootconfiguration.xml
../xuikon/00/Root.dat /epoc32/data/Z/resource/homescreen/root_2001f482/xuikon/root_2001f482.dat
../xuikon/00/Root.css /epoc32/data/Z/resource/homescreen/root_2001f482/xuikon/root.css
../xuikon/00/Root.xml /epoc32/data/Z/resource/homescreen/root_2001f482/xuikon/root.xml
@@ -44,9 +43,6 @@
// Support for S60 builds
//***********************
-../rom/root_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(root_2001f482_resources.iby)
-../rom/root_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(root_2001f482_customer.iby)
-//../rom/root_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(root_2001f482_variant.iby)
../rom/root.iby CORE_APP_LAYER_IBY_EXPORT_PATH(root_2001f482.iby)
--- a/idlehomescreen/data/qhd_tch/root_2001f482/rom/root_customer.iby Wed Mar 31 21:17:19 2010 +0300
+++ /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:
-* Root widget HSPS-plugin language specific IBY file.
-*
-*/
-
-#ifndef __ROOT_2001F482_CUSTOMER_IBY__
-#define __ROOT_2001F482_CUSTOMER_IBY__
-
-#if defined(__LAYOUT_360_640_TOUCH) || defined(__LAYOUT_640_360_TOUCH)
-
-// Enabled by DTD-localization tools, language specific
-data=ZPRIVATE\200159c0\install\root_2001f482\hsps\00\rootconfiguration.dtd \private\200159c0\install\root_2001f482\hsps\00\rootconfiguration.dtd
-
-#endif // __LAYOUT_360_640_TOUCH || __LAYOUT_640_360_TOUCH
-
-#endif // __ROOT_2001F482_CUSTOMER_IBY__
--- a/idlehomescreen/data/qhd_tch/root_2001f482/rom/root_resources.iby Wed Mar 31 21:17:19 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +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:
-* Root widget HSPS-plugin language specific IBY file.
-*
-*/
-
-#ifndef __ROOT_2001F482_RESOURCES_IBY__
-#define __ROOT_2001F482_RESOURCES_IBY__
-
-#if defined(__LAYOUT_360_640_TOUCH) || defined(__LAYOUT_640_360_TOUCH)
-
-// Enabled by DTD-localization tools, language specific
-
-#endif // __LAYOUT_360_640_TOUCH || __LAYOUT_640_360_TOUCH
-
-#endif // __ROOT_2001F482_RESOURCES_IBY__
--- a/idlehomescreen/data/qhd_tch/root_2001f482/rom/root_variant.iby Wed Mar 31 21:17:19 2010 +0300
+++ /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:
-* Root widget HSPS-plugin variant specific IBY file.
-*
-*/
-
-#ifndef __ROOT_2001F482_VARIANT_IBY__
-#define __ROOT_2001F482_VARIANT_IBY__
-
-#if defined(__LAYOUT_360_640_TOUCH) || defined(__LAYOUT_640_360_TOUCH)
-
-// Enabled by variation tools, variant specific
-//data=ZPRIVATE\200159c0\install\root_2001f482\hsps\00\rootconfiguration.xml \private\200159c0\install\root_2001f482\hsps\00\rootconfiguration.xml
-
-#endif // __LAYOUT_360_640_TOUCH || __LAYOUT_640_360_TOUCH
-
-#endif // __ROOT_2001F482_VARIANT_IBY__
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.xml Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.xml Wed Apr 14 15:47:59 2010 +0300
@@ -135,6 +135,12 @@
<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"/>
Binary file idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.confml has changed
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.gcfml Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.gcfml Wed Apr 14 15:47:59 2010 +0300
@@ -68,7 +68,7 @@
<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">
- <intial_settings>
+ <initial_settings>
<settings>
<xsl:if test="Customize1Shortcut = 1">
<item>
@@ -127,7 +127,7 @@
</item>
</xsl:if>
</settings>
- </intial_settings>
+ </initial_settings>
</xsl:if>
</plugin>
</xsl:for-each>
Binary file idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bmanifest.confml has changed
Binary file idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bxuikon.confml has changed
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/rom/view_variant.iby Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/rom/view_variant.iby Wed Apr 14 15:47:59 2010 +0300
@@ -22,7 +22,7 @@
#if defined(__LAYOUT_360_640_TOUCH) || defined(__LAYOUT_640_360_TOUCH)
// Enabled by variation tools, variant specific
-//data=ZPRIVATE\200159c0\install\view_2001f48b\hsps\00\viewconfiguration.xml \private\200159c0\install\view_2001f48b\hsps\00\viewconfiguration.xml
+data=ZPRIVATE\200159c0\install\view_2001f48b\hsps\00\viewconfiguration.xml \private\200159c0\install\view_2001f48b\hsps\00\viewconfiguration.xml
#endif // __LAYOUT_360_640_TOUCH || __LAYOUT_640_360_TOUCH
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.xml Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.xml Wed Apr 14 15:47:59 2010 +0300
@@ -135,6 +135,12 @@
<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"/>
Binary file idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.confml has changed
--- a/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.gcfml Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.gcfml Wed Apr 14 15:47:59 2010 +0300
@@ -68,7 +68,7 @@
<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">
- <intial_settings>
+ <initial_settings>
<settings>
<xsl:if test="Customize1Shortcut = 1">
<item>
@@ -127,7 +127,7 @@
</item>
</xsl:if>
</settings>
- </intial_settings>
+ </initial_settings>
</xsl:if>
</plugin>
</xsl:for-each>
Binary file idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4manifest.confml has changed
Binary file idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4xuikon.confml has changed
--- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.xml Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.xml Wed Apr 14 15:47:59 2010 +0300
@@ -135,6 +135,12 @@
<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"/>
Binary file idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.confml has changed
--- a/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.gcfml Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.gcfml Wed Apr 14 15:47:59 2010 +0300
@@ -68,7 +68,7 @@
<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">
- <intial_settings>
+ <initial_settings>
<settings>
<xsl:if test="Customize1Shortcut = 1">
<item>
@@ -127,7 +127,7 @@
</item>
</xsl:if>
</settings>
- </intial_settings>
+ </initial_settings>
</xsl:if>
</plugin>
</xsl:for-each>
Binary file idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5manifest.confml has changed
Binary file idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5xuikon.confml has changed
--- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.xml Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.xml Wed Apr 14 15:47:59 2010 +0300
@@ -135,6 +135,12 @@
<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"/>
--- a/idlehomescreen/data/qhd_tch/wideimage_2001f489/hsps/00/widgetconfiguration.xml Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/wideimage_2001f489/hsps/00/widgetconfiguration.xml Wed Apr 14 15:47:59 2010 +0300
@@ -1,28 +1,9 @@
<configuration>
<control>
<settings>
- <item id="wideimage_plugin" name="ContentSource">
- <property name="name" value=""/>
+ <item id="pub_id" name="ContentSource">
+ <property name="value" value=""/>
</item>
- <!--Def value "Test_Publisher"-->
- <item id="pub_id" name="publisher">
- <property name="value" value=""/>
- </item>
- <!-- Template designer choice -->
- <item id="prop1" name="contentdata">
- <property name="class" value="def_image"/>
- </item>
- <item id="prop2" name="contentdata">
- <property name="class" value="def_text"/>
- </item>
- <item id="prop3" name="contentdata">
- <property name="class" value="image1"/>
- </item>
-
- <!-- Template designer choice -->
- <item id="p_trigger" name="pubtrigger">
- <property name="name" value="selected"/>
- </item>
</settings>
</control>
</configuration>
--- a/idlehomescreen/data/qhd_tch/wideimage_2001f489/rom/wideimage_resources.iby Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/wideimage_2001f489/rom/wideimage_resources.iby Wed Apr 14 15:47:59 2010 +0300
@@ -21,7 +21,18 @@
#if defined(__LAYOUT_360_640_TOUCH) || defined(__LAYOUT_640_360_TOUCH)
// Enabled by DTD-localization tools, language specific
-data=ZPRIVATE\200159c0\install\wideimage_2001f489\xuikon\00\wideimage.o0000 \private\200159c0\install\wideimage_2001f489\xuikon\00\wideimage.o0000
+#if defined (__LOCALES_37_IBY__)
+data=ZPRIVATE\200159c0\install\wideimage_2001f489\xuikon\37\wideimage.o0037 \private\200159c0\install\wideimage_2001f489\xuikon\37\wideimage.o0037
+#endif
+#if defined (__LOCALES_50_IBY__)
+data=ZPRIVATE\200159c0\install\wideimage_2001f489\xuikon\50\wideimage.o0050 \private\200159c0\install\wideimage_2001f489\xuikon\50\wideimage.o0050
+#endif
+#if defined (__LOCALES_57_IBY__)
+data=ZPRIVATE\200159c0\install\wideimage_2001f489\xuikon\57\wideimage.o0057 \private\200159c0\install\wideimage_2001f489\xuikon\57\wideimage.o0057
+#endif
+#if defined (__LOCALES_94_IBY__)
+data=ZPRIVATE\200159c0\install\wideimage_2001f489\xuikon\94\wideimage.o0094 \private\200159c0\install\wideimage_2001f489\xuikon\94\wideimage.o0094
+#endif
#endif // __LAYOUT_360_640_TOUCH || __LAYOUT_640_360_TOUCH
--- a/idlehomescreen/data/qhd_tch/wideimage_2001f489/xuikon/00/wideimage.css Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/wideimage_2001f489/xuikon/00/wideimage.css Wed Apr 14 15:47:59 2010 +0300
@@ -16,7 +16,7 @@
display: block;
}
-image#default_image
+image#w_default_image
{
padding-top:9px;
padding-bottom:9px;
@@ -26,7 +26,7 @@
width: 64px;
}
-text#default_text
+text#w_default_text
{
padding-left:9px;
padding-right:9px;
--- a/idlehomescreen/data/qhd_tch/wideimage_2001f489/xuikon/00/wideimage.xml Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/wideimage_2001f489/xuikon/00/wideimage.xml Wed Apr 14 15:47:59 2010 +0300
@@ -3,7 +3,7 @@
<widget id="wideimage_template" focusable="true" _s60-initial-focus="1">
<!-- Data plugin in this widget -->
- <contentsource id="wideimage_plugin" name="" value="0x200286DD" />
+ <contentsource id="wrt_plugin" name="WRTWidget" value="0x200286DD" />
<configuration name="service" value="Service.ContentPublishing"/>
<configuration name="interface" value="IContentPublishing"/>
<configuration name="command" value="GetList"/>
@@ -12,15 +12,15 @@
<actions>
<action>
<trigger name="activate"/>
- <event id="p_trigger" name="" />
+ <event id="w_trigger" name="WRTWidget/publisher(selected)" />
</action>
</actions>
<box id="default_container" _s60-initial-focus="1">
- <image id="default_image">
- <property id="prop1" class=""/>
+ <image id="w_default_image">
+ <property id="default_image" class="WRTWidget/def_image"/>
</image>
- <text id="default_text">
- <property id="prop2" class=""/>
+ <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">
@@ -31,7 +31,7 @@
</action>
</actions>
<image id="wide_image">
- <property id="prop3" class=""/>
+ <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;"/>
--- a/idlehomescreen/data/qhd_tch/wideimage_2001f489/xuikon/37/wideimage.css Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/wideimage_2001f489/xuikon/37/wideimage.css Wed Apr 14 15:47:59 2010 +0300
@@ -16,7 +16,7 @@
display: block;
}
-image#default_image
+image#w_default_image
{
padding-top:9px;
padding-bottom:9px;
@@ -26,7 +26,7 @@
width: 64px;
}
-text#default_text
+text#w_default_text
{
padding-left:9px;
padding-right:9px;
--- a/idlehomescreen/data/qhd_tch/wideimage_2001f489/xuikon/50/wideimage.css Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/wideimage_2001f489/xuikon/50/wideimage.css Wed Apr 14 15:47:59 2010 +0300
@@ -16,7 +16,7 @@
display: block;
}
-image#default_image
+image#w_default_image
{
padding-top:9px;
padding-bottom:9px;
@@ -26,7 +26,7 @@
width: 64px;
}
-text#default_text
+text#w_default_text
{
padding-left:9px;
padding-right:9px;
--- a/idlehomescreen/data/qhd_tch/wideimage_2001f489/xuikon/57/wideimage.css Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/wideimage_2001f489/xuikon/57/wideimage.css Wed Apr 14 15:47:59 2010 +0300
@@ -16,7 +16,7 @@
display: block;
}
-image#default_image
+image#w_default_image
{
padding-top:9px;
padding-bottom:9px;
@@ -26,7 +26,7 @@
width: 64px;
}
-text#default_text
+text#w_default_text
{
padding-left:9px;
padding-right:9px;
--- a/idlehomescreen/data/qhd_tch/wideimage_2001f489/xuikon/94/wideimage.css Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/wideimage_2001f489/xuikon/94/wideimage.css Wed Apr 14 15:47:59 2010 +0300
@@ -16,7 +16,7 @@
display: block;
}
-image#default_image
+image#w_default_image
{
padding-top:9px;
padding-bottom:9px;
@@ -26,7 +26,7 @@
width: 64px;
}
-text#default_text
+text#w_default_text
{
padding-left:9px;
padding-right:9px;
--- a/idlehomescreen/inc/xnmenu.h Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/inc/xnmenu.h Wed Apr 14 15:47:59 2010 +0300
@@ -137,6 +137,12 @@
*/
virtual CXnNodePluginIf* SoftKeyL( XnMenuInterface::MXnMenuInterface::TSoftKeyPosition aPos ) = 0;
+ /**
+ * Returns softkey node, which should handle key event.
+ * @return softkey node which should handle key event, NULL if not available.
+ */
+ virtual CXnNodePluginIf* KeyEventNode() = 0;
+
/**
* Sets MXnMenuObserver observer
* @since S60 5.1
@@ -152,10 +158,11 @@
/**
* Tries to display menubar
- * @since S60 5.1
- * @param aMenuNodeId the menu node id
+ * @since S60 5.2
+ * @param aMenuNodeId the menu node id
+ * @param aContextMenu ETrue if context menu should be displayed, EFalse otherwise
*/
- virtual void TryDisplayingMenuBarL( const TDesC& aMenuNodeId ) = 0;
+ virtual void TryDisplayingMenuBarL( const TDesC& aMenuNodeId, TBool aContextMenu ) = 0;
};
}
@@ -220,6 +227,11 @@
*/
CXnNodePluginIf* SoftKeyL( XnMenuInterface::MXnMenuInterface::TSoftKeyPosition aPos );
+ /**
+ * @see MXnMenuInterface::KeyEventNode
+ */
+ CXnNodePluginIf* KeyEventNode();
+
/**
* @see MXnMenuInterface::SetObserver
*/
@@ -233,13 +245,13 @@
/**
* @see MXnMenuInterface::TryDisplayingMenuBarL
*/
- void TryDisplayingMenuBarL( const TDesC& aMenuNodeId );
-
-
+ void TryDisplayingMenuBarL( const TDesC& aMenuNodeId, TBool aContextMenu );
+
/**
* @see MXnComponentInterface::MakeInterfaceL
*/
- XnComponentInterface::MXnComponentInterface* MakeInterfaceL( const TDesC8& aType );
+ XnComponentInterface::MXnComponentInterface* MakeInterfaceL( const TDesC8& aType );
+
private:
/**
--- a/idlehomescreen/inc/xnmenuadapter.h Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/inc/xnmenuadapter.h Wed Apr 14 15:47:59 2010 +0300
@@ -148,6 +148,12 @@
CXnNodePluginIf* SoftKeyL( XnMenuInterface::MXnMenuInterface::TSoftKeyPosition aPos );
/**
+ * Returns softkey node, which should handle key event.
+ * @return softkey node which should handle key event, NULL if not available.
+ */
+ CXnNodePluginIf* KeyEventNode();
+
+ /**
* Finds softkey node by given position
* @since Series 60 5.0
*/
@@ -155,10 +161,11 @@
/**
* Tries to display menubar
- * @since Series 60 5.1
+ * @since Series 60 5.2
* @param aMenuNodeId the menu node id
+ * @param aContextMenu ETrue if context menu should be displayed, EFalse otherwise
*/
- void TryDisplayingMenuL( const TDesC& aMenuNodeId );
+ void TryDisplayingMenuL( const TDesC& aMenuNodeId, TBool aContextMenu );
public: // from CCoeControl
@@ -384,6 +391,7 @@
TBool iUpdateLskAppearance;
TBool iUpdateMskAppearance;
TBool iUpdateRskAppearance;
+ TBool iContextMenu;
CXnSoftkeyItem* iVisibleLSK;
CXnSoftkeyItem* iVisibleRSK;
CXnSoftkeyItem* iVisibleMSK;
--- a/idlehomescreen/inc/xnoomsyshandler.h Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/inc/xnoomsyshandler.h Wed Apr 14 15:47:59 2010 +0300
@@ -71,7 +71,8 @@
EMem1MB = 1024000,
EMem2MB = 2048000,
EMem3MB = 3072000,
- EMem4MB = 4096000
+ EMem4MB = 4096000,
+ EMem6MB = 6144000
};
public: // Construction / destruction.
--- a/idlehomescreen/inc/xnpropertysubscriber.h Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/inc/xnpropertysubscriber.h Wed Apr 14 15:47:59 2010 +0300
@@ -94,17 +94,26 @@
private:
/**
- * From CActive.
- * Handle completion
+ * Handles an active object's request completion event.
+ *
+ * @see CActive::RunL
*/
void RunL();
/**
- * From CActive.
- * How to cancel me
+ * Implements cancellation of an outstanding request.
+ *
+ * @see CActive::DoCancel
*/
void DoCancel();
+ /**
+ * RunError
+ *
+ * @see CActive::RunError
+ */
+ TInt RunError(TInt aError);
+
private:
// Data
--- a/idlehomescreen/inc/xnuiengine.h Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/inc/xnuiengine.h Wed Apr 14 15:47:59 2010 +0300
@@ -37,7 +37,6 @@
class CXnPointerArray;
class CXnEditor;
class CXnEditMode;
-class CXnHitTest;
class CXnKeyEventDispatcher;
// Class declaration
@@ -243,14 +242,6 @@
void RefreshMenuL();
/**
- * Activate a view
- *
- * @since Series 60 3.1
- * @param aViewNode View node
- */
- void ActivateViewL( CXnNode& aViewNode );
-
- /**
* Returns view manager
*
* @since S60 5.0
@@ -414,14 +405,6 @@
RPointerArray< CXnNode >* Plugins();
/**
- * Gets hit test
- *
- * @since S60 5.1
- * @return the hittest
- */
- CXnHitTest& HitTest() const;
-
- /**
* Gets theme resource file
*
* @since S60 5.1
--- a/idlehomescreen/inc/xnuiengineappif.h Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/inc/xnuiengineappif.h Wed Apr 14 15:47:59 2010 +0300
@@ -139,14 +139,6 @@
IMPORT_C void RefreshMenuL();
/**
- * Activate a view
- *
- * @since Series 60 3.1
- * @param aViewNode View node
- */
- IMPORT_C void ActivateViewL( CXnNodeAppIf& aViewNode );
-
- /**
* Returns the active view
*
* @since Series 60 3.1
--- a/idlehomescreen/inc/xnuienginepluginif.h Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/inc/xnuienginepluginif.h Wed Apr 14 15:47:59 2010 +0300
@@ -127,12 +127,6 @@
*/
IMPORT_C void SetFocusedNode( CXnNodePluginIf* aFocusedNode );
- /**
- * Restore focus to previously focused node
- *
- * @since Series 60 3.1
- */
- IMPORT_C void RestorePreviousFocusedNode();
/**
* Get the string pool
@@ -191,14 +185,6 @@
TInt aReferenceValue );
/**
- * Activate a view
- *
- * @since Series 60 3.1
- * @param aViewNode View node
- */
- IMPORT_C void ActivateViewL( CXnNodePluginIf& aViewNode );
-
- /**
* Get the size of the current screen device
*
* @since Series 60 3.1
@@ -253,29 +239,6 @@
* @return ETrue if widgets visible, EFalse otherwise
*/
IMPORT_C TBool WidgetsVisible() const;
-
- /**
- * Gets control defining hit region
- *
- * @since Series 60 5.0
- * @return Control defining the hit region
- */
- IMPORT_C CXnControlAdapter* HitRegion() const;
-
- /**
- * Deactivates focused node
- *
- * @since Series 60 5.0
- */
- IMPORT_C void DeactivateFocusedNodeL();
-
- /**
- * Queries wheter focus is visible
- *
- * @since Series 60 5.0
- * @return ETrue if focus is shown, EFalse otherwise
- */
- IMPORT_C TBool ShowFocus();
/**
* Gets a plugin node which the given node is.
@@ -285,35 +248,7 @@
* @return A Plugin node.
*/
IMPORT_C CXnNodePluginIf& PluginNodeL( CXnNodePluginIf* aNode );
-
- /**
- * Sets focus visibility for active view
- * @since Series 60 5.0
- * @param aVisible Visibility state
- */
- IMPORT_C void SetFocusVisibleL( TBool aVisible );
-
- /**
- * Return focus visibility of active view
- * @since Series 60 5.0
- * @return ETrue if active view focus is visible, EFalse otherwise
- */
- IMPORT_C TBool FocusVisible();
-
- /**
- * Enables or disables swipe for active view
- * @since Series 60 5.0
- * @param aEnable True will enable swipe, false will disable
- */
- IMPORT_C void EnableSwipeL( TBool aEnable );
-
- /**
- * Return whether swipe is enabled or not
- * @since Series 60 5.0
- * @return ETrue if swipe is enable, EFalse otherwise
- */
- IMPORT_C TBool SwipeEnabledL();
-
+
/**
* Disables layoyt and redraw, places cleanup item to cleanup stack
* for enabling layot and redraw
--- a/idlehomescreen/inc/xnviewmanager.h Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/inc/xnviewmanager.h Wed Apr 14 15:47:59 2010 +0300
@@ -22,7 +22,6 @@
#include <e32base.h>
// User includes
-#include "xnpropertysubscriber.h"
// Forward declarations
class CXnUiEngine;
@@ -86,8 +85,7 @@
* @lib xn3layoutengine.lib
* @since S60 5.0
*/
-NONSHARABLE_CLASS( CXnViewManager ) : public CBase,
- public MXnPropertyChangeObserver
+NONSHARABLE_CLASS( CXnViewManager ) : public CBase
{
public:
/**
@@ -119,14 +117,6 @@
* 2nd phase constructor
*/
void ConstructL();
-
-private:
- // from MXnPropertyChangeObserver
-
- /**
- * @see MXnPropertyChangeObserver
- */
- void PropertyChangedL( const TUint32 aKey, const TInt aValue );
public:
// New functions
@@ -212,9 +202,7 @@
CXnOomSysHandler& OomSysHandler() const;
void UpdatePageManagementInformationL();
-
- TBool UiStartupPhaseAllDone() const;
-
+
private:
// new functions
@@ -295,12 +283,6 @@
* Not own.
*/
CXnUiEngine* iUiEngine;
-
- /**
- * UI startup phase observer
- * Own.
- */
- CXnPropertySubscriber* iUiStartupPhase;
/**
* Comopser.
@@ -362,11 +344,6 @@
* Own.
*/
CPeriodic* iStabilityTimer;
-
- /**
- * Flag to indicate that UI startup phase is ready
- */
- TBool iUiStartupPhaseAllDone;
private:
// Friend classes
--- a/idlehomescreen/loc/activeidle3.loc Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/loc/activeidle3.loc Wed Apr 14 15:47:59 2010 +0300
@@ -303,3 +303,9 @@
// w:
// r: TB9.2
#define qtn_hs_error_content_removed "Critical error occurred. Content removed."
+
+// d: Wait/progress note text that is shown when backup or restore process is ongoing.
+// l: popup_note_wait_window
+// w:
+// r: TB9.2
+#define qtn_hs_backup_use_prevented "Home screen is not in use during backup or restore operation. Wait to finish."
Binary file idlehomescreen/widgetmanager/conf/widgetmanager.confml has changed
Binary file idlehomescreen/widgetmanager/conf/widgetmanager_20026F53.crml has changed
--- a/idlehomescreen/widgetmanager/group/widgetmanager.mmp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/widgetmanager/group/widgetmanager.mmp Wed Apr 14 15:47:59 2010 +0300
@@ -54,6 +54,7 @@
SOURCE wminstaller.cpp
SOURCE wmprocessmonitor.cpp
SOURCE wmwidgetorderdata.cpp
+SOURCE wmspbgcleaner.cpp
SOURCEPATH ../data
START RESOURCE 20026F53.rss
@@ -118,4 +119,6 @@
LIBRARY centralrepository.lib
LIBRARY bmpanim.lib // AknBitmap animation
LIBRARY inetprotutil.lib
+LIBRARY browserlauncher.lib
+
// End of file
--- a/idlehomescreen/widgetmanager/inc/wmconfiguration.h Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/widgetmanager/inc/wmconfiguration.h Wed Apr 14 15:47:59 2010 +0300
@@ -35,7 +35,19 @@
{
public: // constructors and destructor
-
+
+ /** Operator Application type */
+ enum TOpAppType
+ {
+ EUnknown,
+ ES60,
+ ECwrt,
+ EWrt,
+ EJava,
+ EQt,
+ EReserved
+ };
+
/** Two-phased constructor. */
static CWmConfiguration* NewL(
CWmResourceLoader& aResourceLoader );
@@ -88,16 +100,52 @@
* @param aIndex index of the button, starting at 0
*/
const TDesC& PortalButtonClientParam( TInt aIndex );
-
+
+ /**
+ * Returns bool if buttons are mirrored.
+ * @return true when operator button on left on portraid and
+ * on top on landscape.
+ */
+ TBool PortalButtonsMirrored();
+
+ /**
+ * Returns application type by button index
+ * @param aIndex button index
+ * @return application type
+ */
+ TOpAppType PortalButtonApplicationType( TInt aIndex );
+
+ /**
+ * Returns application id as string
+ * @param aIndex button index
+ * @param aOperatorAppId string to get app id
+ */
+ void PortalButtonApplicationId( TInt aIndex, TDes& aOperatorAppId );
+
+ /**
+ * Returns application id as uid
+ * @param aIndex button index
+ * @param aOperatorAppId uid to get app id
+ */
+ void PortalButtonApplicationId( TInt aIndex, TUid& aOperatorAppId );
+
private: // New functions
void LoadConfigurationL();
TInt FindCorrectLanguageId();
HBufC* ReadDescParameterL( TInt aKey );
- void ReadIntParameter( TInt aKey, TInt32& aValue );
+ void ReadInt32Parameter( TInt aKey, TInt32& aValue );
+ void ReadIntParameter( TInt aKey, TInt& aValue );
HBufC* ReadLocalisedParameterL( TInt aOffset );
- void IndexConversion( TInt& aIndex );
-
+ void ReadOperatorApplicationInfoL();
+ TUid StringToUid( const TDesC& aStr );
+
+ /** Returns uid of the widget with a particular bundle identifier. */
+ TUid FetchWidgetUidFromRegistryL( const TDesC& aBundleId );
+
+ /** sets operator icon to button if not already defined */
+ void SetOperatorIcon( TUid aUid );
+
private:
/**
@@ -132,9 +180,9 @@
HBufC* iOviStoreClientParam;
/**
- * OVI store laucher ui
+ * OVI store laucher uid
*/
- TUid iOviStoreUid;
+ TUid iOviStoreUid;
/**
* OPERATOR button text
@@ -151,7 +199,36 @@
*/
HBufC* iOperatorButtonUrl;
- };
+ /**
+ * OPERATOR store button application parameter
+ */
+ HBufC* iOperatorParam;
+
+ /**
+ * OPERATOR store application id as string. Used for java
+ */
+ HBufC* iOperatorAppIdStr;
+
+ /**
+ * OPERATOR store application id as uid.
+ */
+ TUid iOperatorAppIdUid;
+
+ /**
+ * OPERATOR store application type
+ */
+ TOpAppType iOperatorAppType;
+
+ /**
+ * Tells if operator button is enabled.
+ */
+ TBool iOperatorButtonEnabled;
+
+ /**
+ * Tells if buttons need to be mirrored for operator.
+ */
+ TBool iButtonsMirrored;
+ };
#endif // WMCONFIGURATION_H
--- a/idlehomescreen/widgetmanager/inc/wmcrkeys.h Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/widgetmanager/inc/wmcrkeys.h Wed Apr 14 15:47:59 2010 +0300
@@ -53,18 +53,46 @@
// ************************************************************
-// NON-LOCALISED parameters
+// NON-LOCALISED OVI parameters
// ************************************************************
/** Key to Ovi Store Client param */
const TUint32 KOviStoreClientParam = 0x1F;
+/** Key to Ovi Store client Uid */
+const TUint32 KOviStoreUid = 0x20;
+
+// ************************************************************
+// NON-LOCALISED Operator parameters
+// ************************************************************
+
/** Key to Operator button icon */
-const TUint32 KOperatorButtonIcon = 0x20;
+const TUint32 KOperatorButtonEnabled = 0x21;
+
+/** Key to Operator button icon */
+const TUint32 KOperatorButtonIcon = 0x22;
-/** Key to Ovi Store client Uid */
-const TUint32 KOviStoreUid = 0x21;
+/**
+ * Key to Operator application type and id.
+ * Give ':' as separator between type and id.
+ * Type can be s60, cwrt, wrt, java, qt
+ * Examples:
+ * s60:0x10005902 Application Uid as id
+ * cwrt:ovi.serviceui.SSOUI BundleId as id
+ * wrt:com.accuweather.widget.touchNG BundleId as id
+ * java:c:/sys/bin/javastore.jar full path for java app
+ * qt:0x2001A9CA Application Uid as id
+ */
+const TUint32 KOperatorAppTypeAndId = 0x23;
+/** Key to Operator application param */
+const TUint32 KOperatorParam = 0x24;
+
+/**
+ * Key to define if operator button needs to be placed to left in landscape and
+ * top on portraid. By default it's right and bottom.
+ */
+const TUint32 KOperatorButtonHigherPriority = 0x25;
#endif // __WMCRKEYS_H__
--- a/idlehomescreen/widgetmanager/inc/wmlistbox.h Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/widgetmanager/inc/wmlistbox.h Wed Apr 14 15:47:59 2010 +0300
@@ -75,6 +75,11 @@
void ResizeDefaultBitmaps();
/**
+ * sets item height according to layout
+ */
+ void UpdateItemHeight();
+
+ /**
* Responds to skin changed event.
*/
void HandleSkinChanged();
--- a/idlehomescreen/widgetmanager/inc/wmmaincontainer.h Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/widgetmanager/inc/wmmaincontainer.h Wed Apr 14 15:47:59 2010 +0300
@@ -158,7 +158,7 @@
/**
* executes findbox deactivation
*/
- void DeactivateFindPaneL();
+ void DeactivateFindPaneL(TBool aLayout = ETrue);
/**
* sorts the widget list in alphabetical order
@@ -194,6 +194,13 @@
public:
+ /**
+ * Handles focus changed events.
+ *
+ * @see CCoeControl::FocusChanged
+ */
+ void FocusChanged( TDrawNow aDrawNow );
+
/**
* Handles key events.
*
@@ -317,6 +324,8 @@
TKeyResponse HandleSearchKeyEventL(
const TKeyEvent& aKeyEvent,
TEventCode aType );
+ TInt OperatorButtonHigherPriority( TInt aIndex );
+
private:
/**
--- a/idlehomescreen/widgetmanager/inc/wmmaincontainerview.h Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/widgetmanager/inc/wmmaincontainerview.h Wed Apr 14 15:47:59 2010 +0300
@@ -21,8 +21,8 @@
#include <aknview.h>
-
class CWmMainContainer;
+class CWmSpBgCleaner;
class CWmPlugin;
/**
@@ -103,13 +103,6 @@
TUid aCustomMessageId,
const TDesC8& aCustomMessage );
- /**
- * Event handler for status pane size changes.
- *
- * @see CAknView::HandleStatusPaneSizeChange
- */
- void HandleStatusPaneSizeChange();
-
protected: // From MEikMenuObserver
/*
* Menu observer interface.
@@ -139,6 +132,11 @@
*/
CWmMainContainer* iWmMainContainer;
+ /**
+ * Statuspane background cleaner
+ */
+ CWmSpBgCleaner* iWmSpBgCleaner;
+
/**
* the plugin root (not owned)
*/
--- a/idlehomescreen/widgetmanager/inc/wmportalbutton.h Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/widgetmanager/inc/wmportalbutton.h Wed Apr 14 15:47:59 2010 +0300
@@ -20,6 +20,8 @@
#define ___WMPORTALBUTTON_H__
#include <aknbutton.h> // CAknButton
+#include <AknServerApp.h> //MAknServerAppExitObserver
+
#include "wmimageconverter.h"
#include "wmcommon.h"
@@ -28,6 +30,7 @@
class CFbsBitmap;
class CWmConfiguration;
class CWmProcessMonitor;
+class CBrowserLauncher;
/**
* Portal button ( ovi, operator ) class for Wm
@@ -36,7 +39,8 @@
*/
NONSHARABLE_CLASS( CWmPortalButton ) : public CAknButton,
public MConverterObserver,
- public MCoeControlObserver
+ public MCoeControlObserver,
+ public MAknServerAppExitObserver
{
public:
/*
@@ -83,6 +87,11 @@
/** Observes the button's own activity */
void HandleControlEventL( CCoeControl* aControl, TCoeEvent aEventType );
+protected: // from MAknServerAppExitObserver
+
+ /** Observes when browser is exited */
+ void HandleServerAppExit( TInt aReason );
+
protected: // from CCoeControl
/** Handles pointer events. */
@@ -110,14 +119,25 @@
const TDesC& aText,
TAknTextComponentLayout& aLayout,
TInt aMargin ) const;
- /** Runs operator button action */
- void RunOperatorL( CWmConfiguration& aConf );
/** Runs ovi store launcher */
void RunOviL( CWmConfiguration& aConf );
/** Starts browser */
- void StartBrowserL( CWmConfiguration& aConf );
+ void StartBrowserL( const TDesC& aUrl );
+
+ /** Starts operator application */
+ void RunOperatorApplicationL( CWmConfiguration& aConf );
+
+ /** Starts rprocess by given values */
+ void StartProcessL( TUid aUid, const TDesC& aParam );
+
+ /**
+ * Opens cwrt/wrt widget to fullscreen.
+ * @param aAppUid Uid of the widget
+ * @param aParams Optional parameters
+ * */
+ void StartWidgetL( TUid aAppUid, const TDesC& aParams );
private: //data members
@@ -142,8 +162,16 @@
/** icon mask */
CFbsBitmap* iButtonIconMask;
- /** Monitors process */
- CWmProcessMonitor* iProcessMonitor;
+ /**
+ * Monitors process
+ */
+ CWmProcessMonitor* iProcessMonitor;
+
+ /**
+ * Broswer launcher.
+ */
+ CBrowserLauncher* iBrowserLauncher;
+
};
#endif //___WMPORTALBUTTON_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/inc/wmspbgcleaner.h Wed Apr 14 15:47:59 2010 +0300
@@ -0,0 +1,76 @@
+/*
+* 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:
+* Declares statuspane's background cleaner.
+*
+*/
+
+#ifndef __WMSPBGCLEANER_
+#define __WMSPBGCLEANER_
+
+// Forward declarations
+
+/**
+ * Statuspane background cleaner.
+ *
+ * @class CWmSpBgCleaner wmspbgcleaner.h
+ */
+NONSHARABLE_CLASS( CWmSpBgCleaner ) : public CCoeControl
+ {
+public:
+ /**
+ * Two-phased constructors.
+ */
+ static CWmSpBgCleaner* NewL();
+ static CWmSpBgCleaner* NewLC();
+
+ /** Destructor */
+ ~CWmSpBgCleaner();
+
+private:
+ /** constructor */
+ CWmSpBgCleaner();
+
+ /** 2nd phase constructor */
+ void ConstructL();
+
+
+protected: // from base class CCoeControl
+
+ /**
+ * Handles a change to the control's resources
+ *
+ * @see CCoeControl::HandleResourceChange
+ */
+ void HandleResourceChange( TInt aType );
+
+ /**
+ * Sets the control's extent, specifying a rectangle.
+ *
+ * @see CCoeControl::SizeChanged
+ */
+ void SizeChanged();
+
+ /*
+ * Draws the control.
+ *
+ * @see CCoeControl::Draw
+ */
+ void Draw( const TRect& aRect ) const;
+
+private:
+
+ };
+
+#endif // __WMSPBGCLEANERCTRL_
--- a/idlehomescreen/widgetmanager/inc/wmwidgetdata.h Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/widgetmanager/inc/wmwidgetdata.h Wed Apr 14 15:47:59 2010 +0300
@@ -193,7 +193,7 @@
inline const CHsContentInfo& HsContentInfo() const;
/** widget name */
- inline const TDesC& Name() const;
+ const TDesC& Name() const;
/** widget uid */
inline TUid Uid() const;
@@ -229,7 +229,7 @@
void VisualizeUninstallL();
/** stop uninstallation animation */
- void StopUninstallAnimationL();
+ void StopUninstallAnimation();
protected: // from MConverterObserver
--- a/idlehomescreen/widgetmanager/inc/wmwidgetdata.inl Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/widgetmanager/inc/wmwidgetdata.inl Wed Apr 14 15:47:59 2010 +0300
@@ -27,10 +27,6 @@
inline const CHsContentInfo& CWmWidgetData::HsContentInfo() const
{ return *iHsContentInfo; }
- /** widget name */
- inline const TDesC& CWmWidgetData::Name() const
- { return iHsContentInfo->Name(); }
-
/** widget uid */
inline TUid CWmWidgetData::Uid() const
{ return UidFromString( iHsContentInfo->Uid() ); };
--- a/idlehomescreen/widgetmanager/src/wmconfiguration.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/widgetmanager/src/wmconfiguration.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -20,6 +20,7 @@
#include <centralrepository.h>
#include <StringLoader.h>
#include <AknsConstants.h>
+#include <widgetregistryclient.h> // widget reqistry
#include <widgetmanagerview.rsg>
#include <widgetmanager.mbg>
@@ -35,6 +36,14 @@
const TInt KLangGroupSize = KLangId1 - KLangId0;
const TUint32 KLastLangId = KLangId9;
+_LIT( KOpAppTypeS60, "s60" );
+_LIT( KOpAppTypeCwrt, "cwrt" );
+_LIT( KOpAppTypeWrt, "wrt" );
+_LIT( KOpAppTypeJava, "java" );
+_LIT( KOpAppTypeQt, "qt" );
+_LIT( KSeparator, ":" );
+_LIT( KOperatorIcon, "uid(%d)");
+_LIT( KHexPrefix, "0x" );
// ---------------------------------------------------------
// CWmConfiguration::NewL
@@ -58,14 +67,15 @@
CWmResourceLoader& aResourceLoader )
: iResourceLoader( aResourceLoader )
{
- iRepository = NULL;
+
+ // ovi
iOviStoreUid = KNullUid;
- iOviStoreClientParam = NULL;
- iOviButtonTitle = NULL;
- iOviButtonIcon = NULL;
- iOperatorButtonTitle = NULL;
- iOperatorButtonIcon = NULL;
- iOperatorButtonUrl = NULL;
+
+ // operator
+ iOperatorAppIdUid = KNullUid;
+ iOperatorAppType = EUnknown;
+ iOperatorButtonEnabled = EFalse;
+ iButtonsMirrored = EFalse;
}
// ---------------------------------------------------------
@@ -75,12 +85,16 @@
CWmConfiguration::~CWmConfiguration()
{
delete iRepository;
+ // ovi
delete iOviStoreClientParam;
delete iOviButtonTitle;
delete iOviButtonIcon;
+ // operator
delete iOperatorButtonTitle;
delete iOperatorButtonIcon;
delete iOperatorButtonUrl;
+ delete iOperatorParam;
+ delete iOperatorAppIdStr;
}
// ---------------------------------------------------------
@@ -118,18 +132,23 @@
iRepository = CRepository::NewL(
TUid::Uid( KCrWidgetManagerm ) );
- // read fixed parameters
- ReadIntParameter( KOviStoreUid, iOviStoreUid.iUid );
+ // read Ovi parameters
+ ReadInt32Parameter( KOviStoreUid, iOviStoreUid.iUid );
iOviStoreClientParam = ReadDescParameterL( KOviStoreClientParam );
- // determine language and read localised parameters
- iLanguageIndex = FindCorrectLanguageId();
- iOperatorButtonTitle = ReadLocalisedParameterL( KLangOffsetOperatorText );
- iOperatorButtonUrl = ReadLocalisedParameterL( KLangOffsetOperatorUrl );
-
- if ( iOperatorButtonUrl && iOperatorButtonUrl->Length() > 0 )
+
+ // read operator parameters if operator button enabled
+ ReadIntParameter( KOperatorButtonEnabled, iOperatorButtonEnabled );
+ if ( iOperatorButtonEnabled )
{
- // construct the operator button icon.
+ // determine language and read localised parameters
+ iLanguageIndex = FindCorrectLanguageId();
+ iOperatorButtonTitle = ReadLocalisedParameterL( KLangOffsetOperatorText );
+ iOperatorButtonUrl = ReadLocalisedParameterL( KLangOffsetOperatorUrl );
+ // read non-localised parameters
iOperatorButtonIcon = ReadDescParameterL( KOperatorButtonIcon );
+ ReadOperatorApplicationInfoL();
+ iOperatorParam = ReadDescParameterL( KOperatorParam );
+ ReadIntParameter( KOperatorButtonHigherPriority, iButtonsMirrored );
}
delete iRepository;
@@ -191,17 +210,26 @@
}
// ---------------------------------------------------------
+// CWmConfiguration::ReadInt32ParameterIntL
+// ---------------------------------------------------------
+//
+void CWmConfiguration::ReadInt32Parameter( TInt aKey, TInt32& aValue )
+ {
+ TInt value = 0;
+ if ( iRepository->Get( aKey, value ) == KErrNone )
+ {
+ aValue = value;
+ }
+ }
+
+// ---------------------------------------------------------
// CWmConfiguration::ReadIntParameterIntL
// ---------------------------------------------------------
//
-void CWmConfiguration::ReadIntParameter( TInt aKey, TInt32& aValue )
+void CWmConfiguration::ReadIntParameter( TInt aKey, TInt& aValue )
{
- TInt read = KErrNone;
- TInt err = iRepository->Get( aKey, read );
- if( err == KErrNone )
- {
- aValue = read;
- }
+ aValue = 0;
+ iRepository->Get( aKey, aValue );
}
// ---------------------------------------------------------
@@ -231,14 +259,102 @@
}
// ---------------------------------------------------------
+// CWmConfiguration::ReadOperatorApplicationInfoL
+// ---------------------------------------------------------
+//
+void CWmConfiguration::ReadOperatorApplicationInfoL()
+ {
+ HBufC* applicationInfo = ReadDescParameterL( KOperatorAppTypeAndId );
+ if ( applicationInfo && applicationInfo->Des().Length() > 0 )
+ {
+ CleanupStack::PushL( applicationInfo );
+ applicationInfo->Des().TrimAll();
+
+ // parse
+ TInt separator = applicationInfo->Des().Find( KSeparator );
+ if ( separator != KErrNotFound )
+ {
+ TPtrC type = applicationInfo->Des().Left( separator );
+ TPtrC appId = applicationInfo->Des().Mid(
+ separator + KSeparator().Length() );
+
+ if ( !type.Compare( KOpAppTypeS60 ) )
+ {
+ iOperatorAppType = ES60;
+ iOperatorAppIdUid = StringToUid( appId );
+ SetOperatorIcon( iOperatorAppIdUid );
+ }
+ else if ( !type.Compare( KOpAppTypeCwrt ) )
+ {
+ iOperatorAppType = ECwrt;
+ iOperatorAppIdUid = FetchWidgetUidFromRegistryL( appId );
+ SetOperatorIcon( iOperatorAppIdUid );
+ }
+ else if ( !type.Compare( KOpAppTypeWrt ) )
+ {
+ iOperatorAppType = EWrt;
+ iOperatorAppIdUid = FetchWidgetUidFromRegistryL( appId );
+ SetOperatorIcon( iOperatorAppIdUid );
+ }
+ else if ( !type.Compare( KOpAppTypeJava ) )
+ {
+ //TODO: java support is not fully implemented
+ User::Leave( KErrGeneral );
+ iOperatorAppType = EJava;
+ iOperatorAppIdStr = appId.AllocL();
+ }
+ else if ( !type.Compare( KOpAppTypeQt ) )
+ {
+ iOperatorAppType = EQt;
+ iOperatorAppIdUid = StringToUid( appId );
+ SetOperatorIcon( iOperatorAppIdUid );
+ }
+ }
+ CleanupStack::PopAndDestroy( applicationInfo );
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmConfiguration::SetOperatorIcon
+// ---------------------------------------------------------
+//
+void CWmConfiguration::SetOperatorIcon( TUid aUid )
+ {
+ if ( iOperatorButtonIcon &&
+ !iOperatorButtonIcon->Des().Length() )
+ {
+ delete iOperatorButtonIcon;
+ iOperatorButtonIcon = NULL;
+ TRAP_IGNORE( iOperatorButtonIcon = HBufC::NewL(
+ KMaxUidName + KOperatorIcon().Length() ) );
+ iOperatorButtonIcon->Des().Format(
+ KOperatorIcon(), aUid );
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmConfiguration::FetchWidgetUidFromRegistryL
+// ---------------------------------------------------------
+//
+TUid CWmConfiguration::FetchWidgetUidFromRegistryL(
+ const TDesC& aBundleId )
+ {
+ RWidgetRegistryClientSession clientSession;
+ User::LeaveIfError( clientSession.Connect() );
+ CleanupClosePushL( clientSession );
+ TInt ret = clientSession.GetWidgetUidL( aBundleId );
+ clientSession.Disconnect();
+ CleanupStack::PopAndDestroy( &clientSession );
+ return TUid::Uid( ret );
+ }
+
+// ---------------------------------------------------------
// CWmConfiguration::PortalButtonCount
// ---------------------------------------------------------
//
TInt CWmConfiguration::PortalButtonCount()
{
- if ( iOperatorButtonUrl && iOperatorButtonUrl->Length() > 0 )
- return 2;
- return 1;
+ return ( iOperatorButtonEnabled ? 2 : 1 );
}
// ---------------------------------------------------------
@@ -247,10 +363,9 @@
//
const TDesC& CWmConfiguration::PortalButtonText( TInt aIndex )
{
- IndexConversion( aIndex );
if ( aIndex == 0 && iOviButtonTitle )
return *iOviButtonTitle;
- if ( aIndex == 1 && iOperatorButtonTitle )
+ if ( aIndex == 1 && iOperatorButtonTitle && iOperatorButtonEnabled )
return *iOperatorButtonTitle;
return KNullDesC;
}
@@ -261,10 +376,9 @@
//
const TDesC& CWmConfiguration::PortalButtonIcon( TInt aIndex )
{
- IndexConversion( aIndex );
if ( aIndex == 0 && iOviButtonIcon )
return *iOviButtonIcon;
- if ( aIndex == 1 && iOperatorButtonIcon )
+ if ( aIndex == 1 && iOperatorButtonIcon && iOperatorButtonEnabled )
return *iOperatorButtonIcon;
return KNullDesC;
}
@@ -275,7 +389,8 @@
//
const TDesC& CWmConfiguration::PortalButtonBrowserUrl( TInt aIndex )
{
- if ( aIndex == 1 && iOperatorButtonUrl )
+ // No support for ovi here
+ if ( aIndex == 1 && iOperatorButtonUrl && iOperatorButtonEnabled )
return *iOperatorButtonUrl;
return KNullDesC;
}
@@ -290,10 +405,8 @@
{
return iOviStoreUid;
}
- // Operator client uid not supported.
- // If operator client is a widget we can use widget registry
- // to fetch uid of operator widget save it to member and return that here
-
+ // operator not supported. Get operator data using
+ // PortalButtonApplicationInfoL
return KNullUid;
}
@@ -307,25 +420,93 @@
{
return *iOviStoreClientParam;
}
- // Operator client param not supported. Can be added if needed.
+ if ( aIndex == 1 && iOperatorParam && iOperatorButtonEnabled )
+ {
+ return *iOperatorParam;
+ }
return KNullDesC;
}
+// ---------------------------------------------------------
+// CWmConfiguration::PortalButtonsMirrored
+// ---------------------------------------------------------
+//
+TBool CWmConfiguration::PortalButtonsMirrored()
+ {
+ return iButtonsMirrored;
+ }
+
+// ---------------------------------------------------------
+// CWmConfiguration::PortalButtonApplicationType
+// ---------------------------------------------------------
+//
+CWmConfiguration::TOpAppType CWmConfiguration::PortalButtonApplicationType(
+ TInt aIndex )
+ {
+ if ( aIndex == 1 )
+ {
+ return iOperatorAppType;
+ }
+ // no support for ovi
+ return EUnknown;
+ }
+
+// ---------------------------------------------------------
+// CWmConfiguration::PortalButtonApplicationId
+// ---------------------------------------------------------
+//
+void CWmConfiguration::PortalButtonApplicationId(
+ TInt aIndex, TDes& aOperatorAppId )
+ {
+ if ( aIndex == 1 )
+ {
+ aOperatorAppId.Copy( *iOperatorAppIdStr );
+ }
+ // no support for ovi
+ }
+
+// ---------------------------------------------------------
+// CWmConfiguration::PortalButtonApplicationId
+// ---------------------------------------------------------
+//
+void CWmConfiguration::PortalButtonApplicationId(
+ TInt aIndex, TUid& aOperatorAppId )
+ {
+ if ( aIndex == 1 )
+ {
+ aOperatorAppId = iOperatorAppIdUid;
+ }
+ // no support for ovi
+ }
+
+// ---------------------------------------------------------
+// CWmConfiguration::StringToUid
+// ---------------------------------------------------------
+//
+TUid CWmConfiguration::StringToUid( const TDesC& aStr )
+ {
+ if ( aStr.Length() > 0 && aStr.Find( KHexPrefix ) == 0 )
+ {
+ // hex value 0x12345678
+ TLex lex( aStr.Mid( KHexPrefix().Length() ) );
+ TUint id = 0;
+ if ( lex.Val( id, EHex ) == KErrNone )
+ {
+ return TUid::Uid( (TInt)id );
+ }
+ }
+ else if ( aStr.Length() > 0 )
+ {
+ TLex lex( aStr );
+ TUint id( 0 );
+ if ( KErrNone == lex.Val( id ) )
+ {
+ return TUid::Uid( (TInt)id );
+ }
+ }
+ return KNullUid;
+ }
+
-// ---------------------------------------------------------
-// CWmConfiguration::IndexConversion
-// ---------------------------------------------------------
-//
-void CWmConfiguration::IndexConversion( TInt& /*aIndex*/ )
- {
- // if there is a need to configure switching button places
- // (operator button left, then OVI button) then this method
- // would have something like this:
-
- // if ( iSwitchButtons ) aIndex = 1 - aIndex;
-
- // but for now, this method is empty.
- }
-
// End of File
--- a/idlehomescreen/widgetmanager/src/wmdetailsdlg.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/widgetmanager/src/wmdetailsdlg.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -180,12 +180,11 @@
EEikEdwinAvkonDisableCursor |
EEikEdwinDisplayOnly |
EEikEdwinReadOnly );
+ iRtEditor->EnableKineticScrollingL( ETrue );
CEikScrollBarFrame* scrollBarFrame = iRtEditor->CreateScrollBarFrameL();
scrollBarFrame->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff,
- CEikScrollBarFrame::EOff ); // set to EAuto
- // when layout fixed. ~wk04_2010
- // currently scrollbar overlaps cba.
+ CEikScrollBarFrame::EAuto );
iMarquee = CAknMarqueeControl::NewL();
TCallBack callback( RedrawCallback, this );
@@ -225,18 +224,12 @@
TCharFormatMask charFormatMask;
CParaFormat paraFormat;
TParaFormatMask paraFormatMask;
- if ( Layout_Meta_Data::IsMirrored() )
- {
- paraFormat.iHorizontalAlignment = CParaFormat::ERightAlign;
- }
- else
- {
- paraFormat.iHorizontalAlignment = CParaFormat::ELeftAlign;
- }
+ paraFormat.iHorizontalAlignment = CParaFormat::ELeftAlign;
charFormat.iFontPresentation.iTextColor = color;
paraFormatMask.SetAttrib(EAttAlignment);
charFormatMask.SetAttrib(EAttFontTypeface);
charFormatMask.SetAttrib(EAttFontHeight);
+ paraFormatMask.SetAttrib(EAttLineSpacing);
charFormatMask.SetAttrib(EAttColor);
iRtEditor->ApplyParaFormatL(¶Format, paraFormatMask);
iRtEditor->ApplyCharFormatL(charFormat, charFormatMask);
@@ -401,7 +394,6 @@
TRect rect = Rect();
TRect innerRect( rect );
TRgb color = KRgbBlack;
- const TInt offSet = 5;
MAknsSkinInstance* skin = AknsUtils::SkinInstance();
MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
@@ -478,22 +470,6 @@
const TInt KBorderWidth = 2;
gc.SetPenSize( TSize( KBorderWidth, KBorderWidth ) );
gc.DrawRoundRect( innerRect, TSize( KFrameRoundRadius, KFrameRoundRadius ) );
-
- // draw shadow
- gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
- gc.SetPenStyle( CGraphicsContext::ESolidPen );
- gc.SetBrushColor( color );
- gc.SetPenColor( color );
- TRect rightShadowArea = Rect();
- rightShadowArea.iTl.iX = rightShadowArea.iBr.iX - offSet;
- rightShadowArea.iTl.iY += offSet/2;
- gc.DrawRect(rightShadowArea);
- TRect bottomShadowArea = Rect();
- bottomShadowArea.iTl.iX += offSet/2;
- bottomShadowArea.iTl.iY += bottomShadowArea.iBr.iY - offSet;
- gc.DrawRect( bottomShadowArea );
- gc.SetBrushStyle( CGraphicsContext::ENullBrush );
- gc.SetPenStyle( CGraphicsContext::ENullPen );
}
// ---------------------------------------------------------
--- a/idlehomescreen/widgetmanager/src/wmeffectmanager.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/widgetmanager/src/wmeffectmanager.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -131,7 +131,7 @@
// fullscreen effect may contain unwanted parts (dialog, note, etc.)
// which was shown when fullscreen effect is about to be started
iCoeEnv.WsSession().Finish();
- User::After( 1000 );
+ User::After( 1 );
const TInt flags( AknTransEffect::TParameter::EActivateExplicitCancel );
const TUid targetAppUid( iAvkonAppUi->Application()->AppDllUid() );
--- a/idlehomescreen/widgetmanager/src/wminstaller.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/widgetmanager/src/wminstaller.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -119,19 +119,19 @@
void CWmInstaller::RunL()
{
// if error has occurred, stop uninstallation animation.
- if ( iStatus.Int() != KErrNone )
+ CWmWidgetData* widget =
+ iWmPlugin.GetUninstalledWidgetByUid( iUid );
+ if ( widget )
{
- CWmWidgetData* widget =
- iWmPlugin.GetUninstalledWidgetByUid( iUid );
- if ( widget )
- {
- widget->StopUninstallAnimationL();
- }
-
- // display error note
+ widget->StopUninstallAnimation();
+ }
+
+ if ( KErrNone != iStatus.Int() )
+ {
+ // display error note incase of error
CEikonEnv::Static()->HandleError( iStatus.Int() );
}
-
+
// close SWI session
if ( iIdle && iIdle->IsActive() )
{
@@ -163,7 +163,14 @@
// ---------------------------------------------------------
//
TInt CWmInstaller::RunError(TInt /*aError*/)
- {
+ {
+ // if error has occurred, stop uninstallation animation.
+ CWmWidgetData* widget =
+ iWmPlugin.GetUninstalledWidgetByUid( iUid );
+ if ( widget )
+ {
+ widget->StopUninstallAnimation();
+ }
// close SWI session
if ( iIdle && iIdle->IsActive() )
{
@@ -193,6 +200,9 @@
{
delete iMime;
iMime = NULL;
+ CloseSwiSession( this );
+
+ // re-open session to swi server
User::LeaveIfError( iInstaller.Connect() );
iMime = ( ( aData->WrtType() == CWmWidgetData::EWgt ) ?
KCWrtMime().AllocL() : KWrtMime().AllocL() );
--- a/idlehomescreen/widgetmanager/src/wmlistbox.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/widgetmanager/src/wmlistbox.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -166,6 +166,26 @@
iDefaultLogoImageMask, size, EAspectRatioPreserved );
}
+
+// ---------------------------------------------------------
+// CWmListItemDrawer::UpdateItemHeight
+// ---------------------------------------------------------
+//
+void CWmListItemDrawer::UpdateItemHeight()
+ {
+ // sets item height according to layout
+ TAknWindowLineLayout listPane = AknLayoutScalable_Apps
+ ::list_wgtman_pane().LayoutLine();
+ TAknLayoutRect listPaneRect;
+ listPaneRect.LayoutRect( iListBox->Rect(), listPane );
+ TAknWindowLineLayout listRowPane = AknLayoutScalable_Apps
+ ::listrow_wgtman_pane().LayoutLine();
+ TAknLayoutRect listRowPaneRect;
+ listRowPaneRect.LayoutRect( listPaneRect.Rect(), listRowPane );
+ iListBox->View()->SetItemHeight( listRowPaneRect.Rect().Height() );
+ iListBox->View()->ItemDrawer()->SetItemCellSize( listRowPaneRect.Rect().Size() );
+ }
+
// ---------------------------------------------------------
// CWmListItemDrawer::DrawItem
// ---------------------------------------------------------
@@ -571,7 +591,8 @@
static_cast <CWmListItemDrawer*>( iItemDrawer );
if ( itemDrawer )
{
- return itemDrawer->ResizeDefaultBitmaps();
+ itemDrawer->UpdateItemHeight();
+ itemDrawer->ResizeDefaultBitmaps();
}
}
--- a/idlehomescreen/widgetmanager/src/wmmaincontainer.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/widgetmanager/src/wmmaincontainer.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -68,6 +68,9 @@
#include "wmconfiguration.h"
#include "wminstaller.h"
+#include <hscontentcontroller.h> // content control api
+#include <hscontentinfoarray.h> // content control api
+
// CONSTANTS
const TInt KTextLimit = 40; // Text-limit for find-field
const TInt KMinWidgets = 1; // minimum number of widgets to show findpane
@@ -93,6 +96,8 @@
//
CWmMainContainer::~CWmMainContainer()
{
+ TRAP_IGNORE(DeactivateFindPaneL(EFalse));
+
delete iWidgetLoader;
RemoveCtrlsFromStack();
@@ -222,8 +227,18 @@
::wgtman_btn_pane( variety ).LayoutLine();
TAknWindowLineLayout operatorBtnLayout = AknLayoutScalable_Apps
::wgtman_btn_pane_cp_01( variety ).LayoutLine();
- AknLayoutUtils::LayoutControl( iPortalButtonOne, rect, oviBtnLayout );
- AknLayoutUtils::LayoutControl( iPortalButtonTwo, rect, operatorBtnLayout );
+
+ // button placement
+ if ( iConfiguration->PortalButtonsMirrored() )
+ {
+ AknLayoutUtils::LayoutControl( iPortalButtonOne, rect, operatorBtnLayout );
+ AknLayoutUtils::LayoutControl( iPortalButtonTwo, rect, oviBtnLayout );
+ }
+ else
+ {
+ AknLayoutUtils::LayoutControl( iPortalButtonOne, rect, oviBtnLayout );
+ AknLayoutUtils::LayoutControl( iPortalButtonTwo, rect, operatorBtnLayout );
+ }
}
// layout iWidgetsList
@@ -256,12 +271,15 @@
// This is a bug fix for ou1cimx1#217716 & ou1cimx1#217667.
// For some weird reason homescreen is genarating one extra EEventKey
- // when using Nokia SU-8W bluetooth keyboard & backspace key. This if is to
+ // when using bluetooth keyboard & backspace key. This if is to
// ignore that event. Extra event allways has iModifiers set to
- // EModifierAutorepeatable.
+ // EModifierAutorepeatable, EModifierKeyboardExtend and
+ // EModifierNumLock.
if ( aType == EEventKey &&
- aKeyEvent.iScanCode == EStdKeyBackspace &&
- aKeyEvent.iModifiers == EModifierAutorepeatable )
+ aKeyEvent.iScanCode == EStdKeyBackspace &&
+ aKeyEvent.iModifiers&EModifierKeyboardExtend &&
+ aKeyEvent.iModifiers&EModifierNumLock &&
+ aKeyEvent.iModifiers&EModifierAutorepeatable )
{
return EKeyWasConsumed;
}
@@ -441,7 +459,7 @@
{
// widget list top -> up -> ovi button (portrait)
if ( aType == EEventKey )
- SetFocusToPortalButton( 0 );
+ SetFocusToPortalButton( OperatorButtonHigherPriority ( 0 ) );
keyResponse = EKeyWasConsumed;
}
else if ( !iLandscape &&
@@ -451,7 +469,7 @@
{
// widget list bottom -> down -> ovi button (portrait)
if ( aType == EEventKey )
- SetFocusToPortalButton( 0 );
+ SetFocusToPortalButton( OperatorButtonHigherPriority ( 0 ) );
keyResponse = EKeyWasConsumed;
}
else if ( iLandscape && !iMirrored &&
@@ -459,7 +477,7 @@
{
// widget list -> right -> ovi button (landscape normal)
if ( aType == EEventKey )
- SetFocusToPortalButton( 0 );
+ SetFocusToPortalButton( OperatorButtonHigherPriority ( 0 ) );
keyResponse = EKeyWasConsumed;
}
else if ( iLandscape && iMirrored &&
@@ -493,8 +511,20 @@
keyResponse = EKeyWasConsumed;
}
else if ( !iLandscape && !iMirrored &&
+ aKeyEvent.iScanCode == EStdKeyLeftArrow &&
+ iConfiguration->PortalButtonCount() > 1 &&
+ iConfiguration->PortalButtonsMirrored() )
+ {
+ // right portal -> left -> left portal
+ // (portrait, operator button higher priority )
+ if ( aType == EEventKey )
+ SetFocusToPortalButton( 1 );
+ keyResponse = EKeyWasConsumed;
+ }
+ else if ( !iLandscape && !iMirrored &&
aKeyEvent.iScanCode == EStdKeyRightArrow &&
- iConfiguration->PortalButtonCount() > 1 )
+ iConfiguration->PortalButtonCount() > 1 &&
+ !iConfiguration->PortalButtonsMirrored() )
{
// left portal -> right -> right portal (portrait normal)
if ( aType == EEventKey )
@@ -527,8 +557,20 @@
keyResponse = EKeyWasConsumed;
}
else if ( iLandscape &&
+ aKeyEvent.iScanCode == EStdKeyUpArrow &&
+ iConfiguration->PortalButtonCount() > 1 &&
+ iConfiguration->PortalButtonsMirrored() )
+ {
+ // lower portal -> up -> upper portal
+ // (landscape, operator button higher priority )
+ if ( aType == EEventKey )
+ SetFocusToPortalButton( 1 );
+ keyResponse = EKeyWasConsumed;
+ }
+ else if ( iLandscape &&
aKeyEvent.iScanCode == EStdKeyDownArrow &&
- iConfiguration->PortalButtonCount() > 1 )
+ iConfiguration->PortalButtonCount() > 1 &&
+ !iConfiguration->PortalButtonsMirrored() )
{
// upper portal -> down -> lower portal (landscape)
if ( aType == EEventKey )
@@ -558,8 +600,20 @@
keyResponse = EKeyWasConsumed;
}
else if ( !iLandscape && !iMirrored &&
+ aKeyEvent.iScanCode == EStdKeyRightArrow &&
+ iConfiguration->PortalButtonCount() > 1 &&
+ iConfiguration->PortalButtonsMirrored() )
+ {
+ // left portal -> right -> right portal
+ // (portrait, operator button higher priority )
+ if ( aType == EEventKey )
+ SetFocusToPortalButton( 0 );
+ keyResponse = EKeyWasConsumed;
+ }
+ else if ( !iLandscape && !iMirrored &&
aKeyEvent.iScanCode == EStdKeyLeftArrow &&
- iConfiguration->PortalButtonCount() > 1 )
+ iConfiguration->PortalButtonCount() > 1 &&
+ !iConfiguration->PortalButtonsMirrored() )
{
// right portal -> left -> left portal (portrait normal)
if ( aType == EEventKey )
@@ -592,7 +646,18 @@
keyResponse = EKeyWasConsumed;
}
else if ( iLandscape &&
- aKeyEvent.iScanCode == EStdKeyUpArrow )
+ aKeyEvent.iScanCode == EStdKeyDownArrow &&
+ iConfiguration->PortalButtonsMirrored() )
+ {
+ // upper portal -> down -> lower portal
+ // ( landscape operator button higher priority )
+ if ( aType == EEventKey )
+ SetFocusToPortalButton( 0 );
+ keyResponse = EKeyWasConsumed;
+ }
+ else if ( iLandscape &&
+ aKeyEvent.iScanCode == EStdKeyUpArrow &&
+ !iConfiguration->PortalButtonsMirrored() )
{
// lower portal -> up -> upper portal (landscape)
if ( aType == EEventKey )
@@ -620,6 +685,28 @@
return keyResponse;
}
+
+// ---------------------------------------------------------
+// CWmMainContainer::OperatorButtonHigherPriority
+// ---------------------------------------------------------
+//
+TInt CWmMainContainer::OperatorButtonHigherPriority( TInt aIndex )
+ {
+ TInt ret = aIndex;
+ if ( iConfiguration->PortalButtonsMirrored() )
+ {
+ if ( aIndex == 0 )
+ {
+ ret = 1;
+ }
+ else if ( aIndex == 1 )
+ {
+ ret = 0;
+ }
+ }
+ return ret;
+ }
+
// ---------------------------------------------------------
// CWmMainContainer::SetFocusToPortalButton
// ---------------------------------------------------------
@@ -1060,7 +1147,7 @@
{
if ( iFindbox && iFindPaneIsVisible )
{
- DeactivateFindPaneL();
+ DeactivateFindPaneL(EFalse);
}
if ( data && !data->IsUninstalling() )
@@ -1160,10 +1247,10 @@
// CWmMainContainer::DeactivateFindPaneL
// ---------------------------------------------------------------------------
//
-void CWmMainContainer::DeactivateFindPaneL()
+void CWmMainContainer::DeactivateFindPaneL(TBool aLayout)
{
if( iFindbox && iFindPaneIsVisible )
- {
+ {
// notify search field we're shutting down
TKeyEvent keyEvent = { EKeyNo, EStdKeyNo, 0, 0 };
iFindbox->OfferKeyEventL( keyEvent, EEventKey );
@@ -1186,20 +1273,23 @@
iFindPaneIsVisible = EFalse;
iWidgetsList->SetFindPaneIsVisible( EFalse );
- LayoutControls();
-
- // set soft key set
- CEikButtonGroupContainer* cbaGroup =
- CEikButtonGroupContainer::Current();
- TInt cbaResourceId = ( AknLayoutUtils::MSKEnabled() ?
- R_AVKON_SOFTKEYS_OPTIONS_BACK__SELECT :
- R_AVKON_SOFTKEYS_OPTIONS_BACK );
-
- cbaGroup->SetCommandSetL( cbaResourceId );
- cbaGroup->DrawNow();
-
- UpdateFocusMode();
- DrawNow();
+ if (aLayout) //no need to draw UI if exiting list
+ {
+ LayoutControls();
+
+ // set soft key set
+ CEikButtonGroupContainer* cbaGroup =
+ CEikButtonGroupContainer::Current();
+ TInt cbaResourceId = ( AknLayoutUtils::MSKEnabled() ?
+ R_AVKON_SOFTKEYS_OPTIONS_BACK__SELECT :
+ R_AVKON_SOFTKEYS_OPTIONS_BACK );
+
+ cbaGroup->SetCommandSetL( cbaResourceId );
+ cbaGroup->DrawNow();
+
+ UpdateFocusMode();
+ DrawNow();
+ }
}
}
@@ -1351,9 +1441,20 @@
const CFbsBitmap* mask = ( data->LogoImageMask() ) ?
data->LogoImageMask() : iWidgetsList->DefaultMask();
+ // Find out if HS is full
+ TBool hsFull = ETrue;
+ MHsContentController& controller = iWmPlugin.ContentController();
+ CHsContentInfo* activeView = CHsContentInfo::NewLC();
+ if ( controller.ActiveViewL( *activeView ) == KErrNone )
+ {
+ hsFull = activeView->IsFull();
+ }
+ CleanupStack::PopAndDestroy( activeView );
+
CWmDetailsDlg* dlg = CWmDetailsDlg::NewL(
- data->Name(), data->Description(),
- data->HsContentInfo().CanBeAdded(),
+ data->Name(),
+ data->Description(),
+ !hsFull,
logo, mask );
if ( dlg && dlg->ExecuteLD() == ECbaAddToHs )
@@ -1466,5 +1567,24 @@
return *iWidgetsList;
}
+// ----------------------------------------------------
+// CWmMainContainer::FocusChanged
+// ----------------------------------------------------
+//
+void CWmMainContainer::FocusChanged( TDrawNow aDrawNow )
+ {
+ CCoeControl::FocusChanged( aDrawNow );
+
+ if ( iFindbox && iFindPaneIsVisible &&
+ !iFindbox->IsFocused() && IsFocused() )
+ {
+ // reset focus to find pane if its lost ( ou1cimx1#308019 )
+ ResetFocus();
+ iFindbox->SetFocus( ETrue );
+ UpdateFocusMode();
+ }
+ }
+
+
// End of File
--- a/idlehomescreen/widgetmanager/src/wmmaincontainerview.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/widgetmanager/src/wmmaincontainerview.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -28,14 +28,14 @@
#include <widgetmanagerview.rsg>
#include <hscontentcontroller.h>
#include <AknUtils.h>
+#include <avkon.rsg>
#include "wmplugin.h"
#include "widgetmanager.hrh"
#include "wmmaincontainerview.h"
#include "wmresourceloader.h"
#include "wmmaincontainer.h"
-#include <avkon.rsg>
-
+#include "wmspbgcleaner.h"
// ---------------------------------------------------------
// CWmMainContainerView::CWmMainContainerView()
@@ -46,6 +46,7 @@
iWmPlugin( aWmPlugin )
{
iWmMainContainer = NULL;
+ iWmSpBgCleaner = NULL;
}
// ---------------------------------------------------------
@@ -61,6 +62,13 @@
delete iWmMainContainer;
iWmMainContainer = NULL;
}
+
+ if ( iWmSpBgCleaner != NULL )
+ {
+ AppUi()->RemoveFromStack( iWmSpBgCleaner );
+ delete iWmSpBgCleaner;
+ iWmSpBgCleaner = NULL;
+ }
}
// ---------------------------------------------------------
@@ -180,20 +188,25 @@
{
// setup status pane layout
StatusPane()->SwitchLayoutL(
- R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT );
- StatusPane()->ApplyCurrentSettingsL();
-
+ R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT );
// disable transparancy
- if ( StatusPane()->IsTransparent() )
+ StatusPane()->EnableTransparent( EFalse );
+ // apply changes
+ StatusPane()->ApplyCurrentSettingsL();
+
+ // create container
+ if ( iWmSpBgCleaner == NULL )
{
- StatusPane()->EnableTransparent( EFalse );
+ iWmSpBgCleaner = CWmSpBgCleaner::NewL();
+ iWmSpBgCleaner->SetMopParent( this );
+ AppUi()->AddToStackL( *this, iWmSpBgCleaner );
}
// title in status pane
SetTitleL();
-
+
StatusPane()->DrawNow();
-
+
// update cba
CEikButtonGroupContainer* bgc( Cba() );
CEikCba* cba = static_cast< CEikCba* >( bgc->ButtonGroup() );
@@ -232,27 +245,13 @@
iWmMainContainer = NULL;
iWmPlugin.MainViewDeactivated();
}
- }
-// ---------------------------------------------------------
-// CWmMainContainerView::HandleStatusPaneSizeChange
-// ---------------------------------------------------------
-//
-void CWmMainContainerView::HandleStatusPaneSizeChange()
- {
- CAknView::HandleStatusPaneSizeChange();
-
- // this may fail, but we're not able to propagate exceptions here
- TVwsViewId view;
- AppUi()->GetActiveViewId( view );
- if ( view.iViewUid == Id() )
- {
- if ( iWmMainContainer )
- {
- iWmMainContainer->SetRect( AppUi()->ClientRect() );
- }
- }
-
+ if ( iWmSpBgCleaner != NULL )
+ {
+ AppUi()->RemoveFromStack( iWmSpBgCleaner );
+ delete iWmSpBgCleaner;
+ iWmSpBgCleaner = NULL;
+ }
}
// ---------------------------------------------------------
@@ -429,7 +428,7 @@
TBool CWmMainContainerView::HandleDeactivateFindPaneL()
{
if ( iWmMainContainer )
- {
+ {
iWmMainContainer->DeactivateFindPaneL();
}
return ETrue;
--- a/idlehomescreen/widgetmanager/src/wmplugin.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/widgetmanager/src/wmplugin.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -118,10 +118,17 @@
iViewAppUi->View( TUid::Uid(EWmMainContainerViewId) ) );
if ( !IsActive() && view && iHsContentController )
{
+ // stop displaying menubar before starting fullscreen effects
+ CEikMenuBar* menuBar = CEikonEnv::Static()->AppUiFactory()->MenuBar();
+ if ( menuBar && menuBar->IsDisplayed() )
+ {
+ menuBar->StopDisplayingMenuBar();
+ }
+
TRAP_IGNORE(
iEffectManager->BeginFullscreenEffectL(
KAppStartEffectStyle );
- iViewAppUi->ActivateLocalViewL(
+ iViewAppUi->ActivateLocalViewL(
TUid::Uid( EWmMainContainerViewId ) );
);
}
--- a/idlehomescreen/widgetmanager/src/wmportalbutton.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/widgetmanager/src/wmportalbutton.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -32,6 +32,8 @@
#include <widgetregistryclient.h> // widgetreqistry
#include <bacline.h>
#include <escapeutils.h>
+#include <browserlauncher.h>
+#include <centralrepository.h>
#include "wmportalbutton.h"
#include "wmcommon.h"
@@ -42,10 +44,7 @@
#include "wmprocessmonitor.h"
// CONSTANTS
-_LIT( KUrlPrefix, "4 ");
-
-const TUid KOSSBrowserUidValue = { 0x10008D39 };
// MEMBER FUNCTIONS
// ---------------------------------------------------------
@@ -78,7 +77,7 @@
// ---------------------------------------------------------
//
CWmPortalButton::~CWmPortalButton()
- {
+ {
delete iButtonIcon;
delete iButtonIconMask;
@@ -87,6 +86,7 @@
// for de-reference open file count, so it should be deleted last.
delete iImageConverter;
delete iProcessMonitor;
+ delete iBrowserLauncher;
}
// ---------------------------------------------------------
@@ -102,6 +102,7 @@
iButtonIcon = NULL;
iButtonIconMask = NULL;
iProcessMonitor = NULL;
+ iBrowserLauncher = NULL;
}
// ---------------------------------------------------------
@@ -160,18 +161,31 @@
{
if ( iPortalButtonIndex == 0 )
{
+ // OVI button
if ( !iProcessMonitor )
{
iProcessMonitor = CWmProcessMonitor::NewL();
}
- if ( !iProcessMonitor->IsActive() )
+ // if process monitor is active laucher was allready started.
+ // this is for ignoring multiple button presses
+ if ( !iProcessMonitor->IsActive() )
{
RunOviL( iWmMainContainer->Configuration() );
}
}
else if ( iPortalButtonIndex == 1 )
{
- RunOperatorL( iWmMainContainer->Configuration() );
+ // OPERATOR button
+ // if this leaves it means we need to start browser
+ // becouse application info was not given
+ TRAPD( err, RunOperatorApplicationL(
+ iWmMainContainer->Configuration() ) )
+ if ( err != KErrNone )
+ {
+ StartBrowserL(
+ iWmMainContainer->Configuration().PortalButtonBrowserUrl(
+ iPortalButtonIndex ) );
+ }
}
else
{
@@ -186,8 +200,6 @@
//
void CWmPortalButton::RunOviL( CWmConfiguration& aConf )
{
- // param is: channel=homescreenwidgets
- // laucher uid: 0x2002D07F
RApaLsSession session;
User::LeaveIfError( session.Connect() );
CleanupClosePushL( session );
@@ -197,13 +209,7 @@
TUid launchUid;
launchUid = aConf.PortalButtonClientUid( iPortalButtonIndex );
- TInt err = session.GetAppInfo( appInfo, launchUid );
- if ( err != KErrNone )
- {
- //This is temp until we have laucher in SDK
- StartBrowserL( aConf );
- }
- else
+ if ( session.GetAppInfo( appInfo, launchUid ) == KErrNone )
{
// Form parameter
HBufC* param = HBufC::NewLC( aConf.PortalButtonClientParam( iPortalButtonIndex ).Length() );
@@ -226,67 +232,39 @@
// CWmPortalButton::StartBrowserL
// ---------------------------------------------------------
//
-void CWmPortalButton::StartBrowserL( CWmConfiguration& aConf )
+void CWmPortalButton::StartBrowserL( const TDesC& aUrl )
{
- RApaLsSession session;
- User::LeaveIfError( session.Connect() );
- CleanupClosePushL( session );
+ // already running/or request launch or url is empty
+ if ( iBrowserLauncher || !aUrl.Length() ) { return; }
- HBufC* param = NULL;
- if ( iPortalButtonIndex == 1 )
- {
- // browser start parameter
- param = HBufC::NewLC(
- aConf.PortalButtonBrowserUrl( iPortalButtonIndex ).Length() +
- KUrlPrefix().Length() );
+ _LIT( KUrlPrefix, "4 ");
+ HBufC* param = HBufC::NewLC( aUrl.Length() + KUrlPrefix().Length() );
+ param->Des().Append( KUrlPrefix );
+ param->Des().Append( aUrl );
- param->Des().Copy( KUrlPrefix );
- param->Des().Append( aConf.PortalButtonBrowserUrl( iPortalButtonIndex ) );
- }
- else
- {
- // becouse launcher knows url we need to have it temp here
- // until laucher is available
- _LIT( KTempUrl, "4 https://store.ovi.com/applications/");
- param = HBufC::NewLC( KTempUrl().Length() );
- param->Des().Copy( KTempUrl );
- }
+ // Create browser launcher
+ CBrowserLauncher* launcher = CBrowserLauncher::NewLC();
+
+ // Asynchronous operation to launch the browser with given URL
+ launcher->LaunchBrowserEmbeddedL(
+ *param, NULL, this, NULL );
- TUid id( KOSSBrowserUidValue );
- TApaTaskList taskList( CEikonEnv::Static()->WsSession() );
- TApaTask task = taskList.FindApp( id );
- if( task.Exists() )
- {
- task.BringToForeground();
- HBufC8* param8 = HBufC8::NewLC(param->Length());
- param8->Des().Append(*param);
- task.SendMessage(TUid::Uid(0), *param8); // UID not used
- CleanupStack::PopAndDestroy(param8);
- }
- else
- {
- if( !session.Handle() )
- {
- User::LeaveIfError( session.Connect() );
- }
- TThreadId thread;
- User::LeaveIfError(
- session.StartDocument(*param, KOSSBrowserUidValue, thread));
- }
-
+ CleanupStack::Pop( launcher );
+ iBrowserLauncher = launcher;
+ launcher = NULL;
+
CleanupStack::PopAndDestroy( param );
- CleanupStack::PopAndDestroy( &session );
}
// ---------------------------------------------------------
-// CWmPortalButton::RunOperatorL
+// CWmPortalButton::HandleServerAppExit
// ---------------------------------------------------------
//
-void CWmPortalButton::RunOperatorL( CWmConfiguration& aConf )
+void CWmPortalButton::HandleServerAppExit( TInt aReason )
{
- // Current info is that this will be a widget
- // meanwhile we just start browser
- StartBrowserL( aConf );
+ MAknServerAppExitObserver::HandleServerAppExit( aReason );
+ delete iBrowserLauncher;
+ iBrowserLauncher = NULL;
}
// ---------------------------------------------------------
@@ -573,4 +551,95 @@
baselineOffset, layoutText.Align() );
}
+// ---------------------------------------------------------
+// CWmPortalButton::RunOperatorApplicationL
+// ---------------------------------------------------------
+//
+void CWmPortalButton::RunOperatorApplicationL( CWmConfiguration& aConf )
+ {
+ CWmConfiguration::TOpAppType type = aConf.PortalButtonApplicationType( 1 );
+ if ( type == CWmConfiguration::EUnknown ||
+ type >= CWmConfiguration::EReserved )
+ {
+ // Leave if not found
+ User::Leave( KErrArgument );
+ }
+
+ switch( type )
+ {
+ case CWmConfiguration::ES60:
+ case CWmConfiguration::EQt:
+ {
+ TUid uid = KNullUid;
+ aConf.PortalButtonApplicationId( 1, uid );
+ StartProcessL( uid, aConf.PortalButtonClientParam( 1 ) );
+ }
+ break;
+ case CWmConfiguration::ECwrt:
+ {
+ TUid uid = KNullUid;
+ aConf.PortalButtonApplicationId( 1, uid );
+ StartWidgetL( uid, aConf.PortalButtonClientParam( 1 ) );
+ }
+ break;
+ case CWmConfiguration::EWrt:
+ {
+ TUid uid = KNullUid;
+ aConf.PortalButtonApplicationId( 1, uid );
+ StartWidgetL( uid, KNullDesC );
+ }
+ break;
+ case CWmConfiguration::EJava:
+ {
+ TBuf<NCentralRepositoryConstants::KMaxUnicodeStringLength> appId;
+ aConf.PortalButtonApplicationId( 1, appId );
+ //TODO:
+ }
+ break;
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmPortalButton::StartProcessL
+// ---------------------------------------------------------
+//
+void CWmPortalButton::StartProcessL( TUid aUid, const TDesC& aParam )
+ {
+ RApaLsSession session;
+ User::LeaveIfError( session.Connect() );
+ CleanupClosePushL( session );
+
+ //get app info
+ TApaAppInfo appInfo;
+ User::LeaveIfError( session.GetAppInfo( appInfo, aUid ) );
+ // do the launch
+ RProcess process;
+ User::LeaveIfError( process.Create( appInfo.iFullName, aParam ) );
+ process.Resume();
+
+ CleanupStack::PopAndDestroy( &session );
+ }
+
+// ---------------------------------------------------------
+// CWmPortalButton::StartWidgetL
+// ---------------------------------------------------------
+//
+void CWmPortalButton::StartWidgetL( TUid aAppUid, const TDesC& aParams )
+ {
+ if ( aAppUid == KNullUid )
+ User::Leave( KErrArgument );
+
+ HBufC* params = aParams.AllocLC();
+
+ RApaLsSession appArc;
+ User::LeaveIfError( appArc.Connect() );
+ CleanupClosePushL( appArc );
+
+ TThreadId threadId;
+ User::LeaveIfError( appArc.StartDocument( *params, aAppUid, threadId ) );
+
+ CleanupStack::PopAndDestroy( &appArc );
+ CleanupStack::PopAndDestroy( params );
+ }
+
// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/src/wmspbgcleaner.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -0,0 +1,131 @@
+/*
+* 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:
+* statuspane transparency handling implementation
+*
+*/
+
+#include <e32base.h>
+#include <w32std.h>
+#include <AknUtils.h>
+
+#include "wmspbgcleaner.h"
+
+// CONSTANTS
+
+// ---------------------------------------------------------
+// CWmSpBgCleaner::NewL
+// ---------------------------------------------------------
+//
+CWmSpBgCleaner* CWmSpBgCleaner::NewL()
+ {
+ CWmSpBgCleaner* self = CWmSpBgCleaner::NewLC();
+ CleanupStack::Pop(); // self;
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CWmSpBgCleaner::NewLC
+// ---------------------------------------------------------
+//
+CWmSpBgCleaner* CWmSpBgCleaner::NewLC()
+ {
+ CWmSpBgCleaner* self = new ( ELeave ) CWmSpBgCleaner();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CWmSpBgCleaner::CWmSpBgCleaner
+// ---------------------------------------------------------
+//
+CWmSpBgCleaner::CWmSpBgCleaner()
+ {
+ }
+
+// ---------------------------------------------------------
+// CWmSpBgCleaner::ConstructL
+// ---------------------------------------------------------
+//
+void CWmSpBgCleaner::ConstructL()
+ {
+ CreateWindowL();
+
+ TRect statusPaneRect;
+ AknLayoutUtils::LayoutMetricsRect(
+ AknLayoutUtils::EStatusPane, statusPaneRect );
+
+ SetRect( statusPaneRect );
+ SetNonFocusing();
+
+ Window().SetOrdinalPosition( -1 );
+ Window().SetBackgroundColor( TRgb::Color16MA(0) );
+ Window().SetVisible( ETrue );
+
+ ActivateL();
+ }
+
+// ---------------------------------------------------------
+// CWmSpBgCleaner::~CWmSpBgCleaner
+// ---------------------------------------------------------
+//
+CWmSpBgCleaner::~CWmSpBgCleaner()
+ {
+ }
+
+// ---------------------------------------------------------
+// CWmSpBgCleaner::SizeChanged
+// ---------------------------------------------------------
+//
+void CWmSpBgCleaner::SizeChanged()
+ {
+ CCoeControl::SizeChanged();
+ DrawDeferred();
+ }
+
+// ---------------------------------------------------------
+// CWmSpBgCleaner::Draw
+// ---------------------------------------------------------
+//
+void CWmSpBgCleaner::Draw( const TRect& /*aRect*/ ) const
+ {
+ CWindowGc& gc = SystemGc();
+ TRgb color( TRgb::Color16MA(0) );
+ gc.SetPenColor( color );
+ gc.SetBrushColor( color );
+ gc.SetDrawMode( CGraphicsContext::EDrawModeWriteAlpha );
+ gc.SetPenStyle(CGraphicsContext::ESolidPen );
+ gc.SetBrushStyle(CGraphicsContext::ESolidBrush );
+ gc.Clear();
+ }
+
+// ---------------------------------------------------------
+// CWmSpBgCleaner::HandleResourceChange
+// ---------------------------------------------------------
+//
+void CWmSpBgCleaner::HandleResourceChange( TInt aType )
+ {
+ CCoeControl::HandleResourceChange( aType );
+
+ if ( KEikDynamicLayoutVariantSwitch == aType )
+ {
+ TRect statusPaneRect;
+ AknLayoutUtils::LayoutMetricsRect(
+ AknLayoutUtils::EStatusPane, statusPaneRect );
+ SetRect( statusPaneRect );
+ }
+ }
+
+// End of file
--- a/idlehomescreen/widgetmanager/src/wmwidgetdata.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/widgetmanager/src/wmwidgetdata.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -420,6 +420,17 @@
// CWmWidgetData::Description
// ---------------------------------------------------------
//
+const TDesC& CWmWidgetData::Name() const
+ {
+ return ( iAsyncUninstalling ?
+ iWmResourceLoader.Uninstalling() :
+ iHsContentInfo->Name() );
+ }
+
+// ---------------------------------------------------------
+// CWmWidgetData::Description
+// ---------------------------------------------------------
+//
const TDesC& CWmWidgetData::Description() const
{
if ( iHsContentInfo->Description().Length() <= 0 &&
@@ -447,7 +458,7 @@
{
iWait->AsyncStop();
}
-
+
iFireLogoChanged = ETrue;
iLogoSize = aSize;
HandleIconString( HsContentInfo().IconPath() );
@@ -517,14 +528,6 @@
{
DestroyAnimData();
PrepairAnimL();
-
- // set copy of widget name for uninstallation error case.
- if ( iHsContentInfo->Name().Compare( iWmResourceLoader.Uninstalling() ) !=
- KErrNone )
- {
- iWidgetName = iHsContentInfo->Name().AllocL();
- iHsContentInfo->SetNameL( iWmResourceLoader.Uninstalling() );
- }
iAsyncUninstalling = ETrue;
iAnimationIndex = 0;
@@ -690,18 +693,10 @@
// CWmWidgetData::StopUninstallAnimation
// ---------------------------------------------------------
//
-void CWmWidgetData::StopUninstallAnimationL()
+void CWmWidgetData::StopUninstallAnimation()
{
iAsyncUninstalling = EFalse;
DestroyAnimData();
- // restore widget name
- if ( iWidgetName )
- {
- iHsContentInfo->SetNameL( iWidgetName->Des() );
- delete iWidgetName;
- iWidgetName = NULL;
- }
-
FireDataChanged(); //redraw
}
--- a/idlehomescreen/widgetmanager/tsrc/wmunittest/group/wmunittest.mmp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/group/wmunittest.mmp Wed Apr 14 15:47:59 2010 +0300
@@ -56,6 +56,7 @@
SOURCE wminstaller.cpp
SOURCE wmprocessmonitor.cpp
SOURCE wmwidgetorderdata.cpp
+SOURCE wmspbgcleaner.cpp
SOURCEPATH ../src
SOURCE wmunittest.cpp
@@ -108,6 +109,7 @@
LIBRARY inetprotutil.lib
LIBRARY bitgdi.lib // CFbsBitmapDevice
LIBRARY charconv.lib
+LIBRARY browserlauncher.lib
// libraries needed by the test framework
LIBRARY stiftestinterface.lib
--- a/idlehomescreen/xmluicontroller/inc/appui.h Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluicontroller/inc/appui.h Wed Apr 14 15:47:59 2010 +0300
@@ -129,7 +129,16 @@
*/
void HandleViewActivation( const TVwsViewId& aNewlyActivatedViewId,
const TVwsViewId& aViewIdToBeDeactivated );
-
+
+private:
+ // from CCoeAppUi
+
+ /**
+ * Gets a list of help contexts for a particular
+ * application user interface.
+ */
+ CArrayFix<TCoeHelpContext>* HelpContextL() const;
+
public:
// new functions
--- a/idlehomescreen/xmluicontroller/src/aieventhandler.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluicontroller/src/aieventhandler.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -30,7 +30,6 @@
#include "xnnodeappif.h"
#include "aistrcnv.h"
-#include <csxhelp/hmsc.hlp.hrh>
#include <hlplch.h>
using namespace AiXmlUiController;
@@ -59,27 +58,6 @@
const TUid KVideoCallUid = { 0x101F8681 };
// ======== LOCAL FUNCTIONS ========
-// ----------------------------------------------------------------------------
-// Shows the Homescreen specific help item
-// ----------------------------------------------------------------------------
-//
-static void ShowHelpL( const TDesC& aHelpString )
- {
- TUid fwUid = TUid::Uid( AI_UID3_AIFW_COMMON );
- TCoeContextName helpString;
- helpString.Copy( aHelpString );
-
- CArrayFixFlat<TCoeHelpContext>* array =
- new (ELeave) CArrayFixFlat<TCoeHelpContext>(1);
- CleanupStack::PushL( array );
-
- array->AppendL( TCoeHelpContext( fwUid, helpString ) );
-
- HlpLauncher::LaunchHelpApplicationL(
- CCoeEnv::Static()->WsSession(), array );
-
- CleanupStack::Pop( array );
- }
// ---------------------------------------------------------------------------
// Activates Phone application either in video call or normal view
@@ -175,14 +153,9 @@
}
else if ( event == AiUiDef::xml::event::KEventShowHelp )
{
- if( iUiController.UiEngineL()->IsEditMode() )
- {
- ShowHelpL( KSET_HLP_HOME_SCREEN_EDIT );
- }
- else
- {
- ShowHelpL( KSET_HLP_HOME_SCREEN );
- }
+ HlpLauncher::LaunchHelpApplicationL(
+ CCoeEnv::Static()->WsSession(),
+ CCoeEnv::Static()->AppUi()->AppHelpContextL() );
}
else if ( event == AiUiDef::xml::event::KEventActivatePhoneView )
{
--- a/idlehomescreen/xmluicontroller/src/appui.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluicontroller/src/appui.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -27,6 +27,7 @@
#include <aknconsts.h>
#include <akntitle.h>
#include <StringLoader.h>
+#include <csxhelp/hmsc.hlp.hrh>
// User includes
#include <hspublisherinfo.h>
@@ -642,4 +643,30 @@
sp->DrawNow();
}
+// -----------------------------------------------------------------------------
+// CAppUi::HelpContextL
+// Returns the help context
+// -----------------------------------------------------------------------------
+//
+CArrayFix<TCoeHelpContext>* CAppUi::HelpContextL() const
+ {
+ TUid fwUid = TUid::Uid( AI_UID3_AIFW_COMMON );
+ TCoeContextName helpString;
+ if( iUiCtl.UiEngineL()->IsEditMode())
+ {
+ helpString.Copy( KSET_HLP_HOME_SCREEN_EDIT );
+ }
+ else
+ {
+ helpString.Copy( KSET_HLP_HOME_SCREEN );
+ }
+
+ CArrayFixFlat<TCoeHelpContext>* array =
+ new( ELeave ) CArrayFixFlat<TCoeHelpContext>( 1 );
+ CleanupStack::PushL( array );
+ array->AppendL( TCoeHelpContext( fwUid, helpString ) );
+ CleanupStack::Pop( array );
+ return array;
+ }
+
// End of File.
--- a/idlehomescreen/xmluicontroller/src/emptycontenttransactionelement.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluicontroller/src/emptycontenttransactionelement.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -20,6 +20,7 @@
#include "xnnewsticker.h"
#include "xnbitmap.h"
#include "xntext.h"
+#include "xntexteditor.h"
#include "emptycontenttransactionelement.h"
#include "aixmluiconstants.h"
#include "aixmluiutils.h"
@@ -81,15 +82,25 @@
imageIntr->SetContentBitmaps( NULL, NULL );
}
else if ( type->Type() == XnTextInterface::MXnTextInterface::Type() ) // text element
- {
- // Get control interface
- XnTextInterface::MXnTextInterface* textControl = NULL;
- XnComponentInterface::MakeInterfaceL( textControl, Target() );
- LeaveIfNull( textControl, KErrNotSupported );
-
- // Clears the text from component
- textControl->SetTextL( KNullDesC );
- }
+ {
+ // Get control interface
+ XnTextInterface::MXnTextInterface* textControl = NULL;
+ XnComponentInterface::MakeInterfaceL( textControl, Target() );
+ LeaveIfNull( textControl, KErrNotSupported );
+
+ // Clears the text from component
+ textControl->SetTextL( KNullDesC );
+ }
+ else if ( type->Type() == XnTextEditorInterface::MXnTextEditorInterface::Type() ) // texteditor element
+ {
+ // Get control interface
+ XnTextEditorInterface::MXnTextEditorInterface* editorControl = NULL;
+ XnComponentInterface::MakeInterfaceL( editorControl, Target() );
+ LeaveIfNull( editorControl, KErrNotSupported );
+
+ // Clears the text from component
+ editorControl->SetTextL( KNullDesC );
+ }
else
{
CXnNodeAppIf* parent = Target().ParentL();
--- a/idlehomescreen/xmluicontroller/src/globalqueryhandler.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluicontroller/src/globalqueryhandler.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -81,6 +81,11 @@
{
iUiController.AppUi()->SetOnlineStateL( iSetOnline );
}
+ else
+ {
+ iUiController.AppUi()->SetOnlineStateL(!iSetOnline );
+ }
+
}
// -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/renderingplugins/xnmenufactory/src/xnmenu.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnmenufactory/src/xnmenu.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -145,6 +145,17 @@
}
// -----------------------------------------------------------------------------
+// CXnMenu::KeyEventNode
+//
+// -----------------------------------------------------------------------------
+//
+CXnNodePluginIf* CXnMenu::KeyEventNode()
+ {
+ CXnMenuAdapter* adapter = static_cast< CXnMenuAdapter* >( ControlAdapter() );
+ return adapter->KeyEventNode();
+ }
+
+// -----------------------------------------------------------------------------
// CXnMenu::SetObserver
//
// -----------------------------------------------------------------------------
@@ -171,11 +182,12 @@
//
// -----------------------------------------------------------------------------
//
-void CXnMenu::TryDisplayingMenuBarL( const TDesC& aMenuNodeId )
+void CXnMenu::TryDisplayingMenuBarL( const TDesC& aMenuNodeId,
+ TBool aContextMenu )
{
CXnMenuAdapter* adapter = static_cast< CXnMenuAdapter* >( ControlAdapter() );
- adapter->TryDisplayingMenuL( aMenuNodeId );
+ adapter->TryDisplayingMenuL( aMenuNodeId, aContextMenu );
}
// -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/renderingplugins/xnmenufactory/src/xnmenuadapter.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnmenufactory/src/xnmenuadapter.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -57,7 +57,10 @@
_LIT8( KEditMode, "Menu/EditMode" );
_LIT8( KNormalMode, "Menu/NormalMode" );
+_LIT8( KContextEditMode, "ContextMenu/EditMode" );
+_LIT8( KContextNormalMode, "ContextMenu/NormalMode" );
_LIT8( KAlwaysShown, "Menu/AlwaysShown" );
+
_LIT8( KHsShowHelp, "hs_show_help" );
const TInt KMenuCommandFirst = 6000;
@@ -1479,19 +1482,24 @@
CleanupClosePushL( groups );
if ( !iUiEngine->IsTextEditorActive() )
- {
- if( iUiEngine->EditMode() )
+ {
+ if( iUiEngine->EditMode() )
{
- groups.AppendL( &KEditMode );
+ groups.AppendL(
+ iContextMenu ? &KContextEditMode : &KEditMode );
}
else
{
- groups.Append( &KNormalMode );
+ groups.AppendL(
+ iContextMenu ? &KContextNormalMode : &KNormalMode );
}
}
-
- groups.AppendL( &KAlwaysShown );
-
+
+ if ( !iContextMenu )
+ {
+ groups.AppendL( &KAlwaysShown );
+ }
+
// Recursively add menuitems
AddMenuItemL( -1, iMenuBarNode, groups );
@@ -1514,40 +1522,45 @@
return resp;
}
-
- const TDesC8* pos( &KNullDesC8 );
+ TInt pos( KErrNotFound );
+
if( aKeyEvent.iScanCode == EStdKeyDevice0 )
{
- pos = &XnPropertyNames::softkey::type::KLeft;
+ pos = CEikButtonGroupContainer::ELeftSoftkeyPosition;
}
else if( aKeyEvent.iScanCode == EStdKeyDevice1 )
{
- pos = &XnPropertyNames::softkey::type::KRight;
+ pos = CEikButtonGroupContainer::ERightSoftkeyPosition;
}
else if( aKeyEvent.iScanCode == EStdKeyDevice3 )
{
- pos = &XnPropertyNames::softkey::type::KMiddle;
+ pos = CEikButtonGroupContainer::EMiddleSoftkeyPosition;
}
- if( aType == EEventKeyDown )
- {
- iKeyEventNode = FindSoftkeyNodeL( *pos );
+ CXnSoftkeyItem* softkey( NULL );
+
+ if ( pos != KErrNotFound )
+ {
+ softkey = SoftkeyItemL( pos );
}
-
- if( aKeyEvent.iScanCode == EStdKeyDevice0 ||
- aKeyEvent.iScanCode == EStdKeyDevice1 ||
- aKeyEvent.iScanCode == EStdKeyDevice3 )
+
+ if ( softkey )
{
- CXnNodePluginIf* node( FindSoftkeyNodeL( *pos ) );
+ CXnNodePluginIf* node( softkey->iNode );
+ if( aType == EEventKeyDown )
+ {
+ iKeyEventNode = node;
+ }
+
if( node && node == iKeyEventNode )
{
// Let base class handle the event
resp = CXnControlAdapter::OfferKeyEventL( aKeyEvent, aType );
}
}
-
+
if( aType == EEventKeyUp )
{
iKeyEventNode = NULL;
@@ -1725,8 +1738,7 @@
// -----------------------------------------------------------------------------
//
void CXnMenuAdapter::SetContainerL( CEikButtonGroupContainer& aContainer )
- {
-
+ {
User::LeaveIfNull( &aContainer );
TBool updateNeeded( EFalse );
@@ -1769,16 +1781,19 @@
// -----------------------------------------------------------------------------
// CXnMenuAdapter::TryDisplayingMenuL
-// Displays options menu if it is defined for the softkey item
+// Displays options menu
// -----------------------------------------------------------------------------
//
-void CXnMenuAdapter::TryDisplayingMenuL( const TDesC& aMenuNodeId )
+void CXnMenuAdapter::TryDisplayingMenuL( const TDesC& aMenuNodeId,
+ TBool aContextMenu )
{
HBufC8* id = CnvUtfConverter::ConvertFromUnicodeToUtf8L( aMenuNodeId );
CleanupStack::PushL( id );
CXnNodePluginIf* node( iUiEngine->FindNodeByIdL( *id, iRootNode->Namespace() ) );
CleanupStack::PopAndDestroy( id );
+ iContextMenu = aContextMenu;
+
if( node && node->Type()->Type() == KXnMenu )
{
TryDisplayingMenuL();
@@ -1817,8 +1832,8 @@
// -----------------------------------------------------------------------------
//
void CXnMenuAdapter::StopDisplayingMenu()
- {
- if( iMenuShown && iMenuBar )
+ {
+ if( iMenuBar )
{
iMenuBar->StopDisplayingMenuBar();
}
@@ -2097,6 +2112,16 @@
}
// -----------------------------------------------------------------------------
+// CXnMenuAdapter::KeyEventNode
+//
+// -----------------------------------------------------------------------------
+//
+CXnNodePluginIf* CXnMenuAdapter::KeyEventNode()
+ {
+ return iKeyEventNode;
+ }
+
+// -----------------------------------------------------------------------------
// CXnMenuAdapter::HandleScreenDeviceChangedL
//
// -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/bwins/xn3layoutengineu.def Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/bwins/xn3layoutengineu.def Wed Apr 14 15:47:59 2010 +0300
@@ -61,177 +61,167 @@
?ResetStylusCounter@CXnControlAdapter@@QAEXXZ @ 60 NONAME ; void CXnControlAdapter::ResetStylusCounter(void)
?SetComponent@CXnComponentNodeImpl@@QAEXPAVCXnComponent@@@Z @ 61 NONAME ; void CXnComponentNodeImpl::SetComponent(class CXnComponent *)
?LayoutUIL@TXnUiEnginePluginIf@@QAEXPAVCXnNodePluginIf@@@Z @ 62 NONAME ; void TXnUiEnginePluginIf::LayoutUIL(class CXnNodePluginIf *)
- ?FocusVisible@TXnUiEnginePluginIf@@QAEHXZ @ 63 NONAME ; int TXnUiEnginePluginIf::FocusVisible(void)
- ?ExitPowerSaveModeL@CXnControlAdapter@@QAEXW4TModeEvent@1@@Z @ 64 NONAME ; void CXnControlAdapter::ExitPowerSaveModeL(enum CXnControlAdapter::TModeEvent)
- ?GetThemeResource@TXnUiEngineAppIf@@QAEHABVTDesC16@@AAVRFile@@@Z @ 65 NONAME ; int TXnUiEngineAppIf::GetThemeResource(class TDesC16 const &, class RFile &)
- ?ConstructL@CXnComponent@@IAEXXZ @ 66 NONAME ; void CXnComponent::ConstructL(void)
- ?FindResource@CXnUtils@@SAPAVCXnResource@@AAV?$CArrayPtrSeg@VCXnResource@@@@ABVTDesC16@@AAH@Z @ 67 NONAME ; class CXnResource * CXnUtils::FindResource(class CArrayPtrSeg<class 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)
- ?SwipeEnabledL@TXnUiEnginePluginIf@@QAEHXZ @ 77 NONAME ; int TXnUiEnginePluginIf::SwipeEnabledL(void)
- ?SetFocusVisibleL@TXnUiEnginePluginIf@@QAEXH@Z @ 78 NONAME ; void TXnUiEnginePluginIf::SetFocusVisibleL(int)
- ?ActiveView@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@XZ @ 79 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::ActiveView(void)
- ?HandleXuikonEventL@CXnAppUiAdapter@@UAEXAAVCXnNodeAppIf@@0AAVCXnDomNode@@1@Z @ 80 NONAME ; void CXnAppUiAdapter::HandleXuikonEventL(class CXnNodeAppIf &, class CXnNodeAppIf &, class CXnDomNode &, class CXnDomNode &)
- ?RenderUIL@TXnUiEngineAppIf@@QAEXPAVCXnNodeAppIf@@@Z @ 81 NONAME ; void TXnUiEngineAppIf::RenderUIL(class CXnNodeAppIf *)
- ?PrepareToExit@CXnAppUiAdapter@@MAEXXZ @ 82 NONAME ; void CXnAppUiAdapter::PrepareToExit(void)
- ?DoHandlePropertyChangeL@CXnControlAdapter@@UAEXPAVCXnProperty@@@Z @ 83 NONAME ; void CXnControlAdapter::DoHandlePropertyChangeL(class CXnProperty *)
- ?ConstructL@CXnControlAdapter@@IAEXAAVCXnNodePluginIf@@@Z @ 84 NONAME ; void CXnControlAdapter::ConstructL(class CXnNodePluginIf &)
- ?FocusedNode@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@XZ @ 85 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FocusedNode(void)
- ?SetDataL@CXnComponent@@QAEXABVTDesC8@@ABVTDesC16@@H@Z @ 86 NONAME ; void CXnComponent::SetDataL(class TDesC8 const &, class TDesC16 const &, int)
- ?OfferKeyEventL@CXnControlAdapter@@UAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 87 NONAME ; enum TKeyResponse CXnControlAdapter::OfferKeyEventL(struct TKeyEvent const &, enum TEventCode)
- ?IsDrawingAllowed@CXnControlAdapter@@QBEHXZ @ 88 NONAME ; int CXnControlAdapter::IsDrawingAllowed(void) const
- ?DisplayL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 89 NONAME ; class CXnProperty * CXnNodePluginIf::DisplayL(void)
- ?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@PAVCXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 90 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class CXnDomPropertyValue *, class CXnDomStringPool &)
- ?Rect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 91 NONAME ; class TRect CXnNodeAppIf::Rect(void)
- ?NewL@CXnComponentNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 92 NONAME ; class CXnComponentNodeImpl * CXnComponentNodeImpl::NewL(class CXnType *)
- ?WidgetsVisible@TXnUiEngineAppIf@@QBEHXZ @ 93 NONAME ; int TXnUiEngineAppIf::WidgetsVisible(void) const
- ?Type@CXnNodePluginIf@@QAEPAVCXnType@@XZ @ 94 NONAME ; class CXnType * CXnNodePluginIf::Type(void)
- ?MakeXnComponentL@MXnComponentFactory@@EAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 95 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::MakeXnComponentL(class CXnNodePluginIf &, class CXnComponent * &)
- ?ActivateViewL@TXnUiEngineAppIf@@QAEXAAVCXnNodeAppIf@@@Z @ 96 NONAME ; void TXnUiEngineAppIf::ActivateViewL(class CXnNodeAppIf &)
- ?UnsetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 97 NONAME ; void CXnNodePluginIf::UnsetStateL(class TDesC8 const &)
- ?StringValueL@CXnProperty@@QAEPAVHBufC16@@XZ @ 98 NONAME ; class HBufC16 * CXnProperty::StringValueL(void)
- ?DisableRenderUiLC@TXnUiEnginePluginIf@@QAEXXZ @ 99 NONAME ; void TXnUiEnginePluginIf::DisableRenderUiLC(void)
- ?SetPropertyL@CXnNodeAppIf@@QAEXPAVCXnProperty@@@Z @ 100 NONAME ; void CXnNodeAppIf::SetPropertyL(class CXnProperty *)
- ?View@CXnAppUiAdapter@@QBEAAVCAknView@@XZ @ 101 NONAME ; class CAknView & CXnAppUiAdapter::View(void) const
- ?ViewNodeImpl@CXnNodePluginIf@@QAEPAVCXnViewNodeImpl@@XZ @ 102 NONAME ; class CXnViewNodeImpl * CXnNodePluginIf::ViewNodeImpl(void)
- ?StripQuotes@CXnUtils@@SAXAAPAVHBufC16@@@Z @ 103 NONAME ; void CXnUtils::StripQuotes(class HBufC16 * &)
- ?SetPCDataL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 104 NONAME ; void CXnNodePluginIf::SetPCDataL(class TDesC8 const &)
- ?VisibilityL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 105 NONAME ; class CXnProperty * CXnNodePluginIf::VisibilityL(void)
- ?Draw@CXnControlAdapter@@MBEXABVTRect@@@Z @ 106 NONAME ; void CXnControlAdapter::Draw(class TRect const &) const
- ??1CXnApplication@@UAE@XZ @ 107 NONAME ; CXnApplication::~CXnApplication(void)
- ?DoesNodeNeedComponentImplL@MXnComponentFactory@@QAEHABVTDesC8@@@Z @ 108 NONAME ; int MXnComponentFactory::DoesNodeNeedComponentImplL(class TDesC8 const &)
- ?ConstructL@CXnViewsNodeImpl@@IAEXPAVCXnType@@@Z @ 109 NONAME ; void CXnViewsNodeImpl::ConstructL(class CXnType *)
- ?StringPool@TXnUiEngineAppIf@@QAEAAVCXnDomStringPool@@XZ @ 110 NONAME ; class CXnDomStringPool & TXnUiEngineAppIf::StringPool(void)
- ?UiEngineL@CXnNodePluginIf@@QAEPAVTXnUiEnginePluginIf@@XZ @ 111 NONAME ; class TXnUiEnginePluginIf * CXnNodePluginIf::UiEngineL(void)
- ?ShowFocus@TXnUiEnginePluginIf@@QAEHXZ @ 112 NONAME ; int TXnUiEnginePluginIf::ShowFocus(void)
- ?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@@Z @ 113 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &)
- ?PluginNodeL@TXnUiEnginePluginIf@@QAEAAVCXnNodePluginIf@@PAV2@@Z @ 114 NONAME ; class CXnNodePluginIf & TXnUiEnginePluginIf::PluginNodeL(class CXnNodePluginIf *)
- ?VerticalPixelValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 115 NONAME ; int TXnUiEnginePluginIf::VerticalPixelValueL(class CXnProperty *, int)
- ?SetComponent@CXnControlAdapter@@QAEXPAVCXnComponent@@@Z @ 116 NONAME ; void CXnControlAdapter::SetComponent(class CXnComponent *)
- ??0MXnNodePredicate@@QAE@XZ @ 117 NONAME ; MXnNodePredicate::MXnNodePredicate(void)
- ??1CXnViewsNodeImpl@@UAE@XZ @ 118 NONAME ; CXnViewsNodeImpl::~CXnViewsNodeImpl(void)
- ?HandleControlEventL@CXnControlAdapter@@UAEXPAVCCoeControl@@W4TCoeEvent@MCoeControlObserver@@@Z @ 119 NONAME ; void CXnControlAdapter::HandleControlEventL(class CCoeControl *, enum MCoeControlObserver::TCoeEvent)
- ?ActivateViewL@TXnUiEnginePluginIf@@QAEXAAVCXnNodePluginIf@@@Z @ 120 NONAME ; void TXnUiEnginePluginIf::ActivateViewL(class CXnNodePluginIf &)
- ?HandleScreenDeviceChangedL@CXnControlAdapter@@UAEXXZ @ 121 NONAME ; void CXnControlAdapter::HandleScreenDeviceChangedL(void)
- ?SizeChanged@CXnControlAdapter@@MAEXXZ @ 122 NONAME ; void CXnControlAdapter::SizeChanged(void)
- ?CountComponentControls@CXnControlAdapter@@MBEHXZ @ 123 NONAME ; int CXnControlAdapter::CountComponentControls(void) const
- ?HideTooltipsL@CXnNodeAppIf@@QAEXXZ @ 124 NONAME ; void CXnNodeAppIf::HideTooltipsL(void)
- ?GetPropertyL@CXnNodeAppIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 125 NONAME ; class CXnProperty * CXnNodeAppIf::GetPropertyL(class TDesC8 const &) const
- ?DeactivateFocusedNodeL@TXnUiEnginePluginIf@@QAEXXZ @ 126 NONAME ; void TXnUiEnginePluginIf::DeactivateFocusedNodeL(void)
- ?FindNodeByClassL@TXnUiEngineAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@ABVTDesC8@@0@Z @ 127 NONAME ; class RPointerArray<class CXnNodeAppIf> TXnUiEngineAppIf::FindNodeByClassL(class TDesC8 const &, class TDesC8 const &)
- ?Match@MXnNodePredicate@@UAEHAAVCXnNode@@@Z @ 128 NONAME ; int MXnNodePredicate::Match(class CXnNode &)
- ?GetBitmapAndMask@CXnControlAdapter@@QAEXABVTDesC16@@0AAPAVCFbsBitmap@@1@Z @ 129 NONAME ; void CXnControlAdapter::GetBitmapAndMask(class TDesC16 const &, class TDesC16 const &, class CFbsBitmap * &, class CFbsBitmap * &)
- ?NewL@CXnViewsNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 130 NONAME ; class CXnViewsNodeImpl * CXnViewsNodeImpl::NewL(class CXnType *)
- ?PaddingRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 131 NONAME ; class TRect CXnNodeAppIf::PaddingRect(void)
- ?SetMarginRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 132 NONAME ; void CXnNodePluginIf::SetMarginRect(class TRect const &)
- ?IsDialogDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 133 NONAME ; int TXnUiEnginePluginIf::IsDialogDisplaying(void)
- ?HandleEventL@CXnAppUiAdapter@@UAEXABVTDesC16@@AAVCXnNodeAppIf@@@Z @ 134 NONAME ; void CXnAppUiAdapter::HandleEventL(class TDesC16 const &, class CXnNodeAppIf &)
- ?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 135 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class TDesC8 const &) const
- ?SetPropertyArrayL@CXnNodeAppIf@@QAEXPAV?$RPointerArray@VCXnProperty@@@@@Z @ 136 NONAME ; void CXnNodeAppIf::SetPropertyArrayL(class RPointerArray<class CXnProperty> *)
- ?RestorePreviousFocusedNode@TXnUiEnginePluginIf@@QAEXXZ @ 137 NONAME ; void TXnUiEnginePluginIf::RestorePreviousFocusedNode(void)
- ?RemoveViewL@CXnAppUiAdapter@@QAEXAAVCAknView@@@Z @ 138 NONAME ; void CXnAppUiAdapter::RemoveViewL(class CAknView &)
- ?EnterPowerSaveModeL@CXnComponent@@UAEXXZ @ 139 NONAME ; void CXnComponent::EnterPowerSaveModeL(void)
- ?SetRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 140 NONAME ; void CXnNodePluginIf::SetRect(class TRect const &)
- ??0CXnComponent@@IAE@XZ @ 141 NONAME ; CXnComponent::CXnComponent(void)
- ?CollapseWhiteSpace@CXnUtils@@SAXAAVCXnNodePluginIf@@AAVTDes16@@@Z @ 142 NONAME ; void CXnUtils::CollapseWhiteSpace(class CXnNodePluginIf &, class TDes16 &)
- ?SetHandleTooltip@CXnNodePluginIf@@QAEXH@Z @ 143 NONAME ; void CXnNodePluginIf::SetHandleTooltip(int)
- ??1CXnAppUiAdapter@@UAE@XZ @ 144 NONAME ; CXnAppUiAdapter::~CXnAppUiAdapter(void)
- ?NewL@CXnControlAdapter@@SAPAV1@AAVCXnNodePluginIf@@@Z @ 145 NONAME ; class CXnControlAdapter * CXnControlAdapter::NewL(class CXnNodePluginIf &)
- ?EnableLongTapAnimation@CXnControlAdapter@@QAEXH@Z @ 146 NONAME ; void CXnControlAdapter::EnableLongTapAnimation(int)
- ?SetPaddingRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 147 NONAME ; void CXnNodePluginIf::SetPaddingRect(class TRect const &)
- ?SetFocusedNode@TXnUiEnginePluginIf@@QAEXPAVCXnNodePluginIf@@@Z @ 148 NONAME ; void TXnUiEnginePluginIf::SetFocusedNode(class CXnNodePluginIf *)
- ?ExitPowerSaveModeL@CXnComponent@@UAEXXZ @ 149 NONAME ; void CXnComponent::ExitPowerSaveModeL(void)
- ?EnableSwipeL@TXnUiEnginePluginIf@@QAEXH@Z @ 150 NONAME ; void TXnUiEnginePluginIf::EnableSwipeL(int)
- ?GetPCData@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 151 NONAME ; class TDesC8 const & CXnNodeAppIf::GetPCData(void) const
- ?Namespace@CXnNodeAppIf@@QAEABVTDesC8@@XZ @ 152 NONAME ; class TDesC8 const & CXnNodeAppIf::Namespace(void)
- ??1CXnComponentNodeImpl@@UAE@XZ @ 153 NONAME ; CXnComponentNodeImpl::~CXnComponentNodeImpl(void)
- ?SetPropertyWithoutNotificationL@CXnNodePluginIf@@QAEXPAVCXnProperty@@@Z @ 154 NONAME ; void CXnNodePluginIf::SetPropertyWithoutNotificationL(class CXnProperty *)
- ?GetPCData@CXnNodePluginIf@@QBEABVTDesC8@@XZ @ 155 NONAME ; class TDesC8 const & CXnNodePluginIf::GetPCData(void) const
- ?SetPCDataL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 156 NONAME ; void CXnNodeAppIf::SetPCDataL(class TDesC8 const &)
- ?Resources@TXnUiEnginePluginIf@@QAEAAV?$CArrayPtrSeg@VCXnResource@@@@XZ @ 157 NONAME ; class CArrayPtrSeg<class CXnResource> & TXnUiEnginePluginIf::Resources(void)
- ?SetContentBitmaps@CXnControlAdapter@@QAEXABVTDesC16@@0@Z @ 158 NONAME ; void CXnControlAdapter::SetContentBitmaps(class TDesC16 const &, class TDesC16 const &)
- ??1CXnControlAdapter@@UAE@XZ @ 159 NONAME ; CXnControlAdapter::~CXnControlAdapter(void)
- ??1MXnNodePredicate@@UAE@XZ @ 160 NONAME ; MXnNodePredicate::~MXnNodePredicate(void)
- ?HorizontalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 161 NONAME ; int TXnUiEnginePluginIf::HorizontalTwipValueL(class CXnProperty *, int)
- ?ConstructL@CXnAppUiAdapter@@UAEXXZ @ 162 NONAME ; void CXnAppUiAdapter::ConstructL(void)
- ?CreateFontL@CXnUtils@@SAXAAVCXnNodePluginIf@@AAPAVCFont@@AAH@Z @ 163 NONAME ; void CXnUtils::CreateFontL(class CXnNodePluginIf &, class CFont * &, int &)
- ??0CXnApplication@@QAE@VTUid@@@Z @ 164 NONAME ; CXnApplication::CXnApplication(class TUid)
- ?ComponentControl@CXnControlAdapter@@MBEPAVCCoeControl@@H@Z @ 165 NONAME ; class CCoeControl * CXnControlAdapter::ComponentControl(int) const
- ?HandleLongTapEventL@CXnControlAdapter@@UAEXABVTPoint@@0@Z @ 166 NONAME ; void CXnControlAdapter::HandleLongTapEventL(class TPoint const &, class TPoint const &)
- ?ParentL@CXnNodeAppIf@@QBEPAV1@XZ @ 167 NONAME ; class CXnNodeAppIf * CXnNodeAppIf::ParentL(void) const
- ??1CXnComponent@@UAE@XZ @ 168 NONAME ; CXnComponent::~CXnComponent(void)
- ?ControlAdapter@CXnComponent@@QAEPAVCXnControlAdapter@@XZ @ 169 NONAME ; class CXnControlAdapter * CXnComponent::ControlAdapter(void)
- ?DrawContentImage@CXnControlAdapter@@IBEXXZ @ 170 NONAME ; void CXnControlAdapter::DrawContentImage(void) const
- ?Component@CXnComponentNodeImpl@@QAEPAVCXnComponent@@XZ @ 171 NONAME ; class CXnComponent * CXnComponentNodeImpl::Component(void)
- ?WidgetsVisible@TXnUiEnginePluginIf@@QBEHXZ @ 172 NONAME ; int TXnUiEnginePluginIf::WidgetsVisible(void) const
- ?SetControlAdapter@CXnComponent@@QAEXPAVCXnControlAdapter@@@Z @ 173 NONAME ; void CXnComponent::SetControlAdapter(class CXnControlAdapter *)
- ?SetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 174 NONAME ; void CXnNodePluginIf::SetStateL(class TDesC8 const &)
- ?DoesComponentNeedCreation@CXnComponentNodeImpl@@QBEHXZ @ 175 NONAME ; int CXnComponentNodeImpl::DoesComponentNeedCreation(void) const
- ??0CXnDocument@@QAE@AAVCEikApplication@@VTUid@@@Z @ 176 NONAME ; CXnDocument::CXnDocument(class CEikApplication &, class TUid)
- ?FindNodeByClassL@TXnUiEnginePluginIf@@QAE?AV?$RPointerArray@VCXnNodePluginIf@@@@ABVTDesC16@@@Z @ 177 NONAME ; class RPointerArray<class CXnNodePluginIf> TXnUiEnginePluginIf::FindNodeByClassL(class TDesC16 const &)
- ?InternalDomNodeType@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 178 NONAME ; class TDesC8 const & CXnNodeAppIf::InternalDomNodeType(void) const
- ?StringPool@TXnUiEnginePluginIf@@QAEAAVCXnDomStringPool@@XZ @ 179 NONAME ; class CXnDomStringPool & TXnUiEnginePluginIf::StringPool(void)
- ?SetStateL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 180 NONAME ; void CXnNodeAppIf::SetStateL(class TDesC8 const &)
- ?Type@CXnNodeAppIf@@QAEPAVCXnType@@XZ @ 181 NONAME ; class CXnType * CXnNodeAppIf::Type(void)
- ?BorderRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 182 NONAME ; class TRect CXnNodeAppIf::BorderRect(void)
- ?IdL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 183 NONAME ; class CXnProperty * CXnNodePluginIf::IdL(void)
- ?RootNodeL@TXnUiEngineAppIf@@QAEAAVCXnNodeAppIf@@XZ @ 184 NONAME ; class CXnNodeAppIf & TXnUiEngineAppIf::RootNodeL(void)
- ?CreateXnComponentL@MXnComponentFactory@@QAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 185 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::CreateXnComponentL(class CXnNodePluginIf &, class CXnComponent * &)
- ?RefreshMenuL@TXnUiEngineAppIf@@QAEXXZ @ 186 NONAME ; void TXnUiEngineAppIf::RefreshMenuL(void)
- ?PaddingRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 187 NONAME ; class TRect CXnNodePluginIf::PaddingRect(void)
- ?MeasureAdaptiveContentL@CXnControlAdapter@@UAE?AVTSize@@ABV2@@Z @ 188 NONAME ; class TSize CXnControlAdapter::MeasureAdaptiveContentL(class TSize const &)
- ?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@0W4TPrimitiveValueType@CXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 189 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class TDesC8 const &, enum CXnDomPropertyValue::TPrimitiveValueType, class CXnDomStringPool &)
- ?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@AAV2@@Z @ 190 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class CXnProperty &) const
- ?HitRegion@TXnUiEnginePluginIf@@QBEPAVCXnControlAdapter@@XZ @ 191 NONAME ; class CXnControlAdapter * TXnUiEnginePluginIf::HitRegion(void) const
- ?MarginRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 192 NONAME ; class TRect CXnNodeAppIf::MarginRect(void)
- ?MakeInterfaceL@CXnComponent@@UAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 193 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnComponent::MakeInterfaceL(class TDesC8 const &)
- ?EditMode@TXnUiEnginePluginIf@@QAEHXZ @ 194 NONAME ; int TXnUiEnginePluginIf::EditMode(void)
- ?FindNodeByIdL@TXnUiEnginePluginIf@@QAEPAVCXnNodePluginIf@@ABVTDesC8@@0@Z @ 195 NONAME ; class CXnNodePluginIf * TXnUiEnginePluginIf::FindNodeByIdL(class TDesC8 const &, class TDesC8 const &)
- ?EnableRenderUi@CXnUiEngineImpl@@CAXPAX@Z @ 196 NONAME ; void CXnUiEngineImpl::EnableRenderUi(void *)
- ?IsMenuDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 197 NONAME ; int TXnUiEnginePluginIf::IsMenuDisplaying(void)
- ?IsMenuDisplaying@TXnUiEngineAppIf@@QAEHXZ @ 198 NONAME ; int TXnUiEngineAppIf::IsMenuDisplaying(void)
- ?NewL@CXnProperty@@SAPAV1@PAVCXnDomProperty@@@Z @ 199 NONAME ; class CXnProperty * CXnProperty::NewL(class CXnDomProperty *)
- ?ConstructL@CXnComponentNodeImpl@@IAEXPAVCXnType@@@Z @ 200 NONAME ; void CXnComponentNodeImpl::ConstructL(class CXnType *)
- ?ChildrenL@CXnNodeAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@XZ @ 201 NONAME ; class RPointerArray<class CXnNodeAppIf> CXnNodeAppIf::ChildrenL(void)
- ?LoadPublisher@CXnAppUiAdapter@@UAEHAAVCXnNodeAppIf@@H@Z @ 202 NONAME ; int CXnAppUiAdapter::LoadPublisher(class CXnNodeAppIf &, int)
- ?ConvertHslToRgb@CXnUtils@@SA?AVTRgb@@HHH@Z @ 203 NONAME ; class TRgb CXnUtils::ConvertHslToRgb(int, int, int)
- ?LoadBitmap@CXnControlAdapter@@QAEPAVCFbsBitmap@@ABVTDesC16@@@Z @ 204 NONAME ; class CFbsBitmap * CXnControlAdapter::LoadBitmap(class TDesC16 const &)
- ??0MXnComponentFactory@@IAE@XZ @ 205 NONAME ; MXnComponentFactory::MXnComponentFactory(void)
- ?SetComponent@CXnViewsNodeImpl@@QAEXPAVCXnComponent@@@Z @ 206 NONAME ; void CXnViewsNodeImpl::SetComponent(class CXnComponent *)
- ?BorderRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 207 NONAME ; class TRect CXnNodePluginIf::BorderRect(void)
- ?CreateDocumentL@CXnApplication@@MAEPAVCApaDocument@@XZ @ 208 NONAME ; class CApaDocument * CXnApplication::CreateDocumentL(void)
- ?HandleUiReadyEventL@CXnAppUiAdapter@@UAEXXZ @ 209 NONAME ; void CXnAppUiAdapter::HandleUiReadyEventL(void)
- ?CreateFontL@CXnUtils@@SAXABVTDesC16@@HVTFontStyle@@AAPAVCFont@@AAH@Z @ 210 NONAME ; void CXnUtils::CreateFontL(class TDesC16 const &, int, class TFontStyle, class CFont * &, int &)
- ?GetPluginNodeArrayL@TXnUiEngineAppIf@@QAEHAAV?$RPointerArray@VCXnNodeAppIf@@@@@Z @ 211 NONAME ; int TXnUiEngineAppIf::GetPluginNodeArrayL(class RPointerArray<class CXnNodeAppIf> &)
- ?MakeXnControlAdapterL@MXnComponentFactory@@EAEPAVCXnControlAdapter@@AAVCXnNodePluginIf@@PAV2@@Z @ 212 NONAME ; class CXnControlAdapter * MXnComponentFactory::MakeXnControlAdapterL(class CXnNodePluginIf &, class CXnControlAdapter *)
- ?IsDrawingAllowed@CXnNodePluginIf@@QBEHXZ @ 213 NONAME ; int CXnNodePluginIf::IsDrawingAllowed(void) const
- ?MakeInterfaceL@CXnNodeAppIf@@QAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 214 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnNodeAppIf::MakeInterfaceL(class TDesC8 const &)
- ?VerticalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 215 NONAME ; int TXnUiEnginePluginIf::VerticalTwipValueL(class CXnProperty *, int)
- ?Component@CXnControlAdapter@@QAEPAVCXnComponent@@XZ @ 216 NONAME ; class CXnComponent * CXnControlAdapter::Component(void)
- ?FloatValueL@CXnProperty@@QAENXZ @ 217 NONAME ; double CXnProperty::FloatValueL(void)
- ?SetUiEngine@TXnUiEngineAppIf@@QAEXPAVCXnUiEngine@@@Z @ 218 NONAME ; void TXnUiEngineAppIf::SetUiEngine(class CXnUiEngine *)
- ?FindNodeByIdL@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@ABVTDesC16@@0@Z @ 219 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FindNodeByIdL(class TDesC16 const &, class TDesC16 const &)
- ?IsEditMode@TXnUiEngineAppIf@@QAEHXZ @ 220 NONAME ; int TXnUiEngineAppIf::IsEditMode(void)
- ?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@AAH@Z @ 221 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &, int &)
- ?EnablePartialTouchInput@TXnUiEnginePluginIf@@QAEXAAVCXnNodePluginIf@@H@Z @ 222 NONAME ; void TXnUiEnginePluginIf::EnablePartialTouchInput(class CXnNodePluginIf &, int)
- ?RootNodeL@TXnUiEnginePluginIf@@QAEAAVCXnNodePluginIf@@XZ @ 223 NONAME ; class CXnNodePluginIf & TXnUiEnginePluginIf::RootNodeL(void)
- ?CreateAppUiL@CXnDocument@@UAEPAVCEikAppUi@@XZ @ 224 NONAME ; class CEikAppUi * CXnDocument::CreateAppUiL(void)
- ?PathL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 225 NONAME ; class CXnProperty * CXnNodePluginIf::PathL(void)
- ?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@NW4TPrimitiveValueType@CXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 226 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, double, enum CXnDomPropertyValue::TPrimitiveValueType, class CXnDomStringPool &)
- ?MaskPathL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 227 NONAME ; class CXnProperty * CXnNodePluginIf::MaskPathL(void)
- ?AppDllUid@CXnApplication@@MBE?AVTUid@@XZ @ 228 NONAME ; class TUid CXnApplication::AppDllUid(void) const
- ?DoExitPowerSaveModeL@CXnControlAdapter@@UAEXW4TModeEvent@1@@Z @ 229 NONAME ; void CXnControlAdapter::DoExitPowerSaveModeL(enum CXnControlAdapter::TModeEvent)
- ?LabelL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 230 NONAME ; class CXnProperty * CXnNodePluginIf::LabelL(void)
- ?Component@CXnViewsNodeImpl@@QAEPAVCXnComponent@@XZ @ 231 NONAME ; class CXnComponent * CXnViewsNodeImpl::Component(void)
- ?GetRgbValue@CXnUtils@@SAHAAVTRgb@@ABVTDesC8@@@Z @ 232 NONAME ; int CXnUtils::GetRgbValue(class TRgb &, class TDesC8 const &)
- ?StringValue@CXnProperty@@QAEABVTDesC8@@XZ @ 233 NONAME ; class TDesC8 const & CXnProperty::StringValue(void)
- ?SetVisible@CXnControlAdapter@@QAEXH@Z @ 234 NONAME ; void CXnControlAdapter::SetVisible(int)
- ?Node@CXnComponent@@QAEPAVCXnNodePluginIf@@XZ @ 235 NONAME ; class CXnNodePluginIf * CXnComponent::Node(void)
+ ?ExitPowerSaveModeL@CXnControlAdapter@@QAEXW4TModeEvent@1@@Z @ 63 NONAME ; void CXnControlAdapter::ExitPowerSaveModeL(enum CXnControlAdapter::TModeEvent)
+ ?GetThemeResource@TXnUiEngineAppIf@@QAEHABVTDesC16@@AAVRFile@@@Z @ 64 NONAME ; int TXnUiEngineAppIf::GetThemeResource(class TDesC16 const &, class RFile &)
+ ?ConstructL@CXnComponent@@IAEXXZ @ 65 NONAME ; void CXnComponent::ConstructL(void)
+ ?FindResource@CXnUtils@@SAPAVCXnResource@@AAV?$CArrayPtrSeg@VCXnResource@@@@ABVTDesC16@@AAH@Z @ 66 NONAME ; class CXnResource * CXnUtils::FindResource(class CArrayPtrSeg<class CXnResource> &, class TDesC16 const &, int &)
+ ?UnsetStateL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 67 NONAME ; void CXnNodeAppIf::UnsetStateL(class TDesC8 const &)
+ ?Uid@CXnDocument@@QAE?AVTUid@@XZ @ 68 NONAME ; class TUid CXnDocument::Uid(void)
+ ?FocusChanged@CXnControlAdapter@@UAEXW4TDrawNow@@@Z @ 69 NONAME ; void CXnControlAdapter::FocusChanged(enum TDrawNow)
+ ?SetBlank@CXnControlAdapter@@QAEXH@Z @ 70 NONAME ; void CXnControlAdapter::SetBlank(int)
+ ?ProcessMessageL@CXnAppUiAdapter@@UAEXVTUid@@ABVTDesC8@@@Z @ 71 NONAME ; void CXnAppUiAdapter::ProcessMessageL(class TUid, class TDesC8 const &)
+ ?Component@CXnNodeAppIf@@QAEAAVCXnComponent@@XZ @ 72 NONAME ; class CXnComponent & CXnNodeAppIf::Component(void)
+ ?SetLayoutCapable@CXnNodePluginIf@@QAEXH@Z @ 73 NONAME ; void CXnNodePluginIf::SetLayoutCapable(int)
+ ?MarginRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 74 NONAME ; class TRect CXnNodePluginIf::MarginRect(void)
+ ?UiEngineL@CXnAppUiAdapter@@QAEPAVTXnUiEngineAppIf@@XZ @ 75 NONAME ; class TXnUiEngineAppIf * CXnAppUiAdapter::UiEngineL(void)
+ ?ActiveView@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@XZ @ 76 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::ActiveView(void)
+ ?HandleXuikonEventL@CXnAppUiAdapter@@UAEXAAVCXnNodeAppIf@@0AAVCXnDomNode@@1@Z @ 77 NONAME ; void CXnAppUiAdapter::HandleXuikonEventL(class CXnNodeAppIf &, class CXnNodeAppIf &, class CXnDomNode &, class CXnDomNode &)
+ ?RenderUIL@TXnUiEngineAppIf@@QAEXPAVCXnNodeAppIf@@@Z @ 78 NONAME ; void TXnUiEngineAppIf::RenderUIL(class CXnNodeAppIf *)
+ ?PrepareToExit@CXnAppUiAdapter@@MAEXXZ @ 79 NONAME ; void CXnAppUiAdapter::PrepareToExit(void)
+ ?DoHandlePropertyChangeL@CXnControlAdapter@@UAEXPAVCXnProperty@@@Z @ 80 NONAME ; void CXnControlAdapter::DoHandlePropertyChangeL(class CXnProperty *)
+ ?ConstructL@CXnControlAdapter@@IAEXAAVCXnNodePluginIf@@@Z @ 81 NONAME ; void CXnControlAdapter::ConstructL(class CXnNodePluginIf &)
+ ?FocusedNode@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@XZ @ 82 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FocusedNode(void)
+ ?SetDataL@CXnComponent@@QAEXABVTDesC8@@ABVTDesC16@@H@Z @ 83 NONAME ; void CXnComponent::SetDataL(class TDesC8 const &, class TDesC16 const &, int)
+ ?OfferKeyEventL@CXnControlAdapter@@UAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 84 NONAME ; enum TKeyResponse CXnControlAdapter::OfferKeyEventL(struct TKeyEvent const &, enum TEventCode)
+ ?IsDrawingAllowed@CXnControlAdapter@@QBEHXZ @ 85 NONAME ; int CXnControlAdapter::IsDrawingAllowed(void) const
+ ?DisplayL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 86 NONAME ; class CXnProperty * CXnNodePluginIf::DisplayL(void)
+ ?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@PAVCXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 87 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class CXnDomPropertyValue *, class CXnDomStringPool &)
+ ?Rect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 88 NONAME ; class TRect CXnNodeAppIf::Rect(void)
+ ?NewL@CXnComponentNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 89 NONAME ; class CXnComponentNodeImpl * CXnComponentNodeImpl::NewL(class CXnType *)
+ ?WidgetsVisible@TXnUiEngineAppIf@@QBEHXZ @ 90 NONAME ; int TXnUiEngineAppIf::WidgetsVisible(void) const
+ ?Type@CXnNodePluginIf@@QAEPAVCXnType@@XZ @ 91 NONAME ; class CXnType * CXnNodePluginIf::Type(void)
+ ?MakeXnComponentL@MXnComponentFactory@@EAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 92 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::MakeXnComponentL(class CXnNodePluginIf &, class CXnComponent * &)
+ ?UnsetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 93 NONAME ; void CXnNodePluginIf::UnsetStateL(class TDesC8 const &)
+ ?StringValueL@CXnProperty@@QAEPAVHBufC16@@XZ @ 94 NONAME ; class HBufC16 * CXnProperty::StringValueL(void)
+ ?DisableRenderUiLC@TXnUiEnginePluginIf@@QAEXXZ @ 95 NONAME ; void TXnUiEnginePluginIf::DisableRenderUiLC(void)
+ ?SetPropertyL@CXnNodeAppIf@@QAEXPAVCXnProperty@@@Z @ 96 NONAME ; void CXnNodeAppIf::SetPropertyL(class CXnProperty *)
+ ?View@CXnAppUiAdapter@@QBEAAVCAknView@@XZ @ 97 NONAME ; class CAknView & CXnAppUiAdapter::View(void) const
+ ?ViewNodeImpl@CXnNodePluginIf@@QAEPAVCXnViewNodeImpl@@XZ @ 98 NONAME ; class CXnViewNodeImpl * CXnNodePluginIf::ViewNodeImpl(void)
+ ?StripQuotes@CXnUtils@@SAXAAPAVHBufC16@@@Z @ 99 NONAME ; void CXnUtils::StripQuotes(class HBufC16 * &)
+ ?SetPCDataL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 100 NONAME ; void CXnNodePluginIf::SetPCDataL(class TDesC8 const &)
+ ?VisibilityL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 101 NONAME ; class CXnProperty * CXnNodePluginIf::VisibilityL(void)
+ ?Draw@CXnControlAdapter@@MBEXABVTRect@@@Z @ 102 NONAME ; void CXnControlAdapter::Draw(class TRect const &) const
+ ??1CXnApplication@@UAE@XZ @ 103 NONAME ; CXnApplication::~CXnApplication(void)
+ ?DoesNodeNeedComponentImplL@MXnComponentFactory@@QAEHABVTDesC8@@@Z @ 104 NONAME ; int MXnComponentFactory::DoesNodeNeedComponentImplL(class TDesC8 const &)
+ ?ConstructL@CXnViewsNodeImpl@@IAEXPAVCXnType@@@Z @ 105 NONAME ; void CXnViewsNodeImpl::ConstructL(class CXnType *)
+ ?StringPool@TXnUiEngineAppIf@@QAEAAVCXnDomStringPool@@XZ @ 106 NONAME ; class CXnDomStringPool & TXnUiEngineAppIf::StringPool(void)
+ ?UiEngineL@CXnNodePluginIf@@QAEPAVTXnUiEnginePluginIf@@XZ @ 107 NONAME ; class TXnUiEnginePluginIf * CXnNodePluginIf::UiEngineL(void)
+ ?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@@Z @ 108 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &)
+ ?PluginNodeL@TXnUiEnginePluginIf@@QAEAAVCXnNodePluginIf@@PAV2@@Z @ 109 NONAME ; class CXnNodePluginIf & TXnUiEnginePluginIf::PluginNodeL(class CXnNodePluginIf *)
+ ?VerticalPixelValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 110 NONAME ; int TXnUiEnginePluginIf::VerticalPixelValueL(class CXnProperty *, int)
+ ?SetComponent@CXnControlAdapter@@QAEXPAVCXnComponent@@@Z @ 111 NONAME ; void CXnControlAdapter::SetComponent(class CXnComponent *)
+ ??0MXnNodePredicate@@QAE@XZ @ 112 NONAME ; MXnNodePredicate::MXnNodePredicate(void)
+ ??1CXnViewsNodeImpl@@UAE@XZ @ 113 NONAME ; CXnViewsNodeImpl::~CXnViewsNodeImpl(void)
+ ?HandleControlEventL@CXnControlAdapter@@UAEXPAVCCoeControl@@W4TCoeEvent@MCoeControlObserver@@@Z @ 114 NONAME ; void CXnControlAdapter::HandleControlEventL(class CCoeControl *, enum MCoeControlObserver::TCoeEvent)
+ ?HandleScreenDeviceChangedL@CXnControlAdapter@@UAEXXZ @ 115 NONAME ; void CXnControlAdapter::HandleScreenDeviceChangedL(void)
+ ?SizeChanged@CXnControlAdapter@@MAEXXZ @ 116 NONAME ; void CXnControlAdapter::SizeChanged(void)
+ ?CountComponentControls@CXnControlAdapter@@MBEHXZ @ 117 NONAME ; int CXnControlAdapter::CountComponentControls(void) const
+ ?HideTooltipsL@CXnNodeAppIf@@QAEXXZ @ 118 NONAME ; void CXnNodeAppIf::HideTooltipsL(void)
+ ?GetPropertyL@CXnNodeAppIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 119 NONAME ; class CXnProperty * CXnNodeAppIf::GetPropertyL(class TDesC8 const &) const
+ ?FindNodeByClassL@TXnUiEngineAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@ABVTDesC8@@0@Z @ 120 NONAME ; class RPointerArray<class CXnNodeAppIf> TXnUiEngineAppIf::FindNodeByClassL(class TDesC8 const &, class TDesC8 const &)
+ ?Match@MXnNodePredicate@@UAEHAAVCXnNode@@@Z @ 121 NONAME ; int MXnNodePredicate::Match(class CXnNode &)
+ ?GetBitmapAndMask@CXnControlAdapter@@QAEXABVTDesC16@@0AAPAVCFbsBitmap@@1@Z @ 122 NONAME ; void CXnControlAdapter::GetBitmapAndMask(class TDesC16 const &, class TDesC16 const &, class CFbsBitmap * &, class CFbsBitmap * &)
+ ?NewL@CXnViewsNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 123 NONAME ; class CXnViewsNodeImpl * CXnViewsNodeImpl::NewL(class CXnType *)
+ ?PaddingRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 124 NONAME ; class TRect CXnNodeAppIf::PaddingRect(void)
+ ?SetMarginRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 125 NONAME ; void CXnNodePluginIf::SetMarginRect(class TRect const &)
+ ?IsDialogDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 126 NONAME ; int TXnUiEnginePluginIf::IsDialogDisplaying(void)
+ ?HandleEventL@CXnAppUiAdapter@@UAEXABVTDesC16@@AAVCXnNodeAppIf@@@Z @ 127 NONAME ; void CXnAppUiAdapter::HandleEventL(class TDesC16 const &, class CXnNodeAppIf &)
+ ?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 128 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class TDesC8 const &) const
+ ?SetPropertyArrayL@CXnNodeAppIf@@QAEXPAV?$RPointerArray@VCXnProperty@@@@@Z @ 129 NONAME ; void CXnNodeAppIf::SetPropertyArrayL(class RPointerArray<class CXnProperty> *)
+ ?RemoveViewL@CXnAppUiAdapter@@QAEXAAVCAknView@@@Z @ 130 NONAME ; void CXnAppUiAdapter::RemoveViewL(class CAknView &)
+ ?EnterPowerSaveModeL@CXnComponent@@UAEXXZ @ 131 NONAME ; void CXnComponent::EnterPowerSaveModeL(void)
+ ?SetRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 132 NONAME ; void CXnNodePluginIf::SetRect(class TRect const &)
+ ??0CXnComponent@@IAE@XZ @ 133 NONAME ; CXnComponent::CXnComponent(void)
+ ?CollapseWhiteSpace@CXnUtils@@SAXAAVCXnNodePluginIf@@AAVTDes16@@@Z @ 134 NONAME ; void CXnUtils::CollapseWhiteSpace(class CXnNodePluginIf &, class TDes16 &)
+ ?SetHandleTooltip@CXnNodePluginIf@@QAEXH@Z @ 135 NONAME ; void CXnNodePluginIf::SetHandleTooltip(int)
+ ??1CXnAppUiAdapter@@UAE@XZ @ 136 NONAME ; CXnAppUiAdapter::~CXnAppUiAdapter(void)
+ ?NewL@CXnControlAdapter@@SAPAV1@AAVCXnNodePluginIf@@@Z @ 137 NONAME ; class CXnControlAdapter * CXnControlAdapter::NewL(class CXnNodePluginIf &)
+ ?EnableLongTapAnimation@CXnControlAdapter@@QAEXH@Z @ 138 NONAME ; void CXnControlAdapter::EnableLongTapAnimation(int)
+ ?SetPaddingRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 139 NONAME ; void CXnNodePluginIf::SetPaddingRect(class TRect const &)
+ ?SetFocusedNode@TXnUiEnginePluginIf@@QAEXPAVCXnNodePluginIf@@@Z @ 140 NONAME ; void TXnUiEnginePluginIf::SetFocusedNode(class CXnNodePluginIf *)
+ ?ExitPowerSaveModeL@CXnComponent@@UAEXXZ @ 141 NONAME ; void CXnComponent::ExitPowerSaveModeL(void)
+ ?GetPCData@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 142 NONAME ; class TDesC8 const & CXnNodeAppIf::GetPCData(void) const
+ ?Namespace@CXnNodeAppIf@@QAEABVTDesC8@@XZ @ 143 NONAME ; class TDesC8 const & CXnNodeAppIf::Namespace(void)
+ ??1CXnComponentNodeImpl@@UAE@XZ @ 144 NONAME ; CXnComponentNodeImpl::~CXnComponentNodeImpl(void)
+ ?SetPropertyWithoutNotificationL@CXnNodePluginIf@@QAEXPAVCXnProperty@@@Z @ 145 NONAME ; void CXnNodePluginIf::SetPropertyWithoutNotificationL(class CXnProperty *)
+ ?GetPCData@CXnNodePluginIf@@QBEABVTDesC8@@XZ @ 146 NONAME ; class TDesC8 const & CXnNodePluginIf::GetPCData(void) const
+ ?SetPCDataL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 147 NONAME ; void CXnNodeAppIf::SetPCDataL(class TDesC8 const &)
+ ?Resources@TXnUiEnginePluginIf@@QAEAAV?$CArrayPtrSeg@VCXnResource@@@@XZ @ 148 NONAME ; class CArrayPtrSeg<class CXnResource> & TXnUiEnginePluginIf::Resources(void)
+ ?SetContentBitmaps@CXnControlAdapter@@QAEXABVTDesC16@@0@Z @ 149 NONAME ; void CXnControlAdapter::SetContentBitmaps(class TDesC16 const &, class TDesC16 const &)
+ ??1CXnControlAdapter@@UAE@XZ @ 150 NONAME ; CXnControlAdapter::~CXnControlAdapter(void)
+ ??1MXnNodePredicate@@UAE@XZ @ 151 NONAME ; MXnNodePredicate::~MXnNodePredicate(void)
+ ?HorizontalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 152 NONAME ; int TXnUiEnginePluginIf::HorizontalTwipValueL(class CXnProperty *, int)
+ ?ConstructL@CXnAppUiAdapter@@UAEXXZ @ 153 NONAME ; void CXnAppUiAdapter::ConstructL(void)
+ ?CreateFontL@CXnUtils@@SAXAAVCXnNodePluginIf@@AAPAVCFont@@AAH@Z @ 154 NONAME ; void CXnUtils::CreateFontL(class CXnNodePluginIf &, class CFont * &, int &)
+ ??0CXnApplication@@QAE@VTUid@@@Z @ 155 NONAME ; CXnApplication::CXnApplication(class TUid)
+ ?ComponentControl@CXnControlAdapter@@MBEPAVCCoeControl@@H@Z @ 156 NONAME ; class CCoeControl * CXnControlAdapter::ComponentControl(int) const
+ ?HandleLongTapEventL@CXnControlAdapter@@UAEXABVTPoint@@0@Z @ 157 NONAME ; void CXnControlAdapter::HandleLongTapEventL(class TPoint const &, class TPoint const &)
+ ?ParentL@CXnNodeAppIf@@QBEPAV1@XZ @ 158 NONAME ; class CXnNodeAppIf * CXnNodeAppIf::ParentL(void) const
+ ??1CXnComponent@@UAE@XZ @ 159 NONAME ; CXnComponent::~CXnComponent(void)
+ ?ControlAdapter@CXnComponent@@QAEPAVCXnControlAdapter@@XZ @ 160 NONAME ; class CXnControlAdapter * CXnComponent::ControlAdapter(void)
+ ?DrawContentImage@CXnControlAdapter@@IBEXXZ @ 161 NONAME ; void CXnControlAdapter::DrawContentImage(void) const
+ ?Component@CXnComponentNodeImpl@@QAEPAVCXnComponent@@XZ @ 162 NONAME ; class CXnComponent * CXnComponentNodeImpl::Component(void)
+ ?WidgetsVisible@TXnUiEnginePluginIf@@QBEHXZ @ 163 NONAME ; int TXnUiEnginePluginIf::WidgetsVisible(void) const
+ ?SetControlAdapter@CXnComponent@@QAEXPAVCXnControlAdapter@@@Z @ 164 NONAME ; void CXnComponent::SetControlAdapter(class CXnControlAdapter *)
+ ?SetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 165 NONAME ; void CXnNodePluginIf::SetStateL(class TDesC8 const &)
+ ?DoesComponentNeedCreation@CXnComponentNodeImpl@@QBEHXZ @ 166 NONAME ; int CXnComponentNodeImpl::DoesComponentNeedCreation(void) const
+ ??0CXnDocument@@QAE@AAVCEikApplication@@VTUid@@@Z @ 167 NONAME ; CXnDocument::CXnDocument(class CEikApplication &, class TUid)
+ ?FindNodeByClassL@TXnUiEnginePluginIf@@QAE?AV?$RPointerArray@VCXnNodePluginIf@@@@ABVTDesC16@@@Z @ 168 NONAME ; class RPointerArray<class CXnNodePluginIf> TXnUiEnginePluginIf::FindNodeByClassL(class TDesC16 const &)
+ ?InternalDomNodeType@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 169 NONAME ; class TDesC8 const & CXnNodeAppIf::InternalDomNodeType(void) const
+ ?StringPool@TXnUiEnginePluginIf@@QAEAAVCXnDomStringPool@@XZ @ 170 NONAME ; class CXnDomStringPool & TXnUiEnginePluginIf::StringPool(void)
+ ?SetStateL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 171 NONAME ; void CXnNodeAppIf::SetStateL(class TDesC8 const &)
+ ?Type@CXnNodeAppIf@@QAEPAVCXnType@@XZ @ 172 NONAME ; class CXnType * CXnNodeAppIf::Type(void)
+ ?BorderRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 173 NONAME ; class TRect CXnNodeAppIf::BorderRect(void)
+ ?IdL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 174 NONAME ; class CXnProperty * CXnNodePluginIf::IdL(void)
+ ?RootNodeL@TXnUiEngineAppIf@@QAEAAVCXnNodeAppIf@@XZ @ 175 NONAME ; class CXnNodeAppIf & TXnUiEngineAppIf::RootNodeL(void)
+ ?CreateXnComponentL@MXnComponentFactory@@QAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 176 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::CreateXnComponentL(class CXnNodePluginIf &, class CXnComponent * &)
+ ?RefreshMenuL@TXnUiEngineAppIf@@QAEXXZ @ 177 NONAME ; void TXnUiEngineAppIf::RefreshMenuL(void)
+ ?PaddingRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 178 NONAME ; class TRect CXnNodePluginIf::PaddingRect(void)
+ ?MeasureAdaptiveContentL@CXnControlAdapter@@UAE?AVTSize@@ABV2@@Z @ 179 NONAME ; class TSize CXnControlAdapter::MeasureAdaptiveContentL(class TSize const &)
+ ?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@0W4TPrimitiveValueType@CXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 180 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class TDesC8 const &, enum CXnDomPropertyValue::TPrimitiveValueType, class CXnDomStringPool &)
+ ?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@AAV2@@Z @ 181 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class CXnProperty &) const
+ ?MarginRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 182 NONAME ; class TRect CXnNodeAppIf::MarginRect(void)
+ ?EditMode@TXnUiEnginePluginIf@@QAEHXZ @ 183 NONAME ; int TXnUiEnginePluginIf::EditMode(void)
+ ?FindNodeByIdL@TXnUiEnginePluginIf@@QAEPAVCXnNodePluginIf@@ABVTDesC8@@0@Z @ 184 NONAME ; class CXnNodePluginIf * TXnUiEnginePluginIf::FindNodeByIdL(class TDesC8 const &, class TDesC8 const &)
+ ?MakeInterfaceL@CXnComponent@@UAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 185 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnComponent::MakeInterfaceL(class TDesC8 const &)
+ ?EnableRenderUi@CXnUiEngineImpl@@CAXPAX@Z @ 186 NONAME ; void CXnUiEngineImpl::EnableRenderUi(void *)
+ ?IsMenuDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 187 NONAME ; int TXnUiEnginePluginIf::IsMenuDisplaying(void)
+ ?IsMenuDisplaying@TXnUiEngineAppIf@@QAEHXZ @ 188 NONAME ; int TXnUiEngineAppIf::IsMenuDisplaying(void)
+ ?NewL@CXnProperty@@SAPAV1@PAVCXnDomProperty@@@Z @ 189 NONAME ; class CXnProperty * CXnProperty::NewL(class CXnDomProperty *)
+ ?ConstructL@CXnComponentNodeImpl@@IAEXPAVCXnType@@@Z @ 190 NONAME ; void CXnComponentNodeImpl::ConstructL(class CXnType *)
+ ?ChildrenL@CXnNodeAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@XZ @ 191 NONAME ; class RPointerArray<class CXnNodeAppIf> CXnNodeAppIf::ChildrenL(void)
+ ?ConvertHslToRgb@CXnUtils@@SA?AVTRgb@@HHH@Z @ 192 NONAME ; class TRgb CXnUtils::ConvertHslToRgb(int, int, int)
+ ?LoadPublisher@CXnAppUiAdapter@@UAEHAAVCXnNodeAppIf@@H@Z @ 193 NONAME ; int CXnAppUiAdapter::LoadPublisher(class CXnNodeAppIf &, int)
+ ?LoadBitmap@CXnControlAdapter@@QAEPAVCFbsBitmap@@ABVTDesC16@@@Z @ 194 NONAME ; class CFbsBitmap * CXnControlAdapter::LoadBitmap(class TDesC16 const &)
+ ??0MXnComponentFactory@@IAE@XZ @ 195 NONAME ; MXnComponentFactory::MXnComponentFactory(void)
+ ?SetComponent@CXnViewsNodeImpl@@QAEXPAVCXnComponent@@@Z @ 196 NONAME ; void CXnViewsNodeImpl::SetComponent(class CXnComponent *)
+ ?BorderRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 197 NONAME ; class TRect CXnNodePluginIf::BorderRect(void)
+ ?CreateDocumentL@CXnApplication@@MAEPAVCApaDocument@@XZ @ 198 NONAME ; class CApaDocument * CXnApplication::CreateDocumentL(void)
+ ?HandleUiReadyEventL@CXnAppUiAdapter@@UAEXXZ @ 199 NONAME ; void CXnAppUiAdapter::HandleUiReadyEventL(void)
+ ?CreateFontL@CXnUtils@@SAXABVTDesC16@@HVTFontStyle@@AAPAVCFont@@AAH@Z @ 200 NONAME ; void CXnUtils::CreateFontL(class TDesC16 const &, int, class TFontStyle, class CFont * &, int &)
+ ?GetPluginNodeArrayL@TXnUiEngineAppIf@@QAEHAAV?$RPointerArray@VCXnNodeAppIf@@@@@Z @ 201 NONAME ; int TXnUiEngineAppIf::GetPluginNodeArrayL(class RPointerArray<class CXnNodeAppIf> &)
+ ?MakeXnControlAdapterL@MXnComponentFactory@@EAEPAVCXnControlAdapter@@AAVCXnNodePluginIf@@PAV2@@Z @ 202 NONAME ; class CXnControlAdapter * MXnComponentFactory::MakeXnControlAdapterL(class CXnNodePluginIf &, class CXnControlAdapter *)
+ ?IsDrawingAllowed@CXnNodePluginIf@@QBEHXZ @ 203 NONAME ; int CXnNodePluginIf::IsDrawingAllowed(void) const
+ ?MakeInterfaceL@CXnNodeAppIf@@QAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 204 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnNodeAppIf::MakeInterfaceL(class TDesC8 const &)
+ ?VerticalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 205 NONAME ; int TXnUiEnginePluginIf::VerticalTwipValueL(class CXnProperty *, int)
+ ?Component@CXnControlAdapter@@QAEPAVCXnComponent@@XZ @ 206 NONAME ; class CXnComponent * CXnControlAdapter::Component(void)
+ ?FloatValueL@CXnProperty@@QAENXZ @ 207 NONAME ; double CXnProperty::FloatValueL(void)
+ ?SetUiEngine@TXnUiEngineAppIf@@QAEXPAVCXnUiEngine@@@Z @ 208 NONAME ; void TXnUiEngineAppIf::SetUiEngine(class CXnUiEngine *)
+ ?FindNodeByIdL@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@ABVTDesC16@@0@Z @ 209 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FindNodeByIdL(class TDesC16 const &, class TDesC16 const &)
+ ?IsEditMode@TXnUiEngineAppIf@@QAEHXZ @ 210 NONAME ; int TXnUiEngineAppIf::IsEditMode(void)
+ ?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@AAH@Z @ 211 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &, int &)
+ ?EnablePartialTouchInput@TXnUiEnginePluginIf@@QAEXAAVCXnNodePluginIf@@H@Z @ 212 NONAME ; void TXnUiEnginePluginIf::EnablePartialTouchInput(class CXnNodePluginIf &, int)
+ ?RootNodeL@TXnUiEnginePluginIf@@QAEAAVCXnNodePluginIf@@XZ @ 213 NONAME ; class CXnNodePluginIf & TXnUiEnginePluginIf::RootNodeL(void)
+ ?CreateAppUiL@CXnDocument@@UAEPAVCEikAppUi@@XZ @ 214 NONAME ; class CEikAppUi * CXnDocument::CreateAppUiL(void)
+ ?PathL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 215 NONAME ; class CXnProperty * CXnNodePluginIf::PathL(void)
+ ?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@NW4TPrimitiveValueType@CXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 216 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, double, enum CXnDomPropertyValue::TPrimitiveValueType, class CXnDomStringPool &)
+ ?MaskPathL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 217 NONAME ; class CXnProperty * CXnNodePluginIf::MaskPathL(void)
+ ?AppDllUid@CXnApplication@@MBE?AVTUid@@XZ @ 218 NONAME ; class TUid CXnApplication::AppDllUid(void) const
+ ?DoExitPowerSaveModeL@CXnControlAdapter@@UAEXW4TModeEvent@1@@Z @ 219 NONAME ; void CXnControlAdapter::DoExitPowerSaveModeL(enum CXnControlAdapter::TModeEvent)
+ ?LabelL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 220 NONAME ; class CXnProperty * CXnNodePluginIf::LabelL(void)
+ ?Component@CXnViewsNodeImpl@@QAEPAVCXnComponent@@XZ @ 221 NONAME ; class CXnComponent * CXnViewsNodeImpl::Component(void)
+ ?GetRgbValue@CXnUtils@@SAHAAVTRgb@@ABVTDesC8@@@Z @ 222 NONAME ; int CXnUtils::GetRgbValue(class TRgb &, class TDesC8 const &)
+ ?StringValue@CXnProperty@@QAEABVTDesC8@@XZ @ 223 NONAME ; class TDesC8 const & CXnProperty::StringValue(void)
+ ?SetVisible@CXnControlAdapter@@QAEXH@Z @ 224 NONAME ; void CXnControlAdapter::SetVisible(int)
+ ?Node@CXnComponent@@QAEPAVCXnNodePluginIf@@XZ @ 225 NONAME ; class CXnNodePluginIf * CXnComponent::Node(void)
--- a/idlehomescreen/xmluirendering/uiengine/eabi/xn3layoutengineu.def Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/eabi/xn3layoutengineu.def Wed Apr 14 15:47:59 2010 +0300
@@ -127,163 +127,153 @@
_ZN16TXnUiEngineAppIf11FocusedNodeEv @ 126 NONAME
_ZN16TXnUiEngineAppIf11SetUiEngineEP11CXnUiEngine @ 127 NONAME
_ZN16TXnUiEngineAppIf12RefreshMenuLEv @ 128 NONAME
- _ZN16TXnUiEngineAppIf13ActivateViewLER12CXnNodeAppIf @ 129 NONAME
- _ZN16TXnUiEngineAppIf13FindNodeByIdLERK6TDesC8S2_ @ 130 NONAME
- _ZN16TXnUiEngineAppIf13FindNodeByIdLERK7TDesC16S2_ @ 131 NONAME
- _ZN16TXnUiEngineAppIf16FindNodeByClassLERK6TDesC8S2_ @ 132 NONAME
- _ZN16TXnUiEngineAppIf16FindNodeByClassLERK7TDesC16S2_ @ 133 NONAME
- _ZN16TXnUiEngineAppIf16GetThemeResourceERK7TDesC16R5RFile @ 134 NONAME
- _ZN16TXnUiEngineAppIf16IsMenuDisplayingEv @ 135 NONAME
- _ZN16TXnUiEngineAppIf19GetPluginNodeArrayLER13RPointerArrayI12CXnNodeAppIfE @ 136 NONAME
- _ZN16TXnUiEngineAppIf23FindContentSourceNodesLERK6TDesC8 @ 137 NONAME
- _ZN16TXnUiEngineAppIf9RenderUILEP12CXnNodeAppIf @ 138 NONAME
- _ZN16TXnUiEngineAppIf9RootNodeLEv @ 139 NONAME
- _ZN17CXnControlAdapter10ConstructLER15CXnNodePluginIf @ 140 NONAME
- _ZN17CXnControlAdapter10LoadBitmapERK7TDesC16 @ 141 NONAME
- _ZN17CXnControlAdapter10SetVisibleEi @ 142 NONAME
- _ZN17CXnControlAdapter11SizeChangedEv @ 143 NONAME
- _ZN17CXnControlAdapter11SkinChangedEv @ 144 NONAME
- _ZN17CXnControlAdapter12FocusChangedE8TDrawNow @ 145 NONAME
- _ZN17CXnControlAdapter12SetComponentEP12CXnComponent @ 146 NONAME
- _ZN17CXnControlAdapter14ContentBitmapsERP10CFbsBitmapS2_ @ 147 NONAME
- _ZN17CXnControlAdapter14OfferKeyEventLERK9TKeyEvent10TEventCode @ 148 NONAME
- _ZN17CXnControlAdapter15SetLocalUiZoomLE10TAknUiZoom @ 149 NONAME
- _ZN17CXnControlAdapter16GetBitmapAndMaskERK7TDesC16S2_RP10CFbsBitmapS5_ @ 150 NONAME
- _ZN17CXnControlAdapter17SetContentBitmapsEP10CFbsBitmapS1_ @ 151 NONAME
- _ZN17CXnControlAdapter17SetContentBitmapsERK7TDesC16S2_ @ 152 NONAME
- _ZN17CXnControlAdapter18ExitPowerSaveModeLENS_10TModeEventE @ 153 NONAME
- _ZN17CXnControlAdapter18ResetStylusCounterEv @ 154 NONAME
- _ZN17CXnControlAdapter19EnterPowerSaveModeLENS_10TModeEventE @ 155 NONAME
- _ZN17CXnControlAdapter19HandleControlEventLEP11CCoeControlN19MCoeControlObserver9TCoeEventE @ 156 NONAME
- _ZN17CXnControlAdapter19HandleLongTapEventLERK6TPointS2_ @ 157 NONAME
- _ZN17CXnControlAdapter19HandlePointerEventLERK13TPointerEvent @ 158 NONAME
- _ZN17CXnControlAdapter20DoExitPowerSaveModeLENS_10TModeEventE @ 159 NONAME
- _ZN17CXnControlAdapter21DoEnterPowerSaveModeLENS_10TModeEventE @ 160 NONAME
- _ZN17CXnControlAdapter21HandlePropertyChangeLEP11CXnProperty @ 161 NONAME
- _ZN17CXnControlAdapter22EnableLongTapAnimationEi @ 162 NONAME
- _ZN17CXnControlAdapter23DoHandlePropertyChangeLEP11CXnProperty @ 163 NONAME
- _ZN17CXnControlAdapter23MeasureAdaptiveContentLERK5TSize @ 164 NONAME
- _ZN17CXnControlAdapter26HandleScreenDeviceChangedLEv @ 165 NONAME
- _ZN17CXnControlAdapter4NewLER15CXnNodePluginIf @ 166 NONAME
- _ZN17CXnControlAdapter8SetBlankEi @ 167 NONAME
- _ZN17CXnControlAdapter8SetDataLERK6TDesC8RK7TDesC16i @ 168 NONAME
- _ZN17CXnControlAdapter9ComponentEv @ 169 NONAME
- _ZN17CXnControlAdapterC1Ev @ 170 NONAME
- _ZN17CXnControlAdapterC2Ev @ 171 NONAME
- _ZN17CXnControlAdapterD0Ev @ 172 NONAME
- _ZN17CXnControlAdapterD1Ev @ 173 NONAME
- _ZN17CXnControlAdapterD2Ev @ 174 NONAME
- _ZN19MXnComponentFactory16MakeXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 175 NONAME
- _ZN19MXnComponentFactory18CreateXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 176 NONAME
- _ZN19MXnComponentFactory21MakeXnControlAdapterLER15CXnNodePluginIfP17CXnControlAdapter @ 177 NONAME
- _ZN19MXnComponentFactory26DoesNodeNeedComponentImplLERK6TDesC8 @ 178 NONAME
- _ZN19MXnComponentFactoryC2Ev @ 179 NONAME
- _ZN19MXnComponentFactoryD0Ev @ 180 NONAME
- _ZN19MXnComponentFactoryD1Ev @ 181 NONAME
- _ZN19MXnComponentFactoryD2Ev @ 182 NONAME
- _ZN19TXnUiEnginePluginIf10StringPoolEv @ 183 NONAME
- _ZN19TXnUiEnginePluginIf11PluginNodeLEP15CXnNodePluginIf @ 184 NONAME
- _ZN19TXnUiEnginePluginIf12EnableSwipeLEi @ 185 NONAME
- _ZN19TXnUiEnginePluginIf12FocusVisibleEv @ 186 NONAME
- _ZN19TXnUiEnginePluginIf12FocusedNodeLEv @ 187 NONAME
- _ZN19TXnUiEnginePluginIf13ActivateViewLER15CXnNodePluginIf @ 188 NONAME
- _ZN19TXnUiEnginePluginIf13AddDirtyNodeLER15CXnNodePluginIf @ 189 NONAME
- _ZN19TXnUiEnginePluginIf13FindNodeByIdLERK6TDesC8S2_ @ 190 NONAME
- _ZN19TXnUiEnginePluginIf13FindNodeByIdLERK7TDesC16S2_ @ 191 NONAME
- _ZN19TXnUiEnginePluginIf13SwipeEnabledLEv @ 192 NONAME
- _ZN19TXnUiEnginePluginIf14SetFocusedNodeEP15CXnNodePluginIf @ 193 NONAME
- _ZN19TXnUiEnginePluginIf16FindNodeByClassLERK7TDesC16 @ 194 NONAME
- _ZN19TXnUiEnginePluginIf16IsMenuDisplayingEv @ 195 NONAME
- _ZN19TXnUiEnginePluginIf16ScreenDeviceSizeEv @ 196 NONAME
- _ZN19TXnUiEnginePluginIf16SetFocusVisibleLEi @ 197 NONAME
- _ZN19TXnUiEnginePluginIf17DisableRenderUiLCEv @ 198 NONAME
- _ZN19TXnUiEnginePluginIf18IsDialogDisplayingEv @ 199 NONAME
- _ZN19TXnUiEnginePluginIf18IsTextEditorActiveEv @ 200 NONAME
- _ZN19TXnUiEnginePluginIf18VerticalTwipValueLEP11CXnPropertyi @ 201 NONAME
- _ZN19TXnUiEnginePluginIf19VerticalPixelValueLEP11CXnPropertyi @ 202 NONAME
- _ZN19TXnUiEnginePluginIf20HorizontalTwipValueLEP11CXnPropertyi @ 203 NONAME
- _ZN19TXnUiEnginePluginIf21HorizontalPixelValueLEP11CXnPropertyi @ 204 NONAME
- _ZN19TXnUiEnginePluginIf22DeactivateFocusedNodeLEv @ 205 NONAME
- _ZN19TXnUiEnginePluginIf23EnablePartialTouchInputER15CXnNodePluginIfi @ 206 NONAME
- _ZN19TXnUiEnginePluginIf26RestorePreviousFocusedNodeEv @ 207 NONAME
- _ZN19TXnUiEnginePluginIf8EditModeEv @ 208 NONAME
- _ZN19TXnUiEnginePluginIf9LayoutUILEP15CXnNodePluginIf @ 209 NONAME
- _ZN19TXnUiEnginePluginIf9RenderUILEP15CXnNodePluginIf @ 210 NONAME
- _ZN19TXnUiEnginePluginIf9ResourcesEv @ 211 NONAME
- _ZN19TXnUiEnginePluginIf9RootNodeLEv @ 212 NONAME
- _ZN19TXnUiEnginePluginIf9ShowFocusEv @ 213 NONAME
- _ZN20CXnComponentNodeImpl10ConstructLEP7CXnType @ 214 NONAME
- _ZN20CXnComponentNodeImpl12SetComponentEP12CXnComponent @ 215 NONAME
- _ZN20CXnComponentNodeImpl14MakeInterfaceLERK6TDesC8 @ 216 NONAME
- _ZN20CXnComponentNodeImpl25SetComponentNeedsCreationEi @ 217 NONAME
- _ZN20CXnComponentNodeImpl4NewLEP7CXnType @ 218 NONAME
- _ZN20CXnComponentNodeImpl9ComponentEv @ 219 NONAME
- _ZN20CXnComponentNodeImplC1Ev @ 220 NONAME
- _ZN20CXnComponentNodeImplC2Ev @ 221 NONAME
- _ZN20CXnComponentNodeImplD0Ev @ 222 NONAME
- _ZN20CXnComponentNodeImplD1Ev @ 223 NONAME
- _ZN20CXnComponentNodeImplD2Ev @ 224 NONAME
- _ZN8CXnUtils11CreateFontLER15CXnNodePluginIfRP5CFontRi @ 225 NONAME
- _ZN8CXnUtils11CreateFontLERK7TDesC16i10TFontStyleRP5CFontRi @ 226 NONAME
- _ZN8CXnUtils11GetRgbValueER4TRgbRK6TDesC8 @ 227 NONAME
- _ZN8CXnUtils11StripQuotesERP7HBufC16 @ 228 NONAME
- _ZN8CXnUtils12FindResourceER12CArrayPtrSegI11CXnResourceERK7TDesC16Ri @ 229 NONAME
- _ZN8CXnUtils12ScaleBitmapLERK5TRectP10CFbsBitmapS4_ @ 230 NONAME
- _ZN8CXnUtils13TextAlignmentER15CXnNodePluginIf @ 231 NONAME
- _ZN8CXnUtils15ConvertHslToRgbEiii @ 232 NONAME
- _ZN8CXnUtils18CollapseWhiteSpaceER15CXnNodePluginIfR6TDes16 @ 233 NONAME
- _ZN8CXnUtils18ResolveSkinItemIDLERK7TDesC16R11TAknsItemIDRi @ 234 NONAME
- _ZN8CXnUtils20HandlePowerSaveModeLEP7CXnNodeii @ 235 NONAME
- _ZNK11CXnProperty7EqualsLERS_ @ 236 NONAME
- _ZNK12CXnNodeAppIf12GetPropertyLER11CXnProperty @ 237 NONAME
- _ZNK12CXnNodeAppIf12GetPropertyLERK6TDesC8 @ 238 NONAME
- _ZNK12CXnNodeAppIf19InternalDomNodeTypeEv @ 239 NONAME
- _ZNK12CXnNodeAppIf7ParentLEv @ 240 NONAME
- _ZNK12CXnNodeAppIf9GetPCDataEv @ 241 NONAME
- _ZNK14CXnApplication9AppDllUidEv @ 242 NONAME
- _ZNK15CXnAppUiAdapter4ViewEv @ 243 NONAME
- _ZNK15CXnNodePluginIf12GetPropertyLER11CXnProperty @ 244 NONAME
- _ZNK15CXnNodePluginIf12GetPropertyLERK6TDesC8 @ 245 NONAME
- _ZNK15CXnNodePluginIf7ControlEv @ 246 NONAME
- _ZNK15CXnNodePluginIf7ParentLEv @ 247 NONAME
- _ZNK15CXnNodePluginIf9GetPCDataEv @ 248 NONAME
- _ZNK16TXnUiEngineAppIf14WidgetsVisibleEv @ 249 NONAME
- _ZNK17CXnControlAdapter15LongTapDetectorEv @ 250 NONAME
- _ZNK17CXnControlAdapter16ComponentControlEi @ 251 NONAME
- _ZNK17CXnControlAdapter16DrawContentImageEv @ 252 NONAME
- _ZNK17CXnControlAdapter16IsDrawingAllowedEv @ 253 NONAME
- _ZNK17CXnControlAdapter22CountComponentControlsEv @ 254 NONAME
- _ZNK17CXnControlAdapter4DrawERK5TRect @ 255 NONAME
- _ZNK17CXnControlAdapter4DrawERK5TRectR9CWindowGc @ 256 NONAME
- _ZNK19TXnUiEnginePluginIf14WidgetsVisibleEv @ 257 NONAME
- _ZNK19TXnUiEnginePluginIf9HitRegionEv @ 258 NONAME
- _ZNK20CXnComponentNodeImpl25DoesComponentNeedCreationEv @ 259 NONAME
- _ZTI11CXnDocument @ 260 NONAME
- _ZTI11CXnProperty @ 261 NONAME
- _ZTI12CXnComponent @ 262 NONAME
- _ZTI14CXnApplication @ 263 NONAME
- _ZTI15CXnAppUiAdapter @ 264 NONAME
- _ZTI16CXnViewsNodeImpl @ 265 NONAME
- _ZTI16MXnNodePredicate @ 266 NONAME
- _ZTI17CXnControlAdapter @ 267 NONAME
- _ZTI18CXnListQueryDialog @ 268 NONAME
- _ZTI19MXnComponentFactory @ 269 NONAME
- _ZTI20CXnComponentNodeImpl @ 270 NONAME
- _ZTI27CXnNodeBreadthFirstIteratorI7CXnNodeE @ 271 NONAME
- _ZTIN21CXnControlAdapterImpl13TIconProviderE @ 272 NONAME
- _ZTV11CXnDocument @ 273 NONAME
- _ZTV11CXnProperty @ 274 NONAME
- _ZTV12CXnComponent @ 275 NONAME
- _ZTV14CXnApplication @ 276 NONAME
- _ZTV15CXnAppUiAdapter @ 277 NONAME
- _ZTV16CXnViewsNodeImpl @ 278 NONAME
- _ZTV16MXnNodePredicate @ 279 NONAME
- _ZTV17CXnControlAdapter @ 280 NONAME
- _ZTV18CXnListQueryDialog @ 281 NONAME
- _ZTV19MXnComponentFactory @ 282 NONAME
- _ZTV20CXnComponentNodeImpl @ 283 NONAME
- _ZTV27CXnNodeBreadthFirstIteratorI7CXnNodeE @ 284 NONAME
- _ZTVN21CXnControlAdapterImpl13TIconProviderE @ 285 NONAME
- _ZThn52_N17CXnControlAdapter19HandleControlEventLEP11CCoeControlN19MCoeControlObserver9TCoeEventE @ 286 NONAME
- _ZThn60_N17CXnControlAdapter19HandleLongTapEventLERK6TPointS2_ @ 287 NONAME
+ _ZN16TXnUiEngineAppIf13FindNodeByIdLERK6TDesC8S2_ @ 129 NONAME
+ _ZN16TXnUiEngineAppIf13FindNodeByIdLERK7TDesC16S2_ @ 130 NONAME
+ _ZN16TXnUiEngineAppIf16FindNodeByClassLERK6TDesC8S2_ @ 131 NONAME
+ _ZN16TXnUiEngineAppIf16FindNodeByClassLERK7TDesC16S2_ @ 132 NONAME
+ _ZN16TXnUiEngineAppIf16GetThemeResourceERK7TDesC16R5RFile @ 133 NONAME
+ _ZN16TXnUiEngineAppIf16IsMenuDisplayingEv @ 134 NONAME
+ _ZN16TXnUiEngineAppIf19GetPluginNodeArrayLER13RPointerArrayI12CXnNodeAppIfE @ 135 NONAME
+ _ZN16TXnUiEngineAppIf23FindContentSourceNodesLERK6TDesC8 @ 136 NONAME
+ _ZN16TXnUiEngineAppIf9RenderUILEP12CXnNodeAppIf @ 137 NONAME
+ _ZN16TXnUiEngineAppIf9RootNodeLEv @ 138 NONAME
+ _ZN17CXnControlAdapter10ConstructLER15CXnNodePluginIf @ 139 NONAME
+ _ZN17CXnControlAdapter10LoadBitmapERK7TDesC16 @ 140 NONAME
+ _ZN17CXnControlAdapter10SetVisibleEi @ 141 NONAME
+ _ZN17CXnControlAdapter11SizeChangedEv @ 142 NONAME
+ _ZN17CXnControlAdapter11SkinChangedEv @ 143 NONAME
+ _ZN17CXnControlAdapter12FocusChangedE8TDrawNow @ 144 NONAME
+ _ZN17CXnControlAdapter12SetComponentEP12CXnComponent @ 145 NONAME
+ _ZN17CXnControlAdapter14ContentBitmapsERP10CFbsBitmapS2_ @ 146 NONAME
+ _ZN17CXnControlAdapter14OfferKeyEventLERK9TKeyEvent10TEventCode @ 147 NONAME
+ _ZN17CXnControlAdapter15SetLocalUiZoomLE10TAknUiZoom @ 148 NONAME
+ _ZN17CXnControlAdapter16GetBitmapAndMaskERK7TDesC16S2_RP10CFbsBitmapS5_ @ 149 NONAME
+ _ZN17CXnControlAdapter17SetContentBitmapsEP10CFbsBitmapS1_ @ 150 NONAME
+ _ZN17CXnControlAdapter17SetContentBitmapsERK7TDesC16S2_ @ 151 NONAME
+ _ZN17CXnControlAdapter18ExitPowerSaveModeLENS_10TModeEventE @ 152 NONAME
+ _ZN17CXnControlAdapter18ResetStylusCounterEv @ 153 NONAME
+ _ZN17CXnControlAdapter19EnterPowerSaveModeLENS_10TModeEventE @ 154 NONAME
+ _ZN17CXnControlAdapter19HandleControlEventLEP11CCoeControlN19MCoeControlObserver9TCoeEventE @ 155 NONAME
+ _ZN17CXnControlAdapter19HandleLongTapEventLERK6TPointS2_ @ 156 NONAME
+ _ZN17CXnControlAdapter19HandlePointerEventLERK13TPointerEvent @ 157 NONAME
+ _ZN17CXnControlAdapter20DoExitPowerSaveModeLENS_10TModeEventE @ 158 NONAME
+ _ZN17CXnControlAdapter21DoEnterPowerSaveModeLENS_10TModeEventE @ 159 NONAME
+ _ZN17CXnControlAdapter21HandlePropertyChangeLEP11CXnProperty @ 160 NONAME
+ _ZN17CXnControlAdapter22EnableLongTapAnimationEi @ 161 NONAME
+ _ZN17CXnControlAdapter23DoHandlePropertyChangeLEP11CXnProperty @ 162 NONAME
+ _ZN17CXnControlAdapter23MeasureAdaptiveContentLERK5TSize @ 163 NONAME
+ _ZN17CXnControlAdapter26HandleScreenDeviceChangedLEv @ 164 NONAME
+ _ZN17CXnControlAdapter4NewLER15CXnNodePluginIf @ 165 NONAME
+ _ZN17CXnControlAdapter8SetBlankEi @ 166 NONAME
+ _ZN17CXnControlAdapter8SetDataLERK6TDesC8RK7TDesC16i @ 167 NONAME
+ _ZN17CXnControlAdapter9ComponentEv @ 168 NONAME
+ _ZN17CXnControlAdapterC1Ev @ 169 NONAME
+ _ZN17CXnControlAdapterC2Ev @ 170 NONAME
+ _ZN17CXnControlAdapterD0Ev @ 171 NONAME
+ _ZN17CXnControlAdapterD1Ev @ 172 NONAME
+ _ZN17CXnControlAdapterD2Ev @ 173 NONAME
+ _ZN19MXnComponentFactory16MakeXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 174 NONAME
+ _ZN19MXnComponentFactory18CreateXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 175 NONAME
+ _ZN19MXnComponentFactory21MakeXnControlAdapterLER15CXnNodePluginIfP17CXnControlAdapter @ 176 NONAME
+ _ZN19MXnComponentFactory26DoesNodeNeedComponentImplLERK6TDesC8 @ 177 NONAME
+ _ZN19MXnComponentFactoryC2Ev @ 178 NONAME
+ _ZN19MXnComponentFactoryD0Ev @ 179 NONAME
+ _ZN19MXnComponentFactoryD1Ev @ 180 NONAME
+ _ZN19MXnComponentFactoryD2Ev @ 181 NONAME
+ _ZN19TXnUiEnginePluginIf10StringPoolEv @ 182 NONAME
+ _ZN19TXnUiEnginePluginIf11PluginNodeLEP15CXnNodePluginIf @ 183 NONAME
+ _ZN19TXnUiEnginePluginIf12FocusedNodeLEv @ 184 NONAME
+ _ZN19TXnUiEnginePluginIf13AddDirtyNodeLER15CXnNodePluginIf @ 185 NONAME
+ _ZN19TXnUiEnginePluginIf13FindNodeByIdLERK6TDesC8S2_ @ 186 NONAME
+ _ZN19TXnUiEnginePluginIf13FindNodeByIdLERK7TDesC16S2_ @ 187 NONAME
+ _ZN19TXnUiEnginePluginIf14SetFocusedNodeEP15CXnNodePluginIf @ 188 NONAME
+ _ZN19TXnUiEnginePluginIf16FindNodeByClassLERK7TDesC16 @ 189 NONAME
+ _ZN19TXnUiEnginePluginIf16IsMenuDisplayingEv @ 190 NONAME
+ _ZN19TXnUiEnginePluginIf16ScreenDeviceSizeEv @ 191 NONAME
+ _ZN19TXnUiEnginePluginIf17DisableRenderUiLCEv @ 192 NONAME
+ _ZN19TXnUiEnginePluginIf18IsDialogDisplayingEv @ 193 NONAME
+ _ZN19TXnUiEnginePluginIf18IsTextEditorActiveEv @ 194 NONAME
+ _ZN19TXnUiEnginePluginIf18VerticalTwipValueLEP11CXnPropertyi @ 195 NONAME
+ _ZN19TXnUiEnginePluginIf19VerticalPixelValueLEP11CXnPropertyi @ 196 NONAME
+ _ZN19TXnUiEnginePluginIf20HorizontalTwipValueLEP11CXnPropertyi @ 197 NONAME
+ _ZN19TXnUiEnginePluginIf21HorizontalPixelValueLEP11CXnPropertyi @ 198 NONAME
+ _ZN19TXnUiEnginePluginIf23EnablePartialTouchInputER15CXnNodePluginIfi @ 199 NONAME
+ _ZN19TXnUiEnginePluginIf8EditModeEv @ 200 NONAME
+ _ZN19TXnUiEnginePluginIf9LayoutUILEP15CXnNodePluginIf @ 201 NONAME
+ _ZN19TXnUiEnginePluginIf9RenderUILEP15CXnNodePluginIf @ 202 NONAME
+ _ZN19TXnUiEnginePluginIf9ResourcesEv @ 203 NONAME
+ _ZN19TXnUiEnginePluginIf9RootNodeLEv @ 204 NONAME
+ _ZN20CXnComponentNodeImpl10ConstructLEP7CXnType @ 205 NONAME
+ _ZN20CXnComponentNodeImpl12SetComponentEP12CXnComponent @ 206 NONAME
+ _ZN20CXnComponentNodeImpl14MakeInterfaceLERK6TDesC8 @ 207 NONAME
+ _ZN20CXnComponentNodeImpl25SetComponentNeedsCreationEi @ 208 NONAME
+ _ZN20CXnComponentNodeImpl4NewLEP7CXnType @ 209 NONAME
+ _ZN20CXnComponentNodeImpl9ComponentEv @ 210 NONAME
+ _ZN20CXnComponentNodeImplC1Ev @ 211 NONAME
+ _ZN20CXnComponentNodeImplC2Ev @ 212 NONAME
+ _ZN20CXnComponentNodeImplD0Ev @ 213 NONAME
+ _ZN20CXnComponentNodeImplD1Ev @ 214 NONAME
+ _ZN20CXnComponentNodeImplD2Ev @ 215 NONAME
+ _ZN8CXnUtils11CreateFontLER15CXnNodePluginIfRP5CFontRi @ 216 NONAME
+ _ZN8CXnUtils11CreateFontLERK7TDesC16i10TFontStyleRP5CFontRi @ 217 NONAME
+ _ZN8CXnUtils11GetRgbValueER4TRgbRK6TDesC8 @ 218 NONAME
+ _ZN8CXnUtils11StripQuotesERP7HBufC16 @ 219 NONAME
+ _ZN8CXnUtils12FindResourceER12CArrayPtrSegI11CXnResourceERK7TDesC16Ri @ 220 NONAME
+ _ZN8CXnUtils12ScaleBitmapLERK5TRectP10CFbsBitmapS4_ @ 221 NONAME
+ _ZN8CXnUtils13TextAlignmentER15CXnNodePluginIf @ 222 NONAME
+ _ZN8CXnUtils15ConvertHslToRgbEiii @ 223 NONAME
+ _ZN8CXnUtils18CollapseWhiteSpaceER15CXnNodePluginIfR6TDes16 @ 224 NONAME
+ _ZN8CXnUtils18ResolveSkinItemIDLERK7TDesC16R11TAknsItemIDRi @ 225 NONAME
+ _ZN8CXnUtils20HandlePowerSaveModeLEP7CXnNodeii @ 226 NONAME
+ _ZNK11CXnProperty7EqualsLERS_ @ 227 NONAME
+ _ZNK12CXnNodeAppIf12GetPropertyLER11CXnProperty @ 228 NONAME
+ _ZNK12CXnNodeAppIf12GetPropertyLERK6TDesC8 @ 229 NONAME
+ _ZNK12CXnNodeAppIf19InternalDomNodeTypeEv @ 230 NONAME
+ _ZNK12CXnNodeAppIf7ParentLEv @ 231 NONAME
+ _ZNK12CXnNodeAppIf9GetPCDataEv @ 232 NONAME
+ _ZNK14CXnApplication9AppDllUidEv @ 233 NONAME
+ _ZNK15CXnAppUiAdapter4ViewEv @ 234 NONAME
+ _ZNK15CXnNodePluginIf12GetPropertyLER11CXnProperty @ 235 NONAME
+ _ZNK15CXnNodePluginIf12GetPropertyLERK6TDesC8 @ 236 NONAME
+ _ZNK15CXnNodePluginIf7ControlEv @ 237 NONAME
+ _ZNK15CXnNodePluginIf7ParentLEv @ 238 NONAME
+ _ZNK15CXnNodePluginIf9GetPCDataEv @ 239 NONAME
+ _ZNK16TXnUiEngineAppIf14WidgetsVisibleEv @ 240 NONAME
+ _ZNK17CXnControlAdapter15LongTapDetectorEv @ 241 NONAME
+ _ZNK17CXnControlAdapter16ComponentControlEi @ 242 NONAME
+ _ZNK17CXnControlAdapter16DrawContentImageEv @ 243 NONAME
+ _ZNK17CXnControlAdapter16IsDrawingAllowedEv @ 244 NONAME
+ _ZNK17CXnControlAdapter22CountComponentControlsEv @ 245 NONAME
+ _ZNK17CXnControlAdapter4DrawERK5TRect @ 246 NONAME
+ _ZNK17CXnControlAdapter4DrawERK5TRectR9CWindowGc @ 247 NONAME
+ _ZNK19TXnUiEnginePluginIf14WidgetsVisibleEv @ 248 NONAME
+ _ZNK20CXnComponentNodeImpl25DoesComponentNeedCreationEv @ 249 NONAME
+ _ZTI11CXnDocument @ 250 NONAME
+ _ZTI11CXnProperty @ 251 NONAME
+ _ZTI12CXnComponent @ 252 NONAME
+ _ZTI14CXnApplication @ 253 NONAME
+ _ZTI15CXnAppUiAdapter @ 254 NONAME
+ _ZTI16CXnViewsNodeImpl @ 255 NONAME
+ _ZTI16MXnNodePredicate @ 256 NONAME
+ _ZTI17CXnControlAdapter @ 257 NONAME
+ _ZTI18CXnListQueryDialog @ 258 NONAME
+ _ZTI19MXnComponentFactory @ 259 NONAME
+ _ZTI20CXnComponentNodeImpl @ 260 NONAME
+ _ZTI27CXnNodeBreadthFirstIteratorI7CXnNodeE @ 261 NONAME
+ _ZTIN21CXnControlAdapterImpl13TIconProviderE @ 262 NONAME
+ _ZTV11CXnDocument @ 263 NONAME
+ _ZTV11CXnProperty @ 264 NONAME
+ _ZTV12CXnComponent @ 265 NONAME
+ _ZTV14CXnApplication @ 266 NONAME
+ _ZTV15CXnAppUiAdapter @ 267 NONAME
+ _ZTV16CXnViewsNodeImpl @ 268 NONAME
+ _ZTV16MXnNodePredicate @ 269 NONAME
+ _ZTV17CXnControlAdapter @ 270 NONAME
+ _ZTV18CXnListQueryDialog @ 271 NONAME
+ _ZTV19MXnComponentFactory @ 272 NONAME
+ _ZTV20CXnComponentNodeImpl @ 273 NONAME
+ _ZTV27CXnNodeBreadthFirstIteratorI7CXnNodeE @ 274 NONAME
+ _ZTVN21CXnControlAdapterImpl13TIconProviderE @ 275 NONAME
+ _ZThn52_N17CXnControlAdapter19HandleControlEventLEP11CCoeControlN19MCoeControlObserver9TCoeEventE @ 276 NONAME
+ _ZThn60_N17CXnControlAdapter19HandleLongTapEventLERK6TPointS2_ @ 277 NONAME
--- a/idlehomescreen/xmluirendering/uiengine/group/xnlayoutengine.mmp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/group/xnlayoutengine.mmp Wed Apr 14 15:47:59 2010 +0300
@@ -65,11 +65,6 @@
SOURCE xneditmode.cpp
SOURCE xneditor.cpp
SOURCE xnpropertysubscriber.cpp
-SOURCE xngesturehelper.cpp
-SOURCE xngesture.cpp
-SOURCE xngesturerecogniser.cpp
-SOURCE xnpointarray.cpp
-SOURCE xnhittest.cpp
SOURCE xnplugindata.cpp
SOURCE xnviewdata.cpp
SOURCE xnrootdata.cpp
@@ -86,6 +81,8 @@
SOURCE xnextrenderingpluginwrapper.cpp
SOURCE xnbackgroundmanager.cpp
SOURCE xnviewcontroladapter.cpp
+SOURCE xnspbgcleaner.cpp
+SOURCE xnwaitdialog.cpp
START RESOURCE xnuiengine.rss
HEADER
@@ -113,6 +110,7 @@
LIBRARY bafl.lib
LIBRARY eikcoctl.lib
LIBRARY eikcore.lib
+LIBRARY eikdlg.lib
LIBRARY egul.lib
LIBRARY fbscli.lib
LIBRARY ws32.lib
@@ -156,6 +154,7 @@
LIBRARY disknotifyhandler.lib
LIBRARY platformenv.lib
LIBRARY hspluginsettings.lib
+LIBRARY akntouchgesturefw.lib
#if defined(_XN3_DEBUG_) || defined(AI3_DEBUG_PERFORMANCE)
LIBRARY flogger.lib
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnappuiadapterimpl.h Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnappuiadapterimpl.h Wed Apr 14 15:47:59 2010 +0300
@@ -21,7 +21,8 @@
// System includes
#include <e32base.h>
-
+#include <AknProgressDialog.h> // for MProgressDialogCallback
+#include "xnpropertysubscriber.h" // for CXnPropertySubscriber
// Forward declarations
class CXnUiEngine;
@@ -34,6 +35,7 @@
class CHsCcProviderClient;
class CXnEffectManager;
class MHsContentControl;
+class CXnWaitDialog;
// Constants
@@ -46,7 +48,9 @@
* @lib xn3layoutengine.lib
* @since Series 60 3.1
*/
-NONSHARABLE_CLASS( CXnAppUiAdapterImpl ) : public CBase
+NONSHARABLE_CLASS( CXnAppUiAdapterImpl ) : public CBase,
+ public MXnPropertyChangeObserver,
+ public MProgressDialogCallback
{
public:
// Constructors and destructor
@@ -156,6 +160,15 @@
*/
void HandleResourceChangeL( TInt aType );
+public: // From MProgressDialogCallback
+
+ /**
+ * Callback method from MProgressDialogCallback interface.
+ * Gets called when a dialog is dismissed.
+ * @param aButtonId Id of the pushed button.
+ */
+ void DialogDismissedL( TInt aButtonId );
+
private:
/**
@@ -164,6 +177,18 @@
CXnAppUiAdapterImpl( TUid aApplicationUid,
CXnAppUiAdapter& aAdapter );
+private:
+ // from MXnPropertyChangeObserver
+ void PropertyChangedL( const TUint32 aKey, const TInt aValue );
+
+private:
+ // new functions
+
+ /**
+ * Launches wait dialog during backup/restore.
+ */
+ void DisplayWaitDialogL();
+
private:
// Data
/** AppUi, Not owned. */
@@ -185,7 +210,11 @@
/** Effect manager, Owned */
CXnEffectManager* iEffectManager;
/** Resource offset */
- TInt iResourceOffset;
+ TInt iResourceOffset;
+ /** Wait dialog, Owned */
+ CXnWaitDialog* iXnWaitDialog;
+ /** Publish&Subscribe observer for Backup & Restore, Owned */
+ CXnPropertySubscriber* iBackupRestoreObserver;
};
#endif // XNAPPUIADAPTERIMPL_H
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnbackgroundmanager.h Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnbackgroundmanager.h Wed Apr 14 15:47:59 2010 +0300
@@ -261,6 +261,13 @@
*/
CFbsBitmap* iBgImage;
+ /**
+ * Pointer to status pane mask. Drawn on top of a wallpaper in
+ * the status pane area.
+ * Own.
+ */
+ CFbsBitmap* iSpMask;
+
/**
* Path of the wallpaper image, including filename.
* This is used only if same wallpaper
--- a/idlehomescreen/xmluirendering/uiengine/inc/xncontroladapterimpl.h Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xncontroladapterimpl.h Wed Apr 14 15:47:59 2010 +0300
@@ -25,9 +25,7 @@
#include <AknIconUtils.h>
#include <AknsEffectAnim.h>
#include <AknsItemID.h>
-
-// User includes
-#include "xngesturehelper.h"
+#include <akntouchgesturefw.h>
// Forward declarations
class CXnNodePluginIf;
@@ -45,19 +43,7 @@
const TInt KSpaceChar = 32;
const TInt KRightParenthesis = ')';
-/**
- * XnGestureHelper namespace
- * Used for the whole gesture family - Gesture recognizer, gesture helper,
- * Point array
- */
-namespace XnGestureHelper
- {
- class CXnGestureHelper;
- }
-
-using XnGestureHelper::CXnGestureHelper;
-
-
+using namespace AknTouchGestureFw;
// Class declaration
/**
@@ -68,7 +54,8 @@
* @since Series 60 3.1
*/
NONSHARABLE_CLASS( CXnControlAdapterImpl ) : public CBase,
- public MAknsEffectAnimObserver
+ public MAknsEffectAnimObserver,
+ public MAknTouchGestureFwObserver
{
public:
@@ -444,12 +431,11 @@
CXnProperty* aProperty );
/**
- * Forwards event to gesture helper
+ * Sets up gesture on buttondown event
*
* @param aPointerEvent Event to be forwarded
- * @return ETrue when swipe took place, EFalse otherwise
*/
- TBool PassEventToGestureHelperL(
+ void InitializeGestureL(
const TPointerEvent& aPointerEvent );
/*
@@ -464,6 +450,14 @@
*/
RPointerArray< CXnControlAdapter >& ChildAdapters();
+private: // from MAknTouchGestureFwObserver
+ /**
+ * Implements gesture handling
+ *
+ * @see MAknTouchGestureFwObserver
+ */
+ void HandleTouchGestureL( MAknTouchGestureFwEvent& aEvent );
+
protected:
// New functions
@@ -493,6 +487,7 @@
void DrawBackgroundImageL( const TRect& aRect, CXnNode& aNode,
CWindowGc& aGc, CFbsBitmap* aBitmap, CFbsBitmap* aMask );
RFs& FsSession();
+ TBool IsDragThresholdExceeded( const TPoint& aPoint );
private:
// Data
@@ -551,14 +546,16 @@
TAknsItemID iAnimIID;
/** flag: skin animation id is resolved from the CSS property */
TBool iAnimIDResolved;
- /** pointer to gesturehelper */
- CXnGestureHelper* iGestureHelper;
/** flag: for storing blank state */
TBool iBlank;
/** flag: to detect whether longtap occured */
TBool iLongtap;
- /** record right softkey node of menubar when keydown event happened */
- mutable CXnNode* iKeyDownNode;
+ /** Gesture framework, owned. */
+ CAknTouchGestureFw* iGestureFw;
+ /** Gesture destination, Not owned. */
+ CXnNode* iGestureDestination;
+ /** Starting point of button down event. */
+ TPoint iButtonDownStartPoint;
};
#endif //__XNCONTROLADAPTERIMPL_H__
--- a/idlehomescreen/xmluirendering/uiengine/inc/xngesture.h Wed Mar 31 21:17:19 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,369 +0,0 @@
-/*
-* Copyright (c) 2008-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: Gesture class
-*
-*/
-
-
-#ifndef _XNGESTURE_H_
-#define _XNGESTURE_H_
-
-// System includes
-#include <e32base.h>
-
-// User includes
-#include "xnpointarray.h"
-#include "xngesturerecogniser.h"
-
-// Namespace declaration
-
-/**
- * XnGestureHelper namespace
- * Used for the whole gesture family - Gesture recognizer, gesture helper,
- * Point array
- */
-namespace XnGestureHelper
- {
-
- /**
- * Struct for a point in floating-point represanation
- */
- NONSHARABLE_STRUCT( TRealPoint )
- {
- inline TRealPoint();
- inline TRealPoint( const TRealPoint& aPoint );
- inline TRealPoint( TReal aX, TReal aY );
- inline TBool operator==( const TRealPoint& aPoint ) const;
-
- TReal32 iX;
- TReal32 iY;
- };
-
- // Class declaration
-
- /**
- * TGesture represents the gesture that the user has made.
- * Implements MGestureEvent interface to allow clients to
- * inspect the gesture
- *
- * @ingroup group_xnlayoutengine
- */
- NONSHARABLE_CLASS( CXnGesture ) : public CBase
- {
- public:
-
- /**
- * X and Y axes, or both
- */
- enum TAxis
- {
- EAxisBoth,
- EAxisHorizontal,
- EAxisVertical
- };
-
- public:
-
- /** destructor */
- ~CXnGesture();
-
- /**
- * Sets the gesture as empty. resets timers to receive points
- * immediately
- */
- void Reset();
-
- /**
- * Check the gesture if it is empty
- *
- * @return ETrue if the gesture has no points
- */
- TBool IsEmpty() const;
-
- /**
- * Add a point to the sequence of points that forms the gesture
- * Call Reset() just before adding the first point
- *
- * @param aPoint the point to add
- * @return error code
- */
- TInt AddPoint( const TPoint& aPoint );
-
- /**
- * Checks if the point it is close to holding point
- *
- * @param aPoint Point to be examined
- * @return ETrue if the point is very near the holding point
- */
- TBool IsNearHoldingPoint( const TPoint& aPoint ) const;
-
- /**
- * Set the latest point as the holding point
- */
- void SetHoldingPoint();
-
- /**
- * Checks if the examined point is at the last point's position
- *
- * @param aPoint Point to be examined
- * @return ETrue if aPoint is the same as point added last
- */
- TBool IsLatestPoint( const TPoint& aPoint ) const;
-
- /**
- * After call, Code(...) will return appropriate holding gesture code.
- */
- void StartHolding();
-
- /**
- * After call, Code(...) will return a "hold released" gesture code
- * when the gesture is completed. Meanwhile, code will be drag.
- */
- void ContinueHolding();
-
- /**
- * Set as stylus released
- */
- void SetReleased();
-
- /**
- * Set the gesture as complete. Gesture is completed at pointer up
- */
- void SetComplete();
-
- /**
- * After call, Code(...) will return a "cancelled" gesture code
- */
- void SetCancelled();
-
- /**
- * Checks if the gesture is a tap
- *
- * @return Whether the current gesture is a tap
- * (and hence not a swipe). Does not consider holding or
- * other state information (such as whether the gesture was
- * just started or is dragging). Results are based purely on
- * the current stream of points.
- */
- TBool IsTap() const;
-
- /**
- * From MGestureEvent
- * Checks and return current gesture status at desired axis
- *
- * @param aRelevantAxis Axis to be examined
- * @return Gesture status
- */
- TXnGestureCode Code( TAxis aRelevantAxis ) const;
-
- /**
- * From MGestureEvent
- * Checks and returns holding status
- *
- * @return Return holding
- */
- TBool IsHolding() const;
-
- /**
- * From MGestureEvent
- * Returns first position form iPoints
- *
- * @return Returns first point
- */
- TPoint StartPos() const;
-
- /**
- * From MGestureEvent
- * Returns current (last) position from iPoints
- *
- * @return Returns last point
- */
- TPoint CurrentPos() const;
-
- /**
- * From MGestureEvent
- * Returns speed of X, Y movement
- *
- * @return Speed in X, Y axis
- */
- TRealPoint Speed() const;
-
- /**
- * From MGestureEvent
- * Scales the speed
- *
- * @return Scaled speed
- */
- TRealPoint SpeedPercent( const TRect& aEdges ) const;
-
- /**
- * From MGestureEvent
- * Cheks and returns distance between start and current position
- *
- * @return Distance between two points
- */
- TPoint Distance() const;
-
- /**
- * Checks and returns gesture
- *
- * @param aRelevantAxis See @ref MGestureEvent::Code
- * @return gesture code by analysing the sequence of points
- */
- TXnGestureCode CodeFromPoints( TAxis aRelevantAxis ) const;
-
- TXnGestureCode LastDirection( TAxis aRelevantAxis ) const;
-
- private:
-
- /** Information of an earlier gesture */
- struct TGestureRecord
- {
- enum TType
- {
- ETypeOther,
- ETypeTap,
- ETypeDoubleTap
- };
-
- TGestureRecord();
- TGestureRecord( TType aType, TTime aCompletionTime, TPoint aPos );
-
- /** type of the gesture */
- TType iType;
- /** completion time fo the gesture */
- TTime iCompletionTime;
- /** point of completion */
- TPoint iPos;
- };
-
- /**
- * Returns elapsed time
- *
- * @return elapsed time between the latest and previous points
- */
- inline TTimeIntervalMicroSeconds32 TimeFromPreviousPoint() const;
-
- /**
- * Checks whether the movement has stopped
- *
- * @return ETrue if user has stopped moving the stylus before lifting
- * it
- */
- inline TBool IsMovementStopped() const;
-
- /**
- * Offset of the last entry
- *
- * @return aOffset'th last entry in the list of points
- */
- inline const TXnPointEntry& NthLastEntry( TInt aOffset ) const;
-
- /**
- * Calles NthLastEntry for previous point
- *
- * @return previous point (may not be exactly the point before last)
- */
- inline const TXnPointEntry& PreviousEntry() const;
-
- /**
- * Returns the point before the last one
- *
- * @return position of point received just before the latest point
- */
- inline TPoint PreviousPos() const;
-
- /**
- * Return if the tap was a double tap
- *
- * @return ETrue if tap should be a double tap
- */
- TBool IsTapDoubleTap() const;
-
- /**
- * Returns current gesture type
- *
- * @return the type of the current gesture
- */
- TGestureRecord::TType Type() const;
-
- private:
- // Enumerators for holding and completion state
-
- /**
- * the different states that indicate whether user has made a holding
- * gesture
- */
- enum THoldingState
- {
- /** before holding activated (i.e., holding not activated) */
- ENotHolding = 0,
- /** holding activated just now (lasts just one callback round) */
- EHoldStarting,
- /** holding activated earlier */
- EHolding
- };
-
- /**
- * Completion states
- */
- enum TCompletionState
- {
- // Note: implementation assumes this order of enums
- ENotComplete = 0,
- ECancelled,
- EComplete,
- EReleased
- };
-
- private:
- // Members
-
- /**
- * sequence of points that make up the gesture, owned.
- */
- RArray< TXnPointEntry > iPoints;
-
- /**
- * index in iPoints of the point in which user started holding
- */
- TInt iHoldingPointIndex;
-
- /**
- * state that indicates is user has held the pointer down in one
- * position for long time to indicate a holding gesture
- */
- THoldingState iHoldingState;
-
- /**
- * gesture only becomes complete when user lifts the pointer
- */
- TCompletionState iState;
-
- /**
- * time when the stylus was lifted.
- */
- TTime iCompletionTime;
-
- /**
- * previous gesture information for double tap
- */
- TGestureRecord iPreviousGesture;
- };
- } // namespace XnGestureHelper
-
-// Inline functions
-#include "xngesture.inl"
-
-#endif // _XNGESTURE_H_
--- a/idlehomescreen/xmluirendering/uiengine/inc/xngesture.inl Wed Mar 31 21:17:19 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/*
-* Copyright (c) 2008-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: Gesture class - inline section
-*
-*/
-
-
-// Protection for nested includes
-#ifndef _XNGESTURE_INL_
-#define _XNGESTURE_INL_
-
-// -----------------------------------------------------------------------------
-// TRealPoint inline implementation
-// -----------------------------------------------------------------------------
-//
-namespace XnGestureHelper
- {
-
- // -------------------------------------------------------------------------
- // Default Constructor for the real point
- // -------------------------------------------------------------------------
- //
- inline TRealPoint::TRealPoint() :
- iX( 0 ), iY( 0 )
- {
- }
-
-
- // -------------------------------------------------------------------------
- // Copy constructor for real point
- // -------------------------------------------------------------------------
- //
- inline TRealPoint::TRealPoint( const TRealPoint& aPoint ) :
- iX( aPoint.iX ), iY( aPoint.iY )
- {
- }
-
- // -------------------------------------------------------------------------
- // Copy constructor for real point
- // -------------------------------------------------------------------------
- //
- inline TRealPoint::TRealPoint( TReal aX, TReal aY ) :
- iX( aX ), iY( aY )
- {
- }
-
- // -------------------------------------------------------------------------
- // Default constructor for real point
- // -------------------------------------------------------------------------
- //
- inline TBool TRealPoint::operator==( const TRealPoint& aPoint ) const
- {
- return iX == aPoint.iX && iY == aPoint.iY;
- }
- }
-
-#endif //_XNGESTURE_INL_
--- a/idlehomescreen/xmluirendering/uiengine/inc/xngesturedefs.h Wed Mar 31 21:17:19 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Gesture helper constant definitions
-*
-*/
-
-
-#ifndef _XNGESTUREDEFS_H_
-#define _XNGESTUREDEFS_H_
-
-// System includes
-#include <e32std.h>
-
-/**
- * This flag controls whether helpers emits a double tap or a tap gesture
- * for a second tap
- */
-#define _GESTURE_DOUBLE_TAP_SUPPORT
-
-/**
- * XnGestureHelper namespace
- * Used for the whole gesture family - Gesture recognizer, gesture helper,
- * Point array
- */
-namespace XnGestureHelper
- {
- /** time to hold the stylus in the same position to activate
- * holding, in microseconds
- */
- const TInt KHoldDuration = 500000;
-
- /**
- * time to tap again for the second tap to be a double tap, in
- * microseconds
- */
- const TInt KMaxDoubleTapDuration = 400000;
-
- /**
- * time in which speed becomes zero if user stops stylus movement before
- * lifting the pointer, in microseconds
- */
- const TInt KSpeedStopTime = 100000;
-
- /**
- * tolerance in degrees to either side of an angle, for direction to be
- * the same as reference angle
- */
- const TReal KAngleTolerance = 80;
-
- /**
- * maximum pointer movement from pointer down position for a gesture be
- * a tap or hold gesture
- */
- const TInt KSamePointTolerance = 3;
-
- /**
- * minimum length of a valid swipe in pixels. should be larger than
- * KTapTolerance
- */
- const TReal KMinSwipeLength = 10;
-
- /** Nth pointer event before the latest point */
- const TInt KPreviousPointOffset = 3;
-
-
- /**
- * Panic codes
- */
- enum TGesturePanic
- {
- EGesturePanicIllegalLogic
- };
-
- /**
- * Panics the thread
- *
- * @param aReason Panic reason
- */
- inline void Panic( TGesturePanic aReason )
- {
- _LIT( KComponentName, "XnGestureHelper" );
- User::Panic( KComponentName, aReason );
- }
- } // namespace XnGestureHelper
-
-#endif // _XNGESTUREDEFS_H_
--- a/idlehomescreen/xmluirendering/uiengine/inc/xngesturehelper.h Wed Mar 31 21:17:19 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,178 +0,0 @@
-/*
-* Copyright (c) 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: Gesture helper implementation
-*
-*/
-
-
-#ifndef _XNGESTUREHELPER_H_
-#define _XNGESTUREHELPER_H_
-
-// System includes
-#include <e32base.h>
-
-// User includes
-#include "xngesturerecogniser.h"
-
-// Forward declarations
-class CXnNode;
-struct TPointerEvent;
-
-/**
- * XnGestureHelper namespace
- * Used for the whole gesture family - Gesture recognizer, gesture helper,
- * Point array
- */
-namespace XnGestureHelper
- {
-
- // Forward declarations
- class CHoldingTimer;
- class CXnGesture;
-
- // Constants
- const TInt KGestureMinSpeed = 25;
- const TInt KGestureMinLength = 100;
-
- /**
- * Implementation of CGestureHelper interface
- *
- * @ingroup group_xnlayoutengine
- */
- NONSHARABLE_CLASS( CXnGestureHelper ) : public CBase
- {
-
- /** private implementation class */
- friend class CHoldingTimer;
-
- public:
-
- /** 2-phase constructor */
- static CXnGestureHelper* NewL( CXnNode& aNode );
-
- /** Destructor */
- ~CXnGestureHelper();
-
- /**
- * See GestureHelper, SetHoldingEnabled function
- *
- * @see CGestureHelper::SetHoldingEnabled
- */
- void SetHoldingEnabled( TBool aEnabled );
-
- /**
- * See Gesturehelper, IsHoldingEnabled function
- *
- * @see CGestureHelper::IsHoldingEnabled
- */
- TBool IsHoldingEnabled() const;
-
- /**
- * Gets the owner
- *
- * @return Owner
- */
- CXnNode* Owner() const;
-
- /**
- * Sets destination
- *
- * @aParam Destination
- */
- void SetDestination( CXnNode* aDestination );
-
- /**
- * Gets destination
- *
- * @return Destination
- */
- CXnNode* Destination() const;
-
- /**
- * See GestureHelper Handlepointervent
- *
- * @see CGestureHelper::HandlePointerEventL
- */
- TXnGestureCode HandlePointerEventL( const TPointerEvent& aEvent );
-
- /** Reset helper state */
- void Reset();
-
- private:
-
- /** Constructor */
- CXnGestureHelper( CXnNode& aNode );
-
- /**
- * Returns if the helper is processing
- *
- * @return ETrue if the helper has not started processing a gesture
- */
- inline TBool IsIdle() const;
-
- /**
- * Add a point to the sequence of points that make up the gesture
- */
- inline void AddPointL( const TPointerEvent& aEvent );
-
- /**
- * Add a point to the sequence of points that make up the gesture
- *
- * @return
- */
- inline TInt AddPoint( const TPointerEvent& aEvent );
-
- /**
- * Activates holding and notifies observer that holding has been
- * started
- */
- void StartHoldingL();
-
- /**
- * Check if swipe if between defined values
- *
- * @return Swiping left/right/none
- */
- TXnGestureCode ValidSwipe() const;
-
- private:
-
- /**
- * Gesture owner, Not owned.
- */
- CXnNode& iOwner;
-
- /**
- * Gesture is the logical representation of a sequence of points
- * arriving at certain times
- */
- CXnGesture* iGesture;
-
- /**
- * holding is activated when user keeps pointer down in the same place
- * for a longer period. the holding timer activates off when enough
- * time has passed.
- */
- CHoldingTimer* iHoldingTimer;
-
- /**
- * Gesture destination, Not owned.
- */
- CXnNode* iDestination;
-
- TXnGestureCode iDirection;
- };
- } // GestureHelper
-
-#endif // _XNGESTUREHELPER_H_
--- a/idlehomescreen/xmluirendering/uiengine/inc/xngesturerecogniser.h Wed Mar 31 21:17:19 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-/*
-* Copyright (c) 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: Algorithm to recognise gesture from a stream of points
-*
-*/
-
-
-#ifndef _XNGESTURERECOGNISER_H_
-#define _XNGESTURERECOGNISER_H_
-
-// System includes
-#include <e32std.h>
-
-
-/**
- * XnGestureHelper namespace
- * Used for the whole gesture family - Gesture recognizer, gesture helper,
- * Point array
- */
-namespace XnGestureHelper
- {
-
- // Forward declarations
- class TXnPointArray;
-
- /**
- * flag that indicates gesture code is a holding code
- * clients should use MGestureEvent::IsHolding
- */
- const TInt EFlagHold = 0x10000000;
-
- /**
- * Gesture codes and states
- */
- enum TXnGestureCode
- {
- // states
- /** gesture just started (user pressed stylus down)*/
- EGestureStart = 0x00000001,
- /** user moved stylus (may be holding or not holding) */
- EGestureDrag = 0x00000002,
- /** user lifted stylus while user was holding */
- EGestureReleased = 0x00000003,
-
- // gestures
- /** gesture was not recognised */
- EGestureUnknown = 0x00000005,
- /** these codes are sent when user lifts stylus
- * (if holding not started)
- */
- EGestureTap = 0x00000006,
- /** first tap emits EGestureTap */
- EGestureDoubleTap = 0x00000007,
- /** swipe left */
- EGestureSwipeLeft = 0x00000008,
- /** swipe right */
- EGestureSwipeRight = 0x00000009,
- /** swipe up */
- EGestureSwipeUp = 0x0000000A,
- /** swipe down */
- EGestureSwipeDown = 0x0000000B,
- EGestureCanceled = 0x0000000C,
- /**
- * these codes are sent when user initiates holding by keeping stylus
- * in same place for a longer duration
- */
- EGestureHoldLeft = EGestureSwipeLeft | EFlagHold,
- EGestureHoldRight = EGestureSwipeRight | EFlagHold,
- EGestureHoldUp = EGestureSwipeUp | EFlagHold,
- EGestureHoldDown = EGestureSwipeDown | EFlagHold
- };
-
- //Class declaration
-
- /**
- * Set of algorithms to recognise gesture from a stream of points
- * Note: Not a static class or a function pointer, just to make it
- * sligthly easier to replace it with a heavier implementation
- *
- * @ingroup group_xnlayoutengine
- */
- NONSHARABLE_CLASS( TXnGestureRecogniser )
- {
- public:
-
- /**
- * Translates points into a gesture code
- * @param aPoints Points that form the gestures. Client is not
- * required to pass in repeated points (sequential
- * points that are almost in the same place)
- * @param aIsHolding ETrue if gesture was ended at pointer being held
- * down at same position
- * EFalse if gesture ended at pointer being released
- * @return recognised gesture id or EUnknownGesture
- */
- TXnGestureCode GestureCode( const TXnPointArray& aPoints ) const;
-
- TXnGestureCode LastDirection( const TXnPointArray& aPoints ) const;
- };
- } // namespace XnGestureHelper
-
-#endif // _XNGESTURERECOGNISER_H_
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnhittest.h Wed Mar 31 21:17:19 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,176 +0,0 @@
-/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Class to hold hit region information
-*
-*/
-
-
-#ifndef _XNHITTEST_H
-#define _XNHITTEST_H
-
-// System includes
-#include <e32base.h>
-#include <coemain.h>
-
-// Forward declarations
-class CXnControlAdapter;
-
-namespace XnHitTest
- {
- const TInt EIgnoreEventsUntilNextPointerUp = 0x01;
- const TInt EIgnoreStylusUpTriggers = 0x02;
- }
-
-// Class declaration
-
-/**
- * Holds hit region information
- *
- * @ingroup group_xnlayoutengine
- * @lib xn3layoutengine.lib
- * @since S60 5.0
- */
-NONSHARABLE_CLASS( CXnHitTest ) : public CBase,
- public MCoeMessageMonitorObserver
- {
-public:
- // Constructors and destructor
-
- /**
- * Two-phased constructor.
- */
- static CXnHitTest* NewL();
-
- /**
- * Two-phased constructor. Leaving on stack
- */
- static CXnHitTest* NewLC();
-
- ~CXnHitTest();
-
-private:
- CXnHitTest();
-
-private:
- // from MCoeMessageMonitorObserver
-
- /**
- * @see MCoeMessageMonitorObserver documentation
- */
- void MonitorWsMessage( const TWsEvent& aEvent );
-
-public:
- // New functions
-
- /**
- * Adds a control to hit region.
- *
- * @since S60 5.0
- * @param aControl The control to be added.
- */
- void AddControl( CXnControlAdapter* aControl );
-
- /**
- * Removes a control from hit region.
- *
- * @since S60 5.0
- * @param aControl The control to be removed.
- */
- void RemoveControl( CXnControlAdapter* aControl );
-
- /**
- * Set flags
- *
- * @since S60 5.0
- * @param aFlags flags to be added
- */
- void SetFlags( const TInt aFlags );
-
- /**
- * Clear flags
- *
- * @since S60 5.0
- * @param aFlags flags to be cleared, 0x0F default
- */
- void ClearFlags( const TInt aFlags = 0x0F );
-
- /**
- * Get flags
- *
- * @since S60 5.0
- * @return Flags
- */
- TInt Flags() const;
-
- /**
- * Flushes hit test state
- *
- * @since S60 5.0
- */
- void Flush();
-
- /**
- * Gets hit region count
- *
- * @since S60 5.0
- * @return Count
- */
- TInt HitRegionCount() const;
-
- /**
- * Gets hit region
- *
- * @since S60 5.0
- * @return Region
- */
- CXnControlAdapter* HitRegion() const;
-
- /**
- * Tests whether a pointer event occurred inside the control's hit region.
- *
- * @since S60 5.0
- * @param aPointEvent The pointer event.
- * @param aControl
- * @return ETrue if the specified point lies inside the hit region,
- * EFalse if not.
- */
- TBool HitRegionContainsL( const TPointerEvent& aPointerEvent,
- const CXnControlAdapter& aControl );
-
- /**
- * Gets the last pointer event
- *
- * @since S60 5.0
- * @return Last pointer event
- */
- const TPointerEvent& PointerEvent() const;
-
-protected:
- /**
- * Two-phased constructor.
- */
- void ConstructL();
-
-private:
- // data
-
- /** Hit region */
- RPointerArray< CXnControlAdapter > iHitRegion;
- /** Pointer event */
- TPointerEvent iPointerEvent;
- /** Flags */
- TInt iFlags;
- };
-
-#endif // _XNHITTEST_H
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnkeyeventdispatcher.h Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnkeyeventdispatcher.h Wed Apr 14 15:47:59 2010 +0300
@@ -160,15 +160,28 @@
*/
void ClearPassiveFocusedNodesL();
+ /**
+ * Clears dispatcher's internal state.
+ *
+ * @since S60 5.2
+ */
+ void ClearStateL();
+
+ /**
+ * Returns the last pointer event
+ *
+ * @since S60 5.2
+ * @return Last pointer event
+ */
+ const TPointerEvent& PointerEvent() const;
+
private:
// new functions
void SetNodeL( CXnNode* aToLose, CXnNode* aToGain, TBool aNotify,
TInt aSource = 0 );
- void ResolveAndSetFocusL();
-
- void ClearStateL();
+ void ResolveAndSetFocusL();
protected:
// New functions
@@ -223,6 +236,8 @@
CEikButtonGroupContainer* iCbaContainer;
/** For storing the nodes that have passive focus. */
RPointerArray< CXnNode > iPassiveFocusedNodes;
+ /** Last pointer event */
+ TPointerEvent iPointerEvent;
};
#endif //__XNKEYEVENTDISPATCHER_H__
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnpointarray.h Wed Mar 31 21:17:19 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Array of points
-*
-*/
-
-
-#ifndef _XNPOINTARRAY_H_
-#define _XNPOINTARRAY_H_
-
-// System includes
-#include <e32std.h>
-
-/**
- * XnGestureHelper namespace
- * Used for the whole gesture family - Gesture recognizer, gesture helper,
- * Point array
- */
-namespace XnGestureHelper
- {
-
- /**
- * Represents a single point given at certain time
- */
- struct TXnPointEntry
- {
-
- /** constructor */
- inline TXnPointEntry( const TPoint& aPos, const TTime& aTime );
-
- TPoint iPos;
- TTime iTime;
- };
-
- /**
- * Array of points that wraps another point array
- * The purpose of this class is to allow deriving classes to override []
- * and in that member function adjust the point, e.g., by setting one
- * axis to always a constant value. This allows providing a sequence of
- * points to the recogniser in which the other axis is ignored.
- *
- * @ingroup group_xnlayoutengine
- */
- NONSHARABLE_CLASS( TXnPointArray )
- {
- public:
-
- /**
- * Constructor
- *
- * @param aPoints points array to wrap (and filter)
- */
- TXnPointArray( const RArray< TXnPointEntry >& aPoints );
-
- /**
- * Length of the array
- *
- * @return Length of the array
- */
- TInt Count() const;
-
- /**
- * Returns point at position, may be filtered
- * virtual so deriving classes can modify the point
- * (e.g., filter one axis)
- *
- * @return A filtered point at aIndex. Default implementation same
- * as Raw(...)
- */
- virtual TPoint operator[]( TInt aIndex ) const;
-
- /**
- * Nonfiltered index
- *
- * @return An raw, non-filtered point at aIndex
- */
- const TPoint& Raw( TInt aIndex ) const;
-
- private:
-
- /** Array of points, Not owned */
- const RArray< TXnPointEntry >& iPoints;
- };
- } // namespace XnGestureHelper
-
-
-// Inline functions
-#include "xnpointarray.inl"
-
-#endif // _XNPOINTARRAY_H_
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnpointarray.inl Wed Mar 31 21:17:19 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Array of points - inline functions
-*
-*/
-
-
-#ifndef _XNPOINTARRAY_INL_
-#define _XNPOINTARRAY_INL_
-
-namespace XnGestureHelper
- {
-
- // -----------------------------------------------------------------------
- // TXnPointEntry's Constructor
- // -----------------------------------------------------------------------
- //
- inline TXnPointEntry::TXnPointEntry( const TPoint& aPos,
- const TTime& aTime ) : iPos( aPos ), iTime( aTime )
- {
- };
- }
-
-#endif // _XNPOINTARRAY_INL_
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnspbgcleaner.h Wed Apr 14 15:47:59 2010 +0300
@@ -0,0 +1,73 @@
+/*
+* 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:
+* Declares statuspane's background cleaner.
+*
+*/
+
+#ifndef __XNSPBGCLEANER_
+#define __XNSPBGCLEANER_
+
+// Forward declarations
+
+/**
+ * Statuspane background cleaner.
+ *
+ * @class CXnSpBgCleaner xnspbgcleaner.h
+ */
+NONSHARABLE_CLASS( CXnSpBgCleaner ) : public CCoeControl
+ {
+public:
+ /**
+ * Two-phased constructors.
+ */
+ static CXnSpBgCleaner* NewL();
+ static CXnSpBgCleaner* NewLC();
+
+ /** Destructor */
+ ~CXnSpBgCleaner();
+
+private:
+ /** constructor */
+ CXnSpBgCleaner();
+
+ /** 2nd phase constructor */
+ void ConstructL();
+
+protected: // from base class CCoeControl
+
+ /**
+ * Handles a change to the control's resources
+ *
+ * @see CCoeControl::HandleResourceChange
+ */
+ void HandleResourceChange( TInt aType );
+
+ /**
+ * Sets the control's extent, specifying a rectangle.
+ *
+ * @see CCoeControl::SizeChanged
+ */
+ void SizeChanged();
+
+ /*
+ * Draws the control.
+ *
+ * @see CCoeControl::Draw
+ */
+ void Draw( const TRect& aRect ) const;
+
+ };
+
+#endif // __XNSPBGCLEANER_
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnuiengineimpl.h Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnuiengineimpl.h Wed Apr 14 15:47:59 2010 +0300
@@ -38,7 +38,6 @@
class CXnEditor;
class CXnResource;
class CXnEditMode;
-class CXnHitTest;
class CXnViewManager;
class CXnViewData;
class CXnPluginData;
@@ -80,14 +79,13 @@
/** Is partial screen input open */
TBool iPartialScreenOpen;
/** Partial screen block progression. Own. */
- HBufC8* iPartialScreenBlock;
-
- TXnSplitScreenState(): iPartialScreenBlock( NULL ){}
-
- ~TXnSplitScreenState()
- {
- delete iPartialScreenBlock;
- }
+ const TDesC8* iPartialScreenBlock;
+
+ // ctor
+ TXnSplitScreenState() :
+ iPartialScreenEditorNode( NULL ),
+ iPartialScreenOpen( EFalse ),
+ iPartialScreenBlock( NULL ) {}
};
@@ -470,14 +468,6 @@
RPointerArray< CXnNode >* Plugins();
/**
- * Gets hit test
- *
- * @since S60 5.1
- * @return the hittest
- */
- CXnHitTest& HitTest() const;
-
- /**
* Gets theme resource file
*
* @since S60 5.1
@@ -615,19 +605,13 @@
/**
* Set partial screen block
*
- * @since Series 60 5.2
+ * @since Series 60 5.2
+ * @param CXnNode aParent parent node
* @param TDesC8 aBlockProgression set layout direction
*/
- void SetPartialScreenBlockProgressionL( const TDesC8& aBlockProgression );
-
- /**
- * Store partial screen block
- *
- * @since Series 60 5.2
- * @param TDesC8 aBlockProgression set layout direction
- */
- void StorePartialScreenBlockProgressionL();
-
+ void SetPartialScreenBlockProgressionL(
+ CXnNode* aParent, const TDesC8& aBlockProgression );
+
/**
* Handles skin change resource change
*
@@ -752,8 +736,6 @@
TRect iClientRect;
/** Owned. Edit mode storage; */
CXnEditMode* iEditMode;
- /** Owned. hittest */
- CXnHitTest* iHitTest;
/** Disable count */
TInt iDisableCount;
/**Split screen states*/
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnviewadapter.h Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnviewadapter.h Wed Apr 14 15:47:59 2010 +0300
@@ -182,9 +182,11 @@
* @since S60 5.0
* @param aContainer Container to activate
* @param aEnterEditState ETrue if activated container should be set to edit state.
+ * @param aForceActivation if ETrue forces deactivation and then activation even if
+ * the conntainer remains the same
*/
void ActivateContainerL( CXnViewData& aContainer,
- TBool aEnterEditState = EFalse );
+ TBool aEnterEditState = EFalse, TBool aForceActivation = EFalse );
/**
* Deactivates the current container from view.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnwaitdialog.h Wed Apr 14 15:47:59 2010 +0300
@@ -0,0 +1,82 @@
+/*
+* 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:
+* Declares wait dialog that doesn't consume key events.
+*
+*/
+
+
+#ifndef _XNWAITDIALOG_H
+#define _XNWAITDIALOG_H
+
+// INCLUDES
+#include <AknWaitDialog.h>
+
+// CONSTANTS
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+
+
+/**
+ * Wait Dialog without key event handling
+ *
+ * @ingroup group_xnlayoutengine
+ * @lib xn3layoutengine.lib
+ * @since S60 5.0
+ */
+NONSHARABLE_CLASS( CXnWaitDialog ) : public CAknWaitDialog
+ {
+
+public:
+ // Constructors and destructor
+
+ /**
+ * Class constructor
+ *
+ * @param aSelfPtr Pointer to itself. The pointer needs to be
+ * valid when the dialog is dismissed and must not
+ * be on the stack.
+ * @param aVisibilityDelayOff If set ETrue the dialog will be visible
+ * immediality. Use only when the length of
+ * the process is ALWAYS over 1.5 seconds.
+ */
+ CXnWaitDialog( CEikDialog** aSelfPtr, TBool aVisibilityDelayOff );
+
+ /**
+ * Destructor
+ */
+ ~CXnWaitDialog();
+
+public: // From CAknWaitDialog
+
+ /**
+ * From CAknWaitDialog
+ * @since S60 5.2
+ * @param aKeyEvent the key event
+ * @param aType the type of the event
+ * @return TKeyResponse key event was used by this control or not
+ */
+ TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
+ TEventCode aType );
+ };
+#endif // _XNWAITDIALOG_H
+
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnwallpaperview.h Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnwallpaperview.h Wed Apr 14 15:47:59 2010 +0300
@@ -32,6 +32,7 @@
class CXnUiEngine;
class TVwsViewId;
class CPeriodic;
+class CXnSpBgCleaner;
// Constants
const TUid KWallpaperViewUid = { 0x200286DB };
@@ -139,6 +140,13 @@
* Resource file offset
*/
TInt iResourceOffset;
+
+ /**
+ * Statuspane background cleaner.
+ * Own.
+ */
+ CXnSpBgCleaner* iXnSpBgCleaner;
+
};
#endif // CXNWALLPAPERVIEW_H
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnwidgetextensionadapter.h Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnwidgetextensionadapter.h Wed Apr 14 15:47:59 2010 +0300
@@ -81,12 +81,17 @@
/**
* see CCoeControl
*/
- void HandlePointerEventL(const TPointerEvent& aPointerEvent);
+ void HandlePointerEventL( const TPointerEvent& aPointerEvent );
/**
* see CCoeControl
*/
- void Draw(const TRect& aRect) const;
+ void Draw( const TRect& aRect ) const;
+
+ /**
+ * @see CXnControlAdapter
+ */
+ void DoHandlePropertyChangeL( CXnProperty* aProperty = NULL );
private:
// from MXnUiStateObserver
@@ -135,7 +140,9 @@
// New functions
void HidePopupL();
-
+
+ void ChangePopupPosition();
+
void CalculatePosition();
private:
--- a/idlehomescreen/xmluirendering/uiengine/src/xnappuiadapterimpl.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnappuiadapterimpl.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -22,6 +22,9 @@
#include <hspluginsettings.h>
#include <bautils.h>
#include <data_caging_path_literals.hrh>
+#include <connect/sbdefs.h>
+#include <e32property.h>
+#include <xnuiengine.rsg>
// User includes
#include "xnappuiadapter.h"
@@ -34,6 +37,7 @@
#include "xneditor.h"
#include "xnwallpaperview.h"
#include "xneffectmanager.h"
+#include "xnwaitdialog.h"
#include "xnappuiadapterimpl.h"
@@ -121,6 +125,9 @@
iEffectManager = CXnEffectManager::NewL();
+ iBackupRestoreObserver = CXnPropertySubscriber::NewL(
+ KUidSystemCategory, conn::KUidBackupRestoreKey, *this );
+
__TIME_ENDMARK( "CXnAppUiAdapterImpl::ConstructL, done", time );
}
@@ -147,7 +154,14 @@
// -----------------------------------------------------------------------------
//
CXnAppUiAdapterImpl::~CXnAppUiAdapterImpl()
- {
+ {
+ if ( iXnWaitDialog )
+ {
+ TRAP_IGNORE( iXnWaitDialog->ProcessFinishedL(); );
+ }
+
+ delete iBackupRestoreObserver;
+
delete iUiEngine;
delete iUiStateListener;
@@ -256,4 +270,54 @@
iUiStateListener->HandleResourceChangeL( aType );
}
+// -----------------------------------------------------------------------------
+// CXnAppUiAdapterImpl::DisplayWaitDialogL
+// Displays wait dialog during backup/restore.
+// -----------------------------------------------------------------------------
+//
+void CXnAppUiAdapterImpl::DisplayWaitDialogL()
+ {
+ if ( !iXnWaitDialog )
+ {
+ iXnWaitDialog = new( ELeave ) CXnWaitDialog(
+ reinterpret_cast<CEikDialog**>( &iXnWaitDialog ), ETrue );
+ iXnWaitDialog->SetCallback( this );
+ iXnWaitDialog->ExecuteLD( R_BACKUP_RESTORE_WAIT_DIALOG );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CXnAppUiAdapterImpl::BackupRestoreEvent
+// Property changed notification callback
+// -----------------------------------------------------------------------------
+//
+void CXnAppUiAdapterImpl::PropertyChangedL( const TUint32 aKey, const TInt aValue )
+ {
+ const TUint mask( conn::KBURPartTypeMask ^ conn::EBURNormal );
+ if ( aKey == conn::KUidBackupRestoreKey )
+ {
+ if ( aValue & mask )
+ {
+ // Any type of backup or restore operation started
+ DisplayWaitDialogL();
+ }
+ else if ( iXnWaitDialog )
+ {
+ // Any type of backup or restore operation ended
+ iXnWaitDialog->ProcessFinishedL();
+ // ProcessFinishedL() will NULL iXnWaitDialog
+ }
+ }
+ }
+
+// ----------------------------------------------------------------------------
+// CXnAppUiAdapterImpl::DialogDismissedL()
+// Callback method from MProgressDialogCallback interface.
+// ----------------------------------------------------------------------------
+//
+void CXnAppUiAdapterImpl::DialogDismissedL(TInt /*aButtonId*/)
+ {
+ // No implementation required.
+ }
+
// End of file
--- a/idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -141,6 +141,7 @@
delete iBgImage;
delete iBgImagePath;
delete iOomSysHandler;
+ delete iSpMask;
}
// -----------------------------------------------------------------------------
@@ -182,7 +183,7 @@
{
SystemGc().DrawBitmap( iRect, wallpaper );
}
- DrawStatusPaneMask();
+ DrawStatusPaneMask();
}
// Skin bg is used by default
@@ -220,6 +221,34 @@
}
}
iBgContext->SetRect( iRect );
+
+ // create status pane mask image and set size
+ if( iSpMask )
+ {
+ delete iSpMask;
+ iSpMask = NULL;
+ }
+
+ TRect spRect;
+ AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EStatusPane, spRect );
+
+ TInt err( KErrNone );
+
+ if( Layout_Meta_Data::IsLandscapeOrientation() )
+ {
+ TRAP( err, iSpMask = AknsUtils::CreateBitmapL( AknsUtils::SkinInstance(),
+ KAknsIIDQgnGrafBgLscTopMaskIcon ) );
+ }
+ else
+ {
+ TRAP( err, iSpMask = AknsUtils::CreateBitmapL( AknsUtils::SkinInstance(),
+ KAknsIIDQgnGrafBgPrtTopMaskIcon ) );
+ }
+
+ if( iSpMask )
+ {
+ AknIconUtils::SetSize( iSpMask, spRect.Size(), EAspectRatioNotPreserved );
+ }
}
// -----------------------------------------------------------------------------
@@ -511,7 +540,7 @@
}
else if ( selectedIndex == 1 )
{
- if ( CXnOomSysHandler::HeapAvailable( CXnOomSysHandler::EMem2MB ) )
+ if ( CXnOomSysHandler::HeapAvailable( CXnOomSysHandler::EMem6MB ) )
{
CXnAppUiAdapter& appui( iViewManager.AppUiAdapter() );
@@ -674,7 +703,7 @@
if( path != KNullDesC && !bitmap )
{
TInt err = CacheWallpaperL( path, *viewData );
- if( err == KErrNone )
+ if( err == KErrNone && viewData == &iViewManager.ActiveViewData() )
{
drawingNeeded = ETrue;
}
@@ -683,6 +712,13 @@
if( drawingNeeded )
{
UpdateScreen();
+
+ TInt err = AknsWallpaperUtils::SetIdleWallpaper(
+ iViewManager.ActiveViewData().WallpaperImagePath(), NULL );
+ if( err == KErrNone )
+ {
+ iIntUpdate++;
+ }
}
}
else
@@ -948,34 +984,11 @@
//
void CXnBackgroundManager::DrawStatusPaneMask() const
{
- TRect spRect;
- AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EStatusPane, spRect );
-
- CFbsBitmap* maskBmp( NULL );
- TInt err( KErrNone );
-
- if( Layout_Meta_Data::IsLandscapeOrientation() )
- {
- TRAP( err, maskBmp = AknsUtils::CreateBitmapL( AknsUtils::SkinInstance(),
- KAknsIIDQgnGrafBgLscTopMaskIcon ) );
- }
- else
+ if( iSpMask )
{
- TRAP( err, maskBmp = AknsUtils::CreateBitmapL( AknsUtils::SkinInstance(),
- KAknsIIDQgnGrafBgPrtTopMaskIcon ) );
- }
-
- if( err )
- {
- return;
- }
-
- // draw mask
- if( maskBmp )
- {
- AknIconUtils::SetSize( maskBmp, spRect.Size(), EAspectRatioNotPreserved );
- SystemGc().DrawBitmap( spRect, maskBmp );
- delete maskBmp;
+ TSize bmpSize = iSpMask->SizeInPixels();
+ TRect spRect( 0, 0, bmpSize.iWidth, bmpSize.iHeight );
+ SystemGc().DrawBitmap( spRect, iSpMask );
}
}
--- a/idlehomescreen/xmluirendering/uiengine/src/xncomposer.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xncomposer.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -102,7 +102,7 @@
// @return returns pointer to desired node, NULL if nothing found
// ---------------------------------------------------------------------------
//
-CXnDomNode* FindNodeByName( CXnDomNode* aNode, const TDesC8& aName )
+static CXnDomNode* FindNodeByName( CXnDomNode* aNode, const TDesC8& aName )
{
if ( !aNode )
{
@@ -131,12 +131,57 @@
}
// ---------------------------------------------------------------------------
+// Finds template publisher name
+//
+// ---------------------------------------------------------------------------
+//
+static const TDesC8& FindTemplatePublisherName( CXnDomNode* aNode )
+ {
+ if ( !aNode )
+ {
+ return KNullDesC8();
+ }
+
+ CXnDomList& list( aNode->ChildNodes() );
+
+ for ( TInt i = 0; i < list.Length(); i++ )
+ {
+ CXnDomNode* node = static_cast< CXnDomNode* >( list.Item( i ) );
+
+ // Find <configuration> element
+ if ( node->Name() == KConfigurationModel )
+ {
+ CXnDomList& attributes( node->AttributeList() );
+
+ CXnDomAttribute* name(
+ static_cast< CXnDomAttribute* >(
+ attributes.FindByName( XnPropertyNames::action::KName ) ) );
+
+ // Find attribute name="publisher"
+ if ( name && name->Value() == KPublisher )
+ {
+ CXnDomAttribute* value(
+ static_cast< CXnDomAttribute* >(
+ attributes.FindByName( XnPropertyNames::action::KValue ) ) );
+
+ if ( value )
+ {
+ return value->Value();
+ }
+ }
+ }
+ }
+
+ return KNullDesC8();
+ }
+
+// ---------------------------------------------------------------------------
// FindNodeById
// Finds recursively node by id
// @return returns pointer to desired node, NULL if nothing found
// ---------------------------------------------------------------------------
//
-CXnDomNode* FindNodeById( CXnDomNode* aNode, const TDesC8& aId )
+static CXnDomNode* FindNodeById( CXnDomNode* aNode, const TDesC8& aId )
{
if ( !aNode )
{
@@ -595,12 +640,16 @@
if( bgManager.WallpaperType() == CXnBackgroundManager::EPageSpecific )
{
HBufC* bgImage = ItemValueL( *configuration, KWallpaper, KPath );
- CleanupStack::PushL( bgImage );
- if( bgImage && bgImage->Length() > 0 )
+ if ( bgImage )
{
- bgManager.CacheWallpaperL( bgImage->Des(), aViewData );
+ CleanupStack::PushL( bgImage );
+ bgImage->Des().Trim();
+ if( bgImage && bgImage->Length() > 0 )
+ {
+ bgManager.CacheWallpaperL( bgImage->Des(), aViewData );
+ }
+ CleanupStack::PopAndDestroy( bgImage );
}
- CleanupStack::PopAndDestroy( bgImage );
}
if ( pluginNode )
{
@@ -736,20 +785,9 @@
if ( info.Type() == KKeyTemplate )
{
- CXnDomNode* node( FindNodeByName( widgetRoot, KContentSourceNode ) );
+ const TDesC8& name( FindTemplatePublisherName( widgetRoot ) );
- if ( node )
- {
- CXnDomList& attributes( node->AttributeList() );
-
- CXnDomAttribute* attribute( static_cast< CXnDomAttribute* >(
- attributes.FindByName( KName ) ) );
-
- if ( attribute )
- {
- aPluginData.SetPublisherNameL( attribute->Value() );
- }
- }
+ aPluginData.SetPublisherNameL( name );
}
retval = KErrNone;
--- a/idlehomescreen/xmluirendering/uiengine/src/xncontroladapterimpl.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xncontroladapterimpl.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -53,7 +53,6 @@
#include "xndomlist.h"
#include "xnodt.h"
#include "xnresource.h"
-#include "xnhittest.h"
#include "xnplugindata.h"
#include "xnnode.h"
#include "xnpanic.h"
@@ -63,9 +62,6 @@
#include "xneditmode.h"
_LIT8(KScrollableBoxNodeName, "scrollablebox");
-
-using namespace XnGestureHelper;
-#include "xngesture.h"
// Constants
const TInt KSkinGfxInnerRectShrink = 5;
@@ -74,7 +70,9 @@
const TInt KLongTapStartShortDelay( 150000 ); // 0.15s for Sk
const TInt KLongTapStartLongDelay( 500000 ); // 0.5s
const TInt KLongTapTimeShortDelay( 600000 ); // 0.6s for SK
-const TInt KLongTapTimeLongDelay( 1500000 ); // 1.5s
+const TInt KLongTapTimeLongDelay( 1500000 ); // 1.5s
+
+const TInt KDragThreshold = 20; // pixels
// LOCAL FUNCTION PROTOTYPES
static TRgb ConvertHslToRgb( TInt aHue, TInt aSaturation, TInt aLightness );
@@ -3356,44 +3354,6 @@
// -----------------------------------------------------------------------------
// SoftkeyNode
-// Gets the node of softkey according to index
-// -----------------------------------------------------------------------------
-//
-static CXnNode* SoftkeyNodeL( CXnNode* aMenuBarNode, const TDesC8& aSoftkey )
- {
- if ( aMenuBarNode )
- {
- XnMenuInterface::MXnMenuInterface* menuIf( NULL );
- XnComponentInterface::MakeInterfaceL( menuIf, aMenuBarNode->AppIfL() );
- CXnNodePluginIf* skNode( NULL );
- if ( menuIf )
- {
- if ( aSoftkey == XnPropertyNames::softkey::type::KLeft )
- {
- skNode = menuIf->SoftKeyL(
- XnMenuInterface::MXnMenuInterface::ELeft );
- }
- else if ( aSoftkey == XnPropertyNames::softkey::type::KMiddle )
- {
- skNode = menuIf->SoftKeyL(
- XnMenuInterface::MXnMenuInterface::ECenter );
- }
- else if ( aSoftkey == XnPropertyNames::softkey::type::KRight )
- {
- skNode = menuIf->SoftKeyL(
- XnMenuInterface::MXnMenuInterface::ERight );
- }
- }
- if ( skNode )
- {
- return &skNode->Node();
- }
- }
- return NULL;
- }
-
-// -----------------------------------------------------------------------------
-// SoftkeyNode
// Gets the node of softkey according to pointer location
// -----------------------------------------------------------------------------
//
@@ -3654,11 +3614,8 @@
iAnimation->Stop();
delete iAnimation;
}
-
- if ( iGestureHelper )
- {
- delete iGestureHelper;
- }
+
+ delete iGestureFw;
}
// -----------------------------------------------------------------------------
@@ -3722,29 +3679,21 @@
for ( ; temp; temp = temp->Parent() )
{
if ( temp == menuBar )
- {
- // This is softkey node
- const TDesC8* pos( NULL );
- node = NULL;
-
- if ( aKeyEvent.iScanCode == EStdKeyDevice0 )
- {
- pos = &XnPropertyNames::softkey::type::KLeft;
- }
- else if ( aKeyEvent.iScanCode == EStdKeyDevice1 )
+ {
+ // This is softkey node
+ XnMenuInterface::MXnMenuInterface* menuIf( NULL );
+ XnComponentInterface::MakeInterfaceL( menuIf, menuBar->AppIfL() );
+
+ if ( menuIf )
{
- pos = &XnPropertyNames::softkey::type::KRight;
- }
- else if ( aKeyEvent.iScanCode == EStdKeyDevice3 )
- {
- pos = &XnPropertyNames::softkey::type::KMiddle;
+ CXnNodePluginIf* eventNode( menuIf->KeyEventNode() );
+
+ if ( eventNode )
+ {
+ node = &eventNode->Node();
+ }
}
-
- if ( pos )
- {
- node = SoftkeyNodeL( menuBar, *pos );
- }
-
+
break;
}
}
@@ -3759,8 +3708,7 @@
aKeyEvent.iScanCode == EStdKeyDevice3 ) // MSK
{
if ( aType == EEventKeyDown )
- {
- iKeyDownNode = node;
+ {
iLongtap = EFalse;
if ( aKeyEvent.iScanCode == EStdKeyDevice3 ||
@@ -3789,10 +3737,6 @@
}
else if( aType == EEventKey )
{
- if( iKeyDownNode != node)
- {
- node = iKeyDownNode;
- }
if ( aKeyEvent.iRepeats == 0 )
{
if ( !HasHoldTrigger( node->DomNode() ) )
@@ -3821,10 +3765,6 @@
{
if ( !iLongtap )
{
- if( iKeyDownNode != node)
- {
- node = iKeyDownNode;
- }
if ( HasHoldTrigger( node->DomNode() ) )
{
// Hold trigger defined, report activate event here
@@ -3934,6 +3874,23 @@
}
// -----------------------------------------------------------------------------
+// CXnControlAdapterImpl::IsDragThresholdExceeded
+// Checks if drag threshold is exceeded
+// -----------------------------------------------------------------------------
+//
+TBool CXnControlAdapterImpl::IsDragThresholdExceeded( const TPoint& aPoint )
+ {
+ TBool ret = EFalse;
+ TPoint distance = aPoint - iButtonDownStartPoint;
+ if ( Abs( distance.iX ) >= KDragThreshold ||
+ Abs( distance.iY ) >= KDragThreshold )
+ {
+ ret = ETrue;
+ }
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
// CXnControlAdapterImpl::HandlePointerEventL
// Handle pointer events
// -----------------------------------------------------------------------------
@@ -3945,24 +3902,15 @@
CXnNode* node( &iNode.Node() );
CXnUiEngine* engine( node->UiEngine() );
-
- if(!engine->IsPartialInputActive())
- {
- // Forward event to gesture helper
- if( PassEventToGestureHelperL( aPointerEvent ) )
- {
- CXnAppUiAdapter& appui( engine->AppUiAdapter() );
- CXnViewData& data( appui.ViewManager().ActiveViewData() );
-
- CXnViewControlAdapter* control =
- static_cast< CXnViewControlAdapter* >( data.ViewNode()->Control() );
-
- control->ResetGrabbing();
-
- // Swipe took place, consume this event
- return ETrue;
- }
-
+
+ if ( !engine->IsPartialInputActive() )
+ {
+ InitializeGestureL( aPointerEvent );
+ }
+ else
+ {
+ // reset destination
+ iGestureDestination = NULL;
}
TBool menuBar( node == engine->MenuBarNode() );
@@ -4031,6 +3979,8 @@
if ( !menuBar && !engine->FocusedNode() )
{
+ // save starting point
+ iButtonDownStartPoint = event.iPosition;
// Require focus to be shown
engine->AppUiAdapter().ShowFocus();
@@ -4045,25 +3995,18 @@
node->SetStateL(
XnPropertyNames::style::common::KFocus,
XnEventSource::EStylus );
- node->SetStateL(
- XnPropertyNames::style::common::KPressedDown );
}
}
else if ( event.iType == TPointerEvent::EDrag )
{
if ( node->IsStateSet( XnPropertyNames::style::common::KFocus ) )
{
- if ( !node->MarginRect().Contains( event.iPosition ) )
+ if ( IsDragThresholdExceeded( event.iPosition ) ||
+ !node->MarginRect().Contains( event.iPosition ) )
{
- // Remove pressed down
+ // Remove focus
node->UnsetStateL(
- XnPropertyNames::style::common::KPressedDown );
- }
- if ( node->MarginRect().Contains( event.iPosition ) )
- {
- // Add pressed down
- node->SetStateL(
- XnPropertyNames::style::common::KPressedDown );
+ XnPropertyNames::style::common::KFocus );
}
}
}
@@ -4076,8 +4019,7 @@
node->SetStateL( XnPropertyNames::style::common::KActive );
}
else if ( ( node->MarginRect().Contains( event.iPosition ) &&
- node->IsStateSet( XnPropertyNames::style::common::KFocus ) &&
- node->IsStateSet( XnPropertyNames::style::common::KPressedDown ) ) )
+ node->IsStateSet( XnPropertyNames::style::common::KFocus ) ) )
{
#ifdef RD_TACTILE_FEEDBACK
MTouchFeedback* feedback( MTouchFeedback::Instance() );
@@ -5525,7 +5467,8 @@
if ( CreateGestureHelperL( aNode.Node() ) )
{
- iGestureHelper = CXnGestureHelper::NewL( aNode.Node() );
+ iGestureFw = CAknTouchGestureFw::NewL( *this, aAdapter );
+ iGestureFw->SetGestureInterestL( EAknTouchGestureFwGroupFlick );
}
}
@@ -5865,104 +5808,58 @@
}
// -----------------------------------------------------------------------------
-// PassEventToGestureHelperL
-// Forwards event to gesturehelper
+// InitializeGestureL
+// Sets up gesture
// -----------------------------------------------------------------------------
//
-TBool CXnControlAdapterImpl::PassEventToGestureHelperL(
+void CXnControlAdapterImpl::InitializeGestureL(
const TPointerEvent& aPointerEvent )
{
- TBool ret( EFalse );
+ if ( !iGestureFw || aPointerEvent.iType != TPointerEvent::EButton1Down )
+ {
+ return;
+ }
+
+ CXnUiEngine* engine( iNode.Node().UiEngine() );
+ // Set default destination
+ iGestureDestination = &iNode.Node();
+
+ RPointerArray< CXnPluginData >& plugins(
+ engine->ViewManager()->ActiveViewData().PluginData() );
- CXnNode* node( &iNode.Node() );
- CXnUiEngine* engine( node->UiEngine() );
-
- if ( iGestureHelper && iGestureHelper->Owner() == node )
- {
- if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
- {
- // Set default destination
- iGestureHelper->SetDestination( iGestureHelper->Owner() );
+ for ( TInt i = 0; i < plugins.Count(); i++ )
+ {
+ CXnPluginData* plugin( plugins[i] );
+
+ if ( plugin->Occupied() )
+ {
+ CXnNode* widget( plugin->Node()->LayoutNode() );
- RPointerArray< CXnPluginData >& plugins(
- engine->ViewManager()->ActiveViewData().PluginData() );
-
- for ( TInt i = 0; i < plugins.Count(); i++ )
+ if ( widget->MarginRect().Contains( aPointerEvent.iPosition ) )
{
- CXnPluginData* plugin( plugins[i] );
-
- if ( plugin->Occupied() )
+ // Resolve swipe destination
+ CXnProperty* prop( widget->GetPropertyL(
+ XnPropertyNames::common::KSwipeDestination ) );
+
+ if ( prop )
{
- CXnNode* widget( plugin->Node()->LayoutNode() );
-
- if ( widget->MarginRect().Contains( aPointerEvent.iPosition ) )
- {
- // Resolve swipe destination
- CXnProperty* prop( widget->GetPropertyL(
- XnPropertyNames::common::KSwipeDestination ) );
+ const TDesC8& value( prop->StringValue() );
- if ( prop )
- {
- const TDesC8& value( prop->StringValue() );
-
- if( value == XnPropertyNames::KWidget )
- {
- // Set widget as destination
- iGestureHelper->SetDestination( widget );
- }
- else if( value == XnPropertyNames::KNone )
- {
- // Set no destination
- iGestureHelper->SetDestination( NULL );
- }
- }
-
- break;
+ if( value == XnPropertyNames::KWidget )
+ {
+ // Set widget as destination
+ iGestureDestination = widget;
+ }
+ else if( value == XnPropertyNames::KNone )
+ {
+ // Set no destination
+ iGestureDestination = NULL;
}
}
+ break;
}
}
-
- TXnGestureCode result( iGestureHelper->HandlePointerEventL( aPointerEvent ) );
-
- const TDesC8* swipe( NULL );
-
- if ( result == EGestureSwipeLeft )
- {
- swipe = &XnPropertyNames::action::trigger::name::swipe::direction::KLeft;
- }
- else if ( result == EGestureSwipeRight )
- {
- swipe = &XnPropertyNames::action::trigger::name::swipe::direction::KRight;
- }
-
- if ( swipe )
- {
- CXnNode* destination( iGestureHelper->Destination() );
-
- if ( destination )
- {
- if ( destination == iGestureHelper->Owner() )
- {
- CancelFocusRefusalL( *engine );
- }
-
- // Remove focus
- engine->AppUiAdapter().HideFocus();
-
- CXnNode* trigger( BuildSwipeTriggerNodeLC( *engine, *swipe ) );
- destination->ReportXuikonEventL( *trigger );
- CleanupStack::PopAndDestroy( trigger );
-
- // If needed we can call here for example HandleSwipeL()
-
- // Consume this event
- ret = ETrue;
- }
- }
- }
-
- return ret;
+ }
}
// -----------------------------------------------------------------------------
@@ -5989,6 +5886,52 @@
return iAdapter->ControlEnv()->FsSession();
}
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CXnControlAdapterImpl::HandleTouchGestureL( MAknTouchGestureFwEvent& aEvent )
+ {
+ if ( aEvent.Group() == EAknTouchGestureFwGroupFlick )
+ {
+ TAknTouchGestureFwType type = aEvent.Type();
+
+ const TDesC8* swipe( NULL );
+
+ if ( type == EAknTouchGestureFwFlickLeft )
+ {
+ swipe = &XnPropertyNames::action::trigger::name::swipe::direction::KLeft;
+ }
+ else if ( type == EAknTouchGestureFwFlickRight )
+ {
+ 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 );
+
+ CXnAppUiAdapter& appui( engine->AppUiAdapter() );
+ CXnViewData& data( appui.ViewManager().ActiveViewData() );
+
+ CXnViewControlAdapter* control =
+ static_cast< CXnViewControlAdapter* >( data.ViewNode()->Control() );
+
+ control->ResetGrabbing();
+ }
+ }
+ }
+
// ============================= TIconProvider ===============================
--- a/idlehomescreen/xmluirendering/uiengine/src/xneditmode.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xneditmode.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -335,41 +335,51 @@
// -----------------------------------------------------------------------------
//
void CXnEditMode::MakeVisible( TBool aVisible )
- {
+ {
+ CXnAppUiAdapter& appui( iUiEngine.AppUiAdapter() );
+ CXnViewControlAdapter* control =
+ static_cast< CXnViewControlAdapter* >(
+ appui.ViewManager().ActiveViewData().ViewNode()->Control() );
+ RWindow& window( Window() );
+
TBool visible( IsVisible() ? ETrue : EFalse );
-
if ( aVisible == visible )
{
- return;
+ if( aVisible )
+ {
+ // If a new Homescreen page has been added in Edit mode, bring the control back to the front
+ control->DrawableWindow()->SetPointerGrab( EFalse );
+
+ window.SetOrdinalPosition( 0 );
+ window.SetPointerGrab( ETrue );
+ window.ClaimPointerGrab();
+ }
+
+ return;
}
CCoeControl::MakeVisible( aVisible );
-
- CXnAppUiAdapter& appui( iUiEngine.AppUiAdapter() );
// Remove focus
appui.HideFocus();
-
- CXnViewControlAdapter* control = static_cast< CXnViewControlAdapter* >(
- appui.ViewManager().ActiveViewData().ViewNode()->Control() );
-
+
if ( aVisible )
{
control->DrawableWindow()->SetPointerGrab( EFalse );
- Window().SetOrdinalPosition( 0 );
- Window().SetPointerGrab( ETrue );
- Window().ClaimPointerGrab();
+ window.SetOrdinalPosition( 0 );
+ window.SetPointerGrab( ETrue );
+ window.ClaimPointerGrab();
TRAP_IGNORE( appui.HandleEnterEditModeL( ETrue ) );
}
else
{
- Window().SetPointerGrab( EFalse );
+ window.SetPointerGrab( EFalse );
control->DrawableWindow()->SetPointerGrab( ETrue );
- TRAP_IGNORE( appui.HandleEnterEditModeL( EFalse ) );
+ TRAP_IGNORE( appui.HandleEnterEditModeL( EFalse ) );
}
// Update background
@@ -646,7 +656,7 @@
CXnNode* focused( iUiEngine.FocusedNode() );
if ( focused && ( aKeyEvent.iScanCode == EStdKeyDevice3 ||
- aKeyEvent.iScanCode == EStdKeyEnter ) )
+ aKeyEvent.iCode == EKeyEnter ) )
{
CXnPluginData* plugin( iUiEngine.ViewManager()->
ActiveViewData().Plugin( focused ) );
@@ -670,7 +680,7 @@
if ( menuIf )
{
- menuIf->TryDisplayingMenuBarL( *id );
+ menuIf->TryDisplayingMenuBarL( *id, ETrue );
iUiEngine.Editor()->SetTargetPlugin( focused );
}
}
@@ -831,6 +841,8 @@
{
iDraggingNode = NULL;
iTargetNode = NULL;
+
+ iUiEngine.Editor()->SetTargetPlugin( NULL );
iState = aState;
--- a/idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -95,7 +95,6 @@
// ====================== LOCAL FUNTION PROTOTYPES ============================
static void DeletePluginInfos( TAny* aObject );
static void DeleteItemMaps( TAny* aObject );
-static void DeleteWidgetInfo( TAny* aObject );
static TPtrC ParseWidgetName( const CHsContentInfo& aContentInfo );
static void SetPropertyL( CXnNode& aNode, const TDesC8& aAttribute,
@@ -132,16 +131,6 @@
}
// ---------------------------------------------------------------------------
-// DeleteWidgetInfo
-// ---------------------------------------------------------------------------
-//
-static void DeleteWidgetInfo( TAny* aObject )
- {
- reinterpret_cast<
- RPointerArray< CHsContentInfo >* >( aObject )->ResetAndDestroy();
- }
-
-// ---------------------------------------------------------------------------
// ParseWidgetName
// ---------------------------------------------------------------------------
//
@@ -641,6 +630,7 @@
return iRepository->Get( KAICCPluginUIDKey, aUid );
}
+// ---------------------------------------------------------------------------
// CXnEditor::AddWidgetL
// ---------------------------------------------------------------------------
//
@@ -1050,10 +1040,14 @@
//
void CXnEditor::SetTargetPlugin( CXnNode* aNode )
{
- iTargetPlugin = aNode;
+ TBool editState( iViewManager.UiEngine().EditMode()->EditState() );
+
+ if ( editState )
+ {
+ iTargetPlugin = aNode;
+ }
}
-// ---------------------------------------------------------------------------
// -----------------------------------------------------------------------------
// CXnEditor::NotifyViewActivatedL
// -----------------------------------------------------------------------------
@@ -1138,9 +1132,7 @@
HBufC8* publisherId = CnvUtfConverter::ConvertFromUnicodeToUtf8L(
info->PublisherId() );
CleanupStack::PushL( publisherId );
-
- aPluginData.SetPublisherNameL( info->PublisherId() );
-
+
CItemMap* itemMap( 0 );
CPropertyMap* property( 0 );
CPropertyMap* propertyIn( 0 );
@@ -1945,44 +1937,44 @@
{
TInt err( KErrNone );
+
+ CXnViewData& viewData( iViewManager.ActiveViewData() );
- // Get active application configuration
- CHspsConfiguration* app( iHspsWrapper->GetAppConfigurationL() );
- CleanupStack::PushL( app );
-
- // Get list of views included in active application configuration
- RPointerArray< CPluginMap >& plugins( app->PluginMaps() );
- CPluginMap* plugin( NULL );
-
- // Find active view
- for ( TInt i = 0; i < plugins.Count() && !plugin; i++ )
+ CHspsConfiguration* view( iHspsWrapper->GetPluginConfigurationL( viewData.PluginId() ) );
+ CleanupStack::PushL( view );
+ if ( view )
{
- if ( plugins[ i ]->ActivationState() )
- {
- plugin = plugins[ i ];
- }
- }
-
- if ( plugin )
- {
- CHspsConfiguration* view( iHspsWrapper->GetPluginConfigurationL( plugin->PluginId() ) );
- CleanupStack::PushL( view );
-
aInfo.SetNameL( view->PluginInfo().Name() );
- aInfo.SetPluginIdL( plugin->PluginId() );
+ aInfo.SetPluginIdL( viewData.PluginId() );
aInfo.SetUidL( view->PluginInfo().Uid() );
aInfo.SetTypeL( view->PluginInfo().Type() );
aInfo.SetDescriptionL( view->PluginInfo().Description() );
aInfo.SetIconPathL( view->PluginInfo().LogoIcon() );
-
- CleanupStack::PopAndDestroy( view );
+
+ // Check if there is empty space
+ RPointerArray< CXnNode > nodes;
+ viewData.PluginNodesL( nodes );
+ TBool isFull( ETrue );
+ for ( TInt i = 0; i < nodes.Count(); i++ )
+ {
+ CXnNode* node( nodes[i] );
+ CXnPluginData* plugin = viewData.Plugin( node );
+
+ if ( plugin && !plugin->Occupied() )
+ {
+ isFull = EFalse;
+ break;
+ }
+ }
+ aInfo.SetIsFull( isFull );
}
else
{
err = KErrNotFound;
}
+
+ CleanupStack::PopAndDestroy( view );
- CleanupStack::PopAndDestroy( app );
return err;
}
@@ -1992,7 +1984,7 @@
//
TInt CXnEditor::ActiveAppL( CHsContentInfo& aInfo )
{
-
+
TInt err( KErrNone );
CHspsConfiguration* app = iHspsWrapper->GetAppConfigurationL();
CleanupStack::PushL( app );
@@ -2004,6 +1996,16 @@
aInfo.SetTypeL( app->PluginInfo().Type() );
aInfo.SetDescriptionL( app->PluginInfo().Description() );
aInfo.SetIconPathL( app->PluginInfo().LogoIcon() );
+
+ CXnRootData& appData( iViewManager.ActiveAppData() );
+ if ( appData.PluginData().Count() < appData.MaxPages() )
+ {
+ aInfo.SetIsFull( EFalse );
+ }
+ else
+ {
+ aInfo.SetIsFull( ETrue );
+ }
}
else
{
--- a/idlehomescreen/xmluirendering/uiengine/src/xngesture.cpp Wed Mar 31 21:17:19 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,776 +0,0 @@
-/*
-* Copyright (c) 2008-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: Gesture class
-*
-*/
-
-#include <e32math.h>
-
-#include "xngesture.h"
-#include "xngesturedefs.h"
-
-using namespace XnGestureHelper;
-
-// ======== LOCAL FUNCTIONS ===================================================
-
-/**
- * Point array for which only x axis is relevant
- */
-class TXAxisPointArray : public TXnPointArray
- {
-public:
- TXAxisPointArray( const RArray< TXnPointEntry >& aPoints )
- : TXnPointArray( aPoints )
- {
- }
-
- // from TXnPointArray
- TPoint operator[]( TInt aIndex ) const
- {
- return TPoint( Raw( aIndex ).iX, 0 );
- }
- };
-
-/**
- * Point array for which only y axis is relevant
- */
-class TYAxisPointArray : public TXnPointArray
- {
-public:
- TYAxisPointArray( const RArray< TXnPointEntry >& aPoints )
- : TXnPointArray( aPoints )
- {
- }
-
- // from TXnPointArray
- TPoint operator[]( TInt aIndex ) const
- {
- return TPoint( 0, Raw( aIndex ).iY );
- }
- };
-
-/** @return the current time */
-TTime CurrentTime()
- {
- TTime time;
- time.UniversalTime();
- return time;
- }
-
-// ----------------------------------------------------------------------------
-// destructor
-// ----------------------------------------------------------------------------
-//
-CXnGesture::~CXnGesture()
- {
- iPoints.Close();
- }
-
-// ----------------------------------------------------------------------------
-// Reset
-// ----------------------------------------------------------------------------
-//
-void CXnGesture::Reset()
- {
- // store previous gesture data before resetting the state
- if ( iPoints.Count() > 0 )
- {
- iPreviousGesture = TGestureRecord( Type(), iCompletionTime,
- iPoints[iPoints.Count() - 1].iPos );
- }
- else
- {
- iPreviousGesture = TGestureRecord();
- }
-
- iPoints.Reset();
- iHoldingState = ENotHolding;
- iState = ENotComplete;
- iHoldingPointIndex = 0;
- }
-
-// ----------------------------------------------------------------------------
-// Reset
-// ----------------------------------------------------------------------------
-//
-TBool CXnGesture::IsEmpty() const
- {
- return iPoints.Count() == 0;
- }
-
-// ----------------------------------------------------------------------------
-// Add a point to the sequence of points that together make up the gesture
-// ----------------------------------------------------------------------------
-//
-TInt CXnGesture::AddPoint( const TPoint& aPoint )
- {
- if ( !IsLatestPoint( aPoint ) )
- {
- return iPoints.Append( TXnPointEntry( aPoint, CurrentTime() ) );
- }
- return KErrNone;
- }
-
-/**
- * @return ETrue if the point is within a specified distance of the other point
- */
-inline TBool IsNear( const TPoint& aPointUnderTest, const TPoint& aPoint,
- TInt aMargin )
- {
- TRect rect(
- aPoint.iX - aMargin, aPoint.iY - aMargin,
- aPoint.iX + aMargin, aPoint.iY + aMargin );
- return rect.Contains( aPointUnderTest );
- }
-
-// ----------------------------------------------------------------------------
-// IsNearHoldingPoint
-// ----------------------------------------------------------------------------
-//
-TBool CXnGesture::IsNearHoldingPoint( const TPoint& aPoint ) const
- {
- return IsNear( aPoint, iPoints[iHoldingPointIndex].iPos,
- KSamePointTolerance );
- }
-
-// ----------------------------------------------------------------------------
-// IsLatestPoint
-// ----------------------------------------------------------------------------
-//
-TBool CXnGesture::IsLatestPoint( const TPoint& aPoint ) const
- {
- if ( iPoints.Count() > 0 )
- {
- return aPoint == CurrentPos();
- }
- return EFalse;
- }
-
-// ----------------------------------------------------------------------------
-// StartHolding
-// ----------------------------------------------------------------------------
-//
-void CXnGesture::StartHolding()
- {
- iHoldingState = EHoldStarting;
-
- // remove all points that were introduced after holding started
- for ( TInt i = iPoints.Count() - 1; i > iHoldingPointIndex; i-- )
- {
- iPoints.Remove( i );
- }
- }
-
-// ----------------------------------------------------------------------------
-// SetHoldingPoint
-// ----------------------------------------------------------------------------
-//
-void CXnGesture::SetHoldingPoint()
- {
- iHoldingPointIndex = iPoints.Count() - 1;
- }
-
-// ----------------------------------------------------------------------------
-// ContinueHolding
-// ----------------------------------------------------------------------------
-//
-void CXnGesture::ContinueHolding()
- {
- iHoldingState = EHolding;
- }
-
-// ----------------------------------------------------------------------------
-// SetReleased
-// ----------------------------------------------------------------------------
-//
-void CXnGesture::SetReleased()
- {
- // IsMovementStopped expects SetComplete to be called before SetRelea
- __ASSERT_DEBUG( EComplete == iState, Panic( EGesturePanicIllegalLogic ) );
- iState = EReleased;
- }
-
-/**
- * @return elapsed time between aStartTime and aEndTime
- */
-inline TTimeIntervalMicroSeconds32 Elapsed(
- const TTime& aStartTime,
- const TTime& aEndTime )
- {
- return aEndTime.MicroSecondsFrom( aStartTime ).Int64();
- }
-
-// ----------------------------------------------------------------------------
-// SetComplete
-// ----------------------------------------------------------------------------
-//
-void CXnGesture::SetComplete()
- {
- __ASSERT_DEBUG( iPoints.Count() > 0, Panic( EGesturePanicIllegalLogic ) );
- iState = EComplete;
- iCompletionTime = CurrentTime();
- }
-
-// ----------------------------------------------------------------------------
-// SetComplete
-// ----------------------------------------------------------------------------
-//
-void CXnGesture::SetCancelled()
- {
- iState = ECancelled;
- }
-
-// ----------------------------------------------------------------------------
-// IsTap
-// ----------------------------------------------------------------------------
-//
-TBool CXnGesture::IsTap() const
- {
- return CodeFromPoints( EAxisBoth ) == EGestureTap;
- }
-
-/**
- * Translates a non-holding code into a holding code
- * @param aCode original gesture code
- * @return a gesture code with hold flag applied
- */
-inline TXnGestureCode Hold( TXnGestureCode aCode )
- {
- if ( aCode != EGestureStart &&
- aCode != EGestureDrag &&
- aCode != EGestureReleased &&
- aCode != EGestureUnknown )
- {
- return static_cast< TXnGestureCode >( aCode | EFlagHold );
- }
- return aCode;
- }
-
-// ----------------------------------------------------------------------------
-// Code
-// ----------------------------------------------------------------------------
-//
-TXnGestureCode CXnGesture::Code( TAxis aRelevantAxis ) const
- {
- switch ( iState )
- {
- case ENotComplete:
- // "start" event if only first point received
- // need to check that not holding, in case user pressed stylus
- // down, and activated holding without moving the stylus
- if ( iPoints.Count() == 1 && !IsHolding() )
- {
- return EGestureStart;
- }
- // "drag" event if holding not started or holding started earlier
- else if ( iHoldingState != EHoldStarting )
- {
- return EGestureDrag;
- }
- // holding was just started
- else
- {
- return Hold( CodeFromPoints( aRelevantAxis ) );
- }
-
- case EComplete:
- {
- TXnGestureCode code = CodeFromPoints( aRelevantAxis );
-
-#ifdef _GESTURE_DOUBLE_TAP_SUPPORT
- if ( EGestureTap == code && IsTapDoubleTap() )
- {
- code = EGestureDoubleTap;
- }
-#endif // _GESTURE_DOUBLE_TAP_SUPPORT
-
- return code;
- }
-
- case EReleased:
- return EGestureReleased;
-
- case ECancelled: // fallthrough
- default:
- return EGestureUnknown;
- }
- }
-
-// ----------------------------------------------------------------------------
-// IsHolding
-// ----------------------------------------------------------------------------
-//
-TBool CXnGesture::IsHolding() const
- {
- return iHoldingState >= EHoldStarting;
- }
-
-// ----------------------------------------------------------------------------
-// StartPos
-// ----------------------------------------------------------------------------
-//
-TPoint CXnGesture::StartPos() const
- {
- // at least one point will be in the array during callback (pointer down pos)
- return iPoints[0].iPos;
- }
-
-// ----------------------------------------------------------------------------
-// CurrentPos
-// ----------------------------------------------------------------------------
-//
-TPoint CXnGesture::CurrentPos() const
- {
- // at least on point will be in the array during callback (pointer down pos)
- return iPoints[iPoints.Count() - 1].iPos;
- }
-
-// ----------------------------------------------------------------------------
-// IsMovementStopped
-// ----------------------------------------------------------------------------
-//
-inline TBool CXnGesture::IsMovementStopped() const
- {
- // iCompletionTime is only only valid if client has called SetComplete
- if ( iState >= EComplete )
- {
- return Elapsed( NthLastEntry( 1 ).iTime, iCompletionTime )
- .Int() > KSpeedStopTime;
- }
- return EFalse;
- }
-
-namespace
- {
- const TInt KFloatingPointAccuracy = 0.000001;
-
- /** @return percentage (0.0-1.0) how far aPos is from aEdge1 towards aEdge2 */
- inline TReal32 Proportion( TReal32 aPos, TReal32 aEdge1, TReal32 aEdge2 )
- {
- if ( Abs( aEdge2 - aEdge1 ) > KFloatingPointAccuracy )
- {
- return ( aPos - aEdge1 ) / ( aEdge2 - aEdge1 );
- }
- return 0; // avoid division by zero
- }
-
- /** Edges (pixels) at which speed should be -100% or 100% */
- NONSHARABLE_STRUCT( TEdges )
- {
- TReal32 iMin;
- TReal32 iMax;
- };
-
- /**
- * scale which allows different (coordinate -> percentage) mapping
- * between -100% to 0% and 0 and 100%
- */
- NONSHARABLE_STRUCT( TScale )
- {
- TScale( TInt aZero, const TEdges& aEdges )
- : iMin( aEdges.iMin ), iZero( aZero ), iMax( aEdges.iMax )
- {
- }
-
- /** @return aPos as a percentage between -100% and 100% in aScale */
- TReal32 Percent( TReal32 aPos ) const;
-
- /// coordinate where speed is -100%
- TReal32 iMin;
- /// coordinate where speed is 0%
- TReal32 iZero;
- /// coordinate where speed is 100%
- TReal32 iMax;
- };
-
- /** @convert aPos into a percentage between -100% and 100% in aScale */
- TReal32 TScale::Percent( TReal32 aPos ) const
- {
- TReal32 percent;
- if ( aPos < iZero )
- {
- // return negative percentages on the lower side of zero point
- percent = -1 * Proportion( aPos, iZero, iMin );
- }
- else
- {
- percent = Proportion( aPos, iZero, iMax );
- }
- // constrain between -100% and 100%
- return Min( Max( percent, -1.0F ), 1.0F );
- }
-
- /** Scale in x and y dimensions */
- NONSHARABLE_STRUCT( TScale2D )
- {
- TRealPoint Percent( const TPoint& aPos ) const
- {
- return TRealPoint(
- iX.Percent( aPos.iX ),
- iY.Percent( aPos.iY ) );
- }
-
- TScale iX;
- TScale iY;
- };
-
- enum TDirection { ESmaller, ELarger };
-
- /** @return the direction of pos compared to the previous pos */
- inline TDirection Direction( TInt aPos, TInt aPreviousPos )
- {
- return aPos < aPreviousPos ? ESmaller : ELarger;
- }
-
- /** Direction in x and y dimensions */
- NONSHARABLE_STRUCT( TDirection2D )
- {
- TDirection iX;
- TDirection iY;
- };
-
- /** Return the direction (up/down) of signal at aIndex */
- inline TDirection2D Direction(
- TInt aIndex,
- const RArray< TXnPointEntry >& aPoints )
- {
- const TPoint& pos = aPoints[aIndex].iPos;
- const TPoint& prevPos = aPoints[aIndex - 1].iPos;
- TDirection2D dir = {
- Direction( pos.iX, prevPos.iX ),
- Direction( pos.iY, prevPos.iY ) };
- return dir;
- }
-
- /**
- * @return a position in the aLow and aHigh, so that it aProportion of
- * of length is above the pos
- */
- TReal32 ProportionalLength( TReal32 aLow, TReal32 aHigh, TReal32 aProportion )
- {
- return ( aHigh - aLow ) * aProportion / ( 1 + aProportion );
- }
-
- /**
- * @return aVariableEdge scaled to new position, when the other edge changes
- * from aOldEdge to aNewEdge, so that aOrigin maintains the *same
- * relative position* between aVariableEdge and the other edge
- */
- inline TReal32 ScaledEdge(
- TReal32 aOrigin,
- TReal32 aVariableEdge,
- TReal32 aOldEdge,
- TReal aNewEdge )
- {
- TReal32 proportion = Proportion( aOrigin, aVariableEdge, aOldEdge );
- return ( proportion * aNewEdge - aOrigin ) / ( proportion - 1 );
- }
-
- TScale Rescale(
- TReal32 aPos,
- TDirection aDir,
- TDirection aPrevDir,
- const TScale& aPrevScale,
- const TEdges& aEdges )
- {
- TScale scale( aPrevScale );
- if ( aPrevDir != aDir )
- {
- // the code duplication is accepted here, since it is difficult
- // to factor out while maintaining the understandability of this
- // anyway complex algorithm
- if ( aDir == ESmaller )
- {
- scale.iMin = aEdges.iMin;
- if ( aPrevScale.iZero < aPos )
- {
- TReal32 proportionAboveZero = Proportion(
- aPos, aPrevScale.iZero, aPrevScale.iMax );
- scale.iZero = aPos - ProportionalLength(
- aEdges.iMin, aPos, proportionAboveZero );
- }
- else
- {
- // adjust zero pos so that proportion between aPos, Min,
- // and Zero pos stay the same (Min will move to 0,
- // aPos stays the same)
- scale.iZero = ScaledEdge( aPos, aPrevScale.iZero,
- aPrevScale.iMin, aEdges.iMin );
- }
-
- // adjust the upper edge to take into account the movement of
- // zero pos
- scale.iMax = ScaledEdge( aPos, aPrevScale.iMax,
- aPrevScale.iZero, scale.iZero );
- }
- else // ELarger
- {
- scale.iMax = aEdges.iMax;
- if ( aPos < aPrevScale.iZero )
- {
- TReal32 proportionBelowZero = Proportion(
- aPos, aPrevScale.iZero, aPrevScale.iMin );
- scale.iZero = aPos + ProportionalLength(
- aPos, aEdges.iMax, proportionBelowZero );
- }
- else
- {
- // adjust zero pos so that proportion between aPos, Max, and
- // Zero pos stay the same (Max will move edge, aPos stays
- // the same)
- scale.iZero = ScaledEdge( aPos, aPrevScale.iZero,
- aPrevScale.iMax, aEdges.iMax );
- }
-
- // adjust the lower edge to take into account the movement of
- // zero pos
- scale.iMin = ScaledEdge( aPos, aPrevScale.iMin,
- aPrevScale.iZero, scale.iZero );
- }
- }
- return scale;
- }
-
- /** Edges in x and y dimensions */
- NONSHARABLE_STRUCT( TEdges2D )
- {
- TEdges iX;
- TEdges iY;
- };
-
- /**
- * @param aEdges edges of the area in which gesture points are accepted
- * @return the scale of latest point in the list of points
- */
- TScale2D Scale( const RArray< TXnPointEntry >& aPoints, const TEdges2D& aEdges )
- {
- TScale2D scale = { TScale( aPoints[0].iPos.iX, aEdges.iX ),
- TScale( aPoints[0].iPos.iY, aEdges.iY ) };
- TInt count = aPoints.Count();
- if ( count > 1 )
- {
- // iterate the whole point list to arrive to the current scale
- TDirection2D dir( Direction( 1, aPoints ) );
- for ( TInt i = 1; i < count; i++ )
- {
- // get direction at i
- TDirection2D newDir( Direction( i, aPoints ) );
- // get new scale at i
- scale.iX = Rescale(
- aPoints[i - 1].iPos.iX,
- newDir.iX,
- dir.iX,
- scale.iX,
- aEdges.iX );
- scale.iY = Rescale(
- aPoints[i - 1].iPos.iY,
- newDir.iY,
- dir.iY,
- scale.iY,
- aEdges.iY );
- dir = newDir;
- }
- }
- return scale;
- }
- } // unnamed namespace
-
-TRealPoint CXnGesture::SpeedPercent( const TRect& aEdges ) const
- {
- // x and y coordinates are easier to handle separately, extract from TRect:
- // ((iMinX, iMinY), (iMaxX, iMaxY)) -> ((iMinX, iMaxX), (iMinY, iMaxY))
- TEdges2D edges = {
- { aEdges.iTl.iX, aEdges.iBr.iX },
- { aEdges.iTl.iY, aEdges.iBr.iY } };
- // work out the current scale (coordinate -> percentage mapping) from
- // the history of points (i.e., points of current gesture). Then
- // calculate the percentage of the current position.
- return Scale( iPoints, edges ).Percent( CurrentPos() );
- }
-
-// ----------------------------------------------------------------------------
-// Speed
-// ----------------------------------------------------------------------------
-//
-TRealPoint CXnGesture::Speed() const
- {
- const TReal32 KMicroSecondsInSecond = 1000000;
-
- // Speed is only evaluated at the end of the swipe
- // if user stops at the end of the swipe before lifting stylus,
- // speed is zero. If time is zero, return 0 speed (infinite does
- // not make sense either). Will need to consider also earlier points
- // and their times or start time, if this zero-speed behavior is a problem
- TRealPoint speed;
- TReal32 time = static_cast< TReal32 >( TimeFromPreviousPoint().Int() )
- / KMicroSecondsInSecond;
- if ( !IsMovementStopped() && time > 0 )
- {
- TPoint distance = CurrentPos() - PreviousPos();
- speed.iX = static_cast< TReal32 >( distance.iX ) / time;
- speed.iY = static_cast< TReal32 >( distance.iY ) / time;
- }
- return speed;
- }
-
-// ----------------------------------------------------------------------------
-// Distance
-// ----------------------------------------------------------------------------
-//
-TPoint CXnGesture::Distance() const
- {
- return CurrentPos() - StartPos();
- }
-
-// ----------------------------------------------------------------------------
-// TimeFromPreviousPoint
-// ----------------------------------------------------------------------------
-//
-inline TTimeIntervalMicroSeconds32 CXnGesture::TimeFromPreviousPoint() const
- {
- const TInt KLatestEntryOffset = 1;
- return Elapsed( PreviousEntry().iTime, NthLastEntry( KLatestEntryOffset ).iTime );
- }
-
-// ----------------------------------------------------------------------------
-// CodeFromPoints
-// ----------------------------------------------------------------------------
-//
-TXnGestureCode CXnGesture::CodeFromPoints( TAxis aRelevantAxis ) const
- {
- // select the correct filter based on aRelevantAxis
- // these filter_ objects are array decorators that will eliminate either
- // x, y or neither coordinate of each point
- TXAxisPointArray filterY( iPoints );
- TYAxisPointArray filterX( iPoints );
- TXnPointArray filterNone( iPoints );
- TXnPointArray& filter =
- aRelevantAxis == EAxisHorizontal ? static_cast< TXnPointArray& >( filterY ) :
- aRelevantAxis == EAxisVertical ? static_cast< TXnPointArray& >( filterX ) :
- /* otherwise EAxisBoth */ filterNone;
-
- // currently the gesture recogniser does not have any state, so it is fast
- // to instantiate. The call is not static however, to allow the recogniser
- // to be replaced by a more complicated implementation that has state.
- // then it may make sense to make the recogniser a member variable.
- return TXnGestureRecogniser().GestureCode( filter );
- }
-
-// ----------------------------------------------------------------------------
-// CodeFromPoints
-// ----------------------------------------------------------------------------
-//
-TXnGestureCode CXnGesture::LastDirection( TAxis aRelevantAxis ) const
- {
- // select the correct filter based on aRelevantAxis
- // these filter_ objects are array decorators that will eliminate either
- // x, y or neither coordinate of each point
- TXAxisPointArray filterY( iPoints );
- TYAxisPointArray filterX( iPoints );
- TXnPointArray filterNone( iPoints );
- TXnPointArray& filter =
- aRelevantAxis == EAxisHorizontal ? static_cast< TXnPointArray& >( filterY ) :
- aRelevantAxis == EAxisVertical ? static_cast< TXnPointArray& >( filterX ) :
- /* otherwise EAxisBoth */ filterNone;
-
- // currently the gesture recogniser does not have any state, so it is fast
- // to instantiate. The call is not static however, to allow the recogniser
- // to be replaced by a more complicated implementation that has state.
- // then it may make sense to make the recogniser a member variable.
- return TXnGestureRecogniser().LastDirection( filter );
- }
-
-// ----------------------------------------------------------------------------
-// return nth point from the end of the points array
-// ----------------------------------------------------------------------------
-//
-inline const TXnPointEntry& CXnGesture::NthLastEntry( TInt aOffset ) const
- {
- return iPoints[Max( iPoints.Count() - aOffset, 0 )];
- }
-
-// ----------------------------------------------------------------------------
-// PreviousEntry
-// ----------------------------------------------------------------------------
-//
-inline const TXnPointEntry& CXnGesture::PreviousEntry() const
- {
- return NthLastEntry( KPreviousPointOffset );
- }
-
-// ----------------------------------------------------------------------------
-// PreviousPos
-// ----------------------------------------------------------------------------
-//
-inline TPoint CXnGesture::PreviousPos() const
- {
- return NthLastEntry( KPreviousPointOffset - 1 ).iPos;
- }
-
-// ----------------------------------------------------------------------------
-// SetComplete
-// ----------------------------------------------------------------------------
-//
-TBool CXnGesture::IsTapDoubleTap() const
- {
- return iPreviousGesture.iType == TGestureRecord::ETypeTap &&
- Elapsed( iPreviousGesture.iCompletionTime, iCompletionTime ).Int() <=
- KMaxDoubleTapDuration &&
- IsNear( iPreviousGesture.iPos, iPoints[iPoints.Count() - 1].iPos,
- KSamePointTolerance );
- }
-
-// ----------------------------------------------------------------------------
-// Type
-// ----------------------------------------------------------------------------
-//
-CXnGesture::TGestureRecord::TType CXnGesture::Type() const
- {
- if ( CodeFromPoints( EAxisBoth ) == EGestureTap && !IsHolding() )
- {
- if ( IsTapDoubleTap() )
- {
- return CXnGesture::TGestureRecord::ETypeDoubleTap;
- }
- else
- {
- return CXnGesture::TGestureRecord::ETypeTap;
- }
- }
- else
- {
- return CXnGesture::TGestureRecord::ETypeOther;
- }
- }
-
-// ----------------------------------------------------------------------------
-// TGestureRecord constructor
-// ----------------------------------------------------------------------------
-//
-CXnGesture::TGestureRecord::TGestureRecord()
- {
- iType = ETypeOther;
- }
-
-// ----------------------------------------------------------------------------
-// TGestureRecord constructor
-// ----------------------------------------------------------------------------
-//
-CXnGesture::TGestureRecord::TGestureRecord(
- CXnGesture::TGestureRecord::TType aType,
- TTime aCompletionTime,
- TPoint aPos )
- : iType( aType ), iCompletionTime( aCompletionTime ), iPos( aPos )
- {
- }
--- a/idlehomescreen/xmluirendering/uiengine/src/xngesturehelper.cpp Wed Mar 31 21:17:19 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,384 +0,0 @@
-/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Gesture helper implementation
-*
-*/
-
-// System includes
-#include <e32base.h>
-#include <w32std.h>
-
-// User includes
-#include "xngesturehelper.h"
-#include "xngesture.h"
-#include "xngesturedefs.h"
-#include "xnnode.h"
-
-using namespace XnGestureHelper;
-
-namespace XnGestureHelper
- {
- NONSHARABLE_CLASS( CHoldingTimer ) : public CTimer
- {
- public:
- /** Two-phase constructor */
- static CHoldingTimer* NewL( CXnGestureHelper& aHelper )
- {
- CHoldingTimer* self = new ( ELeave ) CHoldingTimer( aHelper );
- CleanupStack::PushL( self );
- self->ConstructL();
- // "hold event" sending is enabled by default
- self->iIsEnabled = ETrue;
- CActiveScheduler::Add( self );
- CleanupStack::Pop( self );
- return self;
- }
-
- /** Destructor */
- ~CHoldingTimer()
- {
- Cancel();
- }
-
- /** Set whether sending holding events is currently enabled */
- void SetEnabled( TBool aEnabled )
- {
- iIsEnabled = aEnabled;
- // cancel in case hold timer is already running
- Cancel();
- }
-
- /** @return whether sending holding events is currently enabled */
- TBool IsEnabled() const
- {
- return iIsEnabled;
- }
-
- /** Start the timer. Calls CXnGestureHelper::StartHoldingL upon
- * completion */
- void Start()
- {
- // if sending hold events is disabled, do not ever start the hold
- // timer, and hence hold events will never be triggered
- if ( iIsEnabled )
- {
- Cancel();
- After( KHoldDuration );
- }
- }
-
- private:
- /** Constructor */
- CHoldingTimer( CXnGestureHelper& aHelper )
- : // give higher priority to new pointer events with - 1
- CTimer( EPriorityUserInput - 1 ),
- iHelper( aHelper )
- {
- }
-
- void RunL() // From CActive
- {
- iHelper.StartHoldingL();
- }
-
- private:
- /// helper object that will be called back when timer is triggered
- CXnGestureHelper& iHelper;
- /// whether sending holding events is currently enabled
- TBool iIsEnabled;
- };
- } // namespace GestureHelper
-
-/**
-* @return position from event. Use this instead of using aEvent direction to
-* avoid accidentally using TPointerEvent::iPosition
-*/
-inline TPoint Position( const TPointerEvent& aEvent )
- {
- // use parent position, since the capturer is using full screen area,
- // and because the (Alfred) drag events are not local to visual even when
- // coming from the client
- return aEvent.iParentPosition;
- }
-
-// ----------------------------------------------------------------------------
-// Two-phase constructor
-// ----------------------------------------------------------------------------
-//
-CXnGestureHelper* CXnGestureHelper::NewL( CXnNode& aNode )
- {
- CXnGestureHelper* self = new ( ELeave ) CXnGestureHelper( aNode );
- CleanupStack::PushL( self );
- self->iHoldingTimer = CHoldingTimer::NewL( *self );
- self->iGesture = new ( ELeave ) CXnGesture();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ----------------------------------------------------------------------------
-// Constructor
-// ----------------------------------------------------------------------------
-//
-CXnGestureHelper::CXnGestureHelper( CXnNode& aNode )
- : iOwner( aNode )
- {
- }
-
-// ----------------------------------------------------------------------------
-// Destructor
-// ----------------------------------------------------------------------------
-//
-CXnGestureHelper::~CXnGestureHelper()
- {
- delete iHoldingTimer;
- delete iGesture;
- }
-
-// ----------------------------------------------------------------------------
-// SetHoldingEnabled
-// ----------------------------------------------------------------------------
-//
-void CXnGestureHelper::SetHoldingEnabled( TBool aEnabled )
- {
- iHoldingTimer->SetEnabled( aEnabled );
- }
-
-// ----------------------------------------------------------------------------
-// IsHoldingEnabled
-// ----------------------------------------------------------------------------
-//
-TBool CXnGestureHelper::IsHoldingEnabled() const
- {
- return iHoldingTimer->IsEnabled();
- }
-
-// ----------------------------------------------------------------------------
-// Reset state
-// ----------------------------------------------------------------------------
-//
-void CXnGestureHelper::Reset()
- {
- iHoldingTimer->Cancel();
- iGesture->Reset();
- }
-
-/**
-* Helper function that calls Reset on the pointer to CXnGestureHelper
-*/
-static void ResetHelper( TAny* aHelper )
- {
- static_cast< CXnGestureHelper* >( aHelper )->Reset();
- }
-
-// ----------------------------------------------------------------------------
-// Sets gesture destination
-// ----------------------------------------------------------------------------
-//
-void CXnGestureHelper::SetDestination( CXnNode* aDestination )
- {
- iDestination = aDestination;
- }
-
-// ----------------------------------------------------------------------------
-// Gets gesture destination
-// ----------------------------------------------------------------------------
-//
-CXnNode* CXnGestureHelper::Destination() const
- {
- return iDestination;
- }
-
-// ----------------------------------------------------------------------------
-// Gets gesture owner
-// ----------------------------------------------------------------------------
-//
-CXnNode* CXnGestureHelper::Owner() const
- {
- return &iOwner;
- }
-
-// ----------------------------------------------------------------------------
-// Handle a pointer event
-// ----------------------------------------------------------------------------
-//
-TXnGestureCode CXnGestureHelper::HandlePointerEventL(
- const TPointerEvent& aEvent )
- {
- TXnGestureCode ret( EGestureUnknown );
-
- switch ( aEvent.iType )
- {
- case TPointerEvent::EButton1Down:
- // If no up event was received during previous gesture, cancel
- // previous event and reset state
- if ( !IsIdle() )
- {
- iGesture->SetCancelled();
- // ambiguous what is the right thing when "cancel" event leaves
- // and "start" does not. Leaving for cancel *after* "start" could
- // be unexpected to client, as client would have handled start
- // event successfully. Assume that leaving upon cancellation
- // can be ignored.
- Reset();
- }
- // adding the first point implicitly makes the state "not idle"
- AddPointL( aEvent );
- // If AddPointL leaves, IsIdle will return EFalse for other events
- // types, hence further pointer events will be ignored.
- // Therefore, holding will NOT be started if AddPointL leaves,
- // since the callback would trigger a gesture callback, and that
- // would access an empty points array.
- iHoldingTimer->Start();
- iDirection = EGestureUnknown;
- break;
-
- case TPointerEvent::EDrag:
- // ignore the event in case not in "recording" state. this may
- // happen if holding was triggered, or client sends up event after
- // down event was received in a different *client* state, and
- // client did not forward the down event to here.
- // Also, while stylus down, the same event is received repeatedly
- // even if stylus does not move. Filter out by checking if point
- // is the same as the latest point
- iDirection = iGesture->LastDirection( CXnGesture::EAxisHorizontal );
-
- if ( !IsIdle() && !iGesture->IsLatestPoint( Position( aEvent ) ) )
- {
- AddPointL( aEvent );
- if ( !( iGesture->IsHolding() ||
- iGesture->IsNearHoldingPoint( Position( aEvent ) ) ) )
- {
- // restart hold timer, since pointer has moved
- iHoldingTimer->Start();
- // Remember the point in which holding was started
- iGesture->SetHoldingPoint();
- }
- }
- break;
-
- case TPointerEvent::EButton1Up:
- // ignore up event if no down event received
- if ( !IsIdle() )
- {
- // reset in case the down event is not received for a reason
- // in client, and instead drag or up events are received.
- // reset via cleanup stack to ensure Reset is run even if
- // observer leaves
- CleanupStack::PushL( TCleanupItem( &ResetHelper, this ) );
- iGesture->SetComplete();
- // if adding of the point fails, notify client with a
- // cancelled event. It would be wrong to send another
- // gesture code when the up point is not known
- if ( AddPoint( aEvent ) != KErrNone )
- {
- iGesture->SetCancelled();
- }
- else
- {
- // send gesture code if holding has not been started
- if ( !iGesture->IsHolding() )
- {
- // if client leaves, the state is automatically reset.
- // In this case the client will not get the released event
- ret = iDirection;
- }
- // send an event that stylus was lifted
- iGesture->SetReleased();
- }
- // reset state
- CleanupStack::PopAndDestroy( this );
- }
- break;
-
- default:
- break;
- }
-
- return ret;
- }
-
-// ----------------------------------------------------------------------------
-// Is the helper idle?
-// inline ok in cpp file for a private member function
-// ----------------------------------------------------------------------------
-//
-inline TBool CXnGestureHelper::IsIdle() const
- {
- return iGesture->IsEmpty();
- }
-
-// ----------------------------------------------------------------------------
-// Add a point to the sequence of points that together make up the gesture
-// inline ok in cpp file for a private member function
-// ----------------------------------------------------------------------------
-//
-inline void CXnGestureHelper::AddPointL( const TPointerEvent& aEvent )
- {
- User::LeaveIfError( AddPoint( aEvent ) );
- }
-
-// ----------------------------------------------------------------------------
-// Add a point to the sequence of points that together make up the gesture
-// inline ok in cpp file for a private member function
-// ----------------------------------------------------------------------------
-//
-inline TInt CXnGestureHelper::AddPoint( const TPointerEvent& aEvent )
- {
- return iGesture->AddPoint( Position ( aEvent ) );
- }
-
-/**
-* Helper function that calls ContinueHolding on the pointer to TGesture
-*/
-static void ContinueHolding( TAny* aGesture )
- {
- static_cast< CXnGesture* >( aGesture )->ContinueHolding();
- }
-
-// ----------------------------------------------------------------------------
-// Add a point to the sequence of points that together make up the gesture
-// ----------------------------------------------------------------------------
-//
-void CXnGestureHelper::StartHoldingL()
- {
- // hold & tap event is specifically filtered out. Use case: in list fast
- // scrolling activation (e.g. enhanced coverflow), tap & hold should not
- // start fast scroll. In addition, after long tap on start position,
- // drag and drag & hold swiping should emit normal swipe and swipe&hold
- // events. Therefore, tap & hold is not supported.
- if ( !iGesture->IsTap() )
- {
- // holding has just started, and gesture code should be provided to client.
- // set gesture state so that it produces a gesture code (other than drag)
- iGesture->StartHolding();
-
- // create an item in the cleanup stack that will set the gesture state
- // to holding-was-started-earlier state. NotifyL may leave, but the
- // holding-was-started-earlier state must still be successfully set,
- // otherwise, the holding gesture code will be sent twice
- CleanupStack::PushL( TCleanupItem( &ContinueHolding, iGesture ) );
-
- // set holding state to "post holding"
- CleanupStack::PopAndDestroy( iGesture );
- }
- }
-
-// ----------------------------------------------------------------------------
-// Check if swipe is valid
-// ----------------------------------------------------------------------------
-//
-TXnGestureCode CXnGestureHelper::ValidSwipe() const
- {
- return iGesture->Code( CXnGesture::EAxisBoth );
- }
--- a/idlehomescreen/xmluirendering/uiengine/src/xngesturerecogniser.cpp Wed Mar 31 21:17:19 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,234 +0,0 @@
-/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Gesture helper implementation
-*
-*/
-
-#include <e32math.h>
-
-#include "xngesturerecogniser.h"
-#include "xngesturedefs.h"
-#include "xnpointarray.h"
-
-using namespace XnGestureHelper;
-
-const TInt minPointCount = 5;
-
-/**
- * Vector class (math)
- */
-NONSHARABLE_CLASS( TVector )
- {
-public:
- /**
- * Constructor
- * @param aFrom starting point of the vector
- * @param aTo ending point of the vector
- */
- TVector( const TPoint& aFrom, const TPoint& aTo )
- : iX( aTo.iX - aFrom.iX ),
- iY( aTo.iY - aFrom.iY )
- {
- }
-
- /** @return angle of the vector */
- TReal Angle() const
- {
- TReal angle = 0;
- TReal length = Length();
- if ( length != 0 )
- {
- Math::ACos( angle, iX / Length() );
- if ( iY < 0 )
- {
- angle = 2 * KPi - angle;
- }
- }
- return Degrees( angle );
- }
-
- /** @return length of the vector */
- TReal Length() const
- {
- TReal length = 0;
- Math::Sqrt( length, iX * iX + iY * iY );
- return length;
- }
-
-private:
- /** @return radians in degrees */
- inline TReal Degrees( TReal aRadians ) const
- {
- return aRadians * 180 / KPi;
- }
-
-public:
- /// x coordinate that represent the vector
- TReal iX;
- /// y coordinate that represent the vector
- TReal iY;
- };
-
-/**
- * @return ETrue if points for a tap event
- */
-inline TBool IsTap( const TXnPointArray& aPoints )
- {
- // with tap, the pointer is not allowed to leave the tap area and come back
- // therefore, gesture length is not an acceptable test for tap, as it tests
- // only the last point. therefore, check if *any* point is outside tap area.
- TInt i = aPoints.Count(); // latest point if most likely to be outside tap area
- while ( --i >= 0 )
- {
- // use the raw point (from which no axis has been filtered out)
- // because tap should consider both axes even when Code() ignores one axis
- if ( KSamePointTolerance < Abs( aPoints.Raw( i ).iX - aPoints.Raw( 0 ).iX ) ||
- KSamePointTolerance < Abs( aPoints.Raw( i ).iY - aPoints.Raw( 0 ).iY ) )
- {
- return EFalse;
- }
- }
- return ETrue;
- }
-
-/**
- * @return Length of the gesture in points
- */
-inline TReal GestureLength( const TXnPointArray& aPoints )
- {
- return TVector( aPoints[0], aPoints[aPoints.Count() - 1] ).Length();
- }
-
-/**
- * @return ETrue if aAngleUnderTest is almost aAngle
- * Closeness of the angles is controlled by KAngleTolerance
- */
-static TBool IsNear( TReal aAngleUnderTest, TReal aAngle )
- {
- return aAngle - KAngleTolerance <= aAngleUnderTest &&
- aAngleUnderTest <= aAngle + KAngleTolerance;
- }
-
-/**
- * @return the angle as a direction flags of TGesture
- */
-inline TXnGestureCode Direction( TReal aAngle )
- {
- TXnGestureCode direction = EGestureUnknown;
-
- if ( IsNear( aAngle, 90.0 ) )
- {
- direction = EGestureSwipeDown;
- }
- else if ( IsNear( aAngle, 180.0 ) )
- {
- direction = EGestureSwipeLeft;
- }
- else if ( IsNear( aAngle, 270.0 ) )
- {
- direction = EGestureSwipeUp;
- }
- else if ( 360.0 - KAngleTolerance <= aAngle || aAngle <= KAngleTolerance )
- {
- direction = EGestureSwipeRight;
- }
- else // for lint warning
- {
- // unknown angle
- }
-
- return direction;
- }
-
-/** @return direction between points */
-inline TXnGestureCode Direction( const TPoint& aFromPoint, const TPoint& aToPoint )
- {
- return Direction( TVector( aFromPoint, aToPoint ).Angle() );
- }
-
-/** @return overall direction between points */
-static TXnGestureCode GeneralDirection( const TXnPointArray& aPoints )
- {
- return Direction( aPoints[0], aPoints[aPoints.Count() - 1]);
- }
-
-/**
-* @return the last received point that is different that the latest point,
-* or first point if no point is different than latest
-*/
-inline TPoint PreviousPoint( const TXnPointArray& aPoints )
- {
- TPoint latestPoint = aPoints[aPoints.Count() - 1];
- TInt i = aPoints.Count() - 1;
- while ( --i >= 0 )
- {
- if ( latestPoint != aPoints[i] )
- {
- return aPoints[i];
- }
- }
- return aPoints[0];
- }
-
-/** @return direction between last two points */
-TXnGestureCode TXnGestureRecogniser::LastDirection( const TXnPointArray& aPoints ) const
- {
- TXnGestureCode ret = EGestureUnknown;
-
- if ( ( aPoints.Count() > 0 ) &&
- ( GestureLength( aPoints ) >= KMinSwipeLength ))
- {
- if ( aPoints.Count() > minPointCount )
- {
- // return direction between latest and previous points.
- // pick the previous point that is different than the last point
- // because while using an x or y filter array, more than one
- // sequential points may look like the same point because
- // the differing coordinate coordinate is filtered out. For example,
- // if dragging left and slightly up, many y coordinates will have the
- // same value, while only x differs.
- ret = Direction( aPoints[ aPoints.Count() - minPointCount ],
- aPoints[ aPoints.Count() - 1 ] );
- }
- else
- {
- ret = GeneralDirection( aPoints );
- }
- }
-
- return ret;
- }
-
-// ----------------------------------------------------------------------------
-// Return gesture code of a gesture formed by a sequence of points
-// ----------------------------------------------------------------------------
-//
-TXnGestureCode TXnGestureRecogniser::GestureCode( const TXnPointArray& aPoints ) const
- {
- __ASSERT_DEBUG( aPoints.Count() > 0, Panic( EGesturePanicIllegalLogic ) );
-
- if (aPoints.Count() <= 0)
- {
- return EGestureUnknown;
- }
-
- if ( GestureLength( aPoints ) >= KMinSwipeLength )
- {
- return GeneralDirection( aPoints );
- }
-
- // the pointer was moved but was either not moved far enough, or was
- // brought back to close to the starting point
- return EGestureUnknown;
- }
--- a/idlehomescreen/xmluirendering/uiengine/src/xnhittest.cpp Wed Mar 31 21:17:19 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,193 +0,0 @@
-/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Data class to hold widget info
-*
-*/
-
-// INCLUDES
-#include <e32base.h>
-
-#include "xncontroladapter.h"
-#include "xnhittest.h"
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CXnHitTest::NewL()
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CXnHitTest* CXnHitTest::NewL()
- {
- CXnHitTest* self = CXnHitTest::NewLC();
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CXnHitTest::NewLC()
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CXnHitTest* CXnHitTest::NewLC()
- {
- CXnHitTest* self = new ( ELeave ) CXnHitTest;
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CXnHitTest::CXnHitTest()
-// C++ default constructor
-// -----------------------------------------------------------------------------
-//
-CXnHitTest::CXnHitTest()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CXnHitTest::~CXnHitTest()
-// C++ default destructor.
-// -----------------------------------------------------------------------------
-//
-CXnHitTest::~CXnHitTest()
- {
- CCoeEnv::Static()->RemoveMessageMonitorObserver( *this );
- iHitRegion.Reset();
- }
-
-// -----------------------------------------------------------------------------
-// CXnHitTest::ConstructL()
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-void CXnHitTest::ConstructL()
- {
- CCoeEnv::Static()->AddMessageMonitorObserverL( *this );
- }
-
-// -----------------------------------------------------------------------------
-// CXnHitTest::MonitorWsMessage()
-// -----------------------------------------------------------------------------
-//
-void CXnHitTest::MonitorWsMessage( const TWsEvent& aEvent )
- {
- TInt type( aEvent.Type() );
-
- if ( type == EEventPointer )
- {
- iPointerEvent = *aEvent.Pointer();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CXnHitTest::AddControl()
-// -----------------------------------------------------------------------------
-//
-void CXnHitTest::AddControl( CXnControlAdapter* aControl )
- {
- if ( iHitRegion.Find( aControl ) == KErrNotFound )
- {
- iHitRegion.Append( aControl );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CXnHitTest::RemoveControl()
-// -----------------------------------------------------------------------------
-//
-void CXnHitTest::RemoveControl( CXnControlAdapter* aControl )
- {
- TInt index( iHitRegion.Find( aControl ) );
-
- if ( index != KErrNotFound )
- {
- iHitRegion.Remove( index );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CXnHitTest::SetFlags()
-// -----------------------------------------------------------------------------
-//
-void CXnHitTest::SetFlags( const TInt aFlags )
- {
- iFlags |= aFlags;
- }
-
-// -----------------------------------------------------------------------------
-// CXnHitTest::ClearFlags()
-// -----------------------------------------------------------------------------
-//
-void CXnHitTest::ClearFlags( const TInt aFlags )
- {
- iFlags &= ~aFlags;
- }
-
-// -----------------------------------------------------------------------------
-// CXnHitTest::Flags()
-// -----------------------------------------------------------------------------
-//
-TInt CXnHitTest::Flags() const
- {
- return iFlags;
- }
-
-// -----------------------------------------------------------------------------
-// CXnHitTest::Flush()
-// -----------------------------------------------------------------------------
-//
-void CXnHitTest::Flush()
- {
- iFlags = 0;
-
- iHitRegion.Reset();
- }
-
-// -----------------------------------------------------------------------------
-// CXnHitTest::HitRegionCount()
-// -----------------------------------------------------------------------------
-//
-TInt CXnHitTest::HitRegionCount() const
- {
- return iHitRegion.Count();
- }
-
-// -----------------------------------------------------------------------------
-// CXnHitTest::HitRegion()
-// -----------------------------------------------------------------------------
-//
-CXnControlAdapter* CXnHitTest::HitRegion() const
- {
- TInt count( HitRegionCount() );
-
- if ( count > 0 )
- {
- return iHitRegion[count - 1];
- }
-
- return NULL;
- }
-
-// -----------------------------------------------------------------------------
-// CXnHitTest::PointerEvent()
-// -----------------------------------------------------------------------------
-//
-const TPointerEvent& CXnHitTest::PointerEvent() const
- {
- return iPointerEvent;
- }
-
-// End of file
--- a/idlehomescreen/xmluirendering/uiengine/src/xnkeyeventdispatcher.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnkeyeventdispatcher.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -192,6 +192,9 @@
CCoeControl* destination = reinterpret_cast< CCoeControl* >( handle );
TPointerEvent& event( *aEvent.Pointer() );
+
+ // Store event
+ iPointerEvent = *aEvent.Pointer();
if ( iCbaContainer )
{
@@ -225,6 +228,16 @@
}
// -----------------------------------------------------------------------------
+// CXnKeyEventDispatcher::PointerEvent()
+//
+// -----------------------------------------------------------------------------
+//
+const TPointerEvent& CXnKeyEventDispatcher::PointerEvent() const
+ {
+ return iPointerEvent;
+ }
+
+// -----------------------------------------------------------------------------
// CXnKeyEventDispatcher::OfferKeyEventL
// Handles key events.
// -----------------------------------------------------------------------------
@@ -234,9 +247,7 @@
TEventCode aType )
{
TKeyResponse resp( EKeyWasNotConsumed );
-
- iEventCode = aType;
-
+
CXnNode* node( NULL );
TBool keyYesNoApps( EFalse );
@@ -249,7 +260,7 @@
// When menu is focused or LSK/RSK is pressed,
// then forward events to menuadapter.
// Note that MSK is handled directly in the base class as it used only
- // for activating
+ // for activation
node = iMenuNode;
}
else if ( aKeyEvent.iScanCode == EStdKeyApplication0 ||
@@ -259,8 +270,9 @@
keyYesNoApps = ETrue;
iFocusChanged = EFalse;
+
// AppsKey, YesKey, NoKey events must be always handled, and if we don't
- // have a focused node, then let the view node do the job
+ // have a focused node, then let the view handle the event
node = ( !iNode ) ? iUiEngine.ActiveView() : iNode;
}
else
@@ -309,6 +321,10 @@
if ( editmode->OfferKeyEventL( aKeyEvent, aType ) == EKeyWasConsumed )
{
+ iFocusChanged = EFalse;
+ iKeyEventNode = NULL;
+ iEventCode = EEventNull;
+
return EKeyWasConsumed;
}
@@ -324,8 +340,7 @@
if ( iFocusChanged && ( aType == EEventKeyUp ) )
{
- // Pass keyup event to
- // previously focused node
+ // Pass keyup event to the previously focused node
node = iKeyEventNode;
}
}
@@ -336,7 +351,9 @@
{
// We are waiting for down event
return resp;
- }
+ }
+
+ iEventCode = aType;
}
if ( !node )
--- a/idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -43,7 +43,6 @@
#include "xneditmode.h"
#include "xneditor.h"
#include "xntext.h"
-#include "xnhittest.h"
#include "xnscrollablecontroladapter.h"
#include "xnviewdata.h"
#include "xnrootdata.h"
@@ -266,8 +265,6 @@
CXnDomNode& aEventNode, CXnDomNode& aTriggerNode, CXnNode& aEventData );
static void RunFullScreenEffectL(
CXnUiEngine& aEngine, CXnDomNode& aEventNode );
-static void RunActivateViewL(
- CXnNodeImpl* aThis, CXnUiEngine& aEngine, CXnDomNode& aEventNode );
static void RunActivateNextViewL( CXnUiEngine& aEngine, CXnDomNode& aEventNode );
static void RunActivatePreviousViewL( CXnUiEngine& aEngine, CXnDomNode& aEventNode );
static void RunAddViewL( CXnUiEngine& aEngine, CXnDomNode& aEventNode );
@@ -2773,39 +2770,6 @@
}
// -----------------------------------------------------------------------------
-// RunActivateViewL
-// -----------------------------------------------------------------------------
-//
-static void RunActivateViewL(
- CXnNodeImpl* aThis,
- CXnUiEngine& aEngine,
- CXnDomNode& aEventNode )
- {
- CXnDomList& children( aEventNode.ChildNodes() );
-
- TInt count( children.Length() );
-
- for ( TInt i = 0; i < count; ++i )
- {
- CXnDomNode* node = static_cast< CXnDomNode* >( children.Item( i ) );
-
- const TDesC8& type( node->Name() );
-
- if ( type == XnPropertyNames::action::KProperty )
- {
- const TDesC8& id( node->AttributeValue( XnPropertyNames::action::KValue ) );
-
- CXnNode* viewNode( aEngine.FindNodeByIdL( id, aThis->Namespace() ) );
-
- if ( viewNode )
- {
- aEngine.ActivateViewL( *viewNode );
- }
- }
- }
- }
-
-// -----------------------------------------------------------------------------
// RunActivateNextViewL
// -----------------------------------------------------------------------------
//
@@ -3560,7 +3524,8 @@
if ( menuIf )
{
- menuIf->TryDisplayingMenuBarL( *menuId );
+ aEngine.Editor()->SetTargetPlugin( aEngine.FocusedNode() );
+ menuIf->TryDisplayingMenuBarL( *menuId, EFalse );
}
CleanupStack::PopAndDestroy( menuId );
@@ -3947,10 +3912,6 @@
{
RunRemoveViewL( aEngine, aEventNode );
}
- else if ( nameString == XnPropertyNames::action::event::KActivateView )
- {
- RunActivateViewL( aThis, aEngine, aEventNode );
- }
else if ( nameString == XnPropertyNames::action::event::KActivate )
{
RunActivateL( aThis, aEngine, aEventNode );
--- a/idlehomescreen/xmluirendering/uiengine/src/xnpointarray.cpp Wed Mar 31 21:17:19 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Array of points
-*
-*/
-
-#include "xnpointarray.h"
-
-using namespace XnGestureHelper;
-
-// ----------------------------------------------------------------------------
-// TXnPointArray constructor
-// ----------------------------------------------------------------------------
-//
-TXnPointArray::TXnPointArray( const RArray< TXnPointEntry >& aPoints )
- : iPoints( aPoints )
- {
- }
-
-// ----------------------------------------------------------------------------
-// TXnPointArray length
-// ----------------------------------------------------------------------------
-//
-TInt TXnPointArray::Count() const
- {
- return iPoints.Count();
- }
-
-// ----------------------------------------------------------------------------
-// point at index, no filtering
-// ----------------------------------------------------------------------------
-//
-TPoint TXnPointArray::operator[]( TInt aIndex ) const
- {
- return iPoints[aIndex].iPos;
- }
-
-// ----------------------------------------------------------------------------
-// Unfiltered point at index
-// ----------------------------------------------------------------------------
-//
-const TPoint& TXnPointArray::Raw( TInt aIndex ) const
- {
- return iPoints[aIndex].iPos;
- }
--- a/idlehomescreen/xmluirendering/uiengine/src/xnpopupcontroladapter.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnpopupcontroladapter.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -24,6 +24,8 @@
// User includes
#include "xnappuiadapter.h"
+#include "xnviewadapter.h"
+#include "xnkeyeventdispatcher.h"
#include "xnviewmanager.h"
#include "xnviewdata.h"
#include "xnplugindata.h"
@@ -35,7 +37,6 @@
#include "xntype.h"
#include "xnuiengine.h"
#include "xneditor.h"
-#include "xnhittest.h"
#include "xnfocuscontrol.h"
#include "xnpopupcontroladapter.h"
@@ -165,6 +166,8 @@
}
}
+ iUiEngine->Editor()->SetTargetPlugin( NULL );
+
iMenuItems.Reset();
iCommandId = 0;
@@ -197,13 +200,18 @@
void CXnPopupControlAdapter::TryDisplayingStylusPopupL( CXnNode& aPlugin )
{
HideMenuL();
+
CXnViewManager* manager( iUiEngine->ViewManager() );
CXnPluginData* plugin( manager->ActiveViewData().Plugin( &aPlugin ) );
+
if ( !plugin )
{
return;
}
- TPointerEvent event( iUiEngine->HitTest().PointerEvent() );
+
+ CXnViewAdapter& adapter( iUiEngine->AppUiAdapter().ViewAdapter() );
+
+ const TPointerEvent& event( adapter.EventDispatcher()->PointerEvent() );
delete iStylusPopupMenu;
iStylusPopupMenu = NULL;
--- a/idlehomescreen/xmluirendering/uiengine/src/xnpropertysubscriber.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnpropertysubscriber.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -85,7 +85,7 @@
//
void CXnPropertySubscriber::DoCancel()
{
- iProperty.Close();
+ iProperty.Cancel();
}
// -----------------------------------------------------------------------------
@@ -103,3 +103,14 @@
iPropertyChangeObserver.PropertyChangedL( iKey, intValue );
}
}
+
+// ---------------------------------------------------------
+// ---------------------------------------------------------
+//
+TInt CXnPropertySubscriber::RunError(TInt /*aError*/)
+ {
+ return KErrNone;
+ }
+
+// End of file
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnspbgcleaner.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -0,0 +1,137 @@
+/*
+* 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:
+* statuspane's background cleaner implementation
+*
+*/
+
+// System includes
+#include <e32base.h>
+#include <w32std.h>
+#include <AknUtils.h>
+
+// User includes
+#include "xnspbgcleaner.h"
+
+// CONSTANTS
+
+// ============================ LOCAL FUNCTIONS ================================
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// ---------------------------------------------------------
+// CXnSpBgCleaner::NewL
+// ---------------------------------------------------------
+//
+CXnSpBgCleaner* CXnSpBgCleaner::NewL()
+ {
+ CXnSpBgCleaner* self = CXnSpBgCleaner::NewLC();
+ CleanupStack::Pop(); // self;
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CXnSpBgCleaner::NewLC
+// ---------------------------------------------------------
+//
+CXnSpBgCleaner* CXnSpBgCleaner::NewLC()
+ {
+ CXnSpBgCleaner* self = new ( ELeave ) CXnSpBgCleaner();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CXnSpBgCleaner::CXnSpBgCleaner
+// ---------------------------------------------------------
+//
+CXnSpBgCleaner::CXnSpBgCleaner()
+ {
+ }
+
+// ---------------------------------------------------------
+// CXnSpBgCleaner::ConstructL
+// ---------------------------------------------------------
+//
+void CXnSpBgCleaner::ConstructL()
+ {
+ CreateWindowL();
+
+ TRect statusPaneRect;
+ AknLayoutUtils::LayoutMetricsRect(
+ AknLayoutUtils::EStatusPane, statusPaneRect );
+
+ SetRect( statusPaneRect );
+ SetNonFocusing();
+
+ Window().SetOrdinalPosition( -1 );
+ Window().SetBackgroundColor( TRgb::Color16MA(0) );
+ Window().SetVisible( ETrue );
+
+ ActivateL();
+ }
+
+// ---------------------------------------------------------
+// CXnSpBgCleaner::~CXnSpBgCleaner
+// ---------------------------------------------------------
+//
+CXnSpBgCleaner::~CXnSpBgCleaner()
+ {
+ }
+
+// ---------------------------------------------------------
+// CXnSpBgCleaner::SizeChanged
+// ---------------------------------------------------------
+//
+void CXnSpBgCleaner::SizeChanged()
+ {
+ CCoeControl::SizeChanged();
+ DrawDeferred();
+ }
+
+// ---------------------------------------------------------
+// CXnSpBgCleaner::Draw
+// ---------------------------------------------------------
+//
+void CXnSpBgCleaner::Draw( const TRect& /*aRect*/ ) const
+ {
+ CWindowGc& gc = SystemGc();
+ TRgb color( TRgb::Color16MA(0) );
+ gc.SetPenColor( color );
+ gc.SetBrushColor( color );
+ gc.SetDrawMode( CGraphicsContext::EDrawModeWriteAlpha );
+ gc.SetPenStyle(CGraphicsContext::ESolidPen );
+ gc.SetBrushStyle(CGraphicsContext::ESolidBrush );
+ gc.Clear();
+ }
+
+// ---------------------------------------------------------
+// CXnSpBgCleaner::HandleResourceChange
+// ---------------------------------------------------------
+//
+void CXnSpBgCleaner::HandleResourceChange( TInt aType )
+ {
+ CCoeControl::HandleResourceChange( aType );
+
+ if ( KEikDynamicLayoutVariantSwitch == aType )
+ {
+ TRect statusPaneRect;
+ AknLayoutUtils::LayoutMetricsRect(
+ AknLayoutUtils::EStatusPane, statusPaneRect );
+ SetRect( statusPaneRect );
+ }
+ }
+
+// End of file
--- a/idlehomescreen/xmluirendering/uiengine/src/xnuiengine.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnuiengine.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -264,15 +264,6 @@
}
// -----------------------------------------------------------------------------
-// CXnUiEngine::ActivateViewL
-// Activate a view
-// -----------------------------------------------------------------------------
-//
-void CXnUiEngine::ActivateViewL( CXnNode& /*aViewNode*/ )
- {
- }
-
-// -----------------------------------------------------------------------------
// CXnUiEngine::ViewManager
// -----------------------------------------------------------------------------
//
@@ -498,15 +489,6 @@
}
// -----------------------------------------------------------------------------
-// CXnUiEngine::HitTest
-// -----------------------------------------------------------------------------
-//
-CXnHitTest& CXnUiEngine::HitTest() const
- {
- return iUiEngineImpl->HitTest();
- }
-
-// -----------------------------------------------------------------------------
// CXnUiEngine::GetThemeResource
// -----------------------------------------------------------------------------
//
--- a/idlehomescreen/xmluirendering/uiengine/src/xnuiengine.rss Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnuiengine.rss Wed Apr 14 15:47:59 2010 +0300
@@ -185,4 +185,24 @@
buf = qtn_hs_operation_failed_no_disk;
}
+RESOURCE DIALOG r_backup_restore_wait_dialog
+ {
+ flags = EAknWaitNoteFlags;
+ buttons = R_AVKON_SOFTKEYS_EMPTY;
+ items =
+ {
+ DLG_LINE
+ {
+ type = EAknCtNote;
+ id = EGeneralNote;
+ control= AVKON_NOTE
+ {
+ layout = EWaitLayout;
+ singular_label = qtn_hs_backup_use_prevented;
+ animation = R_QGN_GRAF_WAIT_BAR_ANIM;
+ };
+ }
+ };
+ }
+
// End of file
--- a/idlehomescreen/xmluirendering/uiengine/src/xnuiengineappif.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnuiengineappif.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -197,16 +197,6 @@
}
// -----------------------------------------------------------------------------
-// TXnUiEngineAppIf::ActivateViewL
-// Activate a view
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void TXnUiEngineAppIf::ActivateViewL( CXnNodeAppIf& aViewNode )
- {
- iUiEngine->ActivateViewL( aViewNode.Node() );
- }
-
-// -----------------------------------------------------------------------------
// TXnUiEngineAppIf::ActiveView
// Return the active view
// -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -51,7 +51,6 @@
#include "xndomdocument.h"
#include "xndomnode.h"
#include "xneditmode.h"
-#include "xnhittest.h"
#include "xnnode.h"
#include "xnpanic.h"
#include "xneffectmanager.h"
@@ -8067,9 +8066,7 @@
void CXnUiEngineImpl::ConstructL()
{
iEditMode = CXnEditMode::NewL( *iUiEngine );
-
- iHitTest = CXnHitTest::NewL();
-
+
iCurrentGraphicsDevice = CCoeEnv::Static()->ScreenDevice();
// Update the units here, even the refence client rect is only a quess.
@@ -8104,7 +8101,6 @@
iViewManager.RemoveObserver( *this );
delete iEditMode;
- delete iHitTest;
iFocusCandidateList.Reset();
@@ -8291,7 +8287,15 @@
{
AddToRedrawListL( node, rect );
- adapter->SetRect( rect );
+ // popup calculates its position based on _s60-position-hint property
+ if( node->Type()->Type() == KPopUpNodeName )
+ {
+ adapter->DoHandlePropertyChangeL();
+ }
+ else
+ {
+ adapter->SetRect( rect );
+ }
CXnProperty* prop = node->GetPropertyL(
XnPropertyNames::common::KSizeAware );
if ( prop && prop->StringValue() ==
@@ -9669,15 +9673,6 @@
}
// -----------------------------------------------------------------------------
-// CXnUiEngineImpl::HitTest
-// -----------------------------------------------------------------------------
-//
-CXnHitTest& CXnUiEngineImpl::HitTest() const
- {
- return *iHitTest;
- }
-
-// -----------------------------------------------------------------------------
// CXnUiEngineImpl::GetThemeResource
// -----------------------------------------------------------------------------
//
@@ -9882,11 +9877,15 @@
// -----------------------------------------------------------------------------
void CXnUiEngineImpl::HandlePartialTouchInputL( CXnNode& aNode, TBool aEnable )
{
+ CXnNode* editorplugin = FindPlugin( aNode );
+ if ( !editorplugin )
+ {
+ User::Leave( KErrNotFound );
+ }
+
DisableRenderUiLC();
- CXnNode* editorplugin = FindPlugin( aNode );
-
- if ( aEnable )
-
+
+ if ( aEnable )
{
iSplitScreenState.iPartialScreenOpen = ETrue;
iSplitScreenState.iPartialScreenEditorNode = &aNode;
@@ -9896,6 +9895,25 @@
iViewManager.ActiveViewData().ViewNode()->Control() );
control->ResetGrabbing();
+
+ // Block progression must be bottom-to-top when partial screen is open
+ // Previous value needs to be stored first
+ CXnProperty* prop(
+ editorplugin->Parent()->GetPropertyL(
+ XnPropertyNames::style::common::KBlockProgression ) );
+ if ( prop )
+ {
+ iSplitScreenState.iPartialScreenBlock = &prop->StringValue();
+ }
+ else
+ {
+ iSplitScreenState.iPartialScreenBlock =
+ &XnPropertyNames::style::common::block_progression::KTB();
+ }
+
+ SetPartialScreenBlockProgressionL(
+ editorplugin->Parent(),
+ XnPropertyNames::style::common::block_progression::KBT );
// Hide all plugins except the one that contains given editor node
RPointerArray< CXnNode >& plugins( *Plugins() );
@@ -9907,13 +9925,6 @@
SetNodeVisibleL(pluginNode, EFalse);
}
}
-
- // Block progression must be bottom-to-top when partial screen is open
- // Previous value needs to be stored first
- StorePartialScreenBlockProgressionL();
-
- SetPartialScreenBlockProgressionL(
- XnPropertyNames::style::common::block_progression::KBT );
// Hide statuspane
iAppUiAdapter.StatusPane()->MakeVisible( EFalse );
@@ -9922,30 +9933,23 @@
else
{
// Show plugin nodes again
- RPointerArray< CXnNode >& plugins( *Plugins() );
+ RPointerArray< CXnNode >& plugins( *Plugins() );
for( TInt i=0; i<plugins.Count(); i++ )
{
- CXnNode* pluginNode = plugins[i];
+ CXnNode* pluginNode = plugins[i];
if ( pluginNode != editorplugin )
{
SetNodeVisibleL(pluginNode, ETrue);
- }
+ }
}
-
- if( iSplitScreenState.iPartialScreenBlock == NULL )
- {
- SetPartialScreenBlockProgressionL(
- XnPropertyNames::style::common::block_progression::KTB );
- }
- else
- {
- SetPartialScreenBlockProgressionL(iSplitScreenState.iPartialScreenBlock->Des());
- delete iSplitScreenState.iPartialScreenBlock;
- iSplitScreenState.iPartialScreenBlock = NULL;
- }
+
+ SetPartialScreenBlockProgressionL(
+ editorplugin->Parent(),
+ *iSplitScreenState.iPartialScreenBlock );
+ iSplitScreenState.iPartialScreenBlock = NULL;
iSplitScreenState.iPartialScreenEditorNode = NULL;
iSplitScreenState.iPartialScreenOpen = EFalse;
@@ -10096,59 +10100,23 @@
// -----------------------------------------------------------------------------
// SetPartialScreenBlockProgressionL
// -----------------------------------------------------------------------------
-void CXnUiEngineImpl::SetPartialScreenBlockProgressionL( const TDesC8& aBlockProgression )
- {
- CXnNode* plugin = FindPlugin( *iSplitScreenState.iPartialScreenEditorNode );
- CXnNode* parent( NULL );
- if( plugin )
- {
- parent = plugin->Parent();
- }
-
- CXnDomStringPool* sp( iUiEngine->ODT()->DomDocument().StringPool());
- if(parent)
- {
+void CXnUiEngineImpl::SetPartialScreenBlockProgressionL(
+ CXnNode* aParent, const TDesC8& aBlockProgression )
+ {
+ CXnDomStringPool* sp( iUiEngine->ODT()->DomDocument().StringPool());
+ if( aParent && sp )
+ {
CXnProperty* block_progression = CXnProperty::NewL(
- XnPropertyNames::style::common::KBlockProgression,
- aBlockProgression,
- CXnDomPropertyValue::EString, *sp );
-
- CleanupStack::PushL( block_progression );
- parent->SetPropertyL(block_progression);
- CleanupStack::Pop( block_progression );
- }
- }
-
-// -----------------------------------------------------------------------------
-// SetPartialScreenBlockProgressionL
-// -----------------------------------------------------------------------------
-void CXnUiEngineImpl::StorePartialScreenBlockProgressionL()
- {
- CXnNode* parent = iSplitScreenState.iPartialScreenEditorNode->Parent();
-
- if(parent)
- {
- CXnProperty* blocProgressionProperty(
- parent->GetPropertyL( XnPropertyNames::style::common::KBlockProgression ) );
- if ( !blocProgressionProperty )
- {
- User::Leave( KErrNotFound );
- }
- HBufC* blocProgressionValue (blocProgressionProperty->StringValueL());
- if ( !blocProgressionValue )
- {
- User::Leave( KErrNotFound );
- }
- CleanupStack::PushL( blocProgressionValue );
- if(iSplitScreenState.iPartialScreenBlock)
- {
- delete iSplitScreenState.iPartialScreenBlock;
- iSplitScreenState.iPartialScreenBlock = NULL;
- }
- iSplitScreenState.iPartialScreenBlock =
- CnvUtfConverter::ConvertFromUnicodeToUtf8L(blocProgressionValue->Des() );
- CleanupStack::PopAndDestroy( blocProgressionValue );
- }
+ XnPropertyNames::style::common::KBlockProgression,
+ aBlockProgression,
+ CXnDomPropertyValue::EString, *sp );
+ if ( block_progression )
+ {
+ CleanupStack::PushL( block_progression );
+ aParent->SetPropertyL(block_progression);
+ CleanupStack::Pop( block_progression );
+ }
+ }
}
// -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnuienginepluginif.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnuienginepluginif.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -28,7 +28,6 @@
#include "xneditor.h"
#include "xnviewdata.h"
#include "xndomnode.h"
-#include "xnhittest.h"
#include "xnpanic.h"
// ============================ MEMBER FUNCTIONS ===============================
@@ -182,15 +181,6 @@
}
// -----------------------------------------------------------------------------
-// TXnUiEnginePluginIf::RestorePreviousFocusedNode
-// Forwards the call to the ui engine implementation
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void TXnUiEnginePluginIf::RestorePreviousFocusedNode()
- {
- }
-
-// -----------------------------------------------------------------------------
// TXnUiEnginePluginIf::StringPool
// Forwards the call to the ui engine implementation
// -----------------------------------------------------------------------------
@@ -245,16 +235,6 @@
}
// -----------------------------------------------------------------------------
-// TXnUiEnginePluginIf::ActivateViewL
-// Activate a view
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void TXnUiEnginePluginIf::ActivateViewL( CXnNodePluginIf& aViewNode )
- {
- iUiEngine->ActivateViewL( aViewNode.Node() );
- }
-
-// -----------------------------------------------------------------------------
// TXnUiEnginePluginIf::ScreenDeviceSize
// Get the size of the current screen device
// -----------------------------------------------------------------------------
@@ -330,35 +310,8 @@
}
// -----------------------------------------------------------------------------
-// TXnUiEnginePluginIf::HitRegion
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CXnControlAdapter* TXnUiEnginePluginIf::HitRegion() const
- {
- return iUiEngine->HitTest().HitRegion();
- }
-
-// -----------------------------------------------------------------------------
-// TXnUiEnginePluginIf::DeactivateFocusedNodeL
-// Deactivates focused node
-// -----------------------------------------------------------------------------
+// TXnUiEnginePluginIf::PluginNodeL
//
-EXPORT_C void TXnUiEnginePluginIf::DeactivateFocusedNodeL()
- {
- }
-
-// -----------------------------------------------------------------------------
-// TXnUiEnginePluginIf::ShowFocus
-// Queries wheter focus is visible
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TBool TXnUiEnginePluginIf::ShowFocus()
- {
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// TXnUiEnginePluginIf::PluginNodeL
// -----------------------------------------------------------------------------
//
EXPORT_C CXnNodePluginIf& TXnUiEnginePluginIf::PluginNodeL(
@@ -393,44 +346,6 @@
}
// -----------------------------------------------------------------------------
-// TXnUiEnginePluginIf::SetFocusVisibleL
-// Sets focus visibility of active view
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void TXnUiEnginePluginIf::SetFocusVisibleL( TBool /*aVisible*/ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// TXnUiEnginePluginIf::FocusVisible
-// Gets focus visibility of active view
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TBool TXnUiEnginePluginIf::FocusVisible()
- {
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// TXnUiEnginePluginIf::EnableSwipeL
-// Sets swipe enabled or disabled
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void TXnUiEnginePluginIf::EnableSwipeL( TBool /*aEnable*/ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// TXnUiEnginePluginIf::SwipeEnabledL
-// queries whether swipe is enabled or not
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TBool TXnUiEnginePluginIf::SwipeEnabledL()
- {
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
// TXnUiEnginePluginIf::DisableRenderUiLC
//
// -----------------------------------------------------------------------------
@@ -461,6 +376,5 @@
return iUiEngine->IsTextEditorActive();
}
-
// End of file
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -367,6 +367,8 @@
iFlags.Set( EIsActivated );
+ // State must be cleared before adding to stack
+ iEventDispatcher->ClearStateL();
iAppUiAdapter.AddToStackL( *this, iEventDispatcher );
// enable statuspane transparancy
@@ -484,18 +486,20 @@
// -----------------------------------------------------------------------------
//
void CXnViewAdapter::ActivateContainerL( CXnViewData& aContainer,
- TBool aEnterEditState )
- {
- if ( iContainer == &aContainer || iFlags.IsSet( EIsDestructionRunning ) )
- {
+ TBool aEnterEditState, TBool aForceActivation )
+ {
+ // Returns if the container remains the same and activation is not forced
+ // Otherwise the old container is deactivated and the new is activated
+ if ( iFlags.IsSet( EIsDestructionRunning ) ||
+ ( ( !aForceActivation ) && ( iContainer == &aContainer ) ) )
+ {
return;
}
+ // Find previous container and then deactivate it
const CXnViewData* previous( iContainer );
-
- // Deactivate previous
DeactivateContainerL();
-
+
if ( iFlags.IsClear( EIsActivated ) )
{
// Some other view than this in this appui is currently active,
@@ -569,17 +573,15 @@
return;
}
- // Deactivate container even though it hasn't changed to close all popups
- // and other windows
- DeactivateContainerL();
-
// first view is default
CXnViewData* viewData = static_cast<CXnViewData*>( views[0] );
if ( viewData )
{
EnterEditStateL( *viewData, aEnterEditState );
- ActivateContainerL( *viewData, aEnterEditState );
+ // Deactivate container even though it hasn't changed to close all
+ // popups and other windows
+ ActivateContainerL( *viewData, aEnterEditState, ETrue );
}
}
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewcontroladapter.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewcontroladapter.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -59,9 +59,9 @@
//
void CXnViewControlAdapter::ConstructL( CXnNodePluginIf& aNode )
{
+ CreateWindowL();
+
CXnControlAdapter::ConstructL( aNode );
-
- CreateWindowL();
if( Window().SetTransparencyAlphaChannel() == KErrNone )
{
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -277,9 +277,7 @@
// -----------------------------------------------------------------------------
//
CXnViewManager::~CXnViewManager()
- {
- delete iUiStartupPhase;
-
+ {
delete iStabilityTimer;
iObservers.Reset();
@@ -304,33 +302,6 @@
}
// -----------------------------------------------------------------------------
-// CXnViewManager::PropertyChangedL()
-//
-// -----------------------------------------------------------------------------
-//
-void CXnViewManager::PropertyChangedL( const TUint32 aKey, const TInt aValue )
- {
- if ( aKey == KPSStartupUiPhase && aValue == EStartupUiPhaseAllDone )
- {
- iUiStartupPhaseAllDone = ETrue;
-
- iAppUiAdapter.ViewAdapter().ActivateContainerL( ActiveViewData() );
- }
-
- iUiStartupPhaseAllDone = ETrue;
- }
-
-// -----------------------------------------------------------------------------
-// CXnViewManager::UiStartupPhaseAllDone()
-//
-// -----------------------------------------------------------------------------
-//
-TBool CXnViewManager::UiStartupPhaseAllDone() const
- {
- return iUiStartupPhaseAllDone;
- }
-
-// -----------------------------------------------------------------------------
// CXnViewManager::ConstructL()
// 2nd phase constructor
// -----------------------------------------------------------------------------
@@ -374,14 +345,8 @@
CleanupStack::PopAndDestroy(); // DisableRenderUiLC();
- // Determine UI startup phase
- delete iUiStartupPhase;
- iUiStartupPhase = NULL;
-
- iUiStartupPhaseAllDone = EFalse;
-
- iUiStartupPhase = CXnPropertySubscriber::NewL(
- KPSUidStartup, KPSStartupUiPhase, *this );
+ // Activate initial view already here to get publishers loaded
+ ActiveViewData().SetActive( ETrue );
}
// -----------------------------------------------------------------------------
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnwaitdialog.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -0,0 +1,59 @@
+/*
+* 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:
+* implementation of wait dialog that doesn't consume key events.
+*
+*/
+
+// System includes
+
+// User includes
+#include "xnwaitdialog.h"
+
+// CONSTANTS
+
+// ============================ LOCAL FUNCTIONS ================================
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// ---------------------------------------------------------------------------
+// CXnWaitDialog::CXnWaitDialog
+// ---------------------------------------------------------------------------
+//
+CXnWaitDialog::CXnWaitDialog( CEikDialog** aSelfPtr,
+ TBool aVisibilityDelayOff )
+ : CAknWaitDialog( aSelfPtr, aVisibilityDelayOff )
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// CXnWaitDialog::~CXnWaitDialog
+// ---------------------------------------------------------------------------
+//
+CXnWaitDialog::~CXnWaitDialog()
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// CXnWaitDialog::OfferKeyEventL
+// ---------------------------------------------------------------------------
+//
+TKeyResponse CXnWaitDialog::OfferKeyEventL(
+ const TKeyEvent& /*aKeyEvent*/,
+ TEventCode /*aType*/ )
+ {
+ return EKeyWasConsumed; // consume all keys while open
+ }
+
+// End of file
--- a/idlehomescreen/xmluirendering/uiengine/src/xnwallpaperview.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnwallpaperview.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -37,6 +37,7 @@
#include "xnbackgroundmanager.h"
#include "xneffectmanager.h"
#include "xnviewmanager.h"
+#include "xnspbgcleaner.h"
// Constants
_LIT( KResourceDrive, "z:" );
@@ -100,7 +101,8 @@
{
CCoeEnv::Static()->DeleteResourceFile( iResourceOffset );
- delete iContainer;
+ delete iContainer;
+ delete iXnSpBgCleaner;
delete iTimer;
}
@@ -123,15 +125,22 @@
// switch layout
CEikStatusPane* sp( iAppUi.StatusPane() );
+ // setup status pane layout
sp->SwitchLayoutL( R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT );
+ // apply changes
sp->ApplyCurrentSettingsL();
-
// disable transparancy
- if ( sp->IsTransparent() )
+ sp->EnableTransparent( EFalse );
+
+ // create background cleaner for sp
+ if ( !iXnSpBgCleaner )
{
- sp->EnableTransparent( EFalse );
+ iXnSpBgCleaner = CXnSpBgCleaner::NewL();
+ AppUi()->AddToStackL( *this, iXnSpBgCleaner );
}
-
+
+ // update sp
+ iXnSpBgCleaner->DrawNow();
sp->DrawNow();
// update cba
@@ -181,6 +190,13 @@
iContainer = NULL;
}
+ if ( iXnSpBgCleaner )
+ {
+ AppUi()->RemoveFromStack( iXnSpBgCleaner );
+ delete iXnSpBgCleaner;
+ iXnSpBgCleaner = NULL;
+ }
+
iAppUi.EffectManager()->UiRendered();
}
--- a/idlehomescreen/xmluirendering/uiengine/src/xnwidgetextensionadapter.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnwidgetextensionadapter.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -19,16 +19,15 @@
#include <coecntrl.h>
#include <coemain.h>
#include <AknUtils.h>
+#include <gfxtranseffect/gfxtranseffect.h>
+#include <akntransitionutils.h>
// User includes
#include "xnwidgetextensionadapter.h"
#include "xncontroladapter.h"
-
#include "xncomponentnodeimpl.h"
#include "xncomponent.h"
-
#include "xnuiengine.h"
-#include "xnhittest.h"
#include "xnnode.h"
#include "xnnodepluginif.h"
@@ -46,9 +45,6 @@
#include "xnviewdata.h"
#include "xnplugindata.h"
-#include <gfxtranseffect/gfxtranseffect.h>
-#include <akntransitionutils.h>
-
// Constants
_LIT8( KPopup, "popup" );
_LIT8( KPositionHint, "_s60-position-hint" );
@@ -215,60 +211,9 @@
if ( aVisible && iPopup )
{
- // read position-hint property and set-up its variable
- CXnProperty* positionHintProp = NULL;
- TRAP_IGNORE( positionHintProp = iNode.Node().GetPropertyL( KPositionHint ) );
-
- if ( positionHintProp )
- {
- const TDesC8& displayHintVal = positionHintProp->StringValue();
-
- if ( displayHintVal == XnPropertyNames::tooltip::positionhint::KAboveLeft )
- {
- iPositionHint = EAboveLeft;
- }
- else if ( displayHintVal == XnPropertyNames::tooltip::positionhint::KAboveRight )
- {
- iPositionHint = EAboveRight;
- }
- else if ( displayHintVal == XnPropertyNames::tooltip::positionhint::KBelowLeft )
- {
- iPositionHint = EBelowLeft;
- }
- else if ( displayHintVal == XnPropertyNames::tooltip::positionhint::KBelowRight )
- {
- iPositionHint = EBelowRight;
- }
- else if ( displayHintVal == XnPropertyNames::tooltip::positionhint::KRight )
- {
- iPositionHint = ERight;
- }
- else if ( displayHintVal == XnPropertyNames::tooltip::positionhint::KLeft )
- {
- iPositionHint = ELeft;
- }
- else
- {
- // if the value if of unknown type, use default one
- if ( AknLayoutUtils::LayoutMirrored() )
- {
- iPositionHint = EAboveRight;
- }
- else
- {
- iPositionHint = EAboveLeft;
- }
- }
-
- if ( iPositionHint != ENone )
- {
- // the popup is going visible and position-hind is available
- // calculate its position
- CalculatePosition();
- }
- }
+ ChangePopupPosition();
}
-
+
TBool effectStarted = EFalse;
if ( iAppUiAdapter->IsForeground() )
{
@@ -373,10 +318,88 @@
//
void CXnWidgetExtensionAdapter::Draw( const TRect& aRect ) const
{
+ SystemGc().Clear( aRect );
CXnControlAdapter::Draw( aRect );
}
// -----------------------------------------------------------------------------
+// CXnWidgetExtensionAdapter::DoHandlePropertyChangeL
+//
+// -----------------------------------------------------------------------------
+//
+void CXnWidgetExtensionAdapter::DoHandlePropertyChangeL( CXnProperty* /*aProperty*/ )
+ {
+ if( iNode.Node().IsLaidOut() && IsVisible() )
+ {
+ ChangePopupPosition();
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CXnWidgetExtensionAdapter::ChangePopupPosition
+//
+// -----------------------------------------------------------------------------
+//
+void CXnWidgetExtensionAdapter::ChangePopupPosition()
+ {
+ if ( iPopup )
+ {
+ // read position-hint property and set-up its variable
+ CXnProperty* positionHintProp = NULL;
+ TRAP_IGNORE( positionHintProp = iNode.Node().GetPropertyL( KPositionHint ) );
+
+ if ( positionHintProp )
+ {
+ const TDesC8& displayHintVal = positionHintProp->StringValue();
+
+ if ( displayHintVal == XnPropertyNames::tooltip::positionhint::KAboveLeft )
+ {
+ iPositionHint = EAboveLeft;
+ }
+ else if ( displayHintVal == XnPropertyNames::tooltip::positionhint::KAboveRight )
+ {
+ iPositionHint = EAboveRight;
+ }
+ else if ( displayHintVal == XnPropertyNames::tooltip::positionhint::KBelowLeft )
+ {
+ iPositionHint = EBelowLeft;
+ }
+ else if ( displayHintVal == XnPropertyNames::tooltip::positionhint::KBelowRight )
+ {
+ iPositionHint = EBelowRight;
+ }
+ else if ( displayHintVal == XnPropertyNames::tooltip::positionhint::KRight )
+ {
+ iPositionHint = ERight;
+ }
+ else if ( displayHintVal == XnPropertyNames::tooltip::positionhint::KLeft )
+ {
+ iPositionHint = ELeft;
+ }
+ else
+ {
+ // if the value if of unknown type, use default one
+ if ( AknLayoutUtils::LayoutMirrored() )
+ {
+ iPositionHint = EAboveRight;
+ }
+ else
+ {
+ iPositionHint = EAboveLeft;
+ }
+ }
+
+ if ( iPositionHint != ENone )
+ {
+ // the popup is going visible and position-hind is available
+ // calculate its position
+ CalculatePosition();
+ }
+ }
+ }
+ }
+
+// -----------------------------------------------------------------------------
// CalculatePosition
// This is used only for popup element with position hint
// -----------------------------------------------------------------------------
@@ -385,8 +408,8 @@
// widget's rectangle
TRect controlRect;
- // get popup's window size
- TRect popupRect = this->Rect();
+ // get popup's size.
+ TSize popupSize = iNode.BorderRect().Size();
TRect clientRect = static_cast<CEikAppUi&>( *iAppUiAdapter ).ClientRect();
@@ -434,16 +457,16 @@
// if this position does not fit the screen,
// and if below left is more suitable, use it
- if ( spaceAbove < popupRect.Height() && spaceBelow > spaceAbove )
+ if ( spaceAbove < popupSize.iHeight && spaceBelow > spaceAbove )
{
rect = TRect( TPoint( controlRect.iTl.iX, controlRect.iBr.iY ),
- TPoint( controlRect.iTl.iX + popupRect.Width(), controlRect.iBr.iY + popupRect.Height() ) );
+ TPoint( controlRect.iTl.iX + popupSize.iWidth, controlRect.iBr.iY + popupSize.iHeight ) );
}
else
{
// use the above-left position
- rect = TRect( TPoint( controlRect.iTl.iX, controlRect.iTl.iY - popupRect.Height() ),
- TPoint( controlRect.iTl.iX + popupRect.Width(), controlRect.iTl.iY ) );
+ rect = TRect( TPoint( controlRect.iTl.iX, controlRect.iTl.iY - popupSize.iHeight ),
+ TPoint( controlRect.iTl.iX + popupSize.iWidth, controlRect.iTl.iY ) );
}
break;
@@ -452,15 +475,15 @@
// if this position does not fit the screen,
// and if below right is more suitable, use it
- if ( spaceAbove < popupRect.Height() && spaceBelow > spaceAbove )
+ if ( spaceAbove < popupSize.iHeight && spaceBelow > spaceAbove )
{
- rect = TRect( TPoint( controlRect.iBr.iX - popupRect.Width(), controlRect.iBr.iY ),
- TPoint( controlRect.iBr.iX, controlRect.iBr.iY + popupRect.Height() ) );
+ rect = TRect( TPoint( controlRect.iBr.iX - popupSize.iWidth, controlRect.iBr.iY ),
+ TPoint( controlRect.iBr.iX, controlRect.iBr.iY + popupSize.iHeight ) );
}
else
{
// use the above-right position
- rect = TRect( TPoint( controlRect.iBr.iX - popupRect.Width(), controlRect.iTl.iY - popupRect.Height() ),
+ rect = TRect( TPoint( controlRect.iBr.iX - popupSize.iWidth, controlRect.iTl.iY - popupSize.iHeight ),
TPoint( controlRect.iBr.iX, controlRect.iTl.iY ) );
}
break;
@@ -469,16 +492,16 @@
// if this position does not fit the screen,
// and if above left is more suitable, use it
- if ( spaceBelow < popupRect.Height() && spaceBelow < spaceAbove )
+ if ( spaceBelow < popupSize.iHeight && spaceBelow < spaceAbove )
{
- rect = TRect( TPoint( controlRect.iTl.iX, controlRect.iTl.iY - popupRect.Height() ),
- TPoint( controlRect.iTl.iX + popupRect.Width(), controlRect.iTl.iY ) );
+ rect = TRect( TPoint( controlRect.iTl.iX, controlRect.iTl.iY - popupSize.iHeight ),
+ TPoint( controlRect.iTl.iX + popupSize.iWidth, controlRect.iTl.iY ) );
}
else
{
// use the below-left position
rect = TRect( TPoint( controlRect.iTl.iX, controlRect.iBr.iY ),
- TPoint( controlRect.iTl.iX + popupRect.Width(), controlRect.iBr.iY + popupRect.Height() ) );
+ TPoint( controlRect.iTl.iX + popupSize.iWidth, controlRect.iBr.iY + popupSize.iHeight ) );
}
break;
@@ -486,16 +509,16 @@
// if this position does not fit the screen,
// and if above right is more suitable, use it
- if ( spaceBelow < popupRect.Height() && spaceBelow < spaceAbove )
+ if ( spaceBelow < popupSize.iHeight && spaceBelow < spaceAbove )
{
- rect = TRect( TPoint( controlRect.iBr.iX - popupRect.Width(), controlRect.iTl.iY - popupRect.Height() ),
+ rect = TRect( TPoint( controlRect.iBr.iX - popupSize.iWidth, controlRect.iTl.iY - popupSize.iHeight ),
TPoint( controlRect.iBr.iX, controlRect.iTl.iY ) );
}
else
{
// use the below-right position
- rect = TRect( TPoint( controlRect.iBr.iX - popupRect.Width(), controlRect.iBr.iY ),
- TPoint( controlRect.iBr.iX, controlRect.iBr.iY + popupRect.Height() ) );
+ rect = TRect( TPoint( controlRect.iBr.iX - popupSize.iWidth, controlRect.iBr.iY ),
+ TPoint( controlRect.iBr.iX, controlRect.iBr.iY + popupSize.iHeight ) );
}
break;
@@ -503,33 +526,33 @@
// if this position does not fit the screen,
// and if left or above-left is more suitable, use it
- if ( spaceRight < popupRect.Width() )
+ if ( spaceRight < popupSize.iWidth )
{
// use the left position if the space is big enough
- if ( spaceLeft >= popupRect.Width() )
+ if ( spaceLeft >= popupSize.iWidth )
{
// use left position
- rect = TRect( TPoint( controlRect.iTl.iX - popupRect.Width(), controlRect.iTl.iY ),
- TPoint( controlRect.iTl.iX, controlRect.iTl.iY + popupRect.Height() ) );
+ rect = TRect( TPoint( controlRect.iTl.iX - popupSize.iWidth, controlRect.iTl.iY ),
+ TPoint( controlRect.iTl.iX, controlRect.iTl.iY + popupSize.iHeight ) );
}
- else if ( spaceAbove >= popupRect.Height() )
+ else if ( spaceAbove >= popupSize.iHeight )
{
// use the above-right position
- rect = TRect( TPoint( controlRect.iBr.iX - popupRect.Width(), controlRect.iTl.iY - popupRect.Height() ),
+ rect = TRect( TPoint( controlRect.iBr.iX - popupSize.iWidth, controlRect.iTl.iY - popupSize.iHeight ),
TPoint( controlRect.iBr.iX, controlRect.iTl.iY ) );
}
else
{
// use the below-right position
- rect = TRect( TPoint( controlRect.iBr.iX - popupRect.Width(), controlRect.iBr.iY ),
- TPoint( controlRect.iBr.iX, controlRect.iBr.iY + popupRect.Height() ) );
+ rect = TRect( TPoint( controlRect.iBr.iX - popupSize.iWidth, controlRect.iBr.iY ),
+ TPoint( controlRect.iBr.iX, controlRect.iBr.iY + popupSize.iHeight ) );
}
}
else
{
// use the right position
rect = TRect( TPoint( controlRect.iBr.iX, controlRect.iTl.iY ),
- TPoint( controlRect.iBr.iX + popupRect.Width(), controlRect.iTl.iY + popupRect.Height() ) );
+ TPoint( controlRect.iBr.iX + popupSize.iWidth, controlRect.iTl.iY + popupSize.iHeight ) );
}
break;
@@ -538,32 +561,32 @@
// if this position does not fit the screen,
// and if right is more suitable, use it
- if ( spaceLeft < popupRect.Width() )
+ if ( spaceLeft < popupSize.iWidth )
{
// use the right position, if it the space is big enough
- if ( spaceRight >= popupRect.Width() )
+ if ( spaceRight >= popupSize.iWidth )
{
rect = TRect( TPoint( controlRect.iBr.iX, controlRect.iTl.iY ),
- TPoint( controlRect.iBr.iX + popupRect.Width(), controlRect.iTl.iY + popupRect.Height() ) );
+ TPoint( controlRect.iBr.iX + popupSize.iWidth, controlRect.iTl.iY + popupSize.iHeight ) );
}
- else if ( spaceAbove >= popupRect.Height() )
+ else if ( spaceAbove >= popupSize.iHeight )
{
// use the above-left position
- rect = TRect( TPoint( controlRect.iTl.iX, controlRect.iTl.iY - popupRect.Height() ),
- TPoint( controlRect.iTl.iX + popupRect.Width(), controlRect.iTl.iY ) );
+ rect = TRect( TPoint( controlRect.iTl.iX, controlRect.iTl.iY - popupSize.iHeight ),
+ TPoint( controlRect.iTl.iX + popupSize.iWidth, controlRect.iTl.iY ) );
}
else
{
// use the below-left position
rect = TRect( TPoint( controlRect.iTl.iX, controlRect.iBr.iY ),
- TPoint( controlRect.iTl.iX + popupRect.Width(), controlRect.iBr.iY + popupRect.Height() ) );
+ TPoint( controlRect.iTl.iX + popupSize.iWidth, controlRect.iBr.iY + popupSize.iHeight ) );
}
}
else
{
// use the left position
- rect = TRect( TPoint( controlRect.iTl.iX - popupRect.Width(), controlRect.iTl.iY ),
- TPoint( controlRect.iTl.iX, controlRect.iTl.iY + popupRect.Height() ) );
+ rect = TRect( TPoint( controlRect.iTl.iX - popupSize.iWidth, controlRect.iTl.iY ),
+ TPoint( controlRect.iTl.iX, controlRect.iTl.iY + popupSize.iHeight ) );
}
break;
default:
--- a/menufw/menufwui/matrixmenu/loc/matrix_menu.loc Wed Mar 31 21:17:19 2010 +0300
+++ b/menufw/menufwui/matrixmenu/loc/matrix_menu.loc Wed Apr 14 15:47:59 2010 +0300
@@ -29,13 +29,13 @@
//d: Displayed in Status Pane.
//l: title_pane_t2/opt9
//r: 1.0
-#define qtn_org_root_editing_title "Organizing Menu"
+#define qtn_org_root_editing_title "Editing Menu"
//d: Title of a folder in Edit Mode.
//d: Displayed in Status Pane. %U is the name of the opened folder.
//l: title_pane_t2/opt9
//r: 1.0
-#define qtn_org_folder_editing_title "Organizing %U"
+#define qtn_org_folder_editing_title "Editing %U"
//d: Label of the menu item.
//d: Opens selected item.
--- a/taskswitcher/contextengine/rom/tscontextservices.iby Wed Mar 31 21:17:19 2010 +0300
+++ b/taskswitcher/contextengine/rom/tscontextservices.iby Wed Apr 14 15:47:59 2010 +0300
@@ -21,10 +21,5 @@
// Context Services binaries
file=ABI_DIR/BUILD_DIR/tscontextservicesutils.dll SHARED_LIB_DIR/tscontextservicesutils.dll
-// backup registration
-data=DATAZ_/private/20011417/backup_registration.xml private/20011417/backup_registration.xml
-
-// stub sis
-data=ZSYSTEM/install/tsctxsrv_stub.sis system/install/tsctxsrv_stub.sis
#endif // TSCONTEXTSERVICES
--- a/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswengine.h Wed Mar 31 21:17:19 2010 +0300
+++ b/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswengine.h Wed Apr 14 15:47:59 2010 +0300
@@ -105,6 +105,7 @@
*/
IMPORT_C TUid ForegroundAppUidL( TInt aType );
+public:
/**
* Callback for rotation completion. Takes ownership of a given
* bitmap.
@@ -168,17 +169,6 @@
TUid AppUidForWgIdL( TInt aWgId );
/**
- * Finds out the application name.
- * @param aWindowName window group name or NULL
- * @param aAppUId application uid
- * @param aWgId window group id
- * @return application name, ownership transferred to caller
- */
- HBufC* FindAppNameLC( CApaWindowGroupName* aWindowName,
- const TUid& aAppUid,
- TInt aWgId );
-
- /**
* Makes a copy of the bitmap with the given handle.
* @param aFbsHandle bitmap handle
* @param aKeepAspectRatio if true then aspect ratio is kept
--- a/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswobservers.h Wed Mar 31 21:17:19 2010 +0300
+++ b/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswobservers.h Wed Apr 14 15:47:59 2010 +0300
@@ -56,12 +56,6 @@
* Called when there is a change in the task list.
*/
virtual void FswDataChanged() = 0;
-
- /**
- * Called to find out how many clients are subscribed
- * for fsw content change notifications.
- */
- virtual TInt FswDataListenerCount() = 0;
};
/**
--- a/taskswitcher/contextengine/tsfswserver/engine/src/tscpsnotifier.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/taskswitcher/contextengine/tsfswserver/engine/src/tscpsnotifier.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -18,10 +18,10 @@
#include "tscpsnotifier.h"
#include "tsfswengine.h"
-#include <LiwServiceHandler.h>
-#include <LiwVariant.h>
-#include <LiwGenericParam.h>
-#include <Liwcommon.h>
+#include <liwservicehandler.h>
+#include <liwvariant.h>
+#include <liwgenericparam.h>
+#include <liwcommon.h>
#include <liwcommon.hrh>
_LIT8( KCPService, "Service.ContentPublishing" );
--- a/taskswitcher/contextengine/tsfswserver/engine/src/tsfswengine.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/taskswitcher/contextengine/tsfswserver/engine/src/tsfswengine.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -380,55 +380,6 @@
}
// --------------------------------------------------------------------------
-// CTsFswEngine::FindAppNameLC
-// --------------------------------------------------------------------------
-//
-HBufC* CTsFswEngine::FindAppNameLC( CApaWindowGroupName* aWindowName,
- const TUid& aAppUid,
- TInt aWgId )
- {
- //Retrieve the app name
- TApaAppInfo info;
- iAppArcSession.GetAppInfo( info, aAppUid );
- TPtrC caption = info.iShortCaption;
-
- HBufC* tempName = 0;
- if ( !caption.Length() && aWindowName ) // if not set - use thread name instead
- {
- if ( aWindowName->Caption().Length() )
- {
- tempName = aWindowName->Caption().AllocL();
- //put on cleanupstack after the if
- }
- else
- {
- TThreadId threadId;
- TInt err = iWsSession.GetWindowGroupClientThreadId(
- aWgId, threadId );
- if ( err == KErrNone )
- {
- RThread thread;
- CleanupClosePushL( thread );
- err = thread.Open ( threadId );
- if ( err==KErrNone )
- {
- tempName = thread.Name().AllocL(); // codescanner::forgottoputptroncleanupstack
- // tempName put on cleanupstack after the if
- }
- CleanupStack::PopAndDestroy( &thread );
- }
- }
- }
- else
- {
- tempName = caption.AllocL();
- //put on cleanupstack after the if
- }
- CleanupStack::PushL( tempName );
- return tempName;
- }
-
-// --------------------------------------------------------------------------
// CTsFswEngine::CopyBitmapL
// --------------------------------------------------------------------------
//
--- a/taskswitcher/contextengine/tsfswserver/engine/src/tsfswiconcache.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/taskswitcher/contextengine/tsfswserver/engine/src/tsfswiconcache.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -23,8 +23,8 @@
#include <avkon.mbg>
// size for the created app icons
-const TInt KAppIconWidth = 96;
-const TInt KAppIconHeight = 96;
+const TInt KAppIconWidth = 300;
+const TInt KAppIconHeight = 300;
// --------------------------------------------------------------------------
// CTsFswIconCache::NewL
--- a/taskswitcher/contextengine/tsfswserver/server/inc/tsfswserver.h Wed Mar 31 21:17:19 2010 +0300
+++ b/taskswitcher/contextengine/tsfswserver/server/inc/tsfswserver.h Wed Apr 14 15:47:59 2010 +0300
@@ -66,8 +66,6 @@
// from MTsFswEngineObserver
void FswDataChanged();
- TInt FswDataListenerCount();
-
private:
TInt iSessionCount;
CTsFswEngine* iEngine;
--- a/taskswitcher/contextengine/tsfswserver/server/src/tsfswserver.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/taskswitcher/contextengine/tsfswserver/server/src/tsfswserver.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -188,25 +188,6 @@
}
// --------------------------------------------------------------------------
-// CTsFswServer::FswDataListenersCount
-// callback from engine
-// --------------------------------------------------------------------------
-//
-TInt CTsFswServer::FswDataListenerCount()
- {
- TInt n = 0;
- iSessionIter.SetToFirst();
- while ( CTsFswSession* session = static_cast<CTsFswSession*>( iSessionIter++ ) )
- {
- if ( session->IsListening() )
- {
- ++n;
- }
- }
- return n;
- }
-
-// --------------------------------------------------------------------------
// RunServerL
// --------------------------------------------------------------------------
//
--- a/taskswitcher/taskswitcherui/taskswitcherapp/data/taskswitcher_reg.rss Wed Mar 31 21:17:19 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/data/taskswitcher_reg.rss Wed Apr 14 15:47:59 2010 +0300
@@ -27,5 +27,6 @@
app_file="taskswitcher";
localisable_resource_file="\\resource\\apps\\taskswitcher";
localisable_resource_id = R_LOCALISABLE_APP_INFO;
- hidden=KAppIsHidden;
+ hidden = KAppIsHidden;
+ launch = KAppLaunchInBackground;
}
--- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappui.h Wed Mar 31 21:17:19 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappui.h Wed Apr 14 15:47:59 2010 +0300
@@ -51,7 +51,8 @@
ENoneTransition = 0,
EForegroundTransition = 3,
EBackgroundTransition = 4,
- EActivationTransition = 5
+ EActivationTransition = 5,
+ EActivationAppShowTransition = 1507,
};
/**
@@ -80,7 +81,9 @@
/**
* Function start transition
*/
- void StartTransion( TUint aTransitionType );
+ void StartTransion( TUint aTransitionType,
+ TUid aNextAppUid = TUid::Null(),
+ TInt aWgId = 0 );
/**
* from MGfxTransEffectObserver
@@ -88,7 +91,9 @@
void TransitionFinished(const CCoeControl* aControl, TUint aAction);
void MoveAppToForeground( TUint aTransitionType );
- void MoveAppToBackground( TUint aTransitionType );
+ void MoveAppToBackground( TUint aTransitionType,
+ TUid aAppUid = TUid::Null(),
+ TInt aWgId = 0 );
/**
* Functions for showing/hiding popups.
@@ -117,11 +122,15 @@
void HandleResourceChangeL( TInt aType );
void HandleForegroundEventL( TBool aForeground );
void HandleCommandL( TInt aCommand );
+ void HandleWsEventL(const TWsEvent& aEvent,
+ CCoeControl* aDestination);
void StartTransition( TUint aTranstionId,
TBool aVisibility,
TBool aLayers,
TUint aSubCom );
+
+ void StartAppActivateTransition( TUid aNextAppUid, TInt aWgId );
private: // New functions
@@ -149,8 +158,33 @@
* task switcher app
*/
void FreeMemoryRequest();
+
+ /**
+ * Returns id of window group lying beneath task
+ * switcher window group.
+ * In case of embeded app it returns top paren window group.
+ *
+ * @param aIgnoreParentChild if set to ETrue, parent/child relationship
+ * will be ignored when deteriminig window
+ * group id
+ */
+ TInt WgIdOfUnderlyingApp( TBool aIgnoreParentChild );
static TInt GoToBackgroundTimerCallback( TAny* aParam );
+
+ /*
+ * Returns id of top parent window group for embeded window group.
+ * @param aChildWg embeded window group id
+ * @return top parent window group id or 0 in case od standlalone
+ */
+ TInt GetTopParentWg( TInt aChildWg);
+
+ /*
+ * Returns id of parent window group for embeded window group.
+ * @param aChildWg embeded window group id
+ * @return parent window group id or 0 in case od standlalone
+ */
+ TInt GetParentWg( TInt aChildWg );
private:
@@ -191,6 +225,8 @@
TBool iUiStarted;
TBool iDisableAppKeyHandling;
+ TInt iUnderAppWgId;
+
};
#endif // TSAPPUI_H
--- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappview.h Wed Mar 31 21:17:19 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappview.h Wed Apr 14 15:47:59 2010 +0300
@@ -108,6 +108,15 @@
* background redraw.
*/
void EnableDragEvents( TBool aEnable );
+
+ /**
+ * Checks if app with the given wg id is closing
+ *
+ * @param aWgId id of window group which is checked
+ * if it is closing
+ * @return ETrue if application is being closed, EFalse otherwise
+ */
+ TBool AppCloseInProgress( TInt aWgId );
protected:
// from MCoeControlObserver
@@ -192,8 +201,11 @@
TTouchFeedbackType aFeedbackType,
const TPointerEvent& aPointerEvent);
-
-
+ /**
+ * Area, where drag events are being handled.
+ */
+ TRect DragArea();
+
public://From MTsEventControlerObserver
/**
* Declare drag gesture handling.
--- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h Wed Mar 31 21:17:19 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h Wed Apr 14 15:47:59 2010 +0300
@@ -218,6 +218,11 @@
*/
TPoint ViewPos()const;
+ /**
+ * Checks if the app with the given window group id is closing
+ */
+ TBool IsAppClosing( TInt aWgId );
+
public:
// from CCoeControl
TInt CountComponentControls() const;
@@ -270,6 +275,11 @@
void ReCreateGridL();
/**
+ * Setup grid layout
+ */
+ void LayoutGridL();
+
+ /**
* Returns rectangles for fast swap area controls
*/
void GetFastSwapAreaRects( RArray<TAknLayoutRect>& aRects );
@@ -431,6 +441,7 @@
// Key event handling
TBool iConsumeEvent;
TBool iKeyEvent;
+ RArray<TInt> iIsClosing;
};
#endif // TSFASTSWAPAREA_H
--- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapgrid.h Wed Mar 31 21:17:19 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapgrid.h Wed Apr 14 15:47:59 2010 +0300
@@ -175,6 +175,21 @@
* Returns visible view. Items outside of visible rectangle are not drawn.
*/
TRect VisibleViewRect();
+
+ /**
+ * Updates layout data for item drawer. Should be called when
+ * layout maybe out of date
+ */
+ void UpdateItemDrawerLayoutDataL();
+
+ /**
+ * Enables/disables avkon event handling.
+ *
+ * @param aEnable if set to ETrue, pointer events will be forwarded
+ * to CAknGrid base class if necessary. If set to EFalse,
+ * no pointer events will be forwarded.
+ */
+ void EnableAknEventHandling( TBool aEnable );
private: // From CAknGrid
virtual void CreateItemDrawerL();
@@ -211,6 +226,9 @@
// Visible view rectangle (horizontal scrolling support)
TRect iVisibleViewRect;
+
+ // Flag controlling input handling by grid
+ TBool iAknEventHandlingEnabled;
};
@@ -223,8 +241,7 @@
public: // Constructor and destructor
CTsGridItemDrawer( CTsFastSwapGrid* aGrid,
- CFormattedCellListBoxData* aData,
- TRect aScreenRect );
+ CFormattedCellListBoxData* aData );
~CTsGridItemDrawer();
public: // New functions
@@ -292,6 +309,14 @@
* @param aStrokeSize size of the stroke rectangle
*/
void SetStrokeOffset( TPoint aStrokeOffset, TSize aStrokeSize );
+
+ /**
+ * Set screen rectangle, used by the item drawer to determine
+ * drawn area.
+ *
+ * @param aRect screen rectangle
+ */
+ void SetScreenRect( TRect aRect );
private: // From CFormattedCellListBoxItemDrawer
void DrawActualItem( TInt aItemIndex, const TRect& aActualItemRect,
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -60,7 +60,9 @@
// time to wait before sending the task to background
// (must give time to animation)
-const TInt KWaitBeforeGoingToBackground = 175000;
+const TInt KWaitBeforeGoingToBackground = 200000;
+
+const TUid KTsAppUid = { KTsAppUidValue };
// -----------------------------------------------------------------------------
// CTsAppUi::ConstructL()
@@ -118,6 +120,7 @@
// Create custom window group
iWg = RWindowGroup(CCoeEnv::Static()->WsSession());
iWg.Construct((TUint32)&iWg, ETrue);
+ iWg.EnableScreenChangeEvents();
// Create UI
iAppView = CTsAppView::NewL( ApplicationRect(), *iDeviceState, iWg );
@@ -147,6 +150,9 @@
iEikonEnv->RootWin().SetOrdinalPosition(-1, ECoeWinPriorityNeverAtFront);
iEikonEnv->RootWin().EnableReceiptOfFocus(EFalse);
+ RWindowGroup& windowGroup = CCoeEnv::Static()->RootWin();
+ windowGroup.EnableGroupListChangeEvents();
+
iIsPopUpShown = EFalse;
iUiStarted = EFalse;
iDisableAppKeyHandling = EFalse;
@@ -209,7 +215,7 @@
// CTsAppUi::StartTransion
// -----------------------------------------------------------------------------
//
-void CTsAppUi::StartTransion( TUint aTransitionType )
+void CTsAppUi::StartTransion( TUint aTransitionType, TUid aNextAppUid, TInt aWgId )
{
if( !EffectsEnabled() )
{
@@ -230,10 +236,7 @@
CAknTransitionUtils::EForceInvisible );
break;
case EActivationTransition:
- StartTransition( aTransitionType,
- EFalse,
- ETrue,
- CAknTransitionUtils::EForceInvisible );
+ StartAppActivateTransition( aNextAppUid, aWgId );
break;
}
}
@@ -262,6 +265,46 @@
}
// -----------------------------------------------------------------------------
+// CTsAppUi::StartAppActivateTransition
+// -----------------------------------------------------------------------------
+//
+void CTsAppUi::StartAppActivateTransition( TUid aNextAppUid, TInt aWgId )
+ {
+ // Check what type of transition will be trigerred
+ if ( aWgId == iUnderAppWgId )
+ {
+ // App under task switcher was launched
+ StartTransition( EActivationTransition,
+ EFalse,
+ ETrue,
+ CAknTransitionUtils::EForceInvisible );
+ }
+ else
+ {
+ // App start animation
+ TRAP_IGNORE( RequestPopUpL() );
+ const TDesC8* ptr = reinterpret_cast<const TDesC8*>(iAppView);
+ GfxTransEffect::Abort(iAppView);
+ TInt groupId = GfxTransEffect::BeginGroup();
+ GfxTransEffect::BeginFullScreen(
+ EActivationAppShowTransition, ApplicationRect(),
+ AknTransEffect::EParameterType,
+ AknTransEffect::GfxTransParam( aNextAppUid , KTsAppUid ) );
+ GfxTransEffect::Begin( iAppView, EActivationTransition );
+ GfxTransEffect::SetDemarcation( iAppView, iAppView->Rect() );
+ GfxTransEffect::NotifyExternalState( ECaptureComponentsBegin, ptr );
+ iAppView->MakeVisible( EFalse );
+ CAknTransitionUtils::MakeVisibleSubComponents(
+ iAppView,
+ static_cast<CAknTransitionUtils::TMakeVisibleSubComponentsInfo>(CAknTransitionUtils::EForceInvisible) );
+ GfxTransEffect::NotifyExternalState( ECaptureComponentsEnd, ptr );
+ GfxTransEffect::End( iAppView );
+ GfxTransEffect::EndFullScreen();
+ GfxTransEffect::EndGroup(groupId);
+ }
+ }
+
+// -----------------------------------------------------------------------------
// CTsAppUi::TransitionFinished
// -----------------------------------------------------------------------------
//
@@ -446,7 +489,7 @@
// CTsAppUi::MoveAppToBackground()
// -----------------------------------------------------------------------------
//
-void CTsAppUi::MoveAppToBackground( TUint aTransitionType )
+void CTsAppUi::MoveAppToBackground( TUint aTransitionType, TUid aAppUid, TInt aWgId )
{
TSLOG_CONTEXT( MoveAppToBackground, TSLOG_LOCAL );
TSLOG_IN();
@@ -457,7 +500,7 @@
}
else
{
- StartTransion(aTransitionType);
+ StartTransion(aTransitionType, aAppUid, aWgId);
iGoToBackgroundTimer->Cancel();
iGoToBackgroundTimer->Start(
KWaitBeforeGoingToBackground,
@@ -698,4 +741,98 @@
return retVal;
}
+
+// -----------------------------------------------------------------------------
+// CTsAppUi::HandleWsEventL
+// -----------------------------------------------------------------------------
+//
+void CTsAppUi::HandleWsEventL(const TWsEvent& aEvent,
+ CCoeControl* aDestination)
+ {
+ CAknAppUi::HandleWsEventL(aEvent, aDestination);
+ TInt eventType = aEvent.Type();
+ if ( eventType == EEventWindowGroupListChanged )
+ {
+ TInt wgId = WgIdOfUnderlyingApp(EFalse);
+ if ( iForeground &&
+ wgId != iUnderAppWgId &&
+ !iAppView->AppCloseInProgress(iUnderAppWgId) )
+ {
+ MoveAppToBackground( ENoneTransition );
+ }
+ if ( WgIdOfUnderlyingApp(ETrue) != iUnderAppWgId )
+ {
+ HandleResourceChangeL(KEikDynamicLayoutVariantSwitch);
+ }
+ iUnderAppWgId = wgId;
+ }
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTsAppUi::WgIdOfUnderlyingApp
+// -----------------------------------------------------------------------------
+//
+TInt CTsAppUi::WgIdOfUnderlyingApp( TBool aIgnoreParentChild )
+ {
+ TInt retVal(0);
+ TApaTaskList taskList( iEikonEnv->WsSession() );
+ TInt underlyingWg = taskList.FindByPos(0).WgId();
+ if ( aIgnoreParentChild )
+ {
+ retVal = underlyingWg;
+ }
+ else
+ {
+ TInt parentWg = GetTopParentWg( underlyingWg );
+ retVal = parentWg ? parentWg : underlyingWg;
+ }
+ return retVal;
+ }
+
+// -----------------------------------------------------------------------------
+// CTsAppUi::GetTopParentWg
+// -----------------------------------------------------------------------------
+//
+TInt CTsAppUi::GetTopParentWg( TInt aChildWg )
+ {
+ TInt parentWg = GetParentWg( aChildWg );
+ if( parentWg )
+ {
+ TInt topParentWg = GetTopParentWg( parentWg );
+ if( topParentWg )
+ {
+ parentWg = topParentWg;
+ }
+ }
+ return parentWg;
+ }
+
+// -----------------------------------------------------------------------------
+// CTsAppUi::GetParentWg
+// -----------------------------------------------------------------------------
+//
+TInt CTsAppUi::GetParentWg( TInt aChildWg )
+ {
+ TInt retVal(0);
+ RArray<RWsSession::TWindowGroupChainInfo> allWgIds;
+ // Ask for window group list from RWsSession
+ TInt error = iEikonEnv->WsSession().WindowGroupList( 0, &allWgIds );
+ if ( !error )
+ {
+ TInt count( allWgIds.Count() );
+ for ( TInt i( 0 ); i < count; i++ )
+ {
+ RWsSession::TWindowGroupChainInfo info = allWgIds[i];
+ if ( info.iId == aChildWg && info.iParentId > 0)
+ {
+ retVal = info.iParentId;
+ break;
+ }
+ }
+ }
+ allWgIds.Close();
+ return retVal;
+ }
+
// End of file
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappview.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappview.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -457,6 +457,10 @@
TSLOG_CONTEXT( CTsAppView::HandleSwitchToForegroundEvent, TSLOG_LOCAL );
TSLOG_IN();
+ // Forward event to interested controls
+ iFastSwapArea->HandleSwitchToForegroundEvent();
+ iFastSwapArea->UpdateComponentVisibility();
+
// Check for layout updates
CTsAppUi* appUi = static_cast<CTsAppUi*>(iCoeEnv->AppUi());
if ( iViewRect != appUi->ApplicationRect() &&
@@ -477,10 +481,6 @@
// Focus jumps back to fsw
ChangeFocus( iFastSwapArea );
- // Forward event to interested controls
- iFastSwapArea->HandleSwitchToForegroundEvent();
- iFastSwapArea->UpdateComponentVisibility();
-
// Start animation
CTsAppUi* appui =
static_cast<CTsAppUi*>( iEikonEnv->AppUi() );
@@ -614,9 +614,8 @@
{
LaunchFeedback(ETouchFeedbackBasic, TTouchFeedbackType(
ETouchFeedbackVibra | ETouchFeedbackAudio), aPointerEvent);
- if ( !( iFastSwapArea->Rect().Contains(aPointerEvent.iParentPosition) ||
- iAppsHeading->Rect().Contains(aPointerEvent.iParentPosition)
- ) )
+
+ if( !DragArea().Contains(aPointerEvent.iParentPosition))
{
//move task switcher to background
iEvtHandler->EnableEventHandling(EFalse);
@@ -730,13 +729,7 @@
//
void CTsAppView::DragL(const MAknTouchGestureFwDragEvent& aEvent)
{
- if( aEvent.State() == EAknTouchGestureFwStop )
- {
- LaunchFeedback(ETouchFeedbackBasic, TTouchFeedbackType(
- ETouchFeedbackVibra | ETouchFeedbackAudio), TPointerEvent());
- }
- if( iFastSwapArea->Rect().Contains(aEvent.StartPosition()) ||
- iAppsHeading->Rect().Contains(aEvent.StartPosition()) )
+ if(DragArea().Contains(aEvent.StartPosition()))
{
iFastSwapArea->DragL(aEvent);
}
@@ -778,6 +771,34 @@
}
+// -----------------------------------------------------------------------------
+// CTsAppView::AppCloseInProgress()
+// -----------------------------------------------------------------------------
+//
+TBool CTsAppView::AppCloseInProgress( TInt aWgId )
+ {
+ return iFastSwapArea->IsAppClosing(aWgId);
+ }
+// -----------------------------------------------------------------------------
+// CTsAppView::DragArea
+// -----------------------------------------------------------------------------
+//
+TRect CTsAppView::DragArea()
+ {
+ TRect dragArea;
+ if (Layout_Meta_Data::IsLandscapeOrientation())
+ {
+ dragArea.SetRect(iAppsHeading->Rect().iTl.iX,
+ iAppsHeading->Rect().iTl.iY, iFastSwapArea->Rect().iBr.iX,
+ iFastSwapArea->Rect().iBr.iY);
+ }
+ else
+ {
+ dragArea.SetRect(Rect().iTl.iX, iAppsHeading->Rect().iTl.iY,
+ Rect().iBr.iX, iFastSwapArea->Rect().iBr.iY);
+ }
+ return dragArea;
+ }
// End of file
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -115,6 +115,7 @@
CTsFastSwapArea::~CTsFastSwapArea()
{
iArray.ResetAndDestroy();
+ iIsClosing.Close();
delete iGrid;
delete iFSClient;
delete iPopup;
@@ -134,7 +135,7 @@
SetRect( aRect );
- // setup ganes grid
+ // setup grid
ReCreateGridL();
// create stylus popup instance
@@ -188,6 +189,44 @@
AknListBoxLayouts::SetupStandardGrid( *iGrid );
+ // Setup layout
+ LayoutGridL();
+
+ if( wasHighlight )
+ {
+ iGrid->ShowHighlight();
+ }
+ else
+ {
+ iGrid->HideHighlight();
+ }
+
+ // Setup empty text
+ HBufC* text = StringLoader::LoadLC( R_TS_FSW_NO_APPS );
+ iGrid->SetEmptyGridTextL( *text );
+ CleanupStack::PopAndDestroy( text );
+
+ // Setup grid observers
+ if ( obs )
+ {
+ iGrid->SetObserver( obs );
+ }
+ iGrid->SetListBoxObserver(this);
+ iGrid->SetFastSwapGridObserver(this);
+ iGrid->SetContainerWindowL(*this);
+
+ // Make sure that there is an ActivateL call even when we are not
+ // called from ConstructL. (in order to have the grid's parent ptr set properly)
+ ActivateL();
+ }
+
+
+// --------------------------------------------------------------------------
+// CTsFastSwapArea::LayoutGridL
+// --------------------------------------------------------------------------
+//
+void CTsFastSwapArea::LayoutGridL()
+ {
RArray<TAknLayoutRect> rects;
CleanupClosePushL(rects);
rects.ReserveL(KLayoutItemCount);
@@ -222,22 +261,13 @@
AknsUtils::GetCachedColor( AknsUtils::SkinInstance(), highlightTextColor,
KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG11 );
CFormattedCellListBoxData::TColors colors;
- colors.iText = textColor;
+ colors.iText = textColor;
colors.iBack = iGrid->ItemDrawer()->BackColor();
colors.iHighlightedText = highlightTextColor;
colors.iHighlightedBack = iGrid->ItemDrawer()->HighlightedBackColor();
iGrid->ItemDrawer()->FormattedCellData()->SetSubCellColorsL(1, colors);
iGrid->SetStrokeColors(textColor, highlightTextColor);
- // Setup grid observers
- if ( obs )
- {
- iGrid->SetObserver( obs );
- }
- iGrid->SetListBoxObserver(this);
- iGrid->SetFastSwapGridObserver(this);
- iGrid->SetContainerWindowL(*this);
-
if ( AknLayoutUtils::LayoutMirrored() )
{
iGridItemGap = gridItem.Rect().iTl.iX - gridNextItem.Rect().iBr.iX;
@@ -258,24 +288,11 @@
}
iGridItemWidth = gridItem.Rect().Width();
+ // Update item drawer
+ iGrid->UpdateItemDrawerLayoutDataL();
+
// Update state
HandleDeviceStateChanged( EDeviceType );
- if( wasHighlight )
- {
- iGrid->ShowHighlight();
- }
- else
- {
- iGrid->HideHighlight();
- }
-
- HBufC* text = StringLoader::LoadLC( R_TS_FSW_NO_APPS );
- iGrid->SetEmptyGridTextL( *text );
- CleanupStack::PopAndDestroy( text );
-
- // Make sure that there is an ActivateL call even when we are not
- // called from ConstructL. (in order to have the grid's parent ptr set properly)
- ActivateL();
}
@@ -333,11 +350,11 @@
// data with new layout values
TInt selIdx = SelectedIndex();
TRAPD(err,
- ReCreateGridL();
- /*iEvtHandler.ReInitPhysicsL(GridWorldSize(), ViewSize(), ETrue);*/);
+ /*ReCreateGridL()*/
+ LayoutGridL() );
if ( err != KErrNone )
{
- TSLOG1( TSLOG_INFO, "ReCreateGridL leaves with %d", err );
+ TSLOG1( TSLOG_INFO, "LayoutGridL leaves with %d", err );
}
HandleFswContentChanged();
iGrid->SetCurrentDataIndex(selIdx);
@@ -380,6 +397,7 @@
if ( aIndex >= 0 && aIndex < iArray.Count() )
{
TInt wgId = iArray[aIndex]->WgId();
+ TUid appUid = iArray[aIndex]->AppUid();
// Move other app to foreground and then move ourselves to background.
// Order is important and cannot be reversed.
iFSClient->SwitchToApp( wgId );
@@ -389,7 +407,7 @@
iIgnoreLayoutSwitch = ETrue;
CTsAppUi* appui =
static_cast<CTsAppUi*>( iEikonEnv->AppUi() );
- appui->MoveAppToBackground( CTsAppUi::EActivationTransition );
+ appui->MoveAppToBackground( CTsAppUi::EActivationTransition, appUid, wgId );
iIgnoreLayoutSwitch = EFalse;
// Orientation update
@@ -418,6 +436,7 @@
}
TInt wgId = iArray[aIndex]->WgId();
iFSClient->CloseApp( wgId );
+ iIsClosing.Append(wgId);
// The fsw content will change sooner or later
// but the updated content (without the closed app) will not
// come very fast. It looks better to the user if the item
@@ -689,9 +708,9 @@
}
// refresh the items in the grid
- iGrid->HandleItemAdditionL();
iEvtHandler.ReInitPhysicsL( GridWorldSize(), ViewSize(), ETrue );
UpdateGrid( ETrue, !aSuppressAnimation );
+ iGrid->HandleItemAdditionL();
TSLOG_OUT();
}
@@ -753,6 +772,11 @@
{
// stop listening for changes in fsw content
iFSClient->CancelSubscribe();
+ // Hide highlight
+ if ( iGrid->GridBehaviour() == CTsFastSwapGrid::ETouchOnly )
+ {
+ iGrid->HideHighlight();
+ }
}
// -----------------------------------------------------------------------------
@@ -764,8 +788,20 @@
TSLOG_CONTEXT( CTsFastSwapArea::HandleSwitchToForegroundEvent, TSLOG_LOCAL );
TSLOG_IN();
+ iIsClosing.Reset();
+
+ CTsGridItemDrawer* itemDrawer =
+ static_cast<CTsGridItemDrawer*>( iGrid->ItemDrawer() );
+ itemDrawer->SetRedrawBackground(ETrue);
+
+ // Update Layout
+ CTsAppUi* appUi = static_cast<CTsAppUi*>(iEikonEnv->AppUi());
+ if ( appUi && appUi->EffectsEnabled() )
+ {
+ TRAP_IGNORE( LayoutGridL() );
+ }
+
// Reset grid
- TRAP_IGNORE( ReCreateGridL() );
if ( iDeviceState.DeviceType() == CTsDeviceState::EFullTouch )
{
iGrid->HideHighlight();
@@ -786,6 +822,8 @@
iRedrawTimer->Cancel();
iRedrawTimer->After(KRedrawTime);
+ itemDrawer->SetRedrawBackground(EFalse);
+
// give feedback
LaunchPopupFeedback();
@@ -923,6 +961,9 @@
if(aPointerEvent.iType == TPointerEvent::EButton1Down)
{
iTapEvent = aPointerEvent;
+ iGrid->EnableAknEventHandling(EFalse);
+ iGrid->HandlePointerEventL(aPointerEvent);
+ iGrid->EnableAknEventHandling(ETrue);
}
}
@@ -1669,4 +1710,24 @@
return availableRect.iPixelSize.iWidth > availableRect.iPixelSize.iHeight;
}
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapArea::IsAppClosing
+// -----------------------------------------------------------------------------
+//
+TBool CTsFastSwapArea::IsAppClosing( TInt aWgId )
+ {
+ TBool retVal(EFalse);
+ if ( iIsClosing.Count() )
+ {
+ TInt idx = iIsClosing.Find(aWgId);
+ retVal = idx != KErrNotFound;
+ if ( retVal )
+ {
+ iIsClosing.Remove(idx);
+ }
+ }
+ return retVal;
+ }
+
// End of file
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapgrid.cpp Wed Mar 31 21:17:19 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapgrid.cpp Wed Apr 14 15:47:59 2010 +0300
@@ -42,7 +42,8 @@
: CAknGrid(),
iCloseIconHitIdx( KErrNotFound ),
iBehaviour( ETouchOnly ),
- iHighlightVisible( EFalse )
+ iHighlightVisible( EFalse ),
+ iAknEventHandlingEnabled(ETrue)
{
}
@@ -112,27 +113,27 @@
if ( closeIconRect.Contains( aPointerEvent.iParentPosition ) )
{
// Close icon hit
+ TInt hitDataIdx(hitItem);
+ if ( AknLayoutUtils::LayoutMirrored() )
+ {
+ // Calculate logical item index
+ hitDataIdx = Model()->ItemTextArray()->MdcaCount() - 1 - hitItem;
+ }
+ iCloseIconHitIdx = hitDataIdx;
+ eventHandled = ETrue;
+
if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
{
- // pointer down - finish processing but do not forward to grid
- eventHandled = ETrue;
+ // Update current item and redraw grid
+ SetCurrentItemIndex( hitItem );
+ DrawNow();
+
+ iCloseIconRedrawTimer->Cancel();
+ iCloseIconRedrawTimer->After(KCloseIconRedrawTime);
}
else
{
// Pointer up
- TInt hitDataIdx(hitItem);
- if ( AknLayoutUtils::LayoutMirrored() )
- {
- // Calculate logical item index
- hitDataIdx = Model()->ItemTextArray()->MdcaCount() - 1 - hitItem;
- }
- iCloseIconHitIdx = hitDataIdx;
- eventHandled = ETrue;
- // Hide highlight to mark close icon
- HideHighlight();
- // Update current item and redraw grid
- SetCurrentItemIndex( hitItem );
- DrawNow();
if ( iFastSwapGridObserver )
{
MTouchFeedback* feedback = MTouchFeedback::Instance();
@@ -140,8 +141,6 @@
ETouchFeedbackBasicButton,
ETouchFeedbackVibra,
aPointerEvent);
- iCloseIconRedrawTimer->Cancel();
- iCloseIconRedrawTimer->After(KCloseIconRedrawTime);
}
if ( GridBehaviour() == EHybrid )
{
@@ -151,6 +150,8 @@
{
Redraw();
}
+ iFastSwapGridObserver->HandleCloseEventL( hitDataIdx );
+ ResetCloseHit();
}
}
}
@@ -168,7 +169,10 @@
{
itemDrawer->SetRedrawBackground( EFalse );
}
- CAknGrid::HandlePointerEventL( aPointerEvent );
+ if ( iAknEventHandlingEnabled )
+ {
+ CAknGrid::HandlePointerEventL( aPointerEvent );
+ }
Redraw();
}
@@ -255,9 +259,31 @@
TSLOG_CONTEXT( CTsFastSwapGrid::CreateItemDrawerL, TSLOG_LOCAL );
TSLOG_IN();
+ CFormattedCellGridData* data = CFormattedCellGridData::NewL();
+ CleanupStack::PushL( data );
+ CTsGridItemDrawer* itemDrawer =
+ new ( ELeave ) CTsGridItemDrawer( this, data );
+ iItemDrawer = itemDrawer;
+ CleanupStack::Pop( data );
+
+ TSLOG_OUT();
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapGrid::UpdateItemDrawerLayoutDataL
+// -----------------------------------------------------------------------------
+//
+void CTsFastSwapGrid::UpdateItemDrawerLayoutDataL()
+ {
+ CTsGridItemDrawer* itemDrawer =
+ static_cast<CTsGridItemDrawer*>( ItemDrawer() );
+
TPixelsAndRotation screenSize;
iEikonEnv->ScreenDevice()->GetDefaultScreenSizeAndRotation(screenSize);
TRect availableRect = TRect( TPoint(0,0), screenSize.iPixelSize );
+ itemDrawer->SetScreenRect(availableRect);
+
TAknLayoutRect fastSwapAreaPane;
TInt variety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0;
fastSwapAreaPane.LayoutRect( availableRect,
@@ -265,19 +291,19 @@
const TInt leftOffset = iParent->Rect().iTl.iX;
const TInt rightOffset = availableRect.Width() - iParent->Rect().iBr.iX;
SetVisibleViewRect(fastSwapAreaPane.Rect());
+ itemDrawer->SetEdgeOffset( leftOffset, rightOffset );
- CFormattedCellGridData* data = CFormattedCellGridData::NewL();
- CleanupStack::PushL( data );
- CTsGridItemDrawer* itemDrawer =
- new ( ELeave ) CTsGridItemDrawer( this, data, availableRect );
- CleanupStack::PushL( itemDrawer );
- itemDrawer->SetEdgeOffset( leftOffset, rightOffset );
- iItemDrawer = itemDrawer;
- CleanupStack::Pop( itemDrawer );
- CleanupStack::Pop( data );
LoadCloseIconAndStrokeParams();
-
- TSLOG_OUT();
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapGrid::EnableAknEventHandling
+// -----------------------------------------------------------------------------
+//
+void CTsFastSwapGrid::EnableAknEventHandling( TBool aEnable )
+ {
+ iAknEventHandlingEnabled = aEnable;
}
// -----------------------------------------------------------------------------
@@ -288,9 +314,7 @@
{
if ( aSource == iCloseIconRedrawTimer )
{
- TInt itemToClose = iCloseIconHitIdx;
ResetCloseHit();
- iFastSwapGridObserver->HandleCloseEventL( itemToClose );
}
}
@@ -569,13 +593,11 @@
//
CTsGridItemDrawer::CTsGridItemDrawer(
CTsFastSwapGrid* aGrid,
- CFormattedCellListBoxData* aData,
- TRect aScreenRect )
+ CFormattedCellListBoxData* aData )
: CFormattedCellListBoxItemDrawer( aGrid->Model(),
NULL,
aData ),
iGrid( aGrid ),
- iScreenRect( aScreenRect ),
iStrokeColor( KRgbBlack ),
iHighlightStrokeColor( KRgbBlack )
{
@@ -697,6 +719,16 @@
// -----------------------------------------------------------------------------
+// CTsGridItemDrawer::SetScreenRect
+// -----------------------------------------------------------------------------
+//
+void CTsGridItemDrawer::SetScreenRect( TRect aRect )
+ {
+ iScreenRect = aRect;
+ }
+
+
+// -----------------------------------------------------------------------------
// CTsGridItemDrawer::DrawActualItem
// -----------------------------------------------------------------------------
//