--- a/group/bld.inf Thu Dec 17 08:40:49 2009 +0200
+++ b/group/bld.inf Thu Jan 07 12:39:41 2010 +0200
@@ -20,7 +20,6 @@
#include "../homescreen_plat/group/bld.inf"
#include "../idlehomescreen/group/bld.inf"
#include "../menufw/group/bld.inf"
-#include "../widgetmanager/group/bld.inf"
PRJ_PLATFORMS
--- a/idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/manifest.dat Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/manifest.dat Thu Jan 07 12:39:41 2010 +0200
@@ -28,7 +28,7 @@
<multiinstance>2</multiinstance>
<description>RnD description desktop plugin</description>
- <filelogo>mif(icon.mif 16384 16385)</filelogo>
+ <filelogo>skin(270501603 9361):mif(icon.mif 16384 16385)</filelogo>
<!-- Locale independent/common resources -->
--- a/idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/widgetconfiguration.xml Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/widgetconfiguration.xml Thu Jan 07 12:39:41 2010 +0200
@@ -24,10 +24,10 @@
</item>
<!-- Shortcut #4, Photos -->
<item id="fourth" name="Shortcut4" >
- <property name="type" value="suite"/>
- <property name="uid" value=""/>
+ <property name="type" value="application"/>
+ <property name="uid" value="0x200104E4"/>
<property name="view" value=""/>
- <property name="param" value="photossuite"/>
+ <property name="param" value=""/>
</item>
</settings>
</control>
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/hsps/00/manifest.dat Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/hsps/00/manifest.dat Thu Jan 07 12:39:41 2010 +0200
@@ -23,7 +23,8 @@
<filexml>widgetconfiguration.xml</filexml>
<description>RnD description profile plugin</description>
- <filelogo>skin(270501603 8433):mif(icon.mif 16384 16385)</filelogo>
+
+ <filelogo>skin(270501603 9360):mif(icon.mif 16384 16385)</filelogo>
<!-- Locale specific resources -->
<localization>
<fileresource tag="xuikon">profile.o0000</fileresource>
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/loc/templateview.loc Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/loc/templateview.loc Thu Jan 07 12:39:41 2010 +0200
@@ -249,8 +249,14 @@
// r: TB9.2
#define qtn_hs_title_editing_view "Editing view"
-// d: right softkey caption in inactive call state
-// l: text_softkey call
+// d: Call
+// l: control_pane_t1/opt7
// w:
// r: TB9.2
#define text_softkey_call "Call"
+
+// d: Added new option menu item to Edit mode for opening the widget catalog,
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_edit_widget_catalog "Widget Catalog"
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.xml Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.xml Thu Jan 07 12:39:41 2010 +0200
@@ -146,15 +146,6 @@
</action>
</actions>
</dynmenuitem>
- <!-- Change wallpaper is always present -->
- <menuitem id="hs_popup_change_wallpaper" label="&qtn_hs_change_longtap_wallpaper;">
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="system/setwallpaper"/>
- </action>
- </actions>
- </menuitem>
</styluspopup>
<menubar id="hs_menubar">
<!-- menu item grouping table is traversed through in run-time always when options menu is launched. -->
@@ -170,11 +161,12 @@
</menuitemgroup>
<!-- These items are shown in edit mode, if not otherwise changed in the declaration -->
<menuitemgroup id="Menu/EditMode">
- <property name="hs_add_widget"/>
+ <property name="hs_widget_catalog"/>
<property name="hs_remove_widget"/>
<property name="hs_widget_settings"/>
<property name="hs_widget_general_1"/>
<property name="hs_widget_general_2"/>
+ <property name="hs_add_view"/>
<property name="hs_remove_view"/>
<property name="hs_change_wallpaper"/>
</menuitemgroup>
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/view.dtd Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/view.dtd Thu Jan 07 12:39:41 2010 +0200
@@ -401,9 +401,19 @@
<!--
text_softkey_call.attributes
-text_softkey_call.layout "title_pane_t2"
+text_softkey_call.layout "control_pane_t1/opt7"
text_softkey_call.release "TB9.2"
text_softkey_call.description "RSK caption call inactive"
text_softkey_call.parents ""
-->
<!ENTITY text_softkey_call "Call">
+
+<!--
+qtn_hs_add_widget.attributes
+qtn_hs_add_widget.layout "list_single_pane_t1_cp2"
+qtn_hs_add_widget.release "TB9.2"
+qtn_hs_add_widget.description "Added new option menu item to Edit mode for opening the widget catalog"
+qtn_hs_add_widget.grammar "Widget Catalog"
+qtn_hs_add_widget.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_edit_widget_catalog "Widget Catalog">
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/loc/View.loc Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/loc/View.loc Thu Jan 07 12:39:41 2010 +0200
@@ -249,8 +249,14 @@
// r: TB9.2
#define qtn_hs_title_editing_view "Editing view"
-// d: right softkey caption in inactive call state
-// l: text_softkey call
+// d: Call
+// l: control_pane_t1/opt7
// w:
// r: TB9.2
#define text_softkey_call "Call"
+
+// d: Added new option menu item to Edit mode for opening the widget catalog,
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_edit_widget_catalog "Widget Catalog"
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.dtd Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.dtd Thu Jan 07 12:39:41 2010 +0200
@@ -401,9 +401,19 @@
<!--
text_softkey_call.attributes
-text_softkey_call.layout "title_pane_t2"
+text_softkey_call.layout "control_pane_t1/opt7"
text_softkey_call.release "TB9.2"
text_softkey_call.description "RSK caption call inactive"
text_softkey_call.parents ""
-->
<!ENTITY text_softkey_call "Call">
+
+<!--
+qtn_hs_widget_catalog.attributes
+qtn_hs_widget_catalog.layout "list_single_pane_t1_cp2"
+qtn_hs_widget_catalog.release "TB9.2"
+qtn_hs_widget_catalog.description "Added new option menu item to Edit mode for opening the widget catalog"
+qtn_hs_widget_catalog.grammar "Widget catalog"
+qtn_hs_widget_catalog.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_edit_widget_catalog "Widget Catalog">
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.xml Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.xml Thu Jan 07 12:39:41 2010 +0200
@@ -146,15 +146,6 @@
</action>
</actions>
</dynmenuitem>
- <!-- Change wallpaper is always present -->
- <menuitem id="hs_popup_change_wallpaper" label="&qtn_hs_change_longtap_wallpaper;">
- <actions>
- <action>
- <trigger name="activate"/>
- <event name="system/setwallpaper"/>
- </action>
- </actions>
- </menuitem>
</styluspopup>
<menubar id="hs_menubar">
<!-- menu item grouping table is traversed through in run-time always when options menu is launched. -->
@@ -170,11 +161,12 @@
</menuitemgroup>
<!-- These items are shown in edit mode, if not otherwise changed in the declaration -->
<menuitemgroup id="Menu/EditMode">
- <property name="hs_add_widget"/>
+ <property name="hs_widget_catalog"/>
<property name="hs_remove_widget"/>
<property name="hs_widget_settings"/>
<property name="hs_widget_general_1"/>
<property name="hs_widget_general_2"/>
+ <property name="hs_add_view"/>
<property name="hs_remove_view"/>
<property name="hs_change_wallpaper"/>
</menuitemgroup>
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/loc/view.loc Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/loc/view.loc Thu Jan 07 12:39:41 2010 +0200
@@ -69,6 +69,12 @@
// r: TB9.2
#define qtn_hs_add_widget "Add content"
+// d: Access the widget catalog
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_widget_catalog "Widget catalog"
+
// d: Search
// l: control_pane_t1/opt7
// w:
@@ -247,4 +253,10 @@
// l: control_pane_t1/opt7
// w:
// r: TB9.2
-#define qtn_hs_sk2_call "Call"
+#define text_softkey_call "Call"
+
+// d: Added new option menu item to Edit mode for opening the widget catalog,
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_edit_widget_catalog "Widget Catalog"
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.dtd Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.dtd Thu Jan 07 12:39:41 2010 +0200
@@ -8,7 +8,7 @@
<FileVersion : >
<Copyright:
-"Copyright © 2005 Nokia Corporation.
+"Copyright (c) 2005 Nokia Corporation.
This material, including documentation and any related
computer programs, is protected by copyright controlled by
Nokia Corporation. All rights are reserved. Copying,
@@ -109,6 +109,16 @@
<!ENTITY qtn_hs_add_widget "Add content">
<!--
+qtn_hs_widget_catalog.attributes
+qtn_hs_widget_catalog.layout "list_single_pane_t1_cp2"
+qtn_hs_widget_catalog.release "TB9.2"
+qtn_hs_widget_catalog.description "Widget catalog"
+qtn_hs_widget_catalog.grammar "Widget catalog"
+qtn_hs_widget_catalog.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_widget_catalog "Widget catalog">
+
+<!--
text_softkey_search.attributes
text_softkey_search.layout "control_pane_t1/opt7"
text_softkey_search.release "TB9.2"
@@ -389,3 +399,21 @@
-->
<!ENTITY qtn_hs_title_editing_view "Editing view">
+<!--
+text_softkey_call.attributes
+text_softkey_call.layout "control_pane_t1/opt7"
+text_softkey_call.release "TB9.2"
+text_softkey_call.description "RSK caption call inactive"
+text_softkey_call.parents ""
+-->
+<!ENTITY text_softkey_call "Call">
+
+<!--
+qtn_hs_add_widget.attributes
+qtn_hs_add_widget.layout "list_single_pane_t1_cp2"
+qtn_hs_add_widget.release "TB9.2"
+qtn_hs_add_widget.description "Added new option menu item to Edit mode for opening the widget catalog"
+qtn_hs_add_widget.grammar "Widget Catalog"
+qtn_hs_add_widget.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_edit_widget_catalog "Widget Catalog">
--- a/idlehomescreen/group/bld.inf Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/group/bld.inf Thu Jan 07 12:39:41 2010 +0200
@@ -24,6 +24,7 @@
#include "../sapiwrapper/hspswrapper/group/bld.inf"
#include "../xmluirendering/group/bld.inf"
#include "../xmluicontroller/group/bld.inf"
+#include "../widgetmanager/group/bld.inf"
#ifdef FF_HOMESCREEN_COMMON_IDLEFW
#include "../data/group/bld.inf"
--- a/idlehomescreen/hscontentcontrol/group/hscontentcontrol.mmp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/hscontentcontrol/group/hscontentcontrol.mmp Thu Jan 07 12:39:41 2010 +0200
@@ -31,6 +31,7 @@
SOURCE hscontentcontrolfactory.cpp
SOURCE hscontentcontrolui.cpp
+SOURCE hscontentcontrolecomlistener.cpp
//By default, the build tools look for the WINSCW def file in a BWINS directory
//(at the same level as the directory containing the mmp file),
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/hscontentcontrol/inc/hscontentcontrolecomlistener.h Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,96 @@
+/*
+* 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: Listens for change in ecom registry of content controller
+* interface.
+*
+*/
+
+#ifndef HSCONTENTCONTROLECOMLISTENER_H
+#define HSCONTENTCONTROLECOMLISTENER_H
+
+// System includes
+#include <e32base.h>
+
+// User includes
+
+// Forward declarations
+class MHsContentControlEComObserver;
+class REComSession;
+
+// Class declaration
+/**
+* @class CHsContentControlEComListener
+*
+* @brief An instance of class CHsContentControlEComListener which listens for
+* changes in the ECOM registry.
+*
+* @lib hscontentcontrol.lib
+*/
+NONSHARABLE_CLASS( CHsContentControlEComListener ) : public CActive
+ {
+public: // Constructor and destructor
+
+ /**
+ * Two-phased constructor.
+ */
+ static CHsContentControlEComListener* NewL(
+ MHsContentControlEComObserver& aContentControlEComObserver );
+
+ /**
+ * Destructor.
+ */
+ ~CHsContentControlEComListener();
+
+protected: // Functions from base classes
+ /**
+ * From CActive
+ */
+ void RunL();
+
+ /**
+ * From CActive
+ */
+ void DoCancel();
+
+ /**
+ * From CActive
+ */
+ TInt RunError( TInt aError );
+
+private: // Constructors
+
+ /**
+ * Default C++ constructor.
+ */
+ CHsContentControlEComListener(
+ MHsContentControlEComObserver& aHsContentControlEComObserver );
+
+ /**
+ * Second phase constructor.
+ */
+ void ConstructL();
+
+private: // Data
+
+ // Reference of MHsContentControlEComObserver
+ MHsContentControlEComObserver& iHsContentControlEComObserver;
+
+ // An object of type REComSession.
+ REComSession* iEComSession;
+ };
+
+#endif // HSCONTENTCONTROLECOMLISTENER_H
+
+// End of file
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/hscontentcontrol/inc/hscontentcontrolecomobserver.h Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,42 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Observes for change in ecom registry of content controller
+* interface.
+*
+*/
+
+#ifndef HSCONTENTCONTROLECOMOBSERVER_H
+#define HSCONTENTCONTROLECOMOBSERVER_H
+
+// Class declaration
+/**
+* MHsContentControlEComObserver
+*
+* @brief The observer of ecom registry changes. The derived class needs to implement
+* the functions below and will be notified by CHsContentControlEComListener.
+*
+* @see CHsContentControlEComListener
+*/
+class MHsContentControlEComObserver
+ {
+public:
+ /**
+ * Notification of Ecom registry change.
+ */
+ virtual void HandleEComChangeEvent() = 0;
+ };
+
+#endif // HSCONTENTCONTROLECOMOBSERVER_H
+
+// End of file
--- a/idlehomescreen/hscontentcontrol/inc/hscontentcontrolfactory.h Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/hscontentcontrol/inc/hscontentcontrolfactory.h Thu Jan 07 12:39:41 2010 +0200
@@ -20,9 +20,14 @@
// System includes
#include <e32base.h>
+#include <hscontentcontrolui.h>
+
+// User includes
+#include "hscontentcontrolecomobserver.h"
// Forward declarations
-#include <hscontentcontrolui.h>
+class CHsContentControlEComListener;
+
/**
* Content control UI base class
*
@@ -34,7 +39,8 @@
* @lib hscontentcontrol.lib
* @since S60 v5.0
*/
-NONSHARABLE_CLASS( CHsContentControlFactory ) : public CBase
+NONSHARABLE_CLASS( CHsContentControlFactory ) : public CBase,
+ public MHsContentControlEComObserver
{
public: // Constructor and destructor
/**
@@ -47,6 +53,13 @@
*/
IMPORT_C ~CHsContentControlFactory();
+public: // from MHsContentControlEComObserver
+
+ /**
+ * Notification of Ecom registry change.
+ */
+ void HandleEComChangeEvent();
+
private: // Constructors
/**
* Constructor
@@ -65,20 +78,49 @@
const TDesC8& aControllerType );
private:
- /**
- *
+ /**
+ * Finds and returns loaded ContentControlUi object from array.
*/
MHsContentControlUi* FindHsContentController(
const TDesC8& aControllerType );
+ /**
+ * Checks if a plugin is removed/upgraded/downgraded.
+ */
+ void CheckPluginChangesL();
+ /**
+ * Finds plugin implementation info in the ECOM registry.
+ * @param aUid The plugin UID which is to be checked.
+ * @param aPluginArray The array of plugins which have been implemented.
+ * @return ImplementationInfo of plugin.
+ */
+ CImplementationInformation* FindPluginImplInfo(
+ const TUid& aUid, const RImplInfoPtrArray& aPlugInArray );
+
+ /**
+ * Checks if an upgrade or downgrade of the existing plugins happened.
+ * @param aPluginImplInfo ImplInfo of plugin to be checked for upgrade/downgrade.
+ * @return ETrue if upgrade/downgrade, EFalse otherwise.
+ */
+ TBool PluginUpgradeDowngrade( const CImplementationInformation& aPluginImplInfo );
+
private: // Data
/**
- *
+ * An array of type CHsContentControlUi ( Owned ).
*/
RPointerArray< CHsContentControlUi > iHsContentControlUis;
+
+ /**
+ * An array of type CImplementationInformation ( Owned ).
+ */
+ RImplInfoPtrArray iImplArray;
+ /**
+ * An object of type CHsContentControlEComListener ( Owned ).
+ */
+ CHsContentControlEComListener* iHsContentControlEComListener;
};
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/hscontentcontrol/src/hscontentcontrolecomlistener.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,128 @@
+/*
+ * 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: The source file of the CHsContentControlEComListener class.
+ *
+ */
+
+// System includes
+#include <ecom/ecom.h>
+
+// User includes
+#include "hscontentcontrolecomlistener.h"
+#include "hscontentcontrolecomobserver.h"
+
+// ---------------------------------------------------------
+// CHsContentControlEComListener::NewL
+// ---------------------------------------------------------
+//
+CHsContentControlEComListener* CHsContentControlEComListener::NewL(
+ MHsContentControlEComObserver& aContentControlEComObserver )
+ {
+ CHsContentControlEComListener* self =
+ new ( ELeave ) CHsContentControlEComListener(
+ aContentControlEComObserver );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CHsContentControlEComListener::~CHsContentControlEComListener
+// ---------------------------------------------------------
+//
+CHsContentControlEComListener::~CHsContentControlEComListener()
+ {
+ Cancel(); // Cancel any request, if outstanding
+ if( iEComSession )
+ {
+ // Close session to ECom server
+ iEComSession->Close();
+ }
+
+ // Free up resources held by the EComSession.
+ REComSession::FinalClose();
+ }
+
+// ---------------------------------------------------------
+// CHsContentControlEComListener::CHsContentControlEComListener
+// ---------------------------------------------------------
+//
+CHsContentControlEComListener::CHsContentControlEComListener(
+ MHsContentControlEComObserver& aContentControlEComObserver )
+ : CActive( CActive::EPriorityStandard ),
+ iHsContentControlEComObserver( aContentControlEComObserver )
+ {
+ }
+
+// ---------------------------------------------------------
+// CHsContentControlEComListener::ConstructL
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+void CHsContentControlEComListener::ConstructL()
+ {
+ // Connect to the ECOM session server.
+ iEComSession = &REComSession::OpenL();
+
+ // Queue the active object in the scheduler
+ CActiveScheduler::Add( this );
+
+ // Start the active object and listen for changes in the ECOM registry.
+ iEComSession->NotifyOnChange( iStatus );
+ SetActive();
+ }
+
+// ---------------------------------------------------------
+// CHsContentControlEComListener::RunL
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+void CHsContentControlEComListener::RunL()
+ {
+ if ( &iHsContentControlEComObserver &&
+ KErrNone == iStatus.Int() )
+ {
+ // Notify observer
+ iHsContentControlEComObserver.HandleEComChangeEvent();
+ }
+
+ // Keep listening changes
+ iEComSession->NotifyOnChange( iStatus );
+
+ // Restart the active Object
+ SetActive();
+ }
+
+// ---------------------------------------------------------
+// CHsContentControlEComListener::DoCancel
+// ---------------------------------------------------------
+//
+void CHsContentControlEComListener::DoCancel()
+ {
+ // Cancel any outstanding requests.
+ iEComSession->CancelNotifyOnChange( iStatus );
+ }
+
+
+// ---------------------------------------------------------
+// CHsContentControlEComListener::RunError
+// ---------------------------------------------------------
+//
+TInt CHsContentControlEComListener::RunError( TInt /*aError*/ )
+ {
+ return KErrNone;
+ }
+
+// End of file
--- a/idlehomescreen/hscontentcontrol/src/hscontentcontrolfactory.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/hscontentcontrol/src/hscontentcontrolfactory.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -21,10 +21,11 @@
// User include files
#include "hscontentcontrolfactory.h"
+#include "hscontentcontrolecomlistener.h"
// Local constants
-// TODO: Content controller ECom interface UID
+// Content controller ECom interface UID
const TUid KInterfaceUidContentController = { 0x20026F51 };
// ======== LOCAL FUNCTIONS ========
@@ -73,6 +74,10 @@
//
void CHsContentControlFactory::ConstructL()
{
+ iHsContentControlEComListener =
+ CHsContentControlEComListener::NewL( *this );
+ REComSession::ListImplementationsL(
+ KInterfaceUidContentController, iImplArray );
}
// ----------------------------------------------------------------------------
@@ -89,7 +94,10 @@
//
EXPORT_C CHsContentControlFactory::~CHsContentControlFactory()
{
+ iImplArray.ResetAndDestroy();
+ iImplArray.Close();
iHsContentControlUis.ResetAndDestroy();
+ delete iHsContentControlEComListener;
}
// ---------------------------------------------------------------------------------
@@ -115,17 +123,17 @@
{
CImplementationInformation* information( plugins[i] );
- if ( information->OpaqueData().Compare( aControlType ) == 0 )
+ if ( information->OpaqueData().CompareF( aControlType ) == 0 )
{
CHsContentControlUi* ccUi = CHsContentControlUi::NewL(
information->ImplementationUid() );
+ CleanupStack::PushL( ccUi );
ccUi->SetContentControlTypeL( information->OpaqueData() );
-
iHsContentControlUis.AppendL( ccUi );
+ CleanupStack::Pop(); //ccUi
retval = ccUi;
-
// All done
break;
}
@@ -149,7 +157,7 @@
{
CHsContentControlUi* cc( iHsContentControlUis[ i ] );
- if ( cc->ContentControlType().Compare( aControlType ) == 0 )
+ if ( cc->ContentControlType().CompareF( aControlType ) == 0 )
{
return cc;
}
@@ -158,4 +166,131 @@
return NULL;
}
+// ----------------------------------------------------------------------------
+// CHsContentControlFactory::HandleEComChangeEvent()
+// ----------------------------------------------------------------------------
+//
+void CHsContentControlFactory::HandleEComChangeEvent()
+ {
+ // ignore event if no plugin loaded.
+ if ( iHsContentControlUis.Count() > 0 )
+ {
+ TRAP_IGNORE( CheckPluginChangesL(); );
+ }
+ }
+
+// ----------------------------------------------------------------------------
+// CHsContentControlFactory::CheckPluginChangesL
+// ----------------------------------------------------------------------------
+//
+void CHsContentControlFactory::CheckPluginChangesL()
+ {
+ // Array to return all implementations in an interface
+ RImplInfoPtrArray plugInArray;
+ CleanupResetAndDestroyPushL( plugInArray );
+
+ // Get the list of all implementations.
+ REComSession::ListImplementationsL(
+ KInterfaceUidContentController, plugInArray );
+
+ TUid uid( KNullUid );
+ TBool done( EFalse );
+
+ // If an implementation is not present in present in the plugInArray then its removed.
+ for( TInt index( iImplArray.Count() - 1 ); index >= 0 && !done; --index )
+ {
+ uid = plugInArray[ index ]->ImplementationUid();
+ CImplementationInformation* implInfo =
+ FindPluginImplInfo( uid, plugInArray );
+ if ( implInfo && PluginUpgradeDowngrade( *implInfo ) )
+ {
+ done = ETrue;
+ }
+ else
+ {
+ // check if ContenControlUi is loaded, unload it
+ for( TInt innerIndex( iHsContentControlUis.Count() - 1 );
+ innerIndex >= 0 && !done; --innerIndex )
+ {
+ CHsContentControlUi* cc( iHsContentControlUis[ innerIndex ] );
+ if ( cc && cc->ImplUid() == uid )
+ {
+ iHsContentControlUis.Remove( innerIndex );
+ delete cc;
+ cc = NULL;
+ done = ETrue;
+ }
+ }
+ done = ETrue;
+ }
+ }
+
+ // Cleanup.
+ CleanupStack::PopAndDestroy(); // plugInArray
+
+ // Reset the array and refresh the plugin list.
+ iImplArray.ResetAndDestroy();
+ iImplArray.Close();
+ REComSession::ListImplementationsL(
+ KInterfaceUidContentController, iImplArray );
+ }
+
+// ----------------------------------------------------------------------------
+// CHsContentControlFactory::FindPluginImplInfo
+// ----------------------------------------------------------------------------
+//
+CImplementationInformation* CHsContentControlFactory::FindPluginImplInfo(
+ const TUid& aUid, const RImplInfoPtrArray& aPlugInArray )
+ {
+ CImplementationInformation* implInfo( NULL );
+ for( TInt index( aPlugInArray.Count() - 1 ); index >= 0; --index )
+ {
+ implInfo = aPlugInArray[ index ];
+ if( aUid == implInfo->ImplementationUid() )
+ {
+ break;
+ }
+ }
+ return implInfo;
+ }
+
+// ----------------------------------------------------------------------------
+// CHsContentControlFactory::PluginUpgradeDowngrade
+// ----------------------------------------------------------------------------
+//
+TBool CHsContentControlFactory::PluginUpgradeDowngrade(
+ const CImplementationInformation& aPluginImplInfo )
+ {
+ // Check for each plugin in the array if the version matches with the plugin we have
+ TUid uid = aPluginImplInfo.ImplementationUid();
+ for( TInt outterIndex( iImplArray.Count() - 1 ); outterIndex >= 0; --outterIndex )
+ {
+ if( uid == iImplArray[ outterIndex ]->ImplementationUid() )
+ {
+ if( aPluginImplInfo.Version() != iImplArray[ outterIndex ]->Version() ||
+ aPluginImplInfo.Drive() != iImplArray[ outterIndex ]->Drive() ||
+ aPluginImplInfo.DisplayName() != iImplArray[ outterIndex ]->DisplayName() ||
+ aPluginImplInfo.OpaqueData() != iImplArray[ outterIndex ]->OpaqueData() )
+ {
+ // If control reaches here, it means we either have an upgrade or downgrade.
+ // check if we have loaded this plugin, reload it if found in array.
+ for( TInt innerIndex( iHsContentControlUis.Count() - 1 );
+ innerIndex >= 0; --innerIndex )
+ {
+ CHsContentControlUi* cc( iHsContentControlUis[ innerIndex ] );
+ if ( cc && cc->ImplUid() == uid )
+ {
+ iHsContentControlUis.Remove( innerIndex );
+ delete cc;
+ cc = NULL;
+ innerIndex = KErrNotFound;
+ }
+ }
+ return ETrue;
+ }
+ }
+ }
+ return EFalse;
+ }
+
// End of file
--- a/idlehomescreen/inc/xnmenu.h Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/inc/xnmenu.h Thu Jan 07 12:39:41 2010 +0200
@@ -24,9 +24,7 @@
#include "xncomponent.h"
#include "mxncomponentinterface.h"
-#if 0 // MSK icon change
class TAknsItemID;
-#endif // MSK icon change
namespace XnMenuInterface
{
@@ -99,7 +97,6 @@
TBool aPreserveAspectRatio = EFalse, TBool aInvertMask = EFalse,
TBool aTransferOwnership = ETrue ) = 0;
-#if 0 // MSK icon change
/**
* Sets soft key image.
* @param aId icon bitmap IID
@@ -116,8 +113,6 @@
XnMenuInterface::MXnMenuInterface::TSoftKeyPosition aPos,
TBool aEnable ) = 0;
-#endif // MSK icon change
-
/**
* Sets softkey text.
* @since Series 60 3.2
@@ -198,7 +193,6 @@
TBool aPreserveAspectRatio, TBool aInvertMask,
TBool aTransferOwnership = ETrue );
-#if 0 // MSK icon change
/**
* @see MXnMenuInterface::SetSoftKeyImage
*/
@@ -208,7 +202,6 @@
const TInt32 aBmpM,
XnMenuInterface::MXnMenuInterface::TSoftKeyPosition aPos,
TBool aEnable );
-#endif // MSK icon change
/**
* @see MXnMenuInterface::SetSoftkeyTextL
--- a/idlehomescreen/inc/xnmenuadapter.h Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/inc/xnmenuadapter.h Thu Jan 07 12:39:41 2010 +0200
@@ -107,7 +107,6 @@
CXnNodeAppIf* aNode,
TBool aPreserveAspectRatio, TBool aInvertMask,TBool aTransferOwnership);
-#if 0 // MSK icon change
/**
* Sets soft key image.
* @param aId icon bitmap IID
@@ -123,7 +122,6 @@
const TInt32 aBmpM,
XnMenuInterface::MXnMenuInterface::TSoftKeyPosition aPos,
TBool aEnable );
-#endif // MSK icon change
/**
* Sets softkey text.
--- a/idlehomescreen/inc/xnviewmanager.h Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/inc/xnviewmanager.h Thu Jan 07 12:39:41 2010 +0200
@@ -87,7 +87,8 @@
NONSHARABLE_CLASS( CXnViewManager ) : public CBase
{
// Friend classes
- friend class CXnViewAdapter;
+ friend class CXnViewAdapter;
+
public:
/**
* Two-phased constructor.
@@ -234,10 +235,8 @@
public:
void UpdatePageManagementInformationL();
-#if 0 // MSK icon change
private:
TInt ResolveIconIndex( TInt aPageCount, TInt aPageNum ) const;
-#endif // MSK icon change
private:
// data
--- a/idlehomescreen/nativeuicontroller/src/aistatuspanel.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/nativeuicontroller/src/aistatuspanel.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -385,7 +385,7 @@
void CAiStatusPanel::StopTitlePaneScrollingL()
{
- //stop scrolling
+ // stop scrolling
if( iTitlePane->Text() )
{
iTitlePane->SetTextL( *iTitlePane->Text(), EFalse );
@@ -394,7 +394,7 @@
void CAiStatusPanel::ScrollTitlePaneTextL()
{
-// start scrolling
+ // start scrolling
if( iTitlePane->Text() )
{
iTitlePane->SetTextL( *iTitlePane->Text(), ETrue );
--- a/idlehomescreen/nativeuicontroller/src/aititlepanerenderer.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/nativeuicontroller/src/aititlepanerenderer.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -210,10 +210,7 @@
void CAiTitlePaneRenderer::FocusObtainedL()
{
- // This scrolls the title pane text only if it has been changed
iStatusPanel.RenderTitlePaneL();
- // Force the scroll just to be safe
- iStatusPanel.ScrollTitlePaneTextL();
}
void CAiTitlePaneRenderer::FocusLostL()
--- a/idlehomescreen/sapiwrapper/cpswrapper/inc/cpswrapper.h Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/sapiwrapper/cpswrapper/inc/cpswrapper.h Thu Jan 07 12:39:41 2010 +0200
@@ -20,7 +20,7 @@
// System includes
#include <e32base.h>
-#include <LiwCommon.h> // for MLiwNotifyCallback
+#include <liwcommon.h> // for MLiwNotifyCallback
// Forward declarations
class CLiwServiceHandler;
--- a/idlehomescreen/sapiwrapper/cpswrapper/src/cpsobserver.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/sapiwrapper/cpswrapper/src/cpsobserver.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -17,10 +17,10 @@
// INCLUDE FILES
-#include <LiwCommon.h>
-#include <LiwServiceHandler.h>
-#include <LiwVariant.h>
-#include <LiwGenericParam.h>
+#include <liwcommon.h>
+#include <liwservicehandler.h>
+#include <liwvariant.h>
+#include <liwgenericparam.h>
#include "cpsobserver.h"
#include "cpswrapper.h"
@@ -71,7 +71,7 @@
//
CCpsObserver::~CCpsObserver()
{
- ReleaseL();
+ TRAP_IGNORE( ReleaseL() );
ReleaseLiw();
}
--- a/idlehomescreen/sapiwrapper/cpswrapper/src/cpswrapper.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/sapiwrapper/cpswrapper/src/cpswrapper.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -16,9 +16,9 @@
*/
// System include files
-#include <LiwServiceHandler.h>
-#include <LiwVariant.h>
-#include <LiwGenericParam.h>
+#include <liwservicehandler.h>
+#include <liwvariant.h>
+#include <liwgenericparam.h>
#include <bamdesca.h>
// User include files
--- a/idlehomescreen/sapiwrapper/hspswrapper/inc/hspswrapper.h Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/sapiwrapper/hspswrapper/inc/hspswrapper.h Thu Jan 07 12:39:41 2010 +0200
@@ -21,7 +21,7 @@
#define C_CHSPSWRAPPER_H
#include <e32base.h>
-#include <LiwCommon.h> // for MLiwNotifyCallback
+#include <liwcommon.h> // for MLiwNotifyCallback
class CLiwServiceHandler;
class MLiwInterface;
--- a/idlehomescreen/sapiwrapper/hspswrapper/src/hspswrapper.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/sapiwrapper/hspswrapper/src/hspswrapper.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -16,8 +16,8 @@
*/
-#include <LiwServiceHandler.h>
-#include <LiwVariant.h>
+#include <liwservicehandler.h>
+#include <liwvariant.h>
#include <bamdesca.h>
#include "hspswrapper.h"
Binary file idlehomescreen/widgetmanager/conf/widgetmanager.confml has changed
Binary file idlehomescreen/widgetmanager/conf/widgetmanager_20026F53.crml has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/data/20026F53.rss Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: widget manager plugin registry resource
+*
+*/
+
+#include "registryinfov2.rh"
+
+// Declares info for two implementations
+RESOURCE REGISTRY_INFO theInfo
+ {
+ resource_format_version = RESOURCE_FORMAT_VERSION_2;
+ dll_uid = 0x20026F53;
+ interfaces =
+ {
+ INTERFACE_INFO
+ {
+ // UID of interface that is implemented
+ interface_uid = 0x20026F51;
+ implementations =
+ {
+ IMPLEMENTATION_INFO
+ {
+ implementation_uid = 0x20026F53;
+ version_no = 1;
+ display_name = "Widget Manager";
+ default_data = "WmContentControlUI";
+ opaque_data = "0x20026F53";
+ }
+ };
+ }
+ };
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/data/widgetmanagerview.loc Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,163 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Localisation file of Widget Manager
+*
+*/
+
+
+
+// TITLES OF EACH VIEW
+
+// d: Title of Application
+// d:
+// d:
+// l: title_pane_t2/opt12
+// w:
+// r: TB9.2
+#define qtn_wm_title_text "Widget Catalog"
+
+
+
+// OPTIONS-MENU MENUITEMS
+
+// d: Add-menuitem in Options-menu
+// d:
+// d:
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+//
+#define qtn_options_wm_add "Add To Homescreen"
+
+// d: Launch-menuitem in Options-menu
+// d:
+// d:
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+//
+#define qtn_options_wm_launch_widget "Launch"
+
+// d: Search-menuitem in Options-menu
+// d:
+// d:
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+//
+#define qtn_options_wm_search "Search"
+
+// d: Uninstall-menuitem in Options-menu
+// d:
+// d:
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+//
+#define qtn_options_wm_uninstall "Uninstall"
+
+// d: Open-menuitem in Options-menu
+// d:
+// d:
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+//
+#define qtn_options_wm_open "Open"
+
+// d: Sort alphabetically-menuitem in Options-menu
+// d:
+// d:
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+//
+#define qtn_options_wm_sort_alpha "Sort alphabetically"
+
+// d: Details-menuitem in Options-menu
+// d:
+// d:
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+//
+#define qtn_options_wm_show_details "Details"
+
+
+
+// MISC
+
+// d: Text displayed on OVI Store button
+// d:
+// d:
+// l: wgtman_btn_pane_t1
+// w:
+// r: TB9.2
+//
+#define qtn_wm_ovi_store_title "Ovi Store"
+
+// d: Info popup to indicate that an item can not be added to home screen
+// d: because current view is full
+// d:
+// l: popup_note_window
+// w:
+// r: TB9.2
+//
+#define qtn_hs_add_widget_no_space_note "Not enough space to add new widget to active page. Remove some content first"
+
+// d: Info popup to indicate that an item can not be added to home screen
+// d: because maximum instance count of current widget would be exceeded
+// d:
+// l: popup_note_window
+// w:
+// r: TB9.2
+//
+#define qtn_hs_add_widget_max_count_note "Unable to add. Home screen does not allow more instances of this widget"
+
+// d: widget details dialog left softkey for adding widget to home screen
+// d: Note: widgets dialog is not necessarily full screen width, which may affect
+// d: string max length!
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+//
+#define qtn_wm_details_add_to_hs "Add"
+
+// d: widget details dialog - no description
+// d:
+// d:
+// l: listrow_wgtman_pane_t2
+// w:
+// r: TB9.2
+//
+#define qtn_wm_details_no_description "No description available"
+
+// d: widget uninstall not allowed
+// d:
+// d:
+// l: popup_note_window
+// w:
+// r: TB9.2
+//
+#define qtn_wm_uninst_not_allowed "%U can not be uninstalled "
+
+// d: widget details dialog default text for wrt widgets
+// d:
+// d:
+// l: popup_note_window
+// w:
+// r: TB9.2
+//
+#define qtn_wm_widget_details_wrt "This widget uses web content. Only one instance of this widget can be in the Home screen at a time."
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/data/widgetmanagerview.rss Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,246 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*
+*/
+
+// INCLUDES
+#include <eikon.rh>
+#include <avkon.rsg>
+#include <avkon.rh>
+#include <avkon.loc>
+#include <appinfo.rh>
+#include <avkon.mbg>
+#include <activeidle3.loc>
+
+#include "widgetmanager.hrh"
+#include "widgetmanagerview.loc"
+
+// RESOURCE IDENTIFIER
+NAME WIGZ // 4 letter ID
+
+RESOURCE RSS_SIGNATURE
+ {
+ }
+
+// ----------------------------------------------------
+// MAIN VIEW AND ITS PARTS
+// ----------------------------------------------------
+
+RESOURCE AVKON_VIEW r_wm_main_container_view
+ {
+ cba = R_AVKON_SOFTKEYS_OPTIONS_BACK__SELECT;
+ menubar = r_wm_main_container_options_menu;
+ toolbar = 0;
+ }
+
+RESOURCE TITLE_PANE r_wm_main_container_title_resource
+ {
+ txt = qtn_wm_title_text;
+ }
+
+// ----------------------------------------------------
+// MENU
+// ----------------------------------------------------
+
+RESOURCE MENU_BAR r_wm_main_container_options_menu
+ {
+ titles =
+ {
+ MENU_TITLE
+ {
+ menu_pane = r_wm_main_container_menu_pane;
+ }
+ };
+ }
+
+RESOURCE MENU_PANE r_wm_main_container_menu_pane
+ {
+ items =
+ {
+ MENU_ITEM
+ {
+ command = EWmMainContainerViewOpenPortalMenuItemCommand;
+ txt = qtn_options_wm_open;
+ flags = EEikMenuItemAction;
+ },
+ MENU_ITEM
+ {
+ command = EWmMainContainerViewAddMenuItemCommand;
+ txt = qtn_options_wm_add;
+ flags = EEikMenuItemAction;
+ },
+ MENU_ITEM
+ {
+ command = EWmMainContainerViewWiddetDetailsMenuItemCommand;
+ txt = qtn_options_wm_show_details;
+ flags = EEikMenuItemSpecific;
+ },
+ MENU_ITEM
+ {
+ command = EWmMainContainerViewLaunchMenuItemCommand;
+ txt = qtn_options_wm_launch_widget;
+ flags = EEikMenuItemSpecific;
+ },
+ MENU_ITEM
+ {
+ command = EWmMainContainerViewSearchMenuItemCommand;
+ txt = qtn_options_wm_search;
+ },
+ MENU_ITEM
+ {
+ command = EWmMainContainerViewSortAlphaMenuItemCommand;
+ txt = qtn_options_wm_sort_alpha;
+ },
+ MENU_ITEM
+ {
+ command = EWmMainContainerViewUninstallMenuItemCommand;
+ txt = qtn_options_wm_uninstall;
+ flags = EEikMenuItemSpecific;
+ },
+ MENU_ITEM
+ {
+ command = EWmMainContainerViewHelpMenuItemCommand;
+ txt = qtn_options_help;
+ },
+ MENU_ITEM
+ {
+ command = EWmMainContainerViewBackMenuItemCommand;
+ txt = qtn_options_exit;
+ }
+ };
+ }
+
+// ----------------------------------------------------
+// OVI STORE BUTTON
+// ----------------------------------------------------
+
+RESOURCE AVKON_BUTTON r_wm_portal_button
+ {
+ flags = 0;
+ states =
+ {
+ AVKON_BUTTON_STATE
+ {
+ flags = 0;
+ txt = qtn_wm_ovi_store_title;
+ bmpfile = AVKON_BITMAP_FILE;
+ bmpid = EMbmAvkonQgn_graf_wml_wait_globe_04;
+ bmpmask = EMbmAvkonQgn_graf_wml_wait_globe_04_mask;
+ press_bmpid = EMbmAvkonQgn_graf_wml_wait_globe_04;
+ press_bmpmask = EMbmAvkonQgn_graf_wml_wait_globe_04_mask;
+ }
+ };
+ }
+
+RESOURCE TBUF r_qtn_wm_go_to_ovi_store
+ {
+ buf = qtn_wm_ovi_store_title;
+ }
+
+// ----------------------------------------------------
+// MISCELLANEOUS INFO MESSAGES
+// ----------------------------------------------------
+
+RESOURCE TBUF r_qtn_hs_add_widget_no_space_note
+ {
+ buf = qtn_hs_add_widget_no_space_note;
+ }
+
+RESOURCE TBUF r_qtn_hs_add_widget_max_count_note
+ {
+ buf = qtn_hs_add_widget_max_count_note;
+ }
+
+RESOURCE TBUF r_qtn_hs_hs_memory_full
+ {
+ buf = qtn_hs_hs_memory_full;
+ }
+
+RESOURCE TBUF r_qtn_wm_details_no_description
+ {
+ buf = qtn_wm_details_no_description;
+ }
+
+RESOURCE TBUF r_qtn_wm_widget_details_wrt
+ {
+ buf = qtn_wm_widget_details_wrt;
+ }
+
+RESOURCE TBUF r_qtn_wm_uninst_not_allowed
+ {
+ buf = qtn_wm_uninst_not_allowed;
+ }
+
+// ----------------------------------------------------
+// Wm Details dialog
+// ----------------------------------------------------
+
+STRUCT WMDLGCONTROL
+ {
+ STRUCT control;
+ }
+
+RESOURCE DIALOG r_wm_details_add_dialog
+ {
+ flags = EEikDialogFlagNoDrag |
+ EEikDialogFlagCbaButtons |
+ EEikDialogFlagWait |
+ EEikDialogFlagNoTitleBar;
+ buttons = r_wm_details_add_close_cba;
+ }
+
+RESOURCE CBA r_wm_details_add_close_cba
+ {
+ buttons =
+ {
+ CBA_BUTTON // add
+ {
+ id = ECbaAddToHs;
+ txt = qtn_wm_details_add_to_hs;
+ },
+ CBA_BUTTON // close
+ {
+ id = EAknSoftkeyClose;
+ txt = text_softkey_close;
+ }
+ };
+ }
+
+RESOURCE DIALOG r_wm_details_only_dialog
+ {
+ flags = EEikDialogFlagNoDrag |
+ EEikDialogFlagCbaButtons |
+ EEikDialogFlagWait |
+ EEikDialogFlagNoTitleBar;
+ buttons = r_wm_details_empty_close_cba;
+ }
+
+RESOURCE CBA r_wm_details_empty_close_cba
+ {
+ buttons =
+ {
+ CBA_BUTTON // empty
+ {
+ id = 0;
+ txt = text_softkey_empty;
+ },
+ CBA_BUTTON // close
+ {
+ id = EAknSoftkeyClose;
+ txt = text_softkey_close;
+ }
+ };
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/gfx/add_widget_button.svg Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="50px"
+ height="36px" viewBox="0 0 50 36" enable-background="new 0 0 50 36" xml:space="preserve">
+<g id="Layer_2">
+</g>
+<g id="Layer_1">
+ <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="24.9995" y1="0" x2="24.9995" y2="36.0005">
+ <stop offset="0" style="stop-color:#79CD19"/>
+ <stop offset="1" style="stop-color:#4A9826"/>
+ </linearGradient>
+ <path fill="url(#SVGID_1_)" d="M50,31c0,2.762-2.239,5-5,5H5c-2.762,0-5-2.238-5-5V5c0-2.761,2.238-5,5-5h40c2.761,0,5,2.239,5,5
+ V31z"/>
+ <polygon fill="#E6E6E6" points="16.515,21.084 22.015,21.084 22.015,26.585 22.015,27.586 23.015,27.586 27.015,27.586
+ 28.016,27.586 28.016,26.585 28.016,21.084 33.515,21.084 34.516,21.084 34.516,20.083 34.516,16.083 34.516,15.082 33.515,15.082
+ 28.016,15.082 28.016,9.583 28.016,8.582 27.015,8.582 23.015,8.582 22.015,8.582 22.015,9.583 22.015,15.082 16.515,15.082
+ 15.515,15.082 15.515,16.083 15.515,20.082 15.515,21.084 "/>
+ <path opacity="0.5" fill="#FFFFFF" d="M2.033,33.656C1.398,32.947,1.001,32.023,1.001,31V5c0-2.205,1.795-4,4-4h40
+ c1.15,0,2.182,0.496,2.912,1.276l0.708-0.708C47.711,0.606,46.43,0,45.001,0h-40c-2.762,0-5,2.238-5,5v26
+ c0,1.301,0.509,2.475,1.323,3.365L2.033,33.656z"/>
+ <path opacity="0.2" d="M50.001,31V5c0-1.333-0.529-2.536-1.379-3.433l-0.709,0.708c0.67,0.716,1.088,1.669,1.088,2.724v26
+ c0,2.205-1.795,4-4,4h-40c-1.182,0-2.235-0.525-2.968-1.344l-0.709,0.709C2.238,35.363,3.541,36,5.001,36h40
+ C47.763,36,50.001,33.762,50.001,31z"/>
+ <polygon opacity="0.3" points="22.034,27.578 22.056,27.578 23.058,26.576 23.034,26.576 23.034,20.093 22.034,21.094
+ 22.034,26.577 "/>
+ <polygon fill="#FFFFFF" points="15.507,21.08 15.507,21.084 16.507,21.084 22.005,21.085 22.005,21.103 23.007,20.102
+ 23.007,20.085 16.507,20.084 16.507,20.08 "/>
+ <polygon opacity="0.3" points="16.495,20.08 16.495,16.086 22.995,16.086 22.995,9.586 26.994,9.586 26.994,9.613 27.995,8.612
+ 27.995,8.584 26.993,8.584 22.995,8.584 21.993,8.584 21.993,9.585 21.993,15.084 16.495,15.084 15.495,15.084 15.495,16.085
+ 15.495,20.084 15.495,21.08 "/>
+ <polygon fill="#FFFFFF" points="28.016,8.596 27.015,9.597 27.015,16.069 27.028,16.069 28.029,15.068 28.016,15.068 28.016,9.568
+ "/>
+ <polygon fill="#FFFFFF" points="23.034,27.584 27.033,27.584 28.035,27.584 28.035,26.583 28.035,21.082 33.533,21.082
+ 34.535,21.082 34.535,20.081 34.535,16.082 34.535,15.088 33.534,16.088 33.534,20.082 27.034,20.082 27.034,26.582 23.058,26.582
+ 22.056,27.584 "/>
+ <polygon opacity="0.3" points="33.524,16.091 34.525,15.09 34.525,15.084 33.523,15.084 28.039,15.084 27.038,16.085
+ 33.524,16.085 "/>
+</g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/gfx/qgn_menu_hswidget.svg Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="88" height="88" viewBox="0 0 88 88">
+<rect fill="none" height="88" width="88"/>
+<linearGradient id="SVGID_1" gradientUnits="userSpaceOnUse" x1="22.43" y1="2.92" x2="66.99" y2="90.66">
+<stop stop-color="#A2C2DD" offset="0.1"/>
+<stop stop-color="#6C83BB" offset="0.71"/>
+<stop stop-color="#003D6D" offset="0.99"/>
+</linearGradient>
+<path d="M63.987,81.355c-0.18,0-0.364-0.024-0.543-0.076l-19.092-5.262c-1.259-0.341-2.284-1.793-2.328-3.306 l-0.002-0.068l-3.806,1.339c-0.217,0.066-0.435,0.104-0.656,0.104c-0.18,0-0.362-0.024-0.541-0.072l-19.458-5.141 c-1.282-0.332-2.325-1.772-2.374-3.276L14.623,47.38c-0.034-1.117,0.516-2.05,1.403-2.376L24.09,42l0.016-0.006l0.078-0.027 c0.071-0.023,0.145-0.042,0.221-0.056l0.186-0.027l0.186-0.008c0.056,0,0.11,0.002,0.167,0.008l0.083,0.006l0.023,0.002l0.075,0.012 l0.026,0.004l0.133,0.026l18.117,4.305l7.348-2.809l0.018-0.01l0.08-0.027c0.071-0.021,0.144-0.041,0.22-0.058l0.178-0.027 l0.021-0.002l0.054-0.002l0.114-0.004c0.053,0,0.107,0.002,0.163,0.006l0.095,0.01l0.132,0.019l0.025,0.006l0.088,0.019 l19.093,4.656l0.174,0.049c0.016,0.002,0.064,0.021,0.114,0.041c0.007,0.003,0.051,0.019,0.091,0.037l0.012,0.007l0.069,0.031 l0.01,0.004l0.066,0.033l0.011,0.008l0.109,0.06l0.013,0.009l0.105,0.065l0.143,0.102c0.029,0.021,0.077,0.06,0.121,0.097 c0.016,0.011,0.059,0.05,0.103,0.089l0.067,0.064l0.008,0.008l0.063,0.064c0.035,0.032,0.069,0.069,0.102,0.106 c0.043,0.048,0.087,0.102,0.134,0.157c0.067,0.087,0.128,0.174,0.188,0.264c0.149,0.228,0.276,0.473,0.378,0.733 c0.036,0.093,0.068,0.186,0.098,0.28c0.022,0.064,0.043,0.141,0.062,0.223l0.037,0.157l0.028,0.161l0.023,0.165l0.001,0.019 l0.018,0.188v0.004l0.004,0.109l0.721,24.573v0.01v0.081v0.104l-0.009,0.167l-0.008,0.097l-0.003,0.026l-0.023,0.17l-0.001,0.01 l-0.015,0.072l-0.023,0.104c-0.002,0.021-0.016,0.074-0.032,0.128c-0.003,0.019-0.019,0.068-0.037,0.122l-0.041,0.113l-0.052,0.126 l-0.075,0.15c-0.038,0.072-0.069,0.124-0.101,0.173c-0.049,0.072-0.096,0.135-0.144,0.194c-0.229,0.274-0.504,0.471-0.82,0.586 l-8.078,2.896C64.424,81.318,64.207,81.355,63.987,81.355L63.987,81.355z M58.611,43.634c-0.601,0-1.218-0.075-1.832-0.217 c-5.321-1.234-9.814-7.423-10.013-13.797c-0.141-4.509,1.896-8.199,5.223-9.546l-0.002-0.002l2.504-1.065l3.104-1.345l0.01,0.022 l2.047-0.873c0.127-0.054,0.246-0.097,0.369-0.141c0.265-0.095,0.553-0.175,0.854-0.241c0.219-0.047,0.438-0.083,0.665-0.114 c0.206-0.022,0.403-0.039,0.604-0.047c0.098-0.004,0.201-0.006,0.308-0.006l0.239,0.004c0.174,0.002,0.352,0.012,0.53,0.033 c0.157,0.014,0.32,0.035,0.485,0.064l0.334,0.054l0.012,0.004l0.07,0.017l0.102,0.022c0.118,0.025,0.264,0.06,0.414,0.097 c0.188,0.056,0.323,0.097,0.461,0.14c0.15,0.048,0.3,0.104,0.454,0.163c0.139,0.054,0.286,0.114,0.434,0.18 c0.141,0.062,0.288,0.128,0.435,0.204c0.136,0.066,0.283,0.145,0.431,0.229c0.137,0.075,0.282,0.161,0.424,0.248 c0.156,0.097,0.306,0.194,0.452,0.297c0.155,0.107,0.314,0.219,0.466,0.338c0.149,0.111,0.311,0.242,0.467,0.372 c0.171,0.145,0.339,0.295,0.504,0.45c0.189,0.173,0.369,0.357,0.551,0.545c0.219,0.227,0.429,0.462,0.634,0.706 c0.295,0.357,0.571,0.72,0.822,1.083c0.672,0.966,1.243,2.026,1.701,3.151c0.167,0.409,0.317,0.821,0.446,1.228 c0.097,0.301,0.186,0.606,0.264,0.918c0.068,0.258,0.13,0.52,0.184,0.784c0.05,0.239,0.093,0.47,0.13,0.708 c0.034,0.212,0.065,0.429,0.089,0.642c0.026,0.198,0.048,0.407,0.064,0.617c0.015,0.196,0.026,0.392,0.036,0.588l0.003,0.093 l0.004,0.099c0.004,0.122,0.005,0.25,0.005,0.377c0.003,0.182-0.001,0.363-0.005,0.542c-0.008,0.188-0.017,0.365-0.028,0.539 c-0.013,0.171-0.027,0.349-0.047,0.52c-0.018,0.167-0.039,0.339-0.063,0.506c-0.026,0.173-0.055,0.34-0.086,0.505 c-0.031,0.167-0.066,0.336-0.105,0.503c-0.041,0.18-0.085,0.349-0.134,0.516c-0.047,0.169-0.098,0.336-0.153,0.501 c-0.063,0.186-0.127,0.365-0.195,0.539c-0.074,0.188-0.151,0.372-0.233,0.549c-0.094,0.202-0.19,0.394-0.293,0.58 c-0.12,0.221-0.246,0.429-0.382,0.633c-0.169,0.262-0.359,0.52-0.56,0.757c-0.825,0.995-1.824,1.725-2.967,2.169l-7.654,3.1 C60.378,43.473,59.507,43.634,58.611,43.634L58.611,43.634z M34.343,41.839l-0.335-0.295l-6.913-6.135l-6.556,2.821l-1.133,0.487 l0.135-1.226l1.031-9.319l-5.811-8.063l-0.534-0.743l0.843-0.343l8.076-3.258l0.141-0.06l0.153,0.006l0.738,0.025l1.7-4.282 l0.11-0.281l0.276-0.122l8.075-3.37l0.681-0.285l0.265,0.689l3.722,9.641l7.714,3.151l0.97,0.396l-0.719,0.762l-5.304,5.608 l1.602,10.104l0.091,0.569l-0.539,0.21l-8.031,3.135c-0.025,0.01-0.052,0.022-0.08,0.031L34.343,41.839L34.343,41.839z" fill="url(#SVGID_1)"/>
+<linearGradient id="SVGID_2" gradientUnits="userSpaceOnUse" x1="30.21" y1="45.14" x2="40.63" y2="66.61">
+<stop stop-color="#43910A" offset="0"/>
+<stop stop-color="#17594C" offset="1"/>
+</linearGradient>
+<path d="M46.985,68.733l-0.567-18.834c-0.001-0.011-0.001-0.023-0.001-0.035 c-0.002-0.037-0.005-0.072-0.008-0.109c-0.002-0.037-0.007-0.076-0.011-0.114c-0.005-0.039-0.011-0.08-0.017-0.119 c-0.008-0.043-0.016-0.087-0.024-0.132c-0.01-0.048-0.022-0.098-0.035-0.145c-0.013-0.06-0.03-0.116-0.048-0.174 c-0.025-0.078-0.053-0.154-0.083-0.229c-0.086-0.213-0.191-0.415-0.315-0.599c-0.049-0.072-0.1-0.141-0.151-0.204 c-0.039-0.048-0.077-0.093-0.117-0.137c-0.033-0.035-0.066-0.07-0.102-0.104c-0.031-0.029-0.063-0.059-0.093-0.085 c-0.029-0.024-0.059-0.052-0.087-0.074c-0.027-0.022-0.056-0.044-0.085-0.064c-0.025-0.021-0.054-0.039-0.08-0.058 c-0.026-0.017-0.052-0.033-0.08-0.05c-0.025-0.017-0.053-0.03-0.078-0.043c-0.026-0.017-0.053-0.029-0.078-0.041 c-0.026-0.013-0.052-0.025-0.08-0.037c-0.026-0.011-0.052-0.021-0.079-0.031c-0.026-0.011-0.054-0.019-0.081-0.026 c-0.028-0.009-0.055-0.017-0.083-0.025c-0.008-0.002-0.016-0.004-0.024-0.006l-19.464-4.625c-0.021-0.004-0.042-0.008-0.063-0.012 c-0.029-0.006-0.059-0.011-0.087-0.015c-0.031-0.004-0.063-0.006-0.093-0.01c-0.033,0-0.065-0.002-0.098-0.002 c-0.035,0-0.07,0.002-0.103,0.004c-0.041,0.004-0.08,0.008-0.119,0.017c-0.051,0.008-0.101,0.021-0.15,0.037 c-0.021,0.006-0.042,0.012-0.063,0.021l-8.076,2.997c0.021-0.007,21.914,27.567,21.714,27.637l8.076-2.843 c0.2-0.072,0.375-0.196,0.52-0.365c0.035-0.042,0.068-0.085,0.1-0.133c0.024-0.035,0.047-0.072,0.067-0.109 c0.019-0.035,0.036-0.065,0.053-0.103c0.016-0.031,0.029-0.064,0.043-0.098c0.012-0.03,0.024-0.063,0.034-0.097 c0.011-0.031,0.021-0.06,0.029-0.091c0.008-0.029,0.017-0.062,0.023-0.093c0.008-0.029,0.014-0.06,0.02-0.091 c0.007-0.031,0.011-0.062,0.016-0.093c0.006-0.031,0.009-0.063,0.012-0.093c0.004-0.031,0.007-0.064,0.009-0.098 c0.001-0.03,0.004-0.062,0.006-0.097c0-0.033,0.001-0.065,0.001-0.101C46.986,68.78,46.985,68.758,46.985,68.733z" fill="url(#SVGID_2)"/>
+<linearGradient id="SVGID_3" gradientUnits="userSpaceOnUse" x1="12.64" y1="42.63" x2="43.4" y2="77.87">
+<stop stop-color="#DCE8E4" offset="0"/>
+<stop stop-color="#43910A" offset="1"/>
+</linearGradient>
+<path d="M36.509,50.295c0.978,0.239,1.801,1.416,1.838,2.625l0.566,18.676 c0.037,1.215-0.726,1.989-1.704,1.725L17.746,68.18c-0.979-0.253-1.801-1.421-1.839-2.605L15.34,47.356 c-0.037-1.18,0.725-1.952,1.704-1.723L36.509,50.295z" fill="url(#SVGID_3)"/>
+<linearGradient id="SVGID_4" gradientUnits="userSpaceOnUse" x1="56.73" y1="46.62" x2="69.4" y2="74.83">
+<stop stop-color="#BBE0FF" offset="0"/>
+<stop stop-color="#A2C2DD" offset="0.35"/>
+<stop stop-color="#6C83BB" offset="0.7"/>
+<stop stop-color="#003D6D" offset="1"/>
+</linearGradient>
+<path d="M73.378,75.945L72.66,51.374c-0.001-0.012-0.002-0.024-0.002-0.034 c-0.003-0.037-0.005-0.075-0.007-0.112c-0.004-0.037-0.006-0.076-0.012-0.115c-0.005-0.039-0.01-0.08-0.016-0.119 c-0.008-0.044-0.016-0.089-0.024-0.133c-0.01-0.049-0.021-0.099-0.032-0.146c-0.015-0.06-0.031-0.117-0.049-0.175 c-0.023-0.076-0.052-0.155-0.081-0.231c-0.083-0.215-0.188-0.415-0.31-0.601c-0.048-0.072-0.098-0.143-0.149-0.208 c-0.037-0.048-0.074-0.091-0.113-0.135c-0.033-0.037-0.065-0.072-0.101-0.107c-0.029-0.028-0.061-0.058-0.09-0.086 c-0.028-0.025-0.057-0.05-0.086-0.072c-0.026-0.022-0.054-0.046-0.081-0.064c-0.027-0.021-0.053-0.041-0.081-0.06 c-0.025-0.017-0.052-0.033-0.077-0.05c-0.026-0.015-0.052-0.03-0.077-0.045c-0.026-0.015-0.051-0.027-0.078-0.042 c-0.024-0.01-0.05-0.024-0.076-0.034c-0.025-0.013-0.052-0.023-0.078-0.033c-0.025-0.011-0.052-0.019-0.078-0.027 c-0.027-0.008-0.055-0.017-0.082-0.024c-0.007,0-0.016-0.004-0.023-0.004l-19.092-4.654c-0.021-0.006-0.042-0.01-0.063-0.014 c-0.028-0.006-0.058-0.01-0.085-0.015c-0.03-0.004-0.062-0.006-0.091-0.008c-0.032-0.002-0.064-0.004-0.097-0.004 c-0.033,0-0.067,0.002-0.102,0.004c-0.038,0.004-0.078,0.01-0.115,0.017c-0.05,0.01-0.099,0.023-0.146,0.037 c-0.022,0.006-0.042,0.015-0.062,0.023l-8.076,3.089c0.02-0.01,21.658,33.316,21.463,33.387l8.075-2.894 c0.196-0.072,0.368-0.196,0.51-0.365c0.034-0.041,0.067-0.087,0.098-0.132c0.023-0.037,0.046-0.074,0.066-0.111 c0.019-0.035,0.035-0.068,0.052-0.104c0.015-0.033,0.027-0.063,0.041-0.099c0.013-0.031,0.023-0.063,0.035-0.095 c0.01-0.031,0.019-0.063,0.027-0.094c0.008-0.03,0.016-0.062,0.024-0.093c0.006-0.03,0.013-0.062,0.019-0.093 c0.005-0.028,0.01-0.06,0.015-0.093c0.005-0.03,0.008-0.062,0.012-0.095c0.005-0.031,0.007-0.062,0.009-0.095 s0.004-0.064,0.004-0.097c0.002-0.035,0.002-0.068,0.002-0.104C73.38,75.99,73.38,75.968,73.378,75.945z" fill="url(#SVGID_4)"/>
+<linearGradient id="SVGID_5" gradientUnits="userSpaceOnUse" x1="40.88" y1="44.88" x2="68.29" y2="84.97">
+<stop stop-color="#FFFFFF" offset="0.15"/>
+<stop stop-color="#A2C2DD" offset="1"/>
+</linearGradient>
+<path d="M62.786,51.841c0.959,0.241,1.766,1.426,1.802,2.646l0.721,24.368 c0.036,1.227-0.712,2.002-1.672,1.733l-19.093-5.26c-0.959-0.262-1.766-1.442-1.802-2.639l-0.72-23.798 c-0.036-1.19,0.711-1.973,1.671-1.739L62.786,51.841z" fill="url(#SVGID_5)"/>
+<linearGradient id="SVGID_6" gradientUnits="userSpaceOnUse" x1="15.34" y1="18.21" x2="25.43" y2="18.21">
+<stop stop-color="#E6EEF4" offset="0"/>
+<stop stop-color="#2F8E9A" offset="0.44"/>
+<stop stop-color="#003D6D" offset="0.94"/>
+</linearGradient>
+<polygon fill="url(#SVGID_6)" points="25.43,16.5 23.414,16.43 15.339,19.69 23.255,19.994 24.069,19.664 "/>
+<linearGradient id="SVGID_7" gradientUnits="userSpaceOnUse" x1="29.92" y1="9.81" x2="35.32" y2="20.62">
+<stop stop-color="#E6EEF4" offset="0"/>
+<stop stop-color="#2F8E9A" offset="0.44"/>
+<stop stop-color="#003D6D" offset="0.94"/>
+</linearGradient>
+<path d="M38.449,18.279l-3.833-9.932l-8.075,3.368l3.833,9.862C33.074,20.479,35.749,19.387,38.449,18.279z" fill="url(#SVGID_7)"/>
+<linearGradient id="SVGID_8" gradientUnits="userSpaceOnUse" x1="42.72" y1="24.82" x2="34.38" y2="18.51">
+<stop stop-color="#E6EEF4" offset="0"/>
+<stop stop-color="#2F8E9A" offset="0.44"/>
+<stop stop-color="#003D6D" offset="0.94"/>
+</linearGradient>
+<path d="M46.449,21.543l-8-3.264l-8.075,3.297l8,3.269C38.396,24.823,44.091,22.563,46.449,21.543z" fill="url(#SVGID_8)"/>
+<linearGradient id="SVGID_9" gradientUnits="userSpaceOnUse" x1="42.18" y1="23.58" x2="28.57" y2="37.19">
+<stop stop-color="#E6EEF4" offset="0"/>
+<stop stop-color="#2F8E9A" offset="0.44"/>
+<stop stop-color="#003D6D" offset="0.94"/>
+</linearGradient>
+<polygon fill="url(#SVGID_9)" points="40.904,27.41 46.449,21.543 38.375,24.845 32.829,30.642 "/>
+<linearGradient id="SVGID_10" gradientUnits="userSpaceOnUse" x1="39.13" y1="39.57" x2="35.59" y2="26.33">
+<stop stop-color="#E6EEF4" offset="0"/>
+<stop stop-color="#2F8E9A" offset="0.44"/>
+<stop stop-color="#003D6D" offset="0.94"/>
+</linearGradient>
+<path d="M32.829,30.642l1.658,10.369l8.075-3.149L40.904,27.41C40.904,27.41,32.862,30.627,32.829,30.642z" fill="url(#SVGID_10)"/>
+<linearGradient id="SVGID_11" gradientUnits="userSpaceOnUse" x1="18.97" y1="15.63" x2="37.23" y2="43.12">
+<stop stop-color="#D6E6EC" offset="0"/>
+<stop stop-color="#298595" offset="1"/>
+</linearGradient>
+<polygon fill="url(#SVGID_11)" points="26.546,11.715 30.379,21.577 38.379,24.845 32.833,30.642 34.491,41.011 27.23,34.569 20.255,37.571 21.316,27.978 15.343,19.69 23.259,19.994 "/>
+<linearGradient id="SVGID_12" gradientUnits="userSpaceOnUse" x1="52.27" y1="29.75" x2="73.38" y2="29.75">
+<stop stop-color="#E6EEF4" offset="0"/>
+<stop stop-color="#9646AC" offset="0.44"/>
+<stop stop-color="#3D013F" offset="0.94"/>
+</linearGradient>
+<path d="M73.374,30.359c-0.002-0.06-0.004-0.122-0.007-0.182c-0.008-0.188-0.021-0.375-0.034-0.562 c-0.017-0.198-0.036-0.394-0.061-0.59c-0.024-0.205-0.054-0.409-0.085-0.613c-0.036-0.225-0.079-0.45-0.124-0.672 c-0.053-0.254-0.11-0.504-0.176-0.751c-0.075-0.297-0.16-0.592-0.254-0.883c-0.127-0.396-0.269-0.789-0.426-1.172l0,0 c-0.438-1.077-0.986-2.092-1.627-3.015c-0.249-0.357-0.511-0.702-0.783-1.028c-0.194-0.231-0.395-0.456-0.6-0.671 c-0.17-0.177-0.344-0.351-0.523-0.518c-0.156-0.145-0.317-0.289-0.478-0.425c-0.146-0.122-0.296-0.241-0.444-0.353 c-0.141-0.109-0.287-0.214-0.433-0.313c-0.137-0.095-0.275-0.188-0.42-0.274c-0.132-0.083-0.269-0.165-0.404-0.239 c-0.133-0.077-0.269-0.146-0.404-0.215c-0.134-0.068-0.267-0.13-0.402-0.188c-0.134-0.06-0.269-0.116-0.402-0.167 c-0.137-0.054-0.272-0.101-0.408-0.146c-0.139-0.043-0.275-0.084-0.415-0.126c-0.143-0.037-0.283-0.07-0.426-0.101 c-0.04-0.01-0.081-0.016-0.122-0.029c-0.105-0.019-0.215-0.035-0.32-0.054c-0.149-0.022-0.299-0.043-0.449-0.058 c-0.16-0.017-0.317-0.027-0.477-0.029c-0.167-0.006-0.334-0.006-0.501,0.002c-0.18,0.006-0.361,0.021-0.534,0.042 c-0.208,0.027-0.409,0.062-0.606,0.101c-0.261,0.058-0.521,0.13-0.769,0.219l-0.006,0.002c-0.108,0.037-0.216,0.078-0.322,0.122 l-7.664,3.263c0.107-0.045,0.217-0.087,0.326-0.122l5.287-2.292l-5.287,2.292c0.253-0.084,0.508-0.157,0.77-0.214 c0.201-0.042,0.401-0.074,0.605-0.099c0.178-0.019,7.981,21.822,6.952,22.212l7.663-3.104c1.03-0.398,1.936-1.067,2.678-1.958 c0.181-0.217,0.352-0.45,0.513-0.696c0.123-0.186,0.239-0.379,0.349-0.582c0.096-0.171,0.185-0.351,0.271-0.533 c0.076-0.167,0.149-0.338,0.218-0.512c0.065-0.163,0.125-0.33,0.183-0.501c0.052-0.155,0.099-0.312,0.145-0.472 c0.044-0.159,0.086-0.32,0.124-0.481c0.036-0.155,0.069-0.314,0.1-0.475c0.03-0.157,0.056-0.316,0.08-0.479 c0.024-0.157,0.044-0.32,0.062-0.48c0.018-0.163,0.032-0.326,0.043-0.493c0.013-0.165,0.021-0.334,0.025-0.501 c0.006-0.173,0.008-0.349,0.008-0.526C73.379,30.601,73.378,30.481,73.374,30.359z" fill="url(#SVGID_12)"/>
+<linearGradient id="SVGID_13" gradientUnits="userSpaceOnUse" x1="47.62" y1="18.01" x2="65.31" y2="44.62">
+<stop stop-color="#DEDEED" offset="0"/>
+<stop stop-color="#9646AC" offset="1"/>
+</linearGradient>
+<path d="M56.257,20.407c5.032,1.021,9.268,6.917,9.457,13.153c0.188,6.243-3.738,10.339-8.771,9.16 c-5.035-1.168-9.27-7.037-9.46-13.122C47.294,23.521,51.222,19.399,56.257,20.407z" fill="url(#SVGID_13)"/>
+</svg>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/gfx/qgn_menu_ovistore.svg Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="88" height="88" viewBox="0 0 88 88">
+<rect fill="none" height="88" width="88"/>
+<path d="M72.788,26.819c-0.062-0.962-0.861-1.714-1.828-1.714h-9.374l-3.919-7.69 c-0.059-0.172-0.094-0.207-0.19-0.452c-0.791-1.796-4.45-7.967-13.053-8.264c-0.083-0.013-0.182-0.022-0.299-0.024 c-0.05,0-0.091,0.001-0.125,0.005c-0.034-0.003-0.075-0.005-0.123-0.005c-0.124,0.001-0.227,0.013-0.313,0.026 c-4.807,0.133-8.208,2.236-10.261,4.326c-1.041,1.052-1.768,2.094-2.241,2.909c-0.238,0.407-0.417,0.755-0.536,1.027 c-0.099,0.24-0.134,0.28-0.191,0.448l-3.925,7.694h-9.372c-0.965,0-1.76,0.748-1.825,1.714l-3.253,50.56 c-0.034,0.496,0.147,1.002,0.49,1.369c0.344,0.366,0.834,0.577,1.336,0.577h60.432c0.507,0,0.984-0.209,1.332-0.577 c0.351-0.371,0.525-0.864,0.493-1.369L72.788,26.819z M34.615,25.105l2.443-4.796l0.067-0.155c0.042-0.09-0.003,0.007,0.061-0.129 c0.463-0.789,1.906-3.92,6.833-4.011c4.887,0.09,6.328,3.222,6.819,4.065c0.016,0.037,0.016,0.033,0.016,0.033 c0-0.004,0-0.008,0.02,0.041l0.068,0.155l2.439,4.796H34.615z" fill-opacity="0.2" />
+<path d="M70.959,26.939H60.468l-4.505-8.836c-0.036-0.209-2.893-7.362-11.749-7.577 c-0.031-0.001-0.058-0.018-0.09-0.018c-0.043,0-0.082,0.007-0.125,0.007c-0.042,0-0.082-0.007-0.125-0.007 c-0.032,0-0.057,0.016-0.089,0.018c-8.856,0.214-11.71,7.367-11.75,7.577l-4.503,8.836H17.04l-3.254,50.558h60.429L70.959,26.939z M35.426,19.479c0.036-0.087,0.043-0.105,0.104-0.236c0.49-0.956,2.593-4.998,8.469-5.059c5.878,0.062,7.979,4.103,8.469,5.059 c0.063,0.131,0.071,0.149,0.104,0.236l3.799,7.459H31.63L35.426,19.479z" fill-opacity="0.5" />
+<linearGradient id="SVGID_1" gradientUnits="userSpaceOnUse" x1="44" y1="22.03" x2="44" y2="75.13">
+<stop stop-color="#36A1DB" offset="0"/>
+<stop stop-color="#329CD8" offset="0.25"/>
+<stop stop-color="#258FCE" offset="0.53"/>
+<stop stop-color="#1179BE" offset="0.81"/>
+<stop stop-color="#0067B0" offset="1"/>
+</linearGradient>
+<polygon fill="url(#SVGID_1)" points="17.04,25.108 13.786,75.665 74.214,75.665 70.959,25.108 "/>
+<polygon fill="#FFFFFF" fill-opacity="0.15" points="71.803,34.501 71.2,25.108 17.278,25.108 14.987,60.72 " />
+<polygon fill="#FFFFFF" fill-opacity="0.3" points="15.745,73.831 18.763,26.937 69.246,26.937 69.25,26.953 70.881,25.108 17.046,25.108 13.792,75.665 13.825,75.665 " />
+<circle cx="25.24" cy="33.628" fill="#333333" r="2.67"/>
+<path d="M65.45,33.628c0,1.476-1.194,2.67-2.668,2.67c-1.478,0-2.672-1.194-2.672-2.67 c0-1.475,1.194-2.669,2.672-2.669C64.255,30.959,65.45,32.154,65.45,33.628z" fill="#333333"/>
+<path d="M32.783,63.008c-5.651,0-7.593-3.881-7.593-8.81c0-4.871,2.636-8.291,7.65-8.291 c5.19,0,7.565,3.449,7.565,8.406C40.405,59.503,37.998,63.008,32.783,63.008z M32.783,48.577c-2.579,0-2.782,3.128-2.782,5.537 c0,2.46,0.118,6.229,2.782,6.229s2.812-3.363,2.812-6.229C35.595,51.877,35.248,48.577,32.783,48.577z M39.396,46.139h4.843 l2.958,12.441l3.129-12.441h4.089l-4.374,14.377c-0.486,1.48-1.206,2.492-3.24,2.492c-2.035,0-2.79-1.012-3.24-2.492L39.396,46.139z M58.641,44.398c-1.479,0-2.55-0.754-2.55-2.146c0-1.392,1.041-2.146,2.55-2.146c1.421,0,2.547,0.783,2.547,2.146 C61.188,43.644,60.119,44.398,58.641,44.398z M56.295,60.883c0,0.419,0,1.198,0.654,1.663c0.343,0.24,0.884,0.462,1.648,0.462 c0.795,0,1.313-0.218,1.66-0.462c0.654-0.465,0.654-1.244,0.654-1.663V46.139h-4.57c0,0-0.161,0.006-0.312,0.006 c-0.446,0-0.813,0.01-1.069,0.357c-0.121,0.162-0.286,0.455-0.286,0.974c0,0.547,0.165,0.814,0.286,0.977 c0.257,0.347,0.623,0.35,1.069,0.35c0.15,0,0.265,0,0.265,0V60.883z" fill="#FFFFFF"/>
+<linearGradient id="SVGID_2" gradientUnits="userSpaceOnUse" x1="44" y1="14.09" x2="44" y2="62.39">
+<stop stop-color="#FFFFFF" offset="0"/>
+<stop stop-color="#B2B2C9" offset="1"/>
+</linearGradient>
+<path d="M64.475,32.969l-8.512-16.698c-0.036-0.209-2.893-7.362-11.749-7.577 c-0.031-0.001-0.058-0.018-0.09-0.018c-0.043,0-0.082,0.008-0.125,0.008c-0.042,0-0.082-0.008-0.125-0.008 c-0.032,0-0.057,0.017-0.089,0.018c-8.856,0.215-11.71,7.368-11.75,7.577l-8.51,16.698c-0.406,0.924,0.016,2.004,0.946,2.411 c0.239,0.104,0.488,0.153,0.733,0.153c0.705,0,1.377-0.409,1.677-1.096l8.544-16.788c0.036-0.088,0.043-0.106,0.104-0.236 c0.49-0.957,2.593-4.999,8.469-5.059c5.878,0.061,7.979,4.103,8.469,5.059c0.063,0.13,0.071,0.148,0.104,0.236l8.545,16.788 c0.302,0.688,0.973,1.096,1.676,1.096c0.247,0,0.496-0.05,0.735-0.153C64.459,34.974,64.878,33.894,64.475,32.969z" fill="url(#SVGID_2)"/>
+</svg>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/group/bld.inf Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,43 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Widget manager build information
+*
+*/
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+../rom/widgetmanager.iby CORE_APP_LAYER_IBY_EXPORT_PATH(widgetmanager.iby)
+../rom/widgetmanager_resources.iby CORE_APP_LAYER_IBY_EXPORT_PATH(widgetmanager_resources.iby)
+
+../sis/widgetmanager_stub.sis /epoc32/data/z/system/install/widgetmanager_stub.sis
+
+// cenrep
+../conf/widgetmanager.confml APP_LAYER_CONFML(widgetmanager.confml)
+../conf/widgetmanager_20026F53.crml APP_LAYER_CRML(widgetmanager_20026F53.crml)
+
+PRJ_EXTENSIONS
+START EXTENSION s60/mifconv
+OPTION TARGETFILE widgetmanager.mif
+OPTION HEADERFILE widgetmanager.mbg
+OPTION SOURCEDIR ../gfx
+OPTION SOURCEFILE wmicons.txt
+END
+
+PRJ_MMPFILES
+
+widgetmanager.mmp
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/group/widgetmanager.mmp Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,115 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Widget manager project definition file
+*
+*/
+
+#include <data_caging_paths.hrh>
+#include <platform_paths.hrh>
+
+TARGET widgetmanager.dll
+TARGETTYPE PLUGIN
+
+// ECom Dll recognition UID followed by the unique UID for this dll
+UID 0x10009D8D 0x20026F53
+
+VENDORID VID_DEFAULT
+SECUREID 0x20026F53
+
+// SIS installation + IAD support
+VERSION 1.0
+paged
+
+CAPABILITY CAP_ECOM_PLUGIN
+
+SOURCEPATH ../src
+SOURCE wmpluginproxy.cpp
+SOURCE wmplugin.cpp
+SOURCE wmresourceloader.cpp
+SOURCE wmmaincontainer.cpp
+SOURCE wmmaincontainerview.cpp
+SOURCE wmwidgetdata.cpp
+SOURCE wmlistbox.cpp
+SOURCE wmimageconverter.cpp
+SOURCE wmpersistentwidgetorder.cpp
+SOURCE wmeffectmanager.cpp
+SOURCE wmdetailsdlg.cpp
+SOURCE wmportalbutton.cpp
+SOURCE wmwidgetloaderao.cpp
+
+SOURCEPATH ../data
+START RESOURCE 20026F53.rss
+TARGETPATH ECOM_RESOURCE_DIR
+TARGET widgetmanager.rsc
+END //RESOURCE
+
+SOURCEPATH ../data
+START RESOURCE widgetmanagerview.rss
+HEADER
+TARGETPATH RESOURCE_FILES_DIR
+LANGUAGE_IDS
+END //RESOURCE
+
+USERINCLUDE .
+USERINCLUDE ../inc
+USERINCLUDE ../data
+
+APP_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE /epoc32/include/ecom
+
+
+LIBRARY euser.lib
+LIBRARY cone.lib
+LIBRARY avkon.lib
+LIBRARY eikcore.lib
+LIBRARY estor.lib
+LIBRARY eikcoctl.lib
+LIBRARY eikctl.lib
+LIBRARY eikdlg.lib
+
+LIBRARY efsrv.lib // RFs
+LIBRARY bafl.lib // BaflUtils
+LIBRARY apgrfx.lib // RApaLsSession
+LIBRARY commonengine.lib // StringLoader
+
+LIBRARY aknicon.lib // AknIconUtility
+LIBRARY imageconversion.lib // CImageDecoder
+LIBRARY bitmaptransforms.lib // CBitmapScaler
+LIBRARY fbscli.lib // CFbsBitmap
+LIBRARY bitgdi.lib // CFbsBitmapDevice
+LIBRARY gdi.lib // CFont
+LIBRARY egul.lib // TextUtils
+LIBRARY ecom.lib // ECom fw
+LIBRARY aknskins.lib // AknsDrawUtils
+LIBRARY aknskinsrv.lib // AknsDrawUtils
+LIBRARY aknswallpaperutils.lib // AknsDrawUtils
+LIBRARY hscontentcontrol.lib // CHsContentControlUi
+LIBRARY apparc.lib // CApaCommandLine
+LIBRARY aknlayout.lib // avkon layout
+LIBRARY aknlayout2scalable.lib // scalable avkon layout
+LIBRARY swinstcli.lib // widget uninstall
+LIBRARY hscontentinfo.lib // CHsContentInfo
+LIBRARY platformenv.lib // DriveInfo::GetDefaultDrive
+LIBRARY svgengine.lib // CSvgEngineInterfaceImpl
+LIBRARY gfxtrans.lib // effect manager
+LIBRARY ws32.lib //WindowSession
+LIBRARY widgetregistryclient.lib // WidgetRegistryClient
+LIBRARY hlplch.lib // HlpLauncher
+LIBRARY sysutil.lib // diskspace
+LIBRARY featmgr.lib // FeatureManager
+LIBRARY etext.lib
+LIBRARY centralrepository.lib
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/group/wmicons.txt Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,3 @@
+-c32,8 qgn_menu_hswidget
+-c32,8 add_widget_button
+-c32,8 qgn_menu_ovistore.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/inc/widgetmanager.hrh Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Declares resource ids for widgetmanager application.
+*
+*/
+
+
+/** WidgetManger viev uid */
+enum TWidgetManagerViewUids
+ {
+ EWmMainContainerViewId = 0x20026F53
+ };
+
+/** MainContainer View Commands */
+enum TWmMainContainerViewCommands
+ {
+ EWmMainContainerViewAddMenuItemCommand = 0x6000,
+ EWmMainContainerViewLaunchMenuItemCommand,
+ EWmMainContainerViewSearchMenuItemCommand,
+ EWmMainContainerViewSortAlphaMenuItemCommand,
+ EWmMainContainerViewUninstallMenuItemCommand,
+ EWmMainContainerViewHelpMenuItemCommand,
+ EWmMainContainerViewOpenPortalMenuItemCommand,
+ EWmMainContainerViewBackMenuItemCommand,
+ EWmMainContainerViewWiddetDetailsMenuItemCommand
+ };
+
+enum TWmMenuCmdIDs
+ {
+ ECbaAddToHs = 1
+ };
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/inc/wmcommon.h Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,45 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+#ifndef WMCOMMON_H
+#define WMCOMMON_H
+
+//includes
+#include <e32base.h>
+
+// widgetmanager UID
+const TUid KUidWidgetManager = { 0x200255FF };
+
+// HsContentInfo types
+_LIT8( KContentWidget, "widget" );
+_LIT8( KContentTemplate, "template" );
+
+// UI related const
+const TInt KWidgetHeight = 90;
+
+// UI component ID's
+enum TWmUiControlIds
+ {
+ EOviPortal = 0x1,
+ ELastPortal,
+ EWidgetsList,
+ EFindBox,
+ EMaximumWidgets = 0xC8
+ };
+
+#endif //WMCOMMON_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/inc/wmcrkeys.h Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,67 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+#ifndef __WMCRKEYS_H__
+#define __WMCRKEYS_H__
+
+// WidgetManager CR key
+const TUint32 KCrWidgetManagerm = 0x20026F53;
+
+/**
+ * Key Id's from 0x1 to 0x28 are reserved for languages.
+ * LangId_0 0x1
+ * OviStoreBrowserUrl_0 0x2
+ * OperatorUrl_0 0x3
+ * OperatorButtonText_0 0x4
+ * ...
+ * LangId_9 0x25
+ * OviStoreBrowserUrl_9 0x26
+ * OperatorUrl_9 0x27
+ * OperatorButtonText_9 0x28
+ */
+
+const TUint32 KOviStoreBrowserUrlOffset = 1;
+const TUint32 OperatorUrlOffset = 2;
+const TUint32 KperatorButtonTextOffset = 3;
+
+/**
+ * Key to first language id
+ */
+const TUint32 KLangId0 = 0x1;
+
+/**
+ * Key to last language id
+ */
+const TUint32 KLangId9 = 0x25;
+
+/**
+ * Key to Ovi Store Client param
+ */
+const TUint32 KOviStoreClientParam = 0x29;
+
+/**
+ * Key to Operator button icon
+ */
+const TUint32 KOperatorButtonIcon = 0x2A;
+
+/**
+ * Key to Ovi Store client BunbleId
+ */
+const TUint32 KOviStoreBunbleId = 0x2B;
+
+#endif // __WMCRKEYS_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/inc/wmdetailsdlg.h Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,147 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Declares widget details dialog for WidgetManager
+*
+*/
+
+#ifndef ___WMDETAILSDLG_H__
+#define ___WMDETAILSDLG_H__
+
+// INCLUDES
+#include <e32base.h>
+#include <AknDialog.h>
+
+// FORWARD DECLARATIONS
+class CEikRichTextEditor;
+class CAknsBasicBackgroundControlContext;
+
+// CLASS DECLARATIONS
+/**
+ * CWmDetailsDlg
+ */
+NONSHARABLE_CLASS( CWmDetailsDlg ): public CAknDialog
+ {
+public:
+
+ /**
+ * Two-phased constructor.
+ */
+ static CWmDetailsDlg* NewL(
+ const TDesC& aName,
+ const TDesC& aDescription,
+ TBool aCanBeAdded,
+ const CFbsBitmap* aLogoBmp,
+ const CFbsBitmap* aLogoMask,
+ CAknsBasicBackgroundControlContext* aBgContext );
+
+ /** Destructor. */
+ ~CWmDetailsDlg();
+
+public: // New functions
+ /** From CAknDialog Initializes the dialog and calls
+ CAknDialog's ExecuteLD() */
+ TInt ExecuteLD();
+
+private: // Functions from base classes
+
+
+ /** From CEikDialog Initializes dialog before layout*/
+ void PreLayoutDynInitL();
+
+ /** From CEikDialog Handles button events and looks
+ if the dialog can be closed */
+ TBool OkToExitL(TInt aButtonId);
+
+ /** From CCoeControl Handles key events */
+ TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,TEventCode aType );
+
+ /** From CEikDialog Called by framework when dialog is activated */
+ void ActivateL();
+
+ /** From CAknDialog called to provide access to the contorols */
+ TTypeUid::Ptr MopSupplyObject( TTypeUid aId );
+
+ /** From CAknDialog */
+ void SetSizeAndPosition( const TSize& aSize );
+
+ /** From CCoeControl */
+ void SizeChanged();
+
+ /** From CCoeControl */
+ TInt CountComponentControls() const;
+ CCoeControl* ComponentControl(TInt aIndex) const;
+ void Draw( const TRect& aRect ) const;
+
+ /** Desired rect for dialog */
+ TRect WmDetailsDialogRect();
+
+ /** Insert and format content */
+ void InsertAndFormatContentL();
+
+private:
+
+ /** Constructor for performing 1st stage construction */
+ CWmDetailsDlg( TBool aCanBeAdded );
+
+ /** 2nd phase constructor */
+ void ConstructL(
+ const TDesC& aName,
+ const TDesC& aDescription,
+ const CFbsBitmap* aLogoBmp,
+ const CFbsBitmap* aLogoMask,
+ CAknsBasicBackgroundControlContext* aBgContext );
+
+private:
+
+ /**
+ * Background context (not owned)
+ */
+ CAknsBasicBackgroundControlContext* iBgContext;
+
+ /**
+ * Richtext editor
+ */
+ CEikRichTextEditor* iRtEditor;
+
+ /**
+ * Name of widget
+ */
+ HBufC* iName;
+
+ /**
+ * Description of widget
+ */
+ HBufC* iDescription;
+
+ /**
+ * Logo image
+ */
+ CFbsBitmap* iLogoBmp;
+
+ /**
+ * Logo mask
+ */
+ CFbsBitmap* iLogoMask;
+
+ /**
+ * ETrue if widget can be added to HS
+ */
+ TBool iCanBeAdded;
+
+ };
+
+#endif ___WMDETAILSDLG_H__
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/inc/wmeffectmanager.h Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,111 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* CImageConverter declaration
+*
+*/
+
+#ifndef WMEFFECTMANAGER_H
+#define WMEFFECTMANAGER_H
+
+// INCLUDES
+#include <e32base.h>
+
+class CCoeEnv;
+// CONSTANTS
+// Effects
+const TInt KAppStartCommonDefaultStyle = 3;
+const TInt KAppExitCommonDefaultStyle = 5;
+
+/**
+ * Struct which holds needed info of effect.
+ */
+NONSHARABLE_STRUCT( TWmEffect )
+ {
+ TInt iState;
+ TInt iType;
+ TInt iId;
+ };
+
+/**
+ * Effect manager.
+ * Handles starting and ending effects.
+ *
+ * @since S60 v5.0
+ */
+NONSHARABLE_CLASS( CWmEffectManager ) : public CBase
+ {
+public:
+ /**
+ * Two-phased constructor.
+ * @return new instance of CWmEffectManager.
+ */
+ static CWmEffectManager* NewL( CCoeEnv& aCoeEnv );
+
+ /**
+ * Destructor.
+ */
+ ~CWmEffectManager();
+
+public:
+ /**
+ * Begin handling of fullscreen effect.
+ * @param aId effect id
+ */
+ void BeginFullscreenEffectL( TInt aId );
+
+ /**
+ * When UiRendered is called effect is ended and will be drawn
+ */
+ void UiRendered();
+
+private:
+ /**
+ * C++ default constructor.
+ */
+ CWmEffectManager( CCoeEnv& aCoeEnv );
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL();
+
+private:
+ /**
+ * Starts fullscreen effect.
+ * @param aEffect effect data
+ */
+ void DoBeginFullscreenEffect( TWmEffect& aEffect );
+
+ /**
+ * Removes and destroys effect from effect list.
+ * @param aEffect effect data
+ */
+ void RemoveEffect( TWmEffect* aEffect );
+
+private: // data
+ /**
+ * List of started effects.
+ */
+ RPointerArray<TWmEffect> iEffects;
+
+ /**
+ * COE env
+ */
+ CCoeEnv& iCoeEnv;
+ };
+
+#endif // WMEFFECTMANAGER_H
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/inc/wmimageconverter.h Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,243 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* CWmImageConverter declaration
+*
+*/
+
+#ifndef WMIMAGECONVERTER_H
+#define WMIMAGECONVERTER_H
+
+//includes
+#include <e32std.h>
+#include <e32base.h>
+#include <f32file.h>
+#include <AknIconUtils.h> // MAknIconFileProvider
+
+// Forward declarations
+class CFbsBitmap;
+class CBitmapScaler;
+class CImageDecoder;
+class TAknsItemID;
+class CWmUnitTest;
+class MSvgError;
+
+// Class declaration
+/**
+ * MConverterObserver
+ * To notify when image is converted
+ */
+NONSHARABLE_CLASS( MConverterObserver )
+ {
+ public:
+ virtual void NotifyCompletion( TInt aError ) = 0;
+ };
+
+// Class declaration
+/**
+ * CWmImageConverter
+ * Image converter
+ */
+NONSHARABLE_CLASS ( CWmImageConverter ) : public CActive,
+ public MAknIconFileProvider
+ {
+ /** states for this converter */
+ enum TState
+ {
+ EIdle = 0,
+ EDecoding,
+ EScalingBitmap,
+ EScalingMask
+ };
+
+public: //contructors/destructors
+ /**
+ * Two-phased constructor.
+ * @param aObserver observer
+ */
+ static CWmImageConverter* NewL( MConverterObserver* aObserver );
+
+ /** Destructor */
+ ~CWmImageConverter();
+
+public: // interface methods
+
+ /**
+ * Parses icon string and prepares logo image.
+ *
+ * @param aWidth wanted widht
+ * @param aHeight wanted height
+ * @param aIconStr str containing logo icon
+ * Supported values:
+ * - skin(<major id> <minor id>):mif(<path> <bitmapid> <maskid>)
+ * - mif(<path> <bitmapid> <maskid>)
+ * - uid(<application uid>)
+ * - <file name>.<png/svg>
+ */
+ void HandleIconStringL( TInt aWidth, TInt aHeight, const TDesC& aIconStr );
+
+ /**
+ * Returns converted bitmap. Caller takes ownership
+ *
+ * @return CFbsBitmap
+ */
+ CFbsBitmap* Bitmap();
+
+ /**
+ * Returns converted mask. Caller takes ownership
+ *
+ * @return CFbsBitmap
+ */
+ CFbsBitmap* Mask();
+
+ /**
+ * sets the size for decoding
+ * @param aSize the logo size
+ */
+ void SetLogoSize( const TSize& aSize );
+
+ /** supported image conversion methods */
+ enum TConversionMethod
+ {
+ EUnrecognized, // we could not recognise the icon string
+ EUidIcon, // App.UID-coded icon
+ ESvgIcon, // Icon from SVG-file
+ ESkinIcon, // Icon from SKIN id
+ EMifIcon, // Icon from MIF file, known graphic index
+ ESkinAndMifIcon, // Icon from SKIN and MIF combination
+ EImageIcon, // Icon from image file (jpeg or png)
+ };
+
+ /**
+ * The type of currently converted image.
+ * This method can be used to check if correct conversion was used.
+ * @return conversion method used for current image
+ */
+ TConversionMethod ConversionMethod();
+
+protected: // implementation of CActive
+ /**
+ * Implements cancellation of an outstanding request.
+ *
+ * @see CActive::DoCancel
+ */
+ void DoCancel();
+
+ /**
+ * Handles an active object's request completion event.
+ *
+ * @see CActive::RunL
+ */
+ void RunL();
+
+ /**
+ * RunError
+ *
+ * @see CActive::RunError
+ */
+ TInt RunError(TInt aError);
+
+private:
+ CWmImageConverter();
+ void ConstructL( MConverterObserver* aObserver );
+ void CheckSvgErrorL( MSvgError* aError );
+
+private:
+
+ void ScaleBitmap( TInt aWidth, TInt aHeight );
+ void ScaleMask( TInt aWidth, TInt aHeight );
+ void CreateIconFromUidL( const TUid& aUid );
+ void CreateIconFromSvgL( const TDesC& aFileName );
+ void CreateIconFromOtherL( const TDesC& aFileName );
+ void CreateSkinOrMifIconL(
+ const TAknsItemID& aItemId, TInt aBitmapId,
+ TInt aMaskId, const TDesC& aFileName );
+ // resolvers
+ TBool ResolveUid( const TDesC& aPath, TUid& aUid );
+ TBool ResolveSkinId( const TDesC& aPath, TAknsItemID& aItemId );
+ TBool ResolveMifId( const TDesC& aPath, TInt& aBitmapId,
+ TInt& aMaskId, TDes& aFileName );
+ TBool ResolveSkinIdAndMifId( const TDesC& aPath, TAknsItemID& aItemId,
+ TInt& aBitmapId, TInt& aMaskId, TDes& aFileName );
+ TBool EndsWith( const TDesC& aString, const TDesC& aPattern );
+
+private: // from MAknIconFileProvider
+
+ /** Returns an open file handle to the icon file. */
+ void RetrieveIconFileHandleL( RFile& aFile, const TIconFileType aType );
+
+ /** Stops using this MAknIconFileProvider instance */
+ void Finished();
+
+private:
+ /**
+ * Converter observer (not owned)
+ */
+ MConverterObserver* iObserver;
+
+ /**
+ * decoded image
+ */
+ CFbsBitmap* iBitmap;
+
+ /**
+ * decoded image mask
+ */
+ CFbsBitmap* iMask;
+
+ /**
+ * decoder from ICL API
+ */
+ CImageDecoder* iImageDecoder;
+
+ /**
+ * bitmap scaler
+ */
+ CBitmapScaler* iScaler;
+
+ /**
+ * internal state
+ */
+ TState iState;
+
+ /**
+ * File name to convert
+ */
+ TFileName iFilename;
+
+ /**
+ * size to convert
+ */
+ TSize iSize;
+
+ /**
+ * is scaling needed
+ */
+ TBool iScaleNeeded;
+
+ /**
+ * File handle
+ */
+ RFs iFs;
+
+ /**
+ * Conversion method for current image
+ */
+ TConversionMethod iConversionMethod;
+
+ };
+
+#endif // #ifndef WMIMAGECONVERTER_H
+
+// end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/inc/wmlistbox.h Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,400 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Declares widget listbox for WidgetManager
+*
+*/
+
+#ifndef ___WMLISTBOX_H__
+#define ___WMLISTBOX_H__
+
+// INCLUDES
+#include <eiklbi.h>
+#include <eiktxlbx.h>
+#include <eiktxlbm.h>
+#include <eikfrlb.h>
+#include <eiktxlbm.h>
+#include <aknlists.h>
+
+#include <touchfeedback.h>
+#include <touchlogicalfeedback.h>
+#include <aknlongtapdetector.h>
+#include "wmwidgetdataobserver.h"
+#include "wmwidgetdata.h"
+
+// FORWARD DECLARATIONS
+class CWmListBox;
+class CWmPlugin;
+class CListBoxView;
+class CFormattedCellListBoxData;
+class CAknLongTapDetector;
+class CWmListModel;
+class CWmWidgetData;
+class CAknStylusPopUpMenu;
+class MEikMenuObserver;
+
+// CLASS DECLARATIONS
+
+/**
+ * CWmListItemDrawer
+ */
+NONSHARABLE_CLASS( CWmListItemDrawer ): public CFormattedCellListBoxItemDrawer
+ {
+public:
+ /** Two-phased constructor. */
+ static CWmListItemDrawer* NewL(
+ CWmPlugin& aWmPlugin,
+ MTextListBoxModel* aTextListBoxModel,
+ const CFont* aFont,
+ CFormattedCellListBoxData* aFormattedCellData,
+ CWmListBox* aListBox );
+
+ /** Destructor. */
+ ~CWmListItemDrawer();
+
+ /** Default logo image. */
+ const CFbsBitmap* DefaultLogoImage();
+ /** Default logo mask. */
+ const CFbsBitmap* DefaultLogoMask();
+
+ /**
+ * re-size bitmaps to size provided by layout
+ */
+ void ResizeDefaultBitmaps();
+
+ /**
+ * Responds to skin changed event.
+ */
+ void HandleSkinChanged();
+
+public:
+
+ /**
+ * from CFormattedCellListBoxItemDrawer:
+ * draws a single list box item
+ */
+ void DrawItem(
+ TInt aItemIndex, TPoint aItemRectPos,
+ TBool aItemIsSelected, TBool aItemIsCurrent,
+ TBool aViewIsEmphasized, TBool aViewIsDimmed ) const;
+
+private:
+ /** Constructor for performing 1st stage construction */
+ CWmListItemDrawer(
+ CWmPlugin& aWmPlugin,
+ MTextListBoxModel* aTextListBoxModel,
+ const CFont* aFont,
+ CFormattedCellListBoxData* aFormattedCellData,
+ CWmListBox* aListBox );
+
+ /** 2nd phase constructor */
+ void ConstructL();
+
+private: // data members
+
+ /**
+ * the plugin root (not owned)
+ */
+ CWmPlugin& iWmPlugin;
+
+ /**
+ * pointer to the list box data (not owned)
+ */
+ CFormattedCellListBoxData* iCellData;
+
+ /**
+ * pointer to the listbox (not owned)
+ */
+ CWmListBox* iListBox;
+
+ /**
+ * current font used in drawing (not owned)
+ */
+ const CFont* iFont;
+
+ /**
+ * add-button colored bitmap (default color)
+ */
+ CFbsBitmap* iAddWidgetBtnImage;
+
+ /**
+ * add-button mask
+ */
+ CFbsBitmap* iAddWidgetBtnMask;
+
+ /**
+ * add-button colored bitmap (highlighted color)
+ */
+ CFbsBitmap* iAddWidgetBtnHighlightImage;
+
+ /**
+ * add-button mask
+ */
+ CFbsBitmap* iAddWidgetBtnHighlightMask;
+
+ /**
+ * default logo (when widget does not have one) bitmap
+ */
+ CFbsBitmap* iDefaultLogoImage;
+
+ /**
+ * default logo (when widget does not have one) mask
+ */
+ CFbsBitmap* iDefaultLogoImageMask;
+
+ };
+
+
+
+// CLASS DECLARATIONS
+/**
+ * CWmListBox
+ */
+NONSHARABLE_CLASS( CWmListBox ): public CAknDouble2LargeStyleListBox,
+ public MWmWidgetDataObserver
+ {
+public:
+
+ /**
+ * Two-phased constructor.
+ */
+ static CWmListBox* NewL(
+ CWmPlugin& aWmPlugin,
+ const TRect& aRect,
+ const CCoeControl* aParent,
+ TInt aFlags = 0 );
+
+ /** Destructor. */
+ ~CWmListBox();
+
+public: // API for manipulating list content
+
+ /** Default Logo. */
+ const CFbsBitmap* DefaultLogo();
+ /** Default Logo mask. */
+ const CFbsBitmap* DefaultMask();
+
+ /**
+ * Findbox visibility
+ *
+ * @param aVisibility sets find pane visibility
+ */
+ inline void SetFindPaneIsVisible( TBool aVisibility );
+
+ /**
+ * Currently selected item index
+ *
+ * @return return currently selected item
+ */
+ TInt CurrentListBoxItemIndex();
+
+ /**
+ * real index for listbox item if findbox is active
+ *
+ * @return return index from original list for currently selected item
+ */
+ TInt RealIndex( TInt aIndex );
+
+ /**
+ * number of items in the widget data array (also items on the list)
+ *
+ * @return count of widget data array
+ */
+ inline TInt WidgetDataCount();
+
+ /**
+ * currently selected item
+ * @return the selected item, or NULL if nothing selected
+ */
+ CWmWidgetData* WidgetData();
+
+ /**
+ * gets an item by index
+ *
+ * @param aItemIndex index for item to return
+ */
+ CWmWidgetData& WidgetData( TInt aItemIndex );
+
+ /**
+ * gets the constant widget data array
+ */
+ inline const RWidgetDataValues& WidgetDataArray();
+
+ /**
+ * inserts widget data to the model. Takes ownership of the object.
+ * The widget data will appear to correct location in natural order:
+ * - in previously saved position, if it has been viewed before
+ * (widget data must have a pointer to persistent widget order)
+ * - in case this is a new widget, it will appear topmost
+ * - in case there is no persistent widgets order or it is empty,
+ * the widget is added in alphabetical order
+ *
+ * NOTE: caller must call HandleItemAdditionL() for the listbox after
+ * adding all widget datas to update the listbox correctly!
+ *
+ * @param aWidget Data data to add
+ */
+ void AddWidgetDataL( CWmWidgetData* aWidgetData );
+
+ /**
+ * removes widget data from given index in the model
+ * The method reorganises the list model and size.
+ * Drawing is still needed to update the appearance.
+ *
+ * @param aItemIndex index to remove
+ * */
+ void RemoveWidgetData( TInt aItemIndex/*, TBool aRedraw = ETrue*/ );
+
+ /**
+ * requests to redraw item in given index position
+ *
+ * @param aItemIndex index to redraw
+ */
+ void RedrawItem( TInt aItemIndex );
+
+ /** sort order of widgets in the list */
+ enum TSortOrder
+ {
+ /** sort list as it was on last run */
+ EStoredOrder,
+ /** sort alphabetically */
+ EAlphabetical,
+ /** show latest installed first */
+ ELatestFirst
+ };
+
+ /**
+ * sets the list sort order
+ *
+ * @param aOrder sort order
+ */
+ void SetSortOrderL( TSortOrder aOrder );
+
+ /**
+ * Responds to layout switched.
+ */
+ void HandleLayoutChanged();
+
+ /**
+ * Responds to skin changed.
+ */
+ void HandleSkinChanged();
+
+ /**
+ * State of pointer down event
+ *
+ * @return ETrue if pointer is down
+ */
+ inline TBool PressedDown();
+
+ /**
+ * Returns size of logo
+ *
+ * @return Size of logo rect
+ */
+ TSize LogoSize();
+
+private: // from CEikTextListBox
+ /**
+ * Creates the item drawer.
+ *
+ * @see CEikTextListBox::CreateItemDrawerL
+ */
+ void CreateItemDrawerL();
+
+protected: // from base class CCoeControl
+
+ /**
+ * Sets the control's extent, specifying a rectangle.
+ *
+ * @see CCoeControl::SizeChanged
+ */
+ void SizeChanged();
+
+private: // from base class CCoeControl
+
+ /*
+ * Draws the control.
+ *
+ * @see CCoeControl::Draw
+ */
+ void Draw( const TRect& aRect ) const;
+
+ /**
+ * Handles pointer events.
+ *
+ * @see CCoeControl::HandlePointerEventL
+ */
+ void HandlePointerEventL( const TPointerEvent& aPointerEvent );
+
+private:
+ /** Constructor for performing 1st stage construction */
+ CWmListBox( CWmPlugin& aWmPlugin );
+
+ /** 2nd phase constructor */
+ void ConstructL(
+ const TRect& aRect,
+ const CCoeControl* aParent,
+ TInt aFlags );
+
+
+protected: // from MWmWidgetDataObserver
+
+ /**
+ * widget needs redrawing
+ *
+ * @param aWidgetData item to redraw
+ */
+ void HandleWidgetDataChanged( CWmWidgetData* aWidgetData );
+
+private: // own methods
+
+ /**
+ * linear order for sorting, depending on the sort type being used
+ */
+ TLinearOrder<CWmWidgetData> SortOrder( TSortOrder aOrder );
+
+private:
+
+ /**
+ * the plugin root (not owned)
+ */
+ CWmPlugin& iWmPlugin;
+
+ /**
+ * array of widget data objects (the list model)
+ */
+ RWidgetDataValues iWidgetDatas;
+
+ /**
+ * the currently active item ADD button's rectangle, for push recognition
+ */
+ TRect iButtonRect;
+
+ /**
+ * state of list box find pane
+ */
+ TBool iFindPaneIsVisible;
+
+ /**
+ * state of pointer pressed down and hold
+ */
+ TBool iPressedDown;
+
+ };
+#include "wmlistbox.inl"
+
+#endif ___WMLISTBOX_H__
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/inc/wmlistbox.inl Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,53 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Inline function definitions for CWmListBox
+*
+*/
+
+#ifndef WMLISTBOX_INL_
+#define WMLISTBOX_INL_
+
+/**
+ * Findbox visibility
+ *
+ * @param aVisibility sets find pane visibility
+ */
+ inline void CWmListBox::SetFindPaneIsVisible( TBool aVisibility )
+ { iFindPaneIsVisible = aVisibility; }
+
+ /**
+ * number of items in the widget data array (also items on the list)
+ *
+ * @return count of widget data array
+ */
+ inline TInt CWmListBox::WidgetDataCount()
+ { return iWidgetDatas.Count(); }
+
+ /**
+ * gets the constant widget data array
+ */
+ inline const RWidgetDataValues& CWmListBox::WidgetDataArray()
+ { return iWidgetDatas; }
+
+/**
+ * State of pointer down event
+ *
+ * @return ETrue if pointer is down
+ */
+ inline TBool CWmListBox::PressedDown()
+ { return iPressedDown; }
+
+
+#endif /* WMLISTBOX_INL_ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/inc/wmmaincontainer.h Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,383 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Declares main container control for Widget Manager application.
+*
+*/
+
+#ifndef WMMAINCONTAINER_H
+#define WMMAINCONTAINER_H
+
+#include <e32base.h>
+#include <e32cmn.h>
+#include <f32file.h>
+#include <coecobs.h>
+#include <coecntrl.h>
+#include <AknsUtils.h>
+#include <gulicon.h>
+#include <eiklbo.h> // MEikListBoxObserver
+
+// FORWARD DECLARATIONS
+class CWmPlugin;
+class CWmListBox;
+class CAknsBasicBackgroundControlContext;
+class CAknViewAppUi;
+class CAknSearchField;
+class CCoeControl;
+class CAknSearchField;
+class CWmPortalButton;
+class CWmWidgetLoaderAo;
+class CWmMainContainerView;
+
+/**
+ * Container class for WmMainContainer
+ *
+ * @class CWmMainContainer WmMainContainer.h
+ */
+NONSHARABLE_CLASS( CWmMainContainer ) : public CCoeControl,
+ public MEikListBoxObserver
+ {
+public: // constructors and destructor
+
+ /*
+ * Two-phased constructor.
+ *
+ * @param aRect container rect
+ * @param aWmPlugin wm plugin
+ */
+ static CWmMainContainer* NewL(
+ const TRect& aRect,
+ CWmPlugin& aWmPlugin );
+
+ /*
+ * Two-phased constructor.
+ *
+ * @param aRect container rect
+ * @param aWmPlugin wm plugin
+ */
+ static CWmMainContainer* NewLC(
+ const TRect& aRect,
+ CWmPlugin& aWmPlugin );
+
+ /** Destructor */
+ virtual ~CWmMainContainer();
+
+private:
+ /** constructor */
+ CWmMainContainer(
+ CWmPlugin& aWmPlugin );
+
+ /** 2nd phase constructor */
+ void ConstructL(
+ const TRect& aRect );
+
+public: // new functions
+
+ /**
+ * @return reference to WmPlugin
+ */
+ CWmPlugin& WmPlugin();
+
+ /**
+ * @return true, if portal button is currently selected
+ */
+ TBool PortalSelected();
+
+ /**
+ * @return true, if a widget in list is currently selected
+ */
+ TBool WidgetSelected();
+
+ /**
+ * @return true, ADD command is possible
+ */
+ TBool CanDoAdd();
+
+ /**
+ * @return true, if UNINSTALL command is possible
+ */
+ TBool CanDoUninstall();
+
+ /**
+ * @return true, if LAUNCH command is possible
+ */
+ TBool CanDoLaunch();
+
+ /**
+ * @return true, if FIND command is possible
+ */
+ TBool CanDoFind();
+
+ /**
+ * @return true, if SORT command is possible
+ */
+ TBool CanDoSort();
+
+ /**
+ * @return true, if DETAILS command is possible
+ */
+ TBool CanDoDetails();
+
+ /**
+ * @return true, if HELP command is possible
+ */
+ TBool CanDoHelp();
+
+ /**
+ * executes widget details dialog launch
+ */
+ void LaunchDetailsDialogL();
+
+ /**
+ * executes widget addition to home screen
+ */
+ void AddWidgetToHomeScreenL();
+
+ /**
+ * executes widget launch
+ */
+ void LaunchWidgetL();
+
+ /**
+ * executes findbox activation
+ */
+ void ActivateFindPaneL();
+
+ /**
+ * executes findbox deactivation
+ */
+ void DeactivateFindPaneL();
+
+ /**
+ * sorts the widget list in alphabetical order
+ */
+ void SortListAlphabeticallyL();
+
+ /**
+ * executes widget uninstall
+ */
+ void UninstallWidgetL();
+
+ /**
+ * opens OVI portal
+ */
+ void OpenOviPortalL();
+
+ /**
+ * Selection key (middle soft key)
+ */
+ void SelectL();
+
+ /**
+ * Show widget manager help
+ */
+ void ShowHelpL();
+
+ /**
+ * handles situation when widget list has changed.
+ * in practice reloads the widget list from the widgets API
+ * and redraws the screen.
+ */
+ void HandleWidgetListChanged();
+
+public:
+
+ /**
+ * Handles key events.
+ *
+ * @see CCoeControl::OfferKeyEventL
+ */
+ TKeyResponse OfferKeyEventL(
+ const TKeyEvent& aKeyEvent,
+ TEventCode aType );
+
+ /**
+ * Handles a change to the control's resources
+ *
+ * @see CCoeControl::HandleResourceChange
+ */
+ void HandleResourceChange( TInt aType );
+
+ /**
+ * Handles pointer events.
+ *
+ * @see CCoeControl::HandlePointerEventL
+ */
+ void HandlePointerEventL( const TPointerEvent& aPointerEvent );
+
+ /**
+ * Moves focus to the OVI button
+ */
+ void SetFocusToOviButton();
+
+ /**
+ * Moves focus to the widgets list, alternatively also setting the currently
+ * selected item.
+ * @param aIndex the item in widgets list to highlight during setting focus.
+ * By default the previously selected item will be highlighted.
+ */
+ void SetFocusToWidgetList( TInt aIndex = KErrUnknown );
+
+ /*
+ * Tells if user inputs should be handeled or not. If ret is EFalse wm
+ * can ignore user inputs. This is becouse closing view is async and user
+ * might give some inputs before view is closed.
+ */
+ TBool ClosingDown();
+
+ /*
+ * To set iClosingDown. See above.
+ */
+ void SetClosingDown( TBool aClosingDown );
+
+protected: // from base class CCoeControl
+
+ /**
+ * Sets the control's extent, specifying a rectangle.
+ *
+ * @see CCoeControl::SizeChanged
+ */
+ void SizeChanged();
+
+private: // from base class CCoeControl
+
+ /*
+ * Draws the control.
+ *
+ * @see CCoeControl::Draw
+ */
+ void Draw( const TRect& aRect ) const;
+
+ /**
+ * Suppy Mop object for control context
+ * @param TTypeUid aId
+ */
+ TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
+
+private: // from MEikListBoxObserver
+
+ /**
+ * List box observer interface.
+ *
+ * @see MEikListBoxObserver::HandleListBoxEventL
+ */
+ void HandleListBoxEventL(
+ CEikListBox* aListBox,
+ TListBoxEvent aEventType);
+
+private: // New functions
+
+ void AddControlL( CCoeControl* aControl, TInt aControlId );
+ void InitializeControlsL( const TRect& aRect );
+ void LayoutControls();
+ void StartLoadingWidgetsL();
+ void RemoveCtrlsFromStack();
+ TKeyResponse MoveFocusByKeys(
+ const TKeyEvent& aKeyEvent,
+ TEventCode aType );
+ void UpdateFocusMode();
+ CCoeControl* FindChildControlByPoint( const TPoint& aPoint );
+ void HandleFindSizeChanged();
+ void FetchRepositoryDataL();
+
+private:
+
+ /**
+ * the plugin root
+ */
+ CWmPlugin& iWmPlugin;
+
+ /**
+ * the widgets list
+ */
+ CWmListBox* iWidgetsList;
+
+ /**
+ * search filed
+ */
+ CAknSearchField* iFindbox;
+
+ /**
+ * search filed visibility switch
+ */
+ TBool iFindPaneIsVisible;
+
+ /**
+ * background
+ */
+ CAknsBasicBackgroundControlContext* iBgContext;
+
+ /**
+ * Ovi portal
+ */
+ CWmPortalButton* iOviPortal;
+
+ /** GUI layout modes */
+ enum TWmLayout
+ {
+ EPortrait,
+ ELandscape,
+ ELandscapeMirrored
+ };
+
+ /**
+ * current widget manager container layout
+ */
+ TWmLayout iLayout;
+
+ /** focus modes */
+ enum TWmFocusMode
+ {
+ ENowhere,
+ EOvi,
+ EList,
+ EFind
+ };
+
+ /**
+ * current widget manager focus mode
+ */
+ TWmFocusMode iFocusMode;
+
+ /**
+ * AO for loading widgets into the list UI
+ */
+ CWmWidgetLoaderAo* iWidgetLoader;
+
+ /**
+ * If this is set to ETrue it means wmview is closing and all user inputs
+ * should be ignored.
+ */
+ TBool iClosingDown;
+
+ /**
+ * Localized Url to start browser
+ */
+ HBufC* iOviStoreUrl;
+
+ /**
+ * OviStore bundleId
+ */
+ HBufC* iOviStoreClientBundleId;
+
+ /**
+ * OviStore client param
+ */
+ HBufC* iOviStoreClientParam;
+
+ };
+
+#endif // WMMAINCONTAINER_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/inc/wmmaincontainerview.h Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,141 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Declares main container view for Widget Manager application.
+*
+*/
+
+#ifndef WMMAINCONTAINERVIEW_H
+#define WMMAINCONTAINERVIEW_H
+
+#include <aknview.h>
+
+
+class CWmMainContainer;
+class CWmPlugin;
+
+/**
+ * Avkon view class for WmMainContainerView. It is register with the view server
+ * by the AppUi. It owns the container control.
+ * @class CWmMainContainerView WmMainContainerView.h
+ */
+NONSHARABLE_CLASS( CWmMainContainerView ) : public CAknView
+ {
+
+public: // constructors and destructor
+ /**
+ * Two-phased constructor.
+ *
+ * @param aWmPlugin wm plugin
+ */
+ static CWmMainContainerView* NewL( CWmPlugin& aWmPlugin );
+
+ /**
+ * Two-phased constructor.
+ *
+ * @param aWmPlugin wm plugin
+ */
+ static CWmMainContainerView* NewLC( CWmPlugin& aWmPlugin );
+
+ /** Destructor */
+ virtual ~CWmMainContainerView();
+
+
+public: // from base class CAknView
+ /**
+ * Returns views id, intended for overriding by sub classes.
+ *
+ * @see CAknView::Id
+ */
+ TUid Id() const;
+
+ /**
+ * Command handling function intended for overriding by sub classes.
+ *
+ * @see CAknView::HandleCommandL
+ */
+ void HandleCommandL( TInt aCommand );
+
+public:
+ /**
+ * Creates CWmMainContainer
+ */
+ CWmMainContainer* CreateContainerL();
+
+private:
+ CWmMainContainerView( CWmPlugin& aWmPlugin );
+ void ConstructL();
+
+protected: // from base class CAknView
+ /**
+ * Avkon view architecture system.
+ *
+ * @see CAknView::DoActivateL
+ */
+ void DoActivateL(
+ const TVwsViewId& aPrevViewId,
+ TUid aCustomMessageId,
+ const TDesC8& aCustomMessage );
+
+ /**
+ * View deactivation function intended for overriding by sub classes.
+ *
+ * @see CAknView::DoActivateL
+ */
+ void DoDeactivate();
+
+ /**
+ * Event handler for status pane size changes.
+ *
+ * @see CAknView::HandleStatusPaneSizeChange
+ */
+ void HandleStatusPaneSizeChange();
+
+protected: // From MEikMenuObserver
+ /*
+ * Menu observer interface.
+ *
+ * @see MEikMenuObserver::DynInitMenuPaneL
+ */
+ void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane);
+
+private:
+
+ /** menu commands */
+ TBool HandleOpenMenuItemSelectedL();
+ TBool HandleAddMenuItemSelectedL();
+ TBool HandleLaunchMenuItemSelectedL();
+ TBool HandleSearchMenuItemSelectedL();
+ TBool HandleSortAlphaMenuItemSelectedL();
+ TBool HandleUninstallMenuItemSelectedL();
+ TBool HandleHelpMenuItemSelectedL();
+ TBool HandleDetailsMenuItemSelectedL();
+ TBool HandleDeactivateFindPaneL();
+ /** setup status pane */
+ void SetupStatusPaneL();
+
+private:
+ /**
+ * the container
+ */
+ CWmMainContainer* iWmMainContainer;
+
+ /**
+ * the plugin root (not owned)
+ */
+ CWmPlugin& iWmPlugin;
+
+ };
+
+#endif // WMMAINCONTAINERVIEW_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/inc/wmpersistentwidgetorder.h Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,142 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Defines an ordered list of widget id's with persistence capability
+*
+*/
+
+#ifndef WMPERSISTENTWIDGETORDER_H
+#define WMPERSISTENTWIDGETORDER_H
+
+// INCLUDES
+#include <e32base.h>
+#include "wmwidgetdata.h"
+
+// FORWARD DECLARATIONS
+class RFs;
+
+// CLASS DECLARATION
+/**
+ * CWmPersistentWidgetOrder
+ * This class is an ordered list of widget identifiers. The list can be
+ * serialised and extract from stream and persisted. The list can be used
+ * in sorting a pointer array of CWmWidgetData.
+ */
+NONSHARABLE_CLASS( CWmPersistentWidgetOrder ) : public CBase
+ {
+
+public: // Constructors and destructor
+ /**
+ * static constructor.
+ */
+ static CWmPersistentWidgetOrder* NewL( RFs& aFs );
+
+ /** Destructor. */
+ ~CWmPersistentWidgetOrder();
+
+private: // private construction
+
+ /**
+ * constructor
+ */
+ CWmPersistentWidgetOrder( RFs& aFs );
+
+ /**
+ * 2nd phase constructor
+ */
+ void ConstructL();
+
+
+public: // API
+
+ /**
+ * Loads the persistent widget list from storage.
+ * This is typically done once after construction.
+ * The instance can now be used to sort widget data.
+ */
+ void LoadL();
+
+ /**
+ * Stores a sorted array of WmWidgetData types. Note that
+ * the order will be directly stored and a copy will not
+ * be kept locally, so this instance can not be used to
+ * sort widget data until LoadL() is called.
+ *
+ * @param aArray the array of widget daya types
+ */
+ void StoreL( const RWidgetDataValues& aArray );
+
+ /**
+ * Retrieves an index of given widget data object within the list.
+ * This index can be used to sort and organise. Note that LoadL()
+ * must be used prior to calling this method, and before that
+ * there must be something persisted.
+ *
+ * @param aWidgetData data to seek index of in the sorted order
+ * @return the index found, or KErrNotFound if widget is new
+ */
+ TInt IndexOf( const CWmWidgetData& aWidgetData ) const;
+
+ /**
+ * checks if the persistent widget order is empty. In this case it does
+ * not make any sense to use the object to sort anything.
+ * Note that before loading the object is always empty.
+ */
+ TBool IsEmpty() const;
+
+protected:
+
+ /**
+ * Cleans up the array
+ */
+ void CleanupArray();
+
+ /**
+ * build the storage file path and name. The storage file will be located
+ * in host process private directory.
+ * @param aPathBuf a buffer to receive the complete file path
+ */
+ void GetStoreFileNameL( TDes& aPathBuf );
+
+ /**
+ * Unique tag of a widget
+ */
+ class Tag
+ {
+ public:
+ /** constructs a tag from parameters */
+ Tag( TInt32 aUid, HBufC16* aPublisherId );
+
+ /** compares a tag agains a widget data */
+ TBool Matches( const CWmWidgetData& aWidgetData ) const;
+
+ /** widget uid */
+ TInt32 iUid;
+
+ /** widget publisher id */
+ HBufC16* iPublisherId;
+ };
+
+private: // data members
+
+ /** the file session */
+ RFs& iFs;
+
+ /** array of widget tags for sorting */
+ RArray<Tag> iTagArray;
+
+ };
+
+
+#endif // WMPERSISTENTWIDGETORDER_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/inc/wmplugin.h Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,195 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* widget manager plugin declaration
+*
+*/
+
+#ifndef __WMPLUGIN_
+#define __WMPLUGIN_
+
+// INCLUDES
+#include <e32base.h>
+#include <vwsdef.h>
+
+#include <hscontentcontrolui.h>
+#include <hscontentcontroller.h>
+#include <hscontentinfo.h>
+
+class CAknViewAppUi;
+class CWmResourceLoader;
+class CWmMainContainerView;
+class CWmMainContainer;
+class CWmEffectManager;
+
+/**
+ * CWmPlugin
+ */
+NONSHARABLE_CLASS( CWmPlugin ) : public CHsContentControlUi
+ {
+public:
+
+ /**
+ * Two-phased constructor.
+ */
+ static CWmPlugin* NewL();
+
+ /** Destructor */
+ ~CWmPlugin();
+
+public: // From MHsContentControlUi
+
+ /**
+ * shows the widget manager UI
+ *
+ * @see MHsContentControlUi::Activate
+ */
+ void Activate();
+
+ /**
+ * Notifies widget list changes
+ *
+ * @see MHsContentControlUi::NotifyWidgetListChanged
+ */
+ void NotifyWidgetListChanged();
+
+public: // plugin services
+
+ /**
+ * whether widget manager UI is showing
+ *
+ * @return return ETrue if wm UI is showed
+ */
+ TBool IsActive();
+
+ /**
+ * hides widget manager UI
+ */
+ void Deactivate();
+
+ /**
+ * main view activated. Sets the previous view ID and main container
+ *
+ * @param aPreviousViewId
+ * @param aWmMainContainer
+ */
+ void MainViewActivated(
+ const TVwsViewId& aPreviousViewId,
+ CWmMainContainer* aWmMainContainer );
+
+ /**
+ * main view was deactivated
+ */
+ void MainViewDeactivated();
+
+ /** Postponed command to execute when widgetmanager has deactivated */
+ enum TCommand
+ {
+ /** no command */
+ ENone,
+ /** add content to home screen */
+ EAddToHomescreen
+ };
+
+ /**
+ * Sets a postponed command. The postponed command will be executed after
+ * widget manager has been deactivated.
+ *
+ * @param aCommand the command to be executed
+ * @param aContent content parameter related to the command
+ */
+ void SetPostponedCommandL(
+ TCommand aCommand, CHsContentInfo& aContent );
+
+ /**
+ * the CAknViewAppUi reference
+ *
+ * @return returns CAknViewAppUi
+ */
+ CAknViewAppUi& ViewAppUi();
+
+ /**
+ * the resource loader
+ *
+ * @return returns CWmResourceLoader
+ */
+ CWmResourceLoader& ResourceLoader();
+
+ /**
+ * the content controller ref
+ *
+ * @return returns MHsContentController
+ */
+ MHsContentController& ContentController();
+
+ /**
+ * the shared file server reference
+ */
+ RFs& FileServer();
+
+private:
+ /** constructor */
+ CWmPlugin();
+ /** 2nd phase constructor */
+ void ConstructL();
+ /** actions that are done when widget manager is closed */
+ void ExecutePostponedCommandL();
+
+private: // data members
+
+ /**
+ * the host application view app UI (not owned)
+ */
+ CAknViewAppUi* iViewAppUi;
+
+ /**
+ * main container (not owned)
+ */
+ CWmMainContainer* iWmMainContainer;
+
+ /**
+ * resource loader
+ */
+ CWmResourceLoader* iResourceLoader;
+
+ /**
+ * previous view ID (shown when main view closed)
+ */
+ TVwsViewId iPreviousViewUid;
+
+ /**
+ * Takes care of fancy UI effects
+ */
+ CWmEffectManager* iEffectManager;
+
+ /**
+ * The file server session
+ */
+ RFs* iFs;
+
+ /**
+ * command to be executed when widgetmanager has
+ * been deactivated
+ */
+ TCommand iPostponedCommand;
+
+ /**
+ * content info as parameter to iPostponedCommand
+ */
+ CHsContentInfo* iPostponedContent;
+
+ };
+
+#endif // __WMPLUGIN_
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/inc/wmportalbutton.h Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,142 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Declares portal button for WidgetManager
+*
+*/
+
+#ifndef ___WMPORTALBUTTON_H__
+#define ___WMPORTALBUTTON_H__
+
+#include <aknbutton.h> // CAknButton
+#include "wmimageconverter.h"
+#include "wmcommon.h"
+
+// FORWARD DECLARATIONS
+class CWmMainContainer;
+
+/**
+ * Portal button ( ovi, operator ) class for Wm
+ *
+ * @class CWmPortalButton wmportalbutton.h
+ */
+NONSHARABLE_CLASS( CWmPortalButton ) : public CAknButton,
+ public MConverterObserver
+ {
+public:
+ /*
+ * Two-phased constructor.
+ *
+ * @param aParent button title text
+ * @param aText button title text
+ * @param aUrl Url to open in browser when clicked.
+ * @param aButtonCtrlId type of button
+ */
+ static CWmPortalButton* NewL(
+ const CCoeControl* aParent,
+ const TDesC& aText = KNullDesC,
+ const TDesC& aUrl = KNullDesC,
+ TWmUiControlIds aButtonCtrlId = EOviPortal );
+
+ /** Destructor */
+ virtual ~CWmPortalButton();
+
+public: // Functions from base class
+
+ /**
+ * Handles key events.
+ *
+ * @see CCoeControl::OfferKeyEventL
+ */
+ TKeyResponse OfferKeyEventL(
+ const TKeyEvent& aKeyEvent, TEventCode aType );
+
+ /**
+ * Handles pointer events.
+ *
+ * @see CCoeControl::HandlePointerEventL
+ */
+ void HandlePointerEventL( const TPointerEvent& aPointerEvent );
+
+ /*
+ * Draws the control.
+ *
+ * @see CCoeControl::Draw
+ */
+ void Draw( const TRect& /*aRect*/ ) const;
+
+ /**
+ * Sets the control's extent, specifying a rectangle.
+ *
+ * @see CCoeControl::SizeChanged
+ */
+ void SizeChanged();
+
+protected: // from MConverterObserver
+
+ /** image conversin completed */
+ void NotifyCompletion( TInt aError );
+
+protected: // Constructors
+
+ /** Constructor for performing 1st stage construction */
+ CWmPortalButton( const TInt aFlags,
+ TWmUiControlIds aButtonCtrlId = EOviPortal );
+
+ /** 2nd phase constructor */
+ void ConstructL(
+ const CCoeControl* aParent,
+ const TDesC& aText = KNullDesC,
+ const TDesC& aUrl = KNullDesC );
+
+private:
+
+ /**
+ * Draws text over button
+ */
+ void DrawText( CWindowGc& aGc,
+ const TDesC& aText,
+ TAknTextComponentLayout& aLayout,
+ TInt aMargin ) const;
+
+private: //data members
+ /**
+ * Button text
+ */
+ HBufC* iText;
+
+ /**
+ * Url assigned to button
+ */
+ HBufC* iUrl;
+
+ /**
+ * the image converter utility
+ */
+ CWmImageConverter* iImageConverter;
+
+ /**
+ * Parent control
+ */
+ CWmMainContainer* iWmMainContainer;
+
+ /**
+ * Button ctrl id
+ */
+ TWmUiControlIds iButtonCtrlId;
+ };
+
+#endif //___WMPORTALBUTTON_H__
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/inc/wmresourceloader.h Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,133 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* loads widget manager resources and icons
+*
+*/
+
+
+#ifndef WMRESOURCELOADER_H_
+#define WMRESOURCELOADER_H_
+
+// INCLUDE FILES
+#include <e32base.h>
+
+// FORWARD DECLARATIONS
+class CAknStylusPopUpMenu;
+class CEikonEnv;
+class CAknButton;
+class CAknInformationNote;
+
+/**
+ * CWmResourceLoader
+ */
+NONSHARABLE_CLASS( CWmResourceLoader ) : public CBase
+ {
+
+public: // construction/destruction
+ /**
+ * static constructor
+ *
+ * @param aCoeEnv Control environment.
+ */
+ static CWmResourceLoader* NewL(
+ CEikonEnv& aEnv );
+
+ /** destructor */
+ ~CWmResourceLoader();
+
+public: // services
+
+ /**
+ * Loads a button from the widgetmanager resource file
+ * using CAknButton::ConstructFromResourceL
+ *
+ * @param aResource handle to the empty button instance
+ * @param aResourceId ID of the resource to use in loading
+ */
+ void LoadButtonL(
+ CAknButton& aResource,
+ TInt aResourceId );
+
+ /**
+ * shows a simple info popup with OK button
+ * @param aResourceId the resource id of string to be shown
+ * @param aString additional string to be replaced into %U
+ */
+ void InfoPopupL( TInt aResourceId, const TDesC& aString );
+
+ /**
+ * shows a standard error popup
+ * @param aErrorCode a system-wide standard error code
+ */
+ void ErrorPopup( TInt aErrorCode );
+
+ /** icon file path */
+ const TDesC& IconFilePath();
+
+ /** default no description text */
+ const TDesC& NoDescriptionText();
+
+private: // internal methods
+
+ /** constructor */
+ CWmResourceLoader(
+ CEikonEnv& aEnv );
+
+ /** 2nd phase constructor */
+ void ConstructL();
+
+ /** load the resource */
+ void LoadResourcesL();
+
+ /** free resources */
+ void UnloadResources();
+
+ /** find icon file path */
+ void DetermineIconFilePath();
+
+private: // members
+
+ /**
+ * the environment
+ */
+ CEikonEnv& iEnv;
+
+ /**
+ * name of this DLL
+ */
+ TFileName iDllName;
+
+ /**
+ * resource file offset
+ */
+ TInt iResourceFileOffset;
+
+ /**
+ * ICON file
+ */
+ TFileName iMifFile;
+
+ /**
+ * info note dialog
+ */
+ CAknInformationNote *iNote;
+
+ /**
+ * Default description text
+ */
+ HBufC* iDescription;
+ };
+
+#endif // WMRESOURCELOADER_H_
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/inc/wmwidgetdata.h Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,271 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* CWmWidgetData declaration
+*
+*/
+
+
+#ifndef WMWIDGETDATA_H
+#define WMWIDGETDATA_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <f32file.h>
+#include <bamdesca.h>
+#include <hscontentinfo.h>
+
+#include "wmimageconverter.h"
+
+// FORWARD DECLARATIONS
+class CDictionaryFileStore;
+class MWmWidgetDataObserver;
+class CFbsBitmap;
+class CHsContentInfo;
+class CWmPersistentWidgetOrder;
+class RWidgetRegistryClientSession;
+
+// CLASS DECLARATION
+/**
+ * CWmWidgetData is a representation of a widget in CWmListBox. it
+ * stores all data required for drawing the item in a list box, and
+ * handling the list item.
+ */
+NONSHARABLE_CLASS( CWmWidgetData )
+ : public CBase
+ , public MConverterObserver
+ {
+
+public: // types
+
+ /** widget type */
+ enum TWidgetType
+ {
+ EUnknown,
+ ENative,
+ ECps // wrt widgets included in this category
+ };
+
+public: // construction
+ /**
+ * static constructor
+ * @param aHsContentInfo (takes ownership)
+ * @param aRegistryClientSession (does not take ownership)
+ */
+ static CWmWidgetData* NewL(
+ CHsContentInfo* aHsContentInfo,
+ RWidgetRegistryClientSession* aRegistryClientSession );
+
+ /**
+ * static constructor, leaves object in cleanup stack
+ * @param aHsContentInfo (takes ownership)
+ * @param aRegistryClientSession (does not take ownership)
+ */
+ static CWmWidgetData* NewLC(
+ CHsContentInfo* aHsContentInfo,
+ RWidgetRegistryClientSession* aRegistryClientSession );
+
+ /** Destructor. */
+ ~CWmWidgetData();
+
+private: // private construction
+ /** Constructor for performing 1st stage construction */
+ CWmWidgetData();
+
+ /** 2nd phase constructor */
+ void ConstructL(
+ CHsContentInfo* aHsContentInfo,
+ RWidgetRegistryClientSession* aRegistryClientSession );
+
+ /**
+ * Initialisation routine
+ * called from ConstructL and whenever the content type changes
+ */
+ void InitL(
+ CHsContentInfo* aHsContentInfo,
+ RWidgetRegistryClientSession* aRegistryClientSession );
+
+public: // external handles
+
+ /**
+ * sets an observer for callbacks
+ *
+ * @param aObserver notifications when changes occur in widget data
+ */
+ void SetObserver( MWmWidgetDataObserver* aObserver );
+
+ /**
+ * persistent widget order handle, which is used in comparing
+ */
+ void SetPersistentWidgetOrder(
+ const CWmPersistentWidgetOrder* aPersistentWidgetOrder );
+
+ /**
+ * set logo rect size
+ */
+ void SetLogoSize( const TSize& aSize );
+
+ /**
+ * Init logo re-creation
+ */
+ void ReCreateLogo( const TSize& aSize );
+
+ /**
+ * Replaces the content of this widget data. The method is called
+ * during widget update. If widget values change, a change event is
+ * fired for the observer.
+ *
+ * @param aHsContentInfo new content (takes ownership)
+ * @return ETrue if content was changed
+ */
+ TBool ReplaceContentInfoL(
+ CHsContentInfo* aHsContentInfo );
+
+public: // comparing / sorting
+ /** whether this object represents the same widget as aContentInfo */
+ TBool EqualsTo( CHsContentInfo& aContentInfo );
+
+ /** comparator function for sort by name (compare two names)*/
+ static TInt CompareByName(
+ const CWmWidgetData& aDataOne,
+ const CWmWidgetData& aDataTwo );
+
+ /**
+ * comparator function for sorting by stored order
+ **/
+ static TInt CompareByPersistentWidgetOrder(
+ const CWmWidgetData& aDataOne,
+ const CWmWidgetData& aDataTwo );
+
+public: // methods to read the content
+
+ /** the HsContent info */
+ inline CHsContentInfo& HsContentInfo();
+
+ /** the HsContent info */
+ inline const CHsContentInfo& HsContentInfo() const;
+
+ /** widget name */
+ inline const TDesC& Name() const;
+
+ /** widget description */
+ inline const TDesC& Description() const;
+
+ /** widget uid */
+ inline TUid Uid() const;
+
+ /** cps widget publisher id */
+ inline const TDesC& PublisherId() const;
+
+ /** cps widget publisher uid */
+ TUid PublisherUid();
+
+ /** widget type */
+ inline TWidgetType WidgetType() const;
+
+ /** running install animation index */
+ inline TInt InstallAnimationIndex() const;
+
+ /** the logo bitmap */
+ inline const CFbsBitmap* LogoImage();
+
+ /** the logo bitmap */
+ inline const CFbsBitmap* LogoImageMask();
+
+ /** whether the widget data is valid or not */
+ inline TBool IsValid();
+
+ /** sets the widget data validity */
+ inline void SetValid( TBool aValid );
+
+protected: // from MConverterObserver
+
+ /** image conversin completed */
+ void NotifyCompletion( TInt aError );
+
+private: // new functions
+
+ /** fetches publisher uid from widget registry*/
+ void FetchPublisherUidL(
+ RWidgetRegistryClientSession* aRegistryClientSession );
+
+ /** Converts uid to TUid from TDesC8 */
+ TUid UidFromString( const TDesC8& aUidString ) const;
+
+ /** Logo icon string handling */
+ static TInt HandleAsyncIconString( TAny* aPtr );
+ void HandleIconStringL( const TDesC& aIconStr );
+ void FireDataChanged();
+
+private: // data members
+
+ /* instance of the CIdle class for async iconStr handling*/
+ CIdle* iIdle;
+
+ /* the image converter utility */
+ CWmImageConverter* iImageConverter;
+
+ /* observes this widget representation (NOT OWNED) */
+ MWmWidgetDataObserver* iObserver;
+
+ /* rotating animation index */
+ TInt iInstallAnimationIndex;
+
+ /** the widget logo bitmap */
+ CFbsBitmap* iLogoImage;
+
+ /** the widget logo mask */
+ CFbsBitmap* iLogoImageMask;
+
+ /** The CHsContentInfo that corresponds to this list row */
+ CHsContentInfo* iHsContentInfo;
+
+ /** type oif the widget */
+ TWidgetType iWidgetType;
+
+ /** persistent order of widgets (used in sorting) */
+ const CWmPersistentWidgetOrder* iPersistentWidgetOrder;
+
+ /** wrt widget publisher uid */
+ TUid iPublisherUid;
+
+ /** size of logo rect in list item */
+ TSize iLogoSize;
+
+ /** validity of the widget - used during list refresh */
+ TBool iValid;
+
+ };
+
+
+/**
+ * Pointer array of widget data objects.
+ * Also acts as an adapter to a descriptor array, providing the
+ * widget names as descriptor array elements.
+ */
+NONSHARABLE_CLASS( RWidgetDataValues ) : public RPointerArray<CWmWidgetData>,
+ public MDesCArray
+ {
+ protected: // from MDesCArray
+ /** returns number of items in the pointer array */
+ inline TInt MdcaCount() const;
+
+ /** returns the pointed widget name */
+ inline TPtrC16 MdcaPoint(TInt aIndex) const;
+
+ };
+
+#include "wmwidgetdata.inl"
+#endif // WMWIDGETDATA_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/inc/wmwidgetdata.inl Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,85 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* CWmWidgetData , RWidgetDataValues inline function definitions
+*
+*/
+
+#ifndef WMWIDGETDATA_INL_
+#define WMWIDGETDATA_INL_
+
+ /** the HsContent info */
+ inline CHsContentInfo& CWmWidgetData::HsContentInfo()
+ { return *iHsContentInfo; }
+
+ /** the HsContent info */
+ inline const CHsContentInfo& CWmWidgetData::HsContentInfo() const
+ { return *iHsContentInfo; }
+
+ /** widget name */
+ inline const TDesC& CWmWidgetData::Name() const
+ { return iHsContentInfo->Name(); }
+
+ /** widget description */
+ inline const TDesC& CWmWidgetData::Description() const
+ { return iHsContentInfo->Description(); }
+
+ /** widget uid */
+ inline TUid CWmWidgetData::Uid() const
+ { return UidFromString( iHsContentInfo->Uid() ); };
+
+ /** cps widget publisher id */
+ inline const TDesC& CWmWidgetData::PublisherId() const
+ { return iHsContentInfo->PublisherId(); }
+
+ /** widget type */
+ inline CWmWidgetData::TWidgetType CWmWidgetData::WidgetType() const
+ { return iWidgetType; }
+
+ /** running install animation index */
+ inline TInt CWmWidgetData::InstallAnimationIndex() const
+ { return iInstallAnimationIndex; }
+
+ /** the logo bitmap */
+ inline const CFbsBitmap* CWmWidgetData::LogoImage()
+ { return iLogoImage; }
+
+ /** the logo bitmap */
+ inline const CFbsBitmap* CWmWidgetData::LogoImageMask()
+ { return iLogoImageMask; }
+
+ /** whether the widget data is valid or not */
+ inline TBool CWmWidgetData::IsValid()
+ { return iValid; }
+
+ /** sets the widget data validity */
+ inline void CWmWidgetData::SetValid( TBool aValid )
+ { iValid = aValid; }
+
+
+ //From RWidgetDataValues
+
+ /** returns number of items in the pointer array */
+ inline TInt RWidgetDataValues::MdcaCount() const
+ {
+ return Count();
+ }
+ /** returns the pointed widget name */
+ inline TPtrC16 RWidgetDataValues::MdcaPoint(TInt aIndex) const
+ {
+ const TPtrC16 ptr( (*this)[aIndex]->Name() );
+ return ptr;
+ }
+
+#endif /* WMWIDGETDATA_INL_ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/inc/wmwidgetdataobserver.h Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,48 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Observer for changes in the widget data
+*
+*/
+
+
+#ifndef WMWIDGETDATAOBSERVER_H
+#define WMWIDGETDATAOBSERVER_H
+
+// INCLUDES
+#include <e32std.h>
+
+// Forward declarations
+class CWmWidgetData;
+
+// CLASS DECLARATION
+
+/**
+ * Observer class for receiving notifications
+ * when changes occur in widget data
+ */
+NONSHARABLE_CLASS( MWmWidgetDataObserver )
+ {
+ public:
+ /**
+ * A single widget data has changed.
+ * @param aWidgetData pointer to the data where change
+ * has occurred
+ */
+ virtual void HandleWidgetDataChanged(
+ CWmWidgetData* aWidgetData ) = 0;
+
+ };
+
+#endif // WMWIDGETDATAOBSERVER_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/inc/wmwidgetloaderao.h Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,126 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Active object to load widgets into list
+*
+*/
+
+#ifndef WMWIDGETLOADERAO_H_
+#define WMWIDGETLOADERAO_H_
+
+// INCLUDES
+#include <e32base.h>
+
+// FORWARD DECLARATIONS
+class CWmPlugin;
+class CWmListBox;
+class CHsContentInfo;
+class CWmWidgetData;
+class CWmPersistentWidgetOrder;
+class RWidgetRegistryClientSession;
+
+// CLASS DECLARATIONS
+
+/**
+ * Active object to load widgets into list
+ */
+NONSHARABLE_CLASS( CWmWidgetLoaderAo ) : public CAsyncOneShot
+ {
+
+public:
+ /**
+ * Static constructor
+ */
+ static CWmWidgetLoaderAo* NewL(
+ CWmPlugin& aWmPlugin,
+ CWmListBox& aTargetList );
+
+ /**
+ * Destructor.
+ */
+ ~CWmWidgetLoaderAo();
+
+ /**
+ * Starts the load process by activating the AO
+ */
+ void StartLoading();
+
+private:
+
+ /**
+ * Constructor
+ */
+ CWmWidgetLoaderAo(
+ CWmPlugin& aWmPlugin,
+ CWmListBox& aTargetList );
+
+ /**
+ * 2nd phase constructor
+ */
+ void ConstructL();
+
+protected: // from CActive
+
+ /**
+ * AO body
+ */
+ void RunL();
+
+ /**
+ * AO error handler
+ */
+ TInt RunError( TInt aError );
+
+private:
+
+ /**
+ * loads widgets into the listbox
+ */
+ void DoLoadWidgetsL();
+
+ /**
+ * finds a widget data entry from iWidgetsList that matches
+ * given content info. returns a pointer to the data found,
+ * or NULL if not found
+ */
+ CWmWidgetData* FindWidgetData( CHsContentInfo& aContentInfo );
+
+ /**
+ * adds a widget data entry to iWidgetsList
+ * takes ownership of aContentInfo
+ */
+ void AddWidgetDataL( CHsContentInfo* aContentInfo );
+
+ /**
+ * cleanup resources allocated runing one single run
+ */
+ void Cleanup();
+
+private: // data
+
+ /** reference to the widget manager root */
+ CWmPlugin& iWmPlugin;
+
+ /** target where widgets are to be loaded */
+ CWmListBox& iWidgetsList;
+
+ /** widget registry */
+ RWidgetRegistryClientSession* iWidgetRegistry;
+
+ /** persistent widget order */
+ CWmPersistentWidgetOrder* iWidgetOrder;
+
+ };
+
+#endif // WMWIDGETLOADERAO_H_
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/rom/widgetmanager.iby Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,34 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* widgetmanager binaries
+*/
+
+#ifndef WIDGETMANAGER_IBY
+#define WIDGETMANAGER_IBY
+
+// widgetmanager plugin
+ECOM_PLUGIN( widgetmanager.dll, widgetmanager.rsc )
+
+// widgetmanager icons
+data=DATAZ_\resource\apps\widgetmanager.mif \resource\apps\widgetmanager.mif
+
+// widgetmanager stub sis
+data=ZSYSTEM\install\widgetmanager_stub.sis system\install\widgetmanager_stub.sis
+
+// cenrep
+data=DATAZ_\private\10202be9\20026F53.txt private\10202be9\20026F53.txt
+
+#endif // WIDGETMANAGER_IBY
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/rom/widgetmanager_resources.iby Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* widgetmanager resource binaries
+*/
+
+#ifndef WIDGETMANAGER_RESOURCES_IBY
+#define WIDGETMANAGER_RESOURCES_IBY
+
+// widgetmanager resources
+data=DATAZ_\resource\widgetmanagerview.rsc \resource\widgetmanagerview.rsc
+
+#endif // WIDGETMANAGER_RESOURCES_IBY
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/sis/Create_update_sisx.bat Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,28 @@
+rem
+rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+rem All rights reserved.
+rem This component and the accompanying materials are made available
+rem under the terms of "Eclipse Public License v1.0"
+rem which accompanies this distribution, and is available
+rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+rem
+rem Initial Contributors:
+rem Nokia Corporation - initial contribution.
+rem
+rem Contributors:
+rem
+rem Description:
+rem
+
+rem Change dll versions for IAD update
+call elftran.exe -version 1.1 \epoc32\release\armv5\urel\widgetmanager.dll
+call elftran.exe -version 1.1 \epoc32\release\armv5\udeb\widgetmanager.dll
+
+rem Create wm sis&sisx files
+makesis widgetmanager_udeb.pkg
+signsis widgetmanager_udeb.SIS widgetmanager_udeb.SISX Nokia_RnDCert_02.der Nokia_RnDCert_02.key
+makesis widgetmanager_urel.pkg
+signsis widgetmanager_urel.SIS widgetmanager_urel.SISX Nokia_RnDCert_02.der Nokia_RnDCert_02.key
+
+rem Create wm stubsis file
+makesis -s widgetmanager_stub.pkg
\ No newline at end of file
Binary file idlehomescreen/widgetmanager/sis/Nokia_RnDCert_02.der has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/sis/Nokia_RnDCert_02.key Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQC/TDP7KKIaf5+uW4OD2iVZuUMC2a+SeQTjf6srlKcOm+CpPNXn
+uLNm/8fdEnyOIuRXPRKmqhs1n0JkxEGHynELWMTuKXbQx9SRAGUXzyneGn+IJNnO
+vOKHWgKCouX2hfI8rtkdqJpqmO460gGsMgw+lsbeyWyW9lnfLxq+ZC7sqQIDAQAB
+AoGBALmUWZE8GBaQ3P4u9WUCSd3DJkkrmXIFSULSZeH/chlwCwDjbbhArHothVzo
+REE3hEFFlERvHbplZ+mNouzy7boduvgUzbksGrbGMLJ2qO1GzWWVwV+GzOWKd3ss
+/98Gwoy5R8pjnkqUE2wP1iJFw0FjvUTKcYv/z6t3LLJ0CsoBAkEA+c7ixvsviQ3J
+s0INytCKU2bf8fqFQJi1VI82ukxNsujGTQ9upVSjuvqPvWyDvvTdrUBHqO+3qPut
+sEh01Q8aiQJBAMQKDJPVRu4ud3mwUfEavzL5EjqwG1k9VCNGYsT4FwtrHcxu1oP/
+pk6M3rIZukqomoEEnHWPMwhrK3fhBqi0OSECQQDr40VXege4FnH5OI2Hj4afHMyp
+VdQQXGMWFyopnzXblFz0lXb43cTCIiorR9XcMqNFHybLypkWE5o+lRzlt55pAkBQ
+P/zeF5Sts//cpL0mgdh7OVKpC6ZmZaCnwAx2rUhhuDu+kDDoYCLoTOps5fNI1LRK
+1GRoC3LMo3Jr5IYhUYWBAkBpCpN6k4JU/mszq98EojHerQNxk8sPqvQKUzTutohT
+1gLX9yepGayB/TtT2EEJDkWOlnTy/dvN6W3vzbJYz97x
+-----END RSA PRIVATE KEY-----
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/sis/backup_registration.xml Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,5 @@
+<?xml version="1.0" standalone="yes"?>
+<backup_registration>
+ <system_backup/>
+ <restore requires_reboot = "no"/>
+</backup_registration>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/sis/widgetmanager_stub.pkg Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,28 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: widgetmanager_stub.pkg
+;
+
+;Language - standard language definitions
+&EN
+
+; standard SIS file header
+#{"Widget Manager"},(0x20026F53),1,0,0,TYPE=SA
+
+;Localized Vendor name
+%{"Nokia"}
+
+;Unique Vendor name
+:"Nokia"
+
Binary file idlehomescreen/widgetmanager/sis/widgetmanager_stub.sis has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/sis/widgetmanager_udeb.pkg Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,48 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: widgetmanager.pkg
+;
+
+;Language - standard language definitions
+&EN
+
+; standard SIS file header
+#{"Widget Manager"},(0x20026F53),1,1,0,TYPE=SA,RU
+
+;Localised Vendor name
+%{"Nokia"}
+
+;Unique Vendor name
+:"Nokia"
+
+;Supports Series 60 v 5.0
+[0x1028315F], 0, 0, 0, {"S60ProductID"}
+
+;We need to force update to be installed to c-drive
+;becouse we are part of the homescreen. If update was installed to memcard
+;homescreen will be closed when memcard is removed.
+
+; widgetmanager plugin and plugin resource
+"\epoc32\release\armv5\udeb\widgetmanager.dll" -"C:\sys\bin\widgetmanager.dll"
+"\epoc32\data\z\resource\plugins\widgetmanager.rsc" -"C:\resource\plugins\widgetmanager.rsc"
+
+; widgetmanager resource file
+"\epoc32\data\z\resource\widgetmanagerview.rsc" -"C:\resource\widgetmanagerview.rsc"
+
+; widgetmanager icons
+"\epoc32\data\z\resource\apps\widgetmanager.mif" -"C:\resource\apps\widgetmanager.mif"
+
+; cenrep
+"\epoc32\data\z\private\10202be9\20026F53.txt" -"C:\private\10202be9\20026F53.txt"
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/sis/widgetmanager_urel.pkg Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,47 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: widgetmanager.pkg
+;
+
+;Language - standard language definitions
+&EN
+
+; standard SIS file header
+#{"Widget Manager"},(0x20026F53),1,1,0,TYPE=SA,RU
+
+;Localised Vendor name
+%{"Nokia"}
+
+;Unique Vendor name
+:"Nokia"
+
+;Supports Series 60 v 5.0
+[0x1028315F], 0, 0, 0, {"S60ProductID"}
+
+;We need to force update to be installed to c-drive
+;becouse we are part of the homescreen. If update was installed to memcard
+;homescreen will be closed when memcard is removed.
+
+; widgetmanager plugin and plugin resource
+"\epoc32\release\armv5\urel\widgetmanager.dll" -"C:\sys\bin\widgetmanager.dll"
+"\epoc32\data\z\resource\plugins\widgetmanager.rsc" -"C:\resource\plugins\widgetmanager.rsc"
+
+; widgetmanager resource file
+"\epoc32\data\z\resource\widgetmanagerview.rsc" -"C:\resource\widgetmanagerview.rsc"
+
+; widgetmanager icons
+"\epoc32\data\z\resource\apps\widgetmanager.mif" -"C:\resource\apps\widgetmanager.mif"
+
+; cenrep
+"\epoc32\data\z\private\10202be9\20026F53.txt" -"C:\private\10202be9\20026F53.txt"
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/src/wmdetailsdlg.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,525 @@
+/*
+* 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:
+* Implementation of the widget details dlg for WidgetManager
+*
+*/
+
+// INCLUDE FILES
+#include <gdi.h>
+#include <eikrted.h> // for CRichTextEditor
+#include <txtrich.h> // for CRichText
+#include <AknUtils.h> // for AknUtils
+#include <AknsUtils.h> // MAknsSkinInstance
+#include <AknsDrawUtils.h> // AknsDrawUtils
+#include <applayout.cdl.h> //layout
+#include <layoutmetadata.cdl.h>
+#include <aknlayoutscalable_avkon.cdl.h>
+#include <aknlayoutscalable_apps.cdl.h>
+#include <AknsBasicBackgroundControlContext.h>
+
+#include <widgetmanagerview.rsg>
+#include "widgetmanager.hrh"
+#include "wmdetailsdlg.h"
+
+
+// CONSTANTS
+
+
+// MEMBER FUNCTIONS
+
+// ---------------------------------------------------------
+// FullScreenRect
+// rectangle representing the screen
+// ---------------------------------------------------------
+//
+TRect FullScreenRect()
+ {
+ TRect screen;
+ CCoeEnv* env = CCoeEnv::Static();
+ if ( env )
+ {
+ CWsScreenDevice* screenDevice = env->ScreenDevice();
+ if ( screenDevice )
+ screen.SetRect( TPoint(0,0), screenDevice->SizeInPixels() );
+ }
+ return screen;
+ }
+
+// ---------------------------------------------------------
+// CWmDetailsDlg::NewL
+// ---------------------------------------------------------
+//
+CWmDetailsDlg* CWmDetailsDlg::NewL(
+ const TDesC& aName,
+ const TDesC& aDescription,
+ TBool aCanBeAdded,
+ const CFbsBitmap* aLogoBmp,
+ const CFbsBitmap* aLogoMask,
+ CAknsBasicBackgroundControlContext* aBgContext )
+ {
+ CWmDetailsDlg* self = new ( ELeave ) CWmDetailsDlg( aCanBeAdded );
+ CleanupStack::PushL( self );
+ self->ConstructL( aName, aDescription, aLogoBmp, aLogoMask, aBgContext );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CWmDetailsDlg::CWmDetailsDlg
+// ---------------------------------------------------------
+//
+CWmDetailsDlg::CWmDetailsDlg( TBool aCanBeAdded )
+ : CAknDialog(),
+ iCanBeAdded( aCanBeAdded )
+ {
+ iBorder = TGulBorder::ERaisedControl;
+ }
+
+// ---------------------------------------------------------
+// CWmDetailsDlg::~CWmDetailsDlg
+// ---------------------------------------------------------
+//
+CWmDetailsDlg::~CWmDetailsDlg()
+ {
+ iEikonEnv->RemoveFromStack( iRtEditor );
+ iEikonEnv->RemoveFromStack( this );
+ delete iRtEditor;
+ delete iName;
+ delete iDescription;
+ delete iLogoBmp;
+ delete iLogoMask;
+ }
+
+// -----------------------------------------------------------------------------
+// CWmDetailsDlg::ExecuteLD
+// -----------------------------------------------------------------------------
+//
+TInt CWmDetailsDlg::ExecuteLD()
+ {
+ if ( iCanBeAdded )
+ {
+ return CAknDialog::ExecuteLD( R_WM_DETAILS_ADD_DIALOG );
+ }
+ else
+ {
+ return CAknDialog::ExecuteLD( R_WM_DETAILS_ONLY_DIALOG );
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmDetailsDlg::ConstructL
+// ---------------------------------------------------------
+//
+void CWmDetailsDlg::ConstructL(
+ const TDesC& aName,
+ const TDesC& aDescription,
+ const CFbsBitmap* aLogoBmp,
+ const CFbsBitmap* aLogoMask,
+ CAknsBasicBackgroundControlContext* aBgContext )
+ {
+ if ( !aLogoBmp )
+ {
+ User::Leave( KErrArgument );
+ }
+
+ CAknDialog::ConstructL( R_AVKON_DIALOG_EMPTY_MENUBAR );
+
+ iBgContext = aBgContext;
+ iName = aName.AllocL();
+ iDescription = aDescription.AllocL();
+
+ // create bitmap and duplicate handle
+ iLogoBmp = new ( ELeave ) CFbsBitmap;
+ TSize newSize = TSize( aLogoBmp->SizeInPixels().iWidth ,
+ aLogoBmp->SizeInPixels().iHeight );
+ User::LeaveIfError( iLogoBmp->Create( newSize, aLogoBmp->DisplayMode() ) );
+ User::LeaveIfError( iLogoBmp->Duplicate( aLogoBmp->Handle() ) );
+
+ if ( aLogoMask )
+ {
+ iLogoMask = new ( ELeave ) CFbsBitmap;
+ newSize = TSize( aLogoMask->SizeInPixels().iWidth ,
+ aLogoMask->SizeInPixels().iHeight );
+ User::LeaveIfError( iLogoMask->Create( newSize, aLogoMask->DisplayMode() ) );
+ User::LeaveIfError( iLogoMask->Duplicate( aLogoMask->Handle() ) );
+ }
+
+ iEikonEnv->AddWindowShadow( static_cast<CCoeControl*>(this) );
+ }
+
+// -----------------------------------------------------------------------------
+// CWmDetailsDlg::OkToExitL
+// -----------------------------------------------------------------------------
+//
+TBool CWmDetailsDlg::OkToExitL( TInt aButtonId )
+ {
+ if ( aButtonId == ECbaAddToHs ||
+ aButtonId == EAknSoftkeyClose )
+ {
+ // Close dlg
+ return ETrue;
+ }
+ return EFalse;
+ }
+
+// -----------------------------------------------------------------------------
+// CWmDetailsDlg::PreLayoutDynInitL
+// -----------------------------------------------------------------------------
+//
+void CWmDetailsDlg::PreLayoutDynInitL()
+ {
+ iRtEditor = new(ELeave) CEikRichTextEditor();
+ iRtEditor->ConstructL( this,
+ 0,
+ 0,
+ CEikEdwin::EReadOnly |
+ CEikEdwin::ENoAutoSelection |
+ CEikEdwin::EAvkonDisableCursor |
+ CEikEdwin::EDisplayOnly );
+ iRtEditor->SetContainerWindowL(*this);
+ iRtEditor->SetAknEditorFlags(
+ EAknEditorFlagEnableScrollBars |
+ EEikEdwinAvkonDisableCursor |
+ EEikEdwinDisplayOnly |
+ EEikEdwinReadOnly );
+
+ iRtEditor->SetSkinBackgroundControlContextL( iBgContext );
+
+ CEikScrollBarFrame* scrollBarFrame = iRtEditor->CreateScrollBarFrameL();
+ scrollBarFrame->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff,
+ CEikScrollBarFrame::EOff );
+
+ InsertAndFormatContentL();
+ iRtEditor->UpdateScrollBarsL();
+ }
+
+//------------------------------------------------------------------------------
+// CWmDetailsDlg::InsertAndFormatContentL
+//------------------------------------------------------------------------------
+//
+void CWmDetailsDlg::InsertAndFormatContentL()
+ {
+ CRichText* richText = iRtEditor->RichText();
+ const TInt KMinTxtLength = 100;
+
+ richText->Reset();
+ if ( iDescription->Des().Length() <= KMinTxtLength )
+ {
+ richText->InsertL( richText->DocumentLength(),
+ CEditableText::ELineBreak );
+ }
+ richText->InsertL( richText->DocumentLength(), *iDescription );
+
+ // change the color of the text according to the skin color
+ TRgb color = KRgbBlack;
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+ AknsUtils::GetCachedColor(skin, color, KAknsIIDQsnTextColors,
+ EAknsCIQsnTextColorsCG6 );
+
+ // Format text
+ iRtEditor->SetSelectionL( 0, richText->DocumentLength() );
+
+ // Get a logical font to base my font on:
+ const CFont* logicalFont = AknLayoutUtils::FontFromId(EAknLogicalFontPrimarySmallFont);
+ // Extract font information
+ TFontSpec fontspec = logicalFont->FontSpecInTwips();
+ TCharFormat charFormat(fontspec.iTypeface.iName, fontspec.iHeight);
+ TCharFormatMask charFormatMask;
+ CParaFormat paraFormat;
+ TParaFormatMask paraFormatMask;
+ paraFormat.iHorizontalAlignment = CParaFormat::EJustifiedAlign;
+ charFormat.iFontPresentation.iTextColor = color;
+ paraFormatMask.SetAttrib(EAttAlignment);
+ charFormatMask.SetAttrib(EAttFontTypeface);
+ charFormatMask.SetAttrib(EAttFontHeight);
+ charFormatMask.SetAttrib(EAttColor);
+ iRtEditor->ApplyParaFormatL(¶Format, paraFormatMask);
+ iRtEditor->ApplyCharFormatL(charFormat, charFormatMask);
+ iRtEditor->ClearSelectionL();
+ }
+
+//------------------------------------------------------------------------------
+// CWmDetailsDlg::CountComponentControls
+//------------------------------------------------------------------------------
+//
+TInt CWmDetailsDlg::CountComponentControls() const
+ {
+ return iRtEditor ? 1 : 0;
+ }
+
+//------------------------------------------------------------------------------
+// CWmDetailsDlg::ComponentControl
+//------------------------------------------------------------------------------
+//
+CCoeControl* CWmDetailsDlg::ComponentControl(TInt aIndex) const
+ {
+ switch (aIndex)
+ {
+ case 0:
+ return iRtEditor;
+ default:
+ return NULL;
+ }
+ }
+
+//------------------------------------------------------------------------------
+// CWmDetailsDlg::ActivateL
+//------------------------------------------------------------------------------
+//
+void CWmDetailsDlg::ActivateL()
+ {
+ CAknDialog::ActivateL();
+ iEikonEnv->EikAppUi()->AddToStackL( this, ECoeStackPriorityDialog );
+ iEikonEnv->EikAppUi()->AddToStackL( iRtEditor );
+ iRtEditor->SetFocus( ETrue );
+ }
+
+// -----------------------------------------------------------------------------
+// CWmDetailsDlg::WmDetailsDialogRect
+// -----------------------------------------------------------------------------
+//
+TRect CWmDetailsDlg::WmDetailsDialogRect()
+ {
+ TRect mainPane, dlgRect;
+ TPoint topLeft;
+ TInt desiredW, desiredH;
+ AknLayoutUtils::LayoutMetricsRect(
+ AknLayoutUtils::EApplicationWindow, mainPane );
+
+ if ( Layout_Meta_Data::IsLandscapeOrientation() )
+ {
+ desiredW = ( mainPane.Width() - (mainPane.Width()/4) );
+ desiredH = ( mainPane.Height() - (mainPane.Height()/5) );
+ topLeft.iX = ( ( mainPane.Width() - desiredW ) /2);
+ topLeft.iY = ( ( mainPane.Height() - desiredH ) /2);
+ dlgRect.SetRect( topLeft, TSize( desiredW, desiredH ) );
+ }
+ else
+ {
+ desiredH = ( mainPane.Height() - (mainPane.Height()/4) );
+ desiredW = ( mainPane.Width() - (mainPane.Width()/5) );
+ topLeft.iX = ( ( mainPane.Width() - desiredW ) /2);
+ topLeft.iY = ( ( mainPane.Height() - desiredH ) /2);
+ dlgRect.SetRect( topLeft, TSize( desiredW, desiredH ) );
+ }
+ return dlgRect;
+ }
+
+// -----------------------------------------------------------------------------
+// CWmDetailsDlg::SetSizeAndPosition
+// -----------------------------------------------------------------------------
+//
+void CWmDetailsDlg::SetSizeAndPosition( const TSize& /*aSize*/ )
+ {
+ SetRect( WmDetailsDialogRect() );
+ }
+
+// -----------------------------------------------------------------------------
+// CWmDetailsDlg::SizeChanged
+// -----------------------------------------------------------------------------
+//
+void CWmDetailsDlg::SizeChanged()
+ {
+ CAknDialog::SizeChanged();
+ TRect rect = Rect();
+ if ( iBgContext ) { iBgContext->SetRect( FullScreenRect() ); }
+ if ( iRtEditor )
+ {
+ const TInt offSet = 5;
+ TRect cbaRect;
+ AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EControlPane, cbaRect );
+
+ TInt logoH = iLogoBmp->SizeInPixels().iHeight;
+
+ TInt height, width;
+ if ( Layout_Meta_Data::IsLandscapeOrientation() )
+ {
+ height = ( (rect.Height() - logoH) - (cbaRect.Height() * 2) - offSet );
+ }
+ else
+ {
+ height = ( (rect.Height() - logoH) - (cbaRect.Height() * 1.5) - offSet );
+ }
+
+ width = ( rect.Width() - (CEikScrollBar::DefaultScrollBarBreadth() * 4 ) - offSet );
+ TPoint point = TPoint( rect.iTl.iX + offSet, rect.iTl.iY + logoH + offSet );
+ TSize size = TSize( width, height );
+ iRtEditor->SetRect( TRect( point, size ) );
+ TRAP_IGNORE(
+ iRtEditor->SetSkinBackgroundControlContextL( iBgContext );
+ InsertAndFormatContentL(); );
+ }
+ }
+
+// ----------------------------------------------------------------------------
+// CWmDetailsDlg::SupplyMopObject
+// ----------------------------------------------------------------------------
+//
+TTypeUid::Ptr CWmDetailsDlg::MopSupplyObject( TTypeUid aId )
+ {
+ if ( aId.iUid == MAknsControlContext::ETypeId )
+ {
+ return MAknsControlContext::SupplyMopObject( aId, iBgContext );
+ }
+ return CAknDialog::MopSupplyObject( aId );
+ }
+
+// ----------------------------------------------------------------------------
+// CWmDetailsDlg::OfferKeyEventL
+// ----------------------------------------------------------------------------
+//
+TKeyResponse CWmDetailsDlg::OfferKeyEventL( const TKeyEvent& aKeyEvent,TEventCode aType )
+ {
+ if (aType == EEventKey)
+ {
+ switch (aKeyEvent.iCode)
+ {
+ case EKeyEscape:
+ {
+ // framework calls this when dialog must shut down
+ return CAknDialog::OfferKeyEventL( aKeyEvent, aType );
+ }
+ case EKeyDownArrow:
+ {
+ if ( iRtEditor )
+ {
+ iRtEditor->MoveCursorL(TCursorPosition::EFPageDown, EFalse);
+ return EKeyWasConsumed;
+ }
+ }
+ case EKeyUpArrow:
+ {
+ if ( iRtEditor )
+ {
+ iRtEditor->MoveCursorL(TCursorPosition::EFPageUp, EFalse);
+ return EKeyWasConsumed;
+ }
+ }
+ default:
+ {
+ if ( iRtEditor )
+ {
+ return iRtEditor->OfferKeyEventL( aKeyEvent, aType );
+ }
+ break;
+ }
+ }
+ }
+ return CAknDialog::OfferKeyEventL( aKeyEvent, aType);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmDetailsDlg::Draw
+// -----------------------------------------------------------------------------
+//
+void CWmDetailsDlg::Draw( const TRect& /*aRect*/ ) const
+ {
+ CWindowGc& gc = SystemGc();
+ TRect rect = Rect();
+ TRect innerRect( rect );
+ TRgb color = KRgbBlack;
+ const TInt offSet = 5;
+
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+ MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
+
+ // draw background
+ if ( !AknsDrawUtils::Background( skin, cc, this, gc, innerRect ) )
+ {
+ gc.SetPenStyle( CGraphicsContext::ENullPen );
+ gc.SetBrushStyle( CGraphicsContext::ENullBrush );
+ gc.SetBrushColor( AKN_LAF_COLOR( 0 ) );
+ gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
+ gc.DrawRect( innerRect );
+ gc.SetBrushStyle( CGraphicsContext::ENullBrush );
+ }
+
+ // to fix scrollbar background issue in richtext editor
+ if ( iRtEditor )
+ {
+ MAknsControlContext* ccRte = AknsDrawUtils::ControlContext( iRtEditor );
+ AknsDrawUtils::Background( skin, ccRte, iRtEditor, gc, iRtEditor->Rect() );
+ }
+
+ // draw logo
+ TRect bmpRect( TPoint(0,0), TSize( iLogoBmp->SizeInPixels() ) );
+ TPoint point = TPoint( innerRect.iTl.iX + offSet,
+ innerRect.iTl.iY + offSet );
+
+ if ( iLogoBmp && iLogoMask )
+ {
+ gc.BitBltMasked( point, iLogoBmp,
+ bmpRect, iLogoMask, ETrue );
+ }
+ else
+ {
+ gc.BitBlt( point, iLogoBmp, bmpRect );
+ }
+
+ // draw name
+ point.iX += (bmpRect.Width() + offSet);
+
+ AknsUtils::GetCachedColor(
+ skin, color,
+ KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6 );
+
+ // DRAW TEXT
+ const CFont* font = AknLayoutUtils::FontFromId( EAknLogicalFontPrimaryFont );
+ gc.UseFont( font );
+ gc.SetPenColor( color );
+ gc.SetPenStyle( CGraphicsContext::ESolidPen );
+ point.iY += (bmpRect.Height() - (font->HeightInPixels() /2 ) );
+ CGraphicsContext::TDrawTextParam param;
+
+ HBufC* buf = iName->Des().Alloc();
+ if ( buf )
+ {
+ TPtr bufPtr = buf->Des();
+ TextUtils::ClipToFit( bufPtr, *font, (innerRect.Width() - point.iX ) );
+ gc.DrawText( bufPtr ,point, param );
+ delete buf;
+ }
+ else
+ {
+ gc.DrawText( *iName ,point, param );
+ }
+
+ gc.DiscardFont();
+
+ // draw the rounded rectangle as border
+ const TInt KFrameRoundRadius = 3;
+ 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 );
+ }
+
+// End of File
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/src/wmeffectmanager.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,157 @@
+/*
+* 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: Effect manager.
+*
+*/
+
+
+// SYSTEM INCLUDE FILES
+#include <eikapp.h>
+#include <aknappui.h>
+#include <gfxtranseffect/gfxtranseffect.h> // For transition effects
+#include <akntranseffect.h> // For transition effects
+
+// INCLUDE FILES
+#include "wmeffectmanager.h"
+
+// CONSTANTS
+const TInt KEffectTypeFullscreen = 1;
+
+const TInt KWaitForLayout = 1;
+const TInt KEffectStarted = 2;
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// C++ default constructor.
+// -----------------------------------------------------------------------------
+//
+CWmEffectManager::CWmEffectManager( CCoeEnv& aCoeEnv ): iCoeEnv (aCoeEnv)
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// Symbian 2nd phase constructor.
+// -----------------------------------------------------------------------------
+//
+void CWmEffectManager::ConstructL()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CWmEffectManager* CWmEffectManager::NewL( CCoeEnv& aCoeEnv )
+ {
+ CWmEffectManager* self = new (ELeave) CWmEffectManager( aCoeEnv );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// Destructor.
+// -----------------------------------------------------------------------------
+//
+CWmEffectManager::~CWmEffectManager()
+ {
+ GfxTransEffect::AbortFullScreen();
+ iEffects.ResetAndDestroy();
+ }
+
+// -----------------------------------------------------------------------------
+// CWmEffectManager::BeginFullscreenEffectL
+// -----------------------------------------------------------------------------
+//
+void CWmEffectManager::BeginFullscreenEffectL( TInt aId )
+ {
+ TWmEffect* effect = new (ELeave) TWmEffect;
+ CleanupStack::PushL( effect );
+ effect->iId = aId;
+ effect->iType = KEffectTypeFullscreen;
+ effect->iState = KWaitForLayout;
+ iEffects.Append( effect );
+
+ CleanupStack::Pop( effect );
+
+ DoBeginFullscreenEffect( *effect );
+ }
+
+// -----------------------------------------------------------------------------
+// CWmEffectManager::UiRendered
+// -----------------------------------------------------------------------------
+//
+void CWmEffectManager::UiRendered()
+ {
+ for ( TInt i = 0; i < iEffects.Count(); )
+ {
+ TWmEffect* effect = iEffects[i];
+ if ( effect && effect->iState == KEffectStarted )
+ {
+ GfxTransEffect::EndFullScreen();
+ RemoveEffect( effect );
+ }
+ else
+ {
+ // RemoveEffect() will remove from iEffects array and
+ // thats why we need to have conter in else
+ i++;
+ }
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CWmEffectManager::DoBeginFullscreenEffect
+// -----------------------------------------------------------------------------
+//
+void CWmEffectManager::DoBeginFullscreenEffect( TWmEffect& aEffect )
+ {
+ if ( iCoeEnv.WsSession().GetFocusWindowGroup() !=
+ iCoeEnv.RootWin().Identifier() )
+ {
+ // Window group is not focused
+ RemoveEffect( &aEffect );
+ return;
+ }
+
+ const TInt flags( AknTransEffect::TParameter::EActivateExplicitCancel );
+ const TUid targetAppUid( iAvkonAppUi->Application()->AppDllUid() );
+
+ // Set effect begin point
+ GfxTransEffect::BeginFullScreen( aEffect.iId , iAvkonAppUi->ClientRect(),
+ AknTransEffect::EParameterType, AknTransEffect::GfxTransParam(
+ targetAppUid, flags ) );
+
+ aEffect.iState = KEffectStarted;
+ }
+
+// -----------------------------------------------------------------------------
+// CXnEffectManager::RemoveEffect
+// -----------------------------------------------------------------------------
+//
+void CWmEffectManager::RemoveEffect( TWmEffect* aEffect )
+ {
+ TInt index = iEffects.Find( aEffect );
+ if ( index != KErrNotFound )
+ {
+ TWmEffect* temp = iEffects[index];
+ iEffects.Remove( index );
+ delete temp;
+ }
+ }
+
+// End fo file
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/src/wmimageconverter.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,913 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* CWmImageConverter implementation
+*
+*/
+
+#include <fbs.h>
+#include <eikdef.h>
+#include <eikenv.h>
+#include <bautils.h>
+#include <imageconversion.h>
+#include <bitmaptransforms.h>
+#include <AknIconUtils.h>
+#include <AknsSkinInstance.h>
+#include <AknsUtils.h>
+#include <avkon.mbg>
+#include <apgcli.h>
+#include <SVGEngineInterfaceImpl.h>
+#include <widgetregistryconstants.h> // KWidgetUidLowerBound, KWidgetUidUpperBound
+
+#include "wmimageconverter.h"
+
+_LIT( KSkin, "skin" );
+_LIT( KMif, "mif" );
+_LIT( KUid, "uid" );
+_LIT( KColon, ":" );
+_LIT( KSvgExt, ".svg" );
+_LIT( KHexPrefix, "0x" );
+const TUint KLeftParenthesis = '(';
+
+// ---------------------------------------------------------
+// CWmImageConverter::NewL
+// ---------------------------------------------------------
+//
+CWmImageConverter* CWmImageConverter::NewL( MConverterObserver* aObserver )
+ {
+ CWmImageConverter* self =
+ new(ELeave) CWmImageConverter();
+ CleanupStack::PushL( self );
+ self->ConstructL( aObserver );
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CWmImageConverter::CWmImageConverter
+// ---------------------------------------------------------
+//
+CWmImageConverter::CWmImageConverter()
+ : CActive( EPriorityStandard )
+ {
+ iState = EIdle;
+ iBitmap = NULL;
+ iMask = NULL;
+ iObserver = NULL;
+ iConversionMethod = EUnrecognized;
+ CActiveScheduler::Add( this );
+ }
+
+// ---------------------------------------------------------
+// CWmImageConverter::ConstructL
+// ---------------------------------------------------------
+//
+void CWmImageConverter::ConstructL( MConverterObserver* aObserver )
+ {
+ User::LeaveIfError( iFs.Connect() );
+ iFs.ShareProtected();
+ iScaler = CBitmapScaler::NewL();
+ iObserver = aObserver;
+ }
+
+// ---------------------------------------------------------
+// CWmImageConverter::~CWmImageConverter
+// ---------------------------------------------------------
+//
+CWmImageConverter::~CWmImageConverter()
+ {
+ Cancel();
+ delete iImageDecoder;
+ iFs.Close();
+ if (iBitmap)
+ {
+ delete iBitmap;
+ iBitmap = NULL;
+ }
+ if (iMask)
+ {
+ delete iMask;
+ iMask = NULL;
+ }
+ delete iScaler;
+ }
+
+// ---------------------------------------------------------
+// CWmImageConverter::HandleIconStringL
+// ---------------------------------------------------------
+//
+void CWmImageConverter::HandleIconStringL(
+ TInt aWidth, TInt aHeight,
+ const TDesC& aIconStr )
+ {
+ if ( aIconStr.Length() )
+ {
+ TAknsItemID skinItemId;
+ skinItemId.iMajor = 0;
+ skinItemId.iMinor = 0;
+ TInt bitmapId( KErrNotFound );
+ TInt maskId( KErrNotFound );
+ TUid appUid;
+ iFilename = KNullDesC;
+ iScaleNeeded = EFalse;
+ iSize.SetSize( aWidth, aHeight );
+
+ if ( ResolveSkinIdAndMifId(
+ aIconStr, skinItemId, bitmapId, maskId, iFilename ) )
+ {
+ if ( bitmapId >= 0 && skinItemId.iMajor > 0 )
+ iConversionMethod = ESkinAndMifIcon;
+ else if ( bitmapId >= 0 )
+ iConversionMethod = EMifIcon;
+ else
+ iConversionMethod = ESkinIcon;
+ CreateSkinOrMifIconL(
+ skinItemId, bitmapId, maskId, iFilename );
+ }
+ else if ( ResolveUid( aIconStr, appUid ) )
+ {
+ iConversionMethod = EUidIcon;
+ CreateIconFromUidL( appUid );
+ }
+ else if ( EndsWith( aIconStr, KSvgExt ) )
+ {
+ // filename_with_full_path.svg
+ iConversionMethod = ESvgIcon;
+ CreateIconFromSvgL( aIconStr );
+ }
+ else if ( BaflUtils::FileExists( iFs, aIconStr ) )
+ {
+ // filename_with_full_path.png/jpg
+ iConversionMethod = EImageIcon;
+ CreateIconFromOtherL( aIconStr );
+ }
+ else
+ {
+ iConversionMethod = EUnrecognized;
+ User::Leave( KErrArgument );
+ }
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmImageConverter::CreateIconFromUidL
+// ---------------------------------------------------------
+//
+void CWmImageConverter::CreateIconFromUidL( const TUid& aUid )
+ {
+ CFbsBitmap* bitmap = NULL;
+ CFbsBitmap* mask = NULL;
+
+ if ( aUid.iUid >= KWidgetUidLowerBound &&
+ aUid.iUid < KWidgetUidUpperBound )
+ {
+ // AknsUtils::CreateAppIconLC panics incase of WRT
+
+ RApaLsSession lsSession;
+ User::LeaveIfError( lsSession.Connect() );
+ CleanupClosePushL( lsSession );
+
+ CArrayFixFlat<TSize>* sizeArray = new (ELeave) CArrayFixFlat<TSize>(3);
+ CleanupStack::PushL( sizeArray );
+ User::LeaveIfError( lsSession.GetAppIconSizes( aUid, *sizeArray ) );
+ TInt sizeCount = sizeArray->Count();
+ TSize size;
+ if ( sizeCount > 0 )
+ {
+ for( TInt i=0; i < sizeArray->Count(); i++ )
+ {
+ size = (*sizeArray)[i];
+ if ( size == iSize )
+ {
+ break;
+ }
+ }
+ }
+ CApaMaskedBitmap* maskedBmp = CApaMaskedBitmap::NewLC();
+ User::LeaveIfError( lsSession.GetAppIcon( aUid, size, *maskedBmp ) );
+ iBitmap = static_cast<CFbsBitmap*>( maskedBmp ); // ownership transfered
+
+ iMask = new ( ELeave ) CFbsBitmap;
+ User::LeaveIfError( iMask->Create(
+ maskedBmp->Mask()->SizeInPixels(),
+ maskedBmp->Mask()->DisplayMode() ) );
+ // duplicate mask, origional is owned by maskedBmp
+ iMask->Duplicate( maskedBmp->Mask()->Handle() );
+ CleanupStack::Pop( maskedBmp );
+ maskedBmp = NULL;
+ CleanupStack::PopAndDestroy(sizeArray);
+ CleanupStack::PopAndDestroy( &lsSession );
+
+ // scale or notify
+ if ( size == iSize )
+ {
+ iObserver->NotifyCompletion( KErrNone );
+ }
+ else
+ {
+ iScaleNeeded = ETrue;
+ ScaleBitmap( iSize.iWidth, iSize.iHeight );
+ }
+ }
+ else if ( aUid.iUid != KNullUid.iUid )
+ {
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+ TInt err( KErrNone );
+ TRAP( err,
+ {
+ AknsUtils::CreateAppIconLC( skin, aUid,
+ EAknsAppIconTypeContext, bitmap, mask );
+ CleanupStack::Pop( 2 ); // for trap
+ }
+ );
+
+ if( KErrNone != err )
+ {
+ // If icon is not created, try to create default application icon
+ AknsUtils::CreateIconLC( skin,
+ KAknsIIDQgnMenuUnknownLst, bitmap, mask,
+ AknIconUtils::AvkonIconFileName(),
+ EMbmAvkonQgn_menu_unknown_lst,
+ EMbmAvkonQgn_menu_unknown_lst_mask );
+ CleanupStack::Pop( 2 ); // for trap
+ }
+
+ iBitmap = bitmap;
+ iMask = mask;
+
+ err = AknIconUtils::SetSize( iBitmap , iSize, EAspectRatioNotPreserved );
+ if ( KErrNone == err )
+ {
+ err = AknIconUtils::SetSize( iMask , iSize, EAspectRatioNotPreserved );
+ }
+
+ // notify observer
+ iObserver->NotifyCompletion( err );
+ }
+ else
+ {
+ User::Leave( KErrArgument );
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmImageConverter::CreateIconFromSvgL
+// ---------------------------------------------------------
+//
+void CWmImageConverter::CreateIconFromSvgL( const TDesC& aFileName )
+ {
+ if ( iBitmap )
+ {
+ delete iBitmap;
+ iBitmap = NULL;
+ }
+ if ( iMask )
+ {
+ delete iMask;
+ iMask = NULL;
+ }
+
+ TDisplayMode mode = CEikonEnv::Static()->ScreenDevice()->DisplayMode();
+ TFontSpec fontspec;
+
+ CFbsBitmap* frameBuffer = new ( ELeave ) CFbsBitmap;
+ CleanupStack::PushL( frameBuffer );
+ frameBuffer->Create( iSize, mode );
+
+ CSvgEngineInterfaceImpl* svgEngine = CSvgEngineInterfaceImpl::NewL(
+ frameBuffer, NULL, fontspec );
+ svgEngine->SetDRMMode( EFalse );
+
+ TInt domHandle;
+ CheckSvgErrorL( svgEngine->PrepareDom( aFileName, domHandle ) );
+
+ CFbsBitmap* bitmap = new(ELeave) CFbsBitmap;
+ User::LeaveIfError( bitmap->Create( iSize, mode) );
+ CleanupStack::PushL( bitmap );
+
+ CFbsBitmap* mask = new(ELeave) CFbsBitmap;
+ User::LeaveIfError( mask->Create( iSize, EGray256 ) );
+ CleanupStack::PushL( mask );
+
+ CheckSvgErrorL( svgEngine->UseDom( domHandle, bitmap, mask ) );
+
+ MSvgError* err;
+ svgEngine->Start( err );
+ CheckSvgErrorL( err );
+
+ CheckSvgErrorL( svgEngine->UseDom( domHandle, NULL, NULL ) );
+ CheckSvgErrorL( svgEngine->DeleteDom( domHandle ) );
+
+ CleanupStack::Pop( mask );
+ CleanupStack::Pop( bitmap );
+ CleanupStack::PopAndDestroy( frameBuffer );
+
+ iBitmap = bitmap;
+ iMask = mask;
+ iObserver->NotifyCompletion( KErrNone );
+ }
+
+// ---------------------------------------------------------
+// CWmImageConverter::CheckSvgErrorL
+// ---------------------------------------------------------
+//
+void CWmImageConverter::CheckSvgErrorL( MSvgError* aError )
+ {
+ if ( aError )
+ {
+ User::LeaveIfError( aError->SystemErrorCode() );
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmImageConverter::CreateIconFromOtherL
+// ---------------------------------------------------------
+//
+void CWmImageConverter::CreateIconFromOtherL( const TDesC& aFileName )
+ {
+ if ( IsActive() || iState != EIdle )
+ {
+ User::Leave( KErrNotReady );
+ }
+
+ if ( iImageDecoder ) delete iImageDecoder; iImageDecoder = NULL;
+ if (iBitmap) {delete iBitmap; iBitmap = NULL;}
+ if (iMask) {delete iMask; iMask = NULL;}
+
+ iFilename.Copy( aFileName );
+
+ // create the decoder
+ iImageDecoder = CImageDecoder::FileNewL( iFs, iFilename );
+
+ TSize size = iImageDecoder->FrameInfo().iOverallSizeInPixels;
+
+ // create the destination bitmap
+ iBitmap = new (ELeave) CFbsBitmap();
+ iBitmap->Create( size,
+ iImageDecoder->FrameInfo().iFrameDisplayMode );
+
+ iMask = new (ELeave) CFbsBitmap();
+ iMask->Create( size, EGray256 );
+
+ if ( size != iSize )
+ {
+ iScaleNeeded = ETrue;
+ }
+ // start conversion to bitmap
+ iState = EDecoding;
+ iImageDecoder->Convert( &iStatus, *iBitmap, *iMask );
+ SetActive();
+ }
+
+// ---------------------------------------------------------
+// CWmImageConverter::DoCancel
+// ---------------------------------------------------------
+//
+void CWmImageConverter::DoCancel()
+ {
+ if( iState == EDecoding )
+ {
+ iImageDecoder->Cancel();
+ if ( iObserver )
+ {
+ iObserver->NotifyCompletion( KErrCancel );
+ }
+ }
+ else if( iState == EScalingBitmap ||
+ iState == EScalingMask )
+ {
+ iScaler->Cancel();
+ if ( iObserver )
+ {
+ iObserver->NotifyCompletion( KErrCancel );
+ }
+ }
+ else
+ {
+ // State is EIdle, do nothing
+ }
+ iState = EIdle;
+ iScaleNeeded = EFalse;
+ }
+
+// ---------------------------------------------------------
+// CWmImageConverter::RunL
+// ---------------------------------------------------------
+//
+void CWmImageConverter::RunL()
+ {
+ switch( iState )
+ {
+ case EDecoding:
+ {
+ if( iStatus.Int() == KErrNone )
+ {
+ if ( iScaleNeeded )
+ {
+ ScaleBitmap( iSize.iWidth, iSize.iHeight );
+ }
+ else
+ {
+ iState = EIdle;
+ if ( iObserver )
+ {
+ iObserver->NotifyCompletion( KErrNone );
+ }
+ }
+ break;
+ }
+ else if( iStatus.Int() == KErrUnderflow )
+ {
+ iImageDecoder->ContinueConvert( &iStatus );
+ SetActive();
+ break;
+ }
+ else if ( iStatus.Int() == KErrCorrupt )
+ {
+ iState = EIdle;
+ iScaleNeeded = EFalse;
+ if ( iBitmap )
+ {
+ delete iBitmap;
+ iBitmap = NULL;
+ }
+ if ( iMask )
+ {
+ delete iMask;
+ iMask = NULL;
+ }
+ if ( iObserver )
+ {
+ iObserver->NotifyCompletion( KErrCorrupt );
+ }
+ break;
+ }
+ else
+ {
+ // Unknown error
+ iState = EIdle;
+ iScaleNeeded = EFalse;
+ if ( iBitmap )
+ {
+ delete iBitmap;
+ iBitmap = NULL;
+ }
+ if ( iMask )
+ {
+ delete iMask;
+ iMask = NULL;
+ }
+ if ( iObserver )
+ {
+ iObserver->NotifyCompletion( iStatus.Int() );
+ }
+ break;
+ }
+ }
+ case EScalingBitmap:
+ {
+ if( iStatus.Int() == KErrNone && iMask )
+ {
+ ScaleMask( iSize.iWidth, iSize.iHeight );
+ }
+ else
+ {
+ iState = EIdle;
+ iScaleNeeded = EFalse;
+ if ( iObserver )
+ {
+ iObserver->NotifyCompletion( iStatus.Int() );
+ }
+ }
+ break;
+ }
+ case EScalingMask:
+ {
+ iState = EIdle;
+ iScaleNeeded = EFalse;
+ if ( iObserver )
+ {
+ iObserver->NotifyCompletion( iStatus.Int() );
+ }
+ break;
+ }
+ default:
+ break;
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmImageConverter::RunError
+// ---------------------------------------------------------
+//
+TInt CWmImageConverter::RunError(TInt /*aError*/)
+ {
+ // Our RunL does not contain any method calls that would leave, so this method
+ // should never be called.
+ iScaleNeeded = EFalse;
+ return KErrNone;
+ }
+
+// ---------------------------------------------------------
+// CWmImageConverter::ScaleBitmap
+// ---------------------------------------------------------
+//
+void CWmImageConverter::ScaleBitmap( TInt aWidth, TInt aHeight )
+ {
+ if ( !IsActive() &&
+ iBitmap &&
+ ( iState == EDecoding || iState == EIdle ) )
+ {
+ // the maintain aspect ratio is by default set to true
+ iScaler->Scale( &iStatus, *iBitmap, TSize( aWidth,aHeight ), EFalse );
+ iState = EScalingBitmap;
+ SetActive();
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmImageConverter::ScaleMask
+// ---------------------------------------------------------
+//
+void CWmImageConverter::ScaleMask( TInt aWidth, TInt aHeight )
+ {
+ if ( !IsActive() &&
+ iState == EScalingBitmap &&
+ iMask )
+ {
+ // the maintain aspect ratio is by default set to true
+ iScaler->Scale( &iStatus, *iMask, TSize(aWidth,aHeight), EFalse );
+ iState = EScalingMask;
+ SetActive();
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmImageConverter::Bitmap
+// ---------------------------------------------------------
+//
+CFbsBitmap* CWmImageConverter::Bitmap()
+ {
+ CFbsBitmap* bitmap = NULL;
+ if (iState == EIdle &&
+ iBitmap )
+ {
+ bitmap = iBitmap; // ownership taken
+ iBitmap = NULL;
+ }
+ return bitmap;
+ }
+
+// ---------------------------------------------------------
+// CWmImageConverter::Mask
+// ---------------------------------------------------------
+//
+CFbsBitmap* CWmImageConverter::Mask()
+ {
+ CFbsBitmap* mask = NULL;
+ if (iState == EIdle &&
+ iMask )
+ {
+ mask = iMask; // ownership taken
+ iMask = NULL;
+ }
+ return mask;
+ }
+
+// ---------------------------------------------------------
+// CWmImageConverter::EndsWith
+// ---------------------------------------------------------
+//
+TBool CWmImageConverter::EndsWith( const TDesC& aString,
+ const TDesC& aPattern )
+ {
+ return ( aString.Right( aPattern.Length() ) == aPattern );
+ }
+
+// ---------------------------------------------------------------------------
+// CWmImageConverter::ResolveUid
+// ---------------------------------------------------------------------------
+//
+TBool CWmImageConverter::ResolveUid(
+ const TDesC& aPath, TUid& aUid )
+ {
+ // Syntax: uid(0x12345678)
+ TInt error = KErrNotFound;
+ TInt pos = aPath.FindF( KUid );
+ if( pos == 0 )
+ {
+ // Skip skin token
+ pos += KUid().Length();
+
+ // Initialize lexer
+ TLex lex( aPath.Mid( pos ) );
+
+ // Check left parenthesis
+ if ( lex.Get() == KLeftParenthesis )
+ {
+ lex.SkipSpaceAndMark();
+ lex.SkipCharacters();
+
+ TPtrC mtoken = lex.MarkedToken();
+ pos = mtoken.FindF( KHexPrefix );
+ if ( pos == 0 )
+ {
+ TLex lex( mtoken.Mid( KHexPrefix().Length() ) );
+ TUint id = 0;
+ error = lex.Val( id, EHex );
+ aUid = TUid::Uid( (TInt)id );
+ }
+ else
+ {
+ TInt id( 0 );
+ error = lex.Val( id );
+ aUid.iUid = id;
+ }
+ }
+ }
+
+ return (error == KErrNone );
+ }
+
+// ---------------------------------------------------------------------------
+// CWmImageConverter::ResolveSkinId
+// ---------------------------------------------------------------------------
+//
+TBool CWmImageConverter::ResolveSkinId(
+ const TDesC& aPath, TAknsItemID& aItemId )
+ {
+ // Syntax: skin(major minor)
+ TInt error = KErrNotFound;
+ TInt pos = aPath.FindF( KSkin );
+ if( pos == 0 )
+ {
+ // Skip skin token
+ pos += KSkin().Length();
+
+ // Initialize lexer
+ TLex lex( aPath.Mid( pos ) );
+
+ lex.SkipSpaceAndMark();
+ // Check left parenthesis
+ if ( lex.Get() == KLeftParenthesis )
+ {
+ pos++;
+ TLex lex( aPath.Mid( pos ) );
+ lex.SkipSpaceAndMark();
+
+ TPtrC mtoken = lex.MarkedToken();
+ pos = mtoken.FindF( KHexPrefix );
+ if ( pos == 0 )
+ {
+ TUint majorId( 0 );
+ TUint minorId( 0 );
+ lex.Assign( mtoken.Mid( KHexPrefix().Length() ) );
+ error = lex.Val( majorId, EHex );
+ lex.SkipSpace();
+ lex.SkipAndMark( KHexPrefix().Length() );
+ error |= lex.Val( minorId, EHex );
+ aItemId.Set( majorId, minorId );
+ }
+ else
+ {
+ TInt majorId(0);
+ TInt minorId(0);
+ error = lex.Val( majorId );
+ lex.SkipSpace();
+ error |= lex.Val( minorId );
+ aItemId.Set( majorId, minorId );
+ }
+ }
+ }
+
+ return (error == KErrNone );
+ }
+
+// ---------------------------------------------------------------------------
+// CWmImageConverter::ResolveMifId
+// ---------------------------------------------------------------------------
+//
+TBool CWmImageConverter::ResolveMifId(
+ const TDesC& aPath, TInt& aBitmapId,
+ TInt& aMaskId, TDes& aFileName )
+ {
+ // Syntax: mif(filename bimapId maskId)
+ TInt error = KErrNotFound;
+ TInt pos = aPath.FindF( KMif );
+ if( pos == 0 )
+ {
+ // Skip mif token
+ pos += KMif().Length();
+ // Initialize lexer
+ TLex lex( aPath.Mid( pos ) );
+
+ // Check left parenthesis
+ if ( lex.Get() == KLeftParenthesis )
+ {
+ lex.SkipSpaceAndMark();
+ lex.SkipCharacters();
+ // Resolve MifFile name
+ aFileName.Copy(lex.MarkedToken());
+ if( aFileName.Length()!= 0)
+ {
+ // Resolve bitmap id
+ lex.SkipSpace();
+ error = lex.Val( aBitmapId );
+
+ // Resolve mask id
+ // dont return error if it is not found, that is ok
+ lex.SkipSpace();
+ lex.Val( aMaskId );
+ }
+ else
+ {
+ error = KErrNotFound;
+ }
+ }
+ }
+ return (error == KErrNone );
+ }
+
+// ---------------------------------------------------------------------------
+// CWmImageConverter::ResolveSkinIdAndMifId
+// ---------------------------------------------------------------------------
+//
+TBool CWmImageConverter::ResolveSkinIdAndMifId(
+ const TDesC& aPath, TAknsItemID& aItemId,
+ TInt& aBitmapId, TInt& aMaskId, TDes& aFileName )
+ {
+ // Syntax: skin(major minor):mif(filename bimapId maskId)
+ TBool result = ResolveSkinId( aPath, aItemId );
+ if ( result )
+ {
+ TInt pos = aPath.FindF( KColon );
+ if ( pos != KErrNotFound )
+ {
+ TPtrC ptr = aPath.Mid( pos+1 );
+ result = ResolveMifId( ptr, aBitmapId, aMaskId, aFileName );
+ }
+ }
+ else
+ {
+ result = ResolveMifId( aPath, aBitmapId, aMaskId, aFileName );
+ }
+ return result;
+ }
+
+// ---------------------------------------------------------------------------
+// CWmImageConverter::CreateSkinOrMifIconL
+// ---------------------------------------------------------------------------
+//
+void CWmImageConverter::CreateSkinOrMifIconL(
+ const TAknsItemID& aItemId, TInt aBitmapId,
+ TInt aMaskId, const TDesC& aFileName )
+ {
+ iFilename = aFileName;
+ CFbsBitmap* bitmap = NULL;
+ CFbsBitmap* mask = NULL;
+
+ // Load from skin
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+ if ( skin && aItemId.iMajor != 0 && aItemId.iMinor != 0 )
+ {
+ TInt err( KErrNone );
+ CAknsMaskedBitmapItemData* itemData = NULL;
+ TRAP( err, itemData =
+ static_cast<CAknsMaskedBitmapItemData*>(
+ skin->CreateUncachedItemDataL( aItemId, EAknsITMaskedBitmap ) ); );
+ if( itemData && KErrNone == err )
+ {
+ CleanupStack::PushL( itemData );
+ // Detach bitmaps
+ bitmap = itemData->Bitmap();
+ itemData->SetBitmap( NULL );
+ mask = itemData->Mask();
+ itemData->SetMask( NULL );
+ CleanupStack::PopAndDestroy( itemData );
+ }
+ else
+ {
+ // look in imagetable
+ CAknsImageTableItemData* iconData = NULL;
+ TRAP( err, iconData = static_cast<CAknsImageTableItemData*>(
+ skin->CreateUncachedItemDataL( aItemId, EAknsITImageTable ) ); );
+ if( iconData && KErrNone == err )
+ {
+ CleanupStack::PushL( iconData );
+ if( iconData->NumberOfImages() )
+ {
+ TAknsItemID iconIId;
+ iconIId.Set( iconData->ImageIID(0) );
+ TRAP( err, AknsUtils::CreateIconL(
+ skin, iconIId, bitmap, mask, KNullDesC, -1, -1 ); );
+ }
+ CleanupStack::PopAndDestroy( iconData );
+ }
+ }
+
+ if ( KErrNone == err && bitmap )
+ {
+ TInt err = AknIconUtils::SetSize( bitmap , iSize, EAspectRatioNotPreserved );
+ if ( KErrNone == err )
+ {
+ if ( mask )
+ {
+ err = AknIconUtils::SetSize( mask , iSize, EAspectRatioNotPreserved );
+ }
+ iBitmap = bitmap;
+ iMask = mask;
+ // notify observer
+ iObserver->NotifyCompletion( KErrNone );
+ return;
+ }
+ else
+ {
+ if ( bitmap ) { delete bitmap; bitmap = NULL; }
+ if ( mask ){ delete mask; mask = NULL; }
+ }
+ }
+ }
+
+ if( aBitmapId != KErrNotFound && !bitmap &&
+ aFileName.Length() && BaflUtils::FileExists( iFs, aFileName ) )
+ {
+ if ( aMaskId != KErrNotFound )
+ {
+ // Create icon from Mif filename , bitmap id and mask id
+ AknIconUtils::CreateIconL(
+ bitmap, mask, *this, aBitmapId, aMaskId );
+ }
+ else
+ {
+ bitmap = AknIconUtils::CreateIconL( *this, aBitmapId );
+ }
+ }
+ else
+ {
+ User::Leave( KErrArgument );
+ }
+
+ iBitmap = bitmap;
+ iMask = mask;
+
+ TInt err = AknIconUtils::SetSize( iBitmap , iSize, EAspectRatioNotPreserved );
+ if ( KErrNone == err )
+ {
+ err = AknIconUtils::SetSize( iMask , iSize, EAspectRatioNotPreserved );
+ }
+
+ // notify observer
+ iObserver->NotifyCompletion( err );
+ }
+
+// ---------------------------------------------------------------------------
+// CWmImageConverter::SetLogoSize()
+// ---------------------------------------------------------------------------
+//
+void CWmImageConverter::SetLogoSize( const TSize& aSize )
+ {
+ iSize = aSize;
+ }
+
+// ---------------------------------------------------------------------------
+// CWmImageConverter::ConversionMethod()
+// ---------------------------------------------------------------------------
+//
+CWmImageConverter::TConversionMethod CWmImageConverter::ConversionMethod()
+ {
+ return iConversionMethod;
+ }
+
+// ---------------------------------------------------------------------------
+// CWmImageConverter::RetrieveIconFileHandleL
+// ---------------------------------------------------------------------------
+//
+void CWmImageConverter::RetrieveIconFileHandleL(
+ RFile& aFile, const TIconFileType /*aType*/ )
+ {
+ User::LeaveIfError( aFile.Open( iFs, iFilename, EFileShareAny ) );
+ }
+
+// ---------------------------------------------------------------------------
+// CWmImageConverter::Finished
+// ---------------------------------------------------------------------------
+//
+void CWmImageConverter::Finished()
+ {
+ // finishes using the icon file. No actions needed here.
+ }
+
+
+// End of file
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/src/wmlistbox.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,720 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Implementation of the widget listbox for WidgetManager
+*
+*/
+
+// INCLUDE FILES
+#include <coemain.h>
+#include <StringLoader.h>
+#include <aknstyluspopupmenu.h>
+#include <AknsDrawUtils.h>
+#include <AknsFrameBackgroundControlContext.h>
+#include <AknsListBoxBackgroundControlContext.h>
+#include <aknlayout.cdl.h>
+#include <layoutmetadata.cdl.h>
+#include <aknlayoutscalable_avkon.cdl.h>
+#include <aknlayoutscalable_apps.cdl.h>
+#include <AknLayout.lag>
+#include <widgetmanagerview.rsg>
+#include <widgetmanager.mbg>
+#include "wmcommon.h"
+#include "wmplugin.h"
+#include "wmresourceloader.h"
+#include "wmlistbox.h"
+#include "wmwidgetdata.h"
+
+// CONSTANTS
+
+// MEMBER FUNCTIONS
+
+// ---------------------------------------------------------
+// CWmListItemDrawer::NewL
+// ---------------------------------------------------------
+//
+CWmListItemDrawer* CWmListItemDrawer::NewL(
+ CWmPlugin& aWmPlugin,
+ MTextListBoxModel* aTextListBoxModel,
+ const CFont* aFont,
+ CFormattedCellListBoxData* aFormattedCellData,
+ CWmListBox* aListBox )
+ {
+ CWmListItemDrawer* self = new ( ELeave ) CWmListItemDrawer(
+ aWmPlugin,
+ aTextListBoxModel,
+ aFont,
+ aFormattedCellData,
+ aListBox );
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CWmListItemDrawer::CWmListItemDrawer
+// ---------------------------------------------------------
+//
+CWmListItemDrawer::CWmListItemDrawer(
+ CWmPlugin& aWmPlugin,
+ MTextListBoxModel* aTextListBoxModel,
+ const CFont* aFont,
+ CFormattedCellListBoxData* aFormattedCellData,
+ CWmListBox* aListBox )
+ : CFormattedCellListBoxItemDrawer( aTextListBoxModel,aFont,aFormattedCellData ),
+ iWmPlugin( aWmPlugin )
+ {
+ iCellData = aFormattedCellData;
+ iListBox = aListBox;
+ iFont = aFont;
+ }
+
+// ---------------------------------------------------------
+// CWmListItemDrawer::ConstructL
+// ---------------------------------------------------------
+//
+void CWmListItemDrawer::ConstructL()
+ {
+ SetSkinEnabledL( ETrue );
+
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+ AknsUtils::CreateIconL(
+ skin,
+ KAknsIIDQgnMenuHswidget,
+ iDefaultLogoImage,
+ iDefaultLogoImageMask,
+ iWmPlugin.ResourceLoader().IconFilePath(),
+ EMbmWidgetmanagerQgn_menu_hswidget,
+ EMbmWidgetmanagerQgn_menu_hswidget_mask
+ );
+
+ AknsUtils::CreateColorIconL(
+ skin,
+ KAknsIIDQgnIndiWmAdd,
+ KAknsIIDQsnTextColors,
+ EAknsCIQsnTextColorsCG6,
+ iAddWidgetBtnImage,
+ iAddWidgetBtnMask,
+ iWmPlugin.ResourceLoader().IconFilePath(),
+ EMbmWidgetmanagerAdd_widget_button,
+ EMbmWidgetmanagerAdd_widget_button_mask,
+ KRgbBlack );
+
+ AknsUtils::CreateColorIconL(
+ skin,
+ KAknsIIDQgnIndiWmAdd,
+ KAknsIIDQsnTextColors,
+ EAknsCIQsnTextColorsCG10,
+ iAddWidgetBtnHighlightImage,
+ iAddWidgetBtnHighlightMask,
+ iWmPlugin.ResourceLoader().IconFilePath(),
+ EMbmWidgetmanagerAdd_widget_button,
+ EMbmWidgetmanagerAdd_widget_button_mask,
+ KRgbWhite );
+ }
+
+// ---------------------------------------------------------
+// CWmListItemDrawer::~CWmListItemDrawer
+// ---------------------------------------------------------
+//
+CWmListItemDrawer::~CWmListItemDrawer()
+ {
+ iCellData = NULL;
+ iListBox = NULL;
+
+ // dispose icons
+ delete iDefaultLogoImage;
+ delete iDefaultLogoImageMask;
+ delete iAddWidgetBtnImage;
+ delete iAddWidgetBtnMask;
+ delete iAddWidgetBtnHighlightImage;
+ delete iAddWidgetBtnHighlightMask;
+ }
+
+// ---------------------------------------------------------
+// CWmListItemDrawer::ResizeDefaultBitmaps
+// ---------------------------------------------------------
+//
+void CWmListItemDrawer::ResizeDefaultBitmaps()
+ {
+ TAknWindowLineLayout logoPane =
+ AknLayoutScalable_Apps::listrow_wgtman_pane_g1().LayoutLine();
+ TAknWindowLineLayout addPane =
+ AknLayoutScalable_Apps::listrow_wgtman_pane_g2().LayoutLine();
+ TAknLayoutRect layoutRect;
+ TRect rect = TRect( ItemCellSize() );
+ layoutRect.LayoutRect( rect, logoPane );
+
+ // RESIZE DEFAULT LOGO BITMAPS ACCORDING TO LAYOUT
+ TSize size = layoutRect.Rect().Size();
+ AknIconUtils::SetSize(
+ iDefaultLogoImage, size, EAspectRatioPreserved );
+ AknIconUtils::SetSize(
+ iDefaultLogoImageMask, size, EAspectRatioPreserved );
+
+ // RESIZE ADD BTN BITMAPS ACCORDING TO LAYOUT
+ layoutRect.LayoutRect( rect, addPane );
+ size = layoutRect.Rect().Size();
+ AknIconUtils::SetSize(
+ iAddWidgetBtnImage, size, EAspectRatioPreserved );
+ AknIconUtils::SetSize(
+ iAddWidgetBtnMask, size, EAspectRatioPreserved );
+ AknIconUtils::SetSize(
+ iAddWidgetBtnHighlightImage, size, EAspectRatioPreserved );
+ AknIconUtils::SetSize(
+ iAddWidgetBtnHighlightMask, size, EAspectRatioPreserved );
+ }
+
+// ---------------------------------------------------------
+// CWmListItemDrawer::DrawItem
+// ---------------------------------------------------------
+//
+void CWmListItemDrawer::DrawItem( TInt aItemIndex, TPoint aItemRectPos,
+ TBool aItemIsSelected, TBool aItemIsCurrent,
+ TBool aViewIsEmphasized, TBool aViewIsDimmed ) const
+ {
+ TSize cellSize = ItemCellSize();
+
+ CWmWidgetData& wData = iListBox->WidgetData( aItemIndex );
+ // Get graphics context which is used for drawing.
+ CWindowGc& gc = *Gc();
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+ TInt selectedIndex = iListBox->CurrentItemIndex();
+ TBool isInFocus = ( selectedIndex == aItemIndex );
+ TBool listFocused = iListBox->IsFocused();
+ TRect itemRect = TRect( aItemRectPos, cellSize );
+
+ if ( isInFocus && listFocused )
+ {
+ // force baseclass to draw highlight and animation for this item
+ CFormattedCellListBoxItemDrawer::DrawItemText(
+ aItemIndex, itemRect,
+ aItemIsCurrent, aViewIsEmphasized,
+ ( isInFocus || aItemIsSelected ) );
+
+ if ( iListBox->PressedDown() )
+ {
+ TRect innerRect( itemRect );
+ const TInt highlightOffset = 3;
+ innerRect.Shrink( highlightOffset, highlightOffset );
+ AknsDrawUtils::DrawFrame( skin,
+ gc,
+ itemRect,
+ innerRect,
+ KAknsIIDQsnFrListPressed,
+ KAknsIIDQsnFrListCenterPressed );
+ }
+ }
+ else
+ {
+ // to prevent item staying highlighted when list isn't focused.
+ CFormattedCellListBoxItemDrawer::DrawEmptyItem(
+ aItemIndex, aItemRectPos, aViewIsDimmed );
+ }
+
+
+ // DRAW LOGO
+ CFbsBitmap* bitmap = const_cast<CFbsBitmap*>(wData.LogoImage());
+ CFbsBitmap* mask = const_cast<CFbsBitmap*>(wData.LogoImageMask());
+ TAknLayoutRect logoLayout;
+ logoLayout.LayoutRect( itemRect,
+ AknLayoutScalable_Apps::listrow_wgtman_pane_g1().LayoutLine() );
+
+ if ( !bitmap )
+ {
+ logoLayout.DrawImage( gc, iDefaultLogoImage, iDefaultLogoImageMask );
+ }
+ else
+ {
+ logoLayout.DrawImage( gc, bitmap, mask );
+ }
+
+ TRgb textColor;
+ TAknsQsnTextColorsIndex index = ( isInFocus && listFocused )?
+ EAknsCIQsnTextColorsCG10 : EAknsCIQsnTextColorsCG6;
+
+ AknsUtils::GetCachedColor(
+ skin, textColor, KAknsIIDQsnTextColors, index );
+
+ // DRAW TEXT
+ gc.UseFont( iFont );
+ gc.SetPenColor( textColor );
+ gc.SetPenSize( TSize(2,2) );
+
+ TAknTextLineLayout titleTextLayout =
+ AknLayoutScalable_Apps::listrow_wgtman_pane_t1().LayoutLine();
+ TAknTextLineLayout descTextLayout =
+ AknLayoutScalable_Apps::listrow_wgtman_pane_t2().LayoutLine();
+
+ TAknLayoutText textLayout;
+ textLayout.LayoutText( itemRect, titleTextLayout );
+ textLayout.DrawText( gc, wData.Name(), ETrue, textColor );
+
+ if ( wData.HsContentInfo().CanBeAdded() )
+ {
+ // DRAW ADD BUTTON
+ TAknLayoutRect addButtonLayout;
+ addButtonLayout.LayoutRect( itemRect,
+ AknLayoutScalable_Apps::listrow_wgtman_pane_g2().LayoutLine() );
+ if ( isInFocus && listFocused )
+ {
+ addButtonLayout.DrawImage( gc,
+ iAddWidgetBtnHighlightImage, iAddWidgetBtnHighlightMask );
+ }
+ else
+ {
+ addButtonLayout.DrawImage( gc,
+ iAddWidgetBtnImage, iAddWidgetBtnMask );
+ }
+ }
+
+ gc.SetPenSize(TSize(1,1));
+
+ // DRAW DESCRIPTION TEXT
+ textLayout.LayoutText( itemRect, descTextLayout );
+ textLayout.DrawText( gc, wData.Description(), ETrue, textColor );
+ gc.DiscardFont();
+ }
+
+// ---------------------------------------------------------
+// CWmListItemDrawer::DefaultLogoImage()
+// ---------------------------------------------------------
+//
+const CFbsBitmap* CWmListItemDrawer::DefaultLogoImage()
+ {
+ return iDefaultLogoImage;
+ }
+
+// ---------------------------------------------------------
+// CWmListItemDrawer::DefaultLogoMask()
+// ---------------------------------------------------------
+//
+const CFbsBitmap* CWmListItemDrawer::DefaultLogoMask()
+ {
+ return iDefaultLogoImageMask;
+ }
+
+// ---------------------------------------------------------
+// CWmListItemDrawer::HandleSkinChanged
+// ---------------------------------------------------------
+//
+void CWmListItemDrawer::HandleSkinChanged()
+ {
+ CFbsBitmap* addWidgetBtnImage( NULL );
+ CFbsBitmap* addWidgetBtnMask( NULL );
+ CFbsBitmap* addWidgetBtnHighlightImage( NULL );
+ CFbsBitmap* addWidgetBtnHighlightMask( NULL );
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+
+ TRAPD( err,
+ AknsUtils::CreateColorIconLC(
+ skin,
+ KAknsIIDQgnIndiWmAdd,
+ KAknsIIDQsnTextColors,
+ EAknsCIQsnTextColorsCG6,
+ addWidgetBtnImage,
+ addWidgetBtnMask,
+ iWmPlugin.ResourceLoader().IconFilePath(),
+ EMbmWidgetmanagerAdd_widget_button,
+ EMbmWidgetmanagerAdd_widget_button_mask,
+ KRgbBlack );
+
+ AknsUtils::CreateColorIconLC(
+ skin,
+ KAknsIIDQgnIndiWmAdd,
+ KAknsIIDQsnTextColors,
+ EAknsCIQsnTextColorsCG10,
+ addWidgetBtnHighlightImage,
+ addWidgetBtnHighlightMask,
+ iWmPlugin.ResourceLoader().IconFilePath(),
+ EMbmWidgetmanagerAdd_widget_button,
+ EMbmWidgetmanagerAdd_widget_button_mask,
+ KRgbWhite );
+
+ CleanupStack::Pop( 4 ); // pop icons
+ );
+
+ if ( KErrNone == err )
+ {
+ // delete old icons
+ delete iAddWidgetBtnImage;
+ iAddWidgetBtnImage = NULL;
+ delete iAddWidgetBtnMask;
+ iAddWidgetBtnMask = NULL;
+ delete iAddWidgetBtnHighlightImage;
+ iAddWidgetBtnHighlightImage = NULL;
+ delete iAddWidgetBtnHighlightMask;
+ iAddWidgetBtnHighlightMask = NULL;
+
+ // transfer ownership
+ iAddWidgetBtnImage = addWidgetBtnImage;
+ addWidgetBtnImage = NULL;
+ iAddWidgetBtnMask = addWidgetBtnMask;
+ addWidgetBtnMask = NULL;
+ iAddWidgetBtnHighlightImage = addWidgetBtnHighlightImage;
+ addWidgetBtnHighlightImage = NULL;
+ iAddWidgetBtnHighlightMask = addWidgetBtnHighlightMask;
+ addWidgetBtnHighlightMask = NULL;
+
+ // resize new created icons
+ ResizeDefaultBitmaps();
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmListBox::NewL
+// ---------------------------------------------------------
+//
+CWmListBox* CWmListBox::NewL(
+ CWmPlugin& aWmPlugin,
+ const TRect& aRect,
+ const CCoeControl* aParent,
+ TInt aFlags )
+ {
+ CWmListBox* self = new ( ELeave ) CWmListBox( aWmPlugin);
+ CleanupStack::PushL( self );
+ self->ConstructL( aRect, aParent, aFlags );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CWmListBox::CWmListBox
+// ---------------------------------------------------------
+//
+CWmListBox::CWmListBox( CWmPlugin& aWmPlugin ):
+ CAknDouble2LargeStyleListBox(),
+ iWmPlugin( aWmPlugin )
+ {
+ iFindPaneIsVisible = EFalse;
+ iPressedDown = EFalse;
+ }
+
+// ---------------------------------------------------------
+// CWmListBox::~CWmListBox
+// ---------------------------------------------------------
+//
+CWmListBox::~CWmListBox()
+ {
+ iWidgetDatas.ResetAndDestroy();
+ }
+
+// ---------------------------------------------------------
+// CWmListBox::ConstructL
+// ---------------------------------------------------------
+//
+void CWmListBox::ConstructL(
+ const TRect& aRect,
+ const CCoeControl* aParent,
+ TInt aFlags )
+ {
+ CEikFormattedCellListBox::ConstructL( aParent, aFlags );
+ SetContainerWindowL( *aParent );
+
+ // set model point to the widgets array
+ Model()->SetItemTextArray( &iWidgetDatas );
+ Model()->SetOwnershipType( ELbmDoesNotOwnItemArray );
+
+ // set empty-text to null
+ View()->SetListEmptyTextL( KNullDesC );
+
+ SetRect( aRect );
+ }
+
+// ---------------------------------------------------------
+// CWmListBox::WidgetData
+// ---------------------------------------------------------
+//
+CWmWidgetData* CWmListBox::WidgetData()
+ {
+ TInt index = CurrentListBoxItemIndex();
+ return (index>=0 ? iWidgetDatas[index] : NULL);
+ }
+
+// ---------------------------------------------------------
+// CWmListBox::WidgetData
+// ---------------------------------------------------------
+//
+CWmWidgetData& CWmListBox::WidgetData( TInt aItemIndex )
+ {
+ return *iWidgetDatas[ RealIndex( aItemIndex ) ];
+ }
+
+// ---------------------------------------------------------
+// CWmListBox::AddWidgetDataL
+// ---------------------------------------------------------
+//
+void CWmListBox::AddWidgetDataL( CWmWidgetData* aWidgetData )
+ {
+ aWidgetData->SetObserver( this );
+ aWidgetData->SetLogoSize( LogoSize() );
+ iWidgetDatas.InsertInOrderAllowRepeatsL( aWidgetData,
+ SortOrder(EStoredOrder) );
+ HandleItemAdditionL();
+ }
+
+// ---------------------------------------------------------
+// CWmListBox::RemoveWidgetData
+// ---------------------------------------------------------
+//
+void CWmListBox::RemoveWidgetData( TInt aItemIndex )
+ {
+ TInt realIndex = RealIndex( aItemIndex );
+ TBool current = ( aItemIndex == CurrentItemIndex() );
+ // remove widget data
+ CWmWidgetData* data = iWidgetDatas[realIndex];
+ iWidgetDatas.Remove( realIndex );
+ delete data;
+
+ // reorganise
+ TRAP_IGNORE(
+ AknListBoxUtils::HandleItemRemovalAndPositionHighlightL(
+ this, realIndex, current ) );
+ }
+
+// ---------------------------------------------------------
+// CWmListBox::RedrawItem
+// ---------------------------------------------------------
+//
+void CWmListBox::RedrawItem( TInt aItemIndex )
+ {
+ View()->DrawItem( aItemIndex );
+ }
+
+// ---------------------------------------------------------
+// CWmListBox::SetSortOrderL
+// ---------------------------------------------------------
+//
+void CWmListBox::SetSortOrderL( TSortOrder aOrder )
+ {
+ // now sort the existing data
+ iWidgetDatas.Sort( SortOrder( aOrder ) );
+ DrawNow();
+ }
+
+// ---------------------------------------------------------
+// CWmListBox::CreateItemDrawerL
+// ---------------------------------------------------------
+//
+void CWmListBox::CreateItemDrawerL()
+ {
+ CFormattedCellListBoxData* cellData = CFormattedCellListBoxData::NewL();
+ CleanupStack::PushL( cellData );
+ iItemDrawer = CWmListItemDrawer::NewL(
+ iWmPlugin,
+ Model(),
+ iEikonEnv->DenseFont(),
+ cellData,
+ this );
+ CleanupStack::Pop(); // cellData
+ }
+
+// ---------------------------------------------------------
+// CWmListBox::HandleLayoutChanged
+// ---------------------------------------------------------
+//
+void CWmListBox::HandleLayoutChanged()
+ {
+ TSize ls = LogoSize();
+ for ( TInt i=0; i<iWidgetDatas.Count(); i++)
+ {
+ iWidgetDatas[i]->ReCreateLogo( ls );
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmListBox::HandleSkinChanged
+// ---------------------------------------------------------
+//
+void CWmListBox::HandleSkinChanged()
+ {
+ CWmListItemDrawer* itemDrawer =
+ static_cast <CWmListItemDrawer*>( iItemDrawer );
+ if ( itemDrawer )
+ {
+ itemDrawer->HandleSkinChanged();
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmListBox::HandleWidgetDataChanged
+// ---------------------------------------------------------
+//
+void CWmListBox::HandleWidgetDataChanged( CWmWidgetData* aWidgetData )
+ {
+ if ( !iFindPaneIsVisible )
+ {
+ // spontaneous change in the model. Cause table to redraw
+ TInt index = iWidgetDatas.Find( aWidgetData );
+ if ( index >= 0 )
+ {
+ // redraw item.
+ RedrawItem( RealIndex( index ) );
+ }
+ }
+ else
+ {
+ // redraw everything
+ Parent()->DrawDeferred();
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmListBox::SortOrder
+// ---------------------------------------------------------
+//
+TLinearOrder<CWmWidgetData> CWmListBox::SortOrder( TSortOrder aOrder )
+ {
+ if ( aOrder == EStoredOrder )
+ {
+ return TLinearOrder<CWmWidgetData>(
+ CWmWidgetData::CompareByPersistentWidgetOrder );
+ }
+ else
+ {
+ return TLinearOrder<CWmWidgetData>(
+ CWmWidgetData::CompareByName );
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmListBox::CurrentListBoxItemIndex
+// ---------------------------------------------------------
+//
+TInt CWmListBox::CurrentListBoxItemIndex()
+ {
+ TInt index( KErrNotFound );
+ if ( Model()->NumberOfItems() > 0 )
+ {
+ index = CurrentItemIndex();
+ }
+ return RealIndex( index );
+ }
+
+// ---------------------------------------------------------
+// CWmListBox::RealIndex
+// ---------------------------------------------------------
+//
+TInt CWmListBox::RealIndex( TInt aIndex )
+ {
+ TInt realIndex = aIndex;
+ if ( iFindPaneIsVisible && aIndex >= 0 )
+ {
+ realIndex = static_cast<CAknFilteredTextListBoxModel*>(Model())->Filter()
+ ->FilteredItemIndex( aIndex );
+ }
+ return realIndex;
+ }
+
+// ---------------------------------------------------------
+// CWmListBox::SizeChanged
+// ---------------------------------------------------------
+//
+void CWmListBox::SizeChanged()
+ {
+ CAknDouble2LargeStyleListBox::SizeChanged();
+
+ CWmListItemDrawer* itemDrawer =
+ static_cast <CWmListItemDrawer*>( iItemDrawer );
+ if ( itemDrawer )
+ {
+ return itemDrawer->ResizeDefaultBitmaps();
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmListBox::Draw
+// ---------------------------------------------------------
+//
+void CWmListBox::Draw( const TRect& aRect ) const
+ {
+ CWindowGc& gc = SystemGc();
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+ MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
+ AknsDrawUtils::Background( skin, cc, this, gc, Rect() );
+ CAknDouble2LargeStyleListBox::Draw( aRect );
+ }
+
+// ---------------------------------------------------------
+// CWmListBox::HandlePointerEventL
+// ---------------------------------------------------------
+//
+void CWmListBox::HandlePointerEventL( const TPointerEvent& aPointerEvent )
+ {
+ // Check if pointer is down ( needed for drawing correct hightlight frame )
+ if ( Rect().Contains( aPointerEvent.iPosition ) )
+ {
+ if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
+ {
+ iPressedDown = ETrue;
+ RedrawItem( CurrentListBoxItemIndex() );
+ }
+ else if( aPointerEvent.iType == TPointerEvent::EButton1Up )
+ {
+ iPressedDown = EFalse;
+ RedrawItem( CurrentListBoxItemIndex() );
+ }
+ }
+
+ CAknDouble2LargeStyleListBox::HandlePointerEventL( aPointerEvent );
+ }
+
+// ---------------------------------------------------------
+// CWmListBox::LogoSize
+// ---------------------------------------------------------
+//
+TSize CWmListBox::LogoSize()
+ {
+ TAknLayoutRect rowLayoutRect;
+ rowLayoutRect.LayoutRect( Rect(),
+ AknLayoutScalable_Apps::listrow_wgtman_pane().LayoutLine() );
+ TAknLayoutRect logoLayoutRect;
+ logoLayoutRect.LayoutRect( rowLayoutRect.Rect(),
+ AknLayoutScalable_Apps::listrow_wgtman_pane_g1().LayoutLine() );
+ return logoLayoutRect.Rect().Size();
+ }
+
+// ---------------------------------------------------------
+// CWmListBox::DefaultLogo
+// ---------------------------------------------------------
+//
+const CFbsBitmap* CWmListBox::DefaultLogo()
+ {
+ CWmListItemDrawer* itemDrawer =
+ static_cast <CWmListItemDrawer*>( iItemDrawer );
+ if ( itemDrawer )
+ {
+ return itemDrawer->DefaultLogoImage();
+ }
+ return NULL;
+ }
+
+// ---------------------------------------------------------
+// CWmListBox::DefaultMask
+// ---------------------------------------------------------
+//
+const CFbsBitmap* CWmListBox::DefaultMask()
+ {
+ CWmListItemDrawer* itemDrawer =
+ static_cast <CWmListItemDrawer*>( iItemDrawer );
+ if ( itemDrawer )
+ {
+ return itemDrawer->DefaultLogoMask();
+ }
+ return NULL;
+ }
+
+// End of File
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/src/wmmaincontainer.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,1311 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Implementation of the container control for WidgetManager application.
+*
+*/
+
+// INCLUDE FILES
+#include <aknViewAppUi.h>
+#include <eikappui.h>
+#include <widgetmanagerview.rsg>
+#include <coemain.h>
+#include <eikenv.h>
+#include <barsread.h>
+#include <AknUtils.h>
+#include <barsread.h>
+#include <StringLoader.h>
+#include <eikenv.h>
+#include <AknIconArray.h>
+#include <aknstyluspopupmenu.h>
+#include <avkon.loc>
+#include <aknlayout.cdl.h>
+#include <layoutmetadata.cdl.h>
+#include <aknlayoutscalable_avkon.cdl.h>
+#include <aknlayoutscalable_apps.cdl.h>
+#include <AknLayout.lag>
+#include <AknsSkinInstance.h>
+#include <apgicnfl.h>
+#include <AknIconUtils.h>
+#include <AknsDrawUtils.h>
+#include <aknenv.h>
+#include <aknlists.h>
+#include <eikclbd.h>
+#include <aknsfld.h>
+#include <AknsBasicBackgroundControlContext.h>
+#include <apgcli.h>
+#include <widgetmanager.mbg>
+#include <avkon.rsg>
+#include <coecobs.h>
+#include <coecntrl.h>
+#include <SWInstApi.h> //installer
+#include <widgetregistryclient.h> // widgetreqistry
+#include <schemehandler.h> // for starting the OVI client
+#include <featmgr.h> // FeatureManager
+#include <hlplch.h> // HlpLauncher
+#include <csxhelp/hmsc.hlp.hrh>
+#include <aisystemuids.hrh>
+#include <centralrepository.h>
+
+#include "wmcrkeys.h"
+#include "wmcommon.h"
+#include "wmplugin.h"
+#include "wmmaincontainer.h"
+#include "wmmaincontainerview.h"
+#include "wmresourceloader.h"
+#include "widgetmanager.hrh"
+#include "wmlistbox.h"
+#include "wmpersistentwidgetorder.h"
+#include "wmdetailsdlg.h"
+#include "wmportalbutton.h"
+#include "wmwidgetloaderao.h"
+
+// CONSTANTS
+const TInt KTextLimit = 40; // Text-limit for find-field
+const TInt KMinWidgets = 1; // minimum number of widgets to show findpane
+_LIT8( KWrtMime, "application/x-nokia-widget");
+_LIT( KBrowserPrefix, "4 ");
+
+// ---------------------------------------------------------
+// CWmMainContainer::CWmMainContainer()
+// ---------------------------------------------------------
+//
+CWmMainContainer::CWmMainContainer( CWmPlugin& aWmPlugin ) :
+ iWmPlugin( aWmPlugin )
+ {
+ iWidgetsList = NULL;
+ iFindbox = NULL;
+ iFindPaneIsVisible = EFalse;
+ iBgContext = NULL;
+ iFocusMode = ENowhere;
+ iClosingDown = ETrue;
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::~CWmMainContainer()
+// ---------------------------------------------------------
+//
+CWmMainContainer::~CWmMainContainer()
+ {
+ delete iOviStoreUrl;
+ delete iOviStoreClientBundleId;
+ delete iOviStoreClientParam;
+
+ RemoveCtrlsFromStack();
+ Components().ResetAndDestroy();
+ delete iWidgetLoader;
+ iWidgetsList = NULL;
+ iOviPortal = NULL;
+ iFindbox = NULL;
+ delete iBgContext;
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::NewL
+// ---------------------------------------------------------
+//
+CWmMainContainer* CWmMainContainer::NewL(
+ const TRect& aRect,
+ CWmPlugin& aWmPlugin )
+ {
+ CWmMainContainer* self = CWmMainContainer::NewLC(
+ aRect,
+ aWmPlugin );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::NewLC
+// ---------------------------------------------------------
+//
+CWmMainContainer* CWmMainContainer::NewLC(
+ const TRect& aRect,
+ CWmPlugin& aWmPlugin )
+ {
+ CWmMainContainer* self = new (ELeave) CWmMainContainer( aWmPlugin );
+ CleanupStack::PushL( self );
+ self->ConstructL( aRect );
+ return self;
+ }
+
+// ---------------------------------------------------------
+// ScreenRect
+// rectangle representing the screen
+// ---------------------------------------------------------
+//
+TRect ScreenRect()
+ {
+ TRect screen;
+ CCoeEnv* env = CCoeEnv::Static();
+ if ( env )
+ {
+ CWsScreenDevice* screenDevice = env->ScreenDevice();
+ if ( screenDevice )
+ screen.SetRect( TPoint(0,0), screenDevice->SizeInPixels() );
+ }
+ return screen;
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::ConstructL
+// ---------------------------------------------------------
+//
+void CWmMainContainer::ConstructL(
+ const TRect& aRect )
+ {
+ // Initialize control array
+ InitComponentArrayL();
+ Components().SetControlsOwnedExternally( ETrue );
+
+ // create the UI
+ CreateWindowL();
+
+ // background context
+ iBgContext = CAknsBasicBackgroundControlContext::NewL(
+ KAknsIIDQsnBgScreen, ScreenRect() , ETrue);
+
+ // Read needed values from cenrep
+ TRAP_IGNORE( FetchRepositoryDataL(); );
+
+ // set up controls
+ InitializeControlsL( aRect );
+
+ // set size and activate
+ SetRect( aRect );
+ ActivateL();
+
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::FetchRepositoryDataL
+// ---------------------------------------------------------
+//
+void CWmMainContainer::FetchRepositoryDataL()
+ {
+ iOviStoreUrl = NULL;
+ iOviStoreClientBundleId = NULL;
+ iOviStoreClientParam = NULL;
+
+ CRepository *repository = CRepository::NewLC(
+ TUid::Uid( KCrWidgetManagerm ) );
+ TInt err = KErrNone;
+
+ //read localized data from cenrep
+ TLanguage sysLang = User::Language();
+ for( TUint32 i = KLangId0; i <= KLangId9; i+=4 )
+ {
+ TInt crLang = 0;
+ err = repository->Get( i, crLang );
+
+ if ( sysLang == crLang && err == KErrNone )
+ {
+ // system langauge matches langauge in cenrep
+ iOviStoreUrl = HBufC::NewL(
+ NCentralRepositoryConstants::KMaxUnicodeStringLength );
+ TPtr ptr( iOviStoreUrl->Des() );
+
+ // get localized ovi store url
+ err = repository->Get( i + KOviStoreBrowserUrlOffset, ptr );
+ if ( err != KErrNone )
+ {
+ delete iOviStoreUrl;
+ iOviStoreUrl = NULL;
+ }
+ }
+ }
+
+ //read other data from cenrep
+ iOviStoreClientBundleId = HBufC::NewL(
+ NCentralRepositoryConstants::KMaxUnicodeStringLength );
+ TPtr ptr( iOviStoreClientBundleId->Des() );
+ err = repository->Get( KOviStoreBunbleId, ptr );
+ if ( err != KErrNone )
+ {
+ delete iOviStoreClientBundleId;
+ iOviStoreClientBundleId = NULL;
+ }
+
+ iOviStoreClientParam = HBufC::NewL(
+ NCentralRepositoryConstants::KMaxUnicodeStringLength );
+ ptr.Set( iOviStoreClientParam->Des() );
+ err = repository->Get( KOviStoreClientParam, ptr );
+ if ( err != KErrNone )
+ {
+ delete iOviStoreClientParam;
+ iOviStoreClientParam = NULL;
+ }
+
+ CleanupStack::PopAndDestroy( repository );
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::SizeChanged
+// ---------------------------------------------------------
+//
+void CWmMainContainer::SizeChanged()
+ {
+ CCoeControl::SizeChanged();
+ iBgContext->SetRect( ScreenRect() );
+ LayoutControls();
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::LayoutControls
+// ---------------------------------------------------------
+//
+void CWmMainContainer::LayoutControls()
+ {
+ TBool landscape = Layout_Meta_Data::IsLandscapeOrientation();
+
+ TAknWindowLineLayout listPane =
+ AknLayoutScalable_Apps::listscroll_wgtman_pane(landscape ? 1 : 0).LayoutLine();
+
+ TAknWindowLineLayout btnPane =
+ AknLayoutScalable_Apps::wgtman_btn_pane(landscape ? 1 : 0).LayoutLine();
+
+ TRect rect = Rect();
+
+ if ( landscape )
+ {
+ if ( Layout_Meta_Data::IsMirrored() )
+ {
+ iLayout = ELandscapeMirrored;
+ }
+ else
+ {
+ iLayout = ELandscape;
+ }
+ }
+ else
+ {
+ iLayout = EPortrait;
+ }
+
+ // layout Ovi button
+ AknLayoutUtils::LayoutControl( iOviPortal, rect, btnPane );
+
+ if( iFindbox && iFindPaneIsVisible )
+ {
+ TAknLayoutRect layoutRect;
+ layoutRect.LayoutRect( rect, listPane );
+ iWidgetsList->SetRect( layoutRect.Rect() );
+ HandleFindSizeChanged();
+ }
+ else
+ {
+ AknLayoutUtils::LayoutControl( iWidgetsList, rect, listPane );
+ }
+
+ DrawDeferred();
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::OfferKeyEventL
+// ---------------------------------------------------------
+//
+TKeyResponse CWmMainContainer::OfferKeyEventL(
+ const TKeyEvent& aKeyEvent,
+ TEventCode aType )
+ {
+ TKeyResponse keyResponse( EKeyWasNotConsumed );
+
+ if ( iFindbox )
+ {
+ // open search field with alpha digit numbers
+ if ( aType == EEventKeyDown && !iFindPaneIsVisible &&
+ aKeyEvent.iScanCode < EStdKeyF1 &&
+ TChar(aKeyEvent.iScanCode).IsAlphaDigit() )
+ {
+ ActivateFindPaneL();
+
+ if ( iFindPaneIsVisible )
+ {
+ return EKeyWasConsumed;
+ }
+ }
+
+ if ( iFindPaneIsVisible )
+ {
+ // deactive the FindPane when Back has been pressed
+ if ( aType == EEventKeyDown &&
+ aKeyEvent.iScanCode == EStdKeyBackspace )
+ {
+ TBuf<KTextLimit> searchText;
+ iFindbox->GetSearchText( searchText );
+ if ( searchText == KNullDesC )
+ {
+ DeactivateFindPaneL();
+ return EKeyWasConsumed;
+ }
+ }
+
+ // Cancel-selected need to unfocus findbox
+ // to receive event in ProcessCommand
+ if ( aType == EEventKeyDown
+ && aKeyEvent.iScanCode == EStdKeyDevice1 )
+ {
+ iFindbox->SetFocus( EFalse );
+ UpdateFocusMode();
+ return EKeyWasConsumed;
+ }
+
+ if ( aKeyEvent.iScanCode == EStdKeyNo ||
+ aKeyEvent.iCode == EKeyNo )
+ {
+ DeactivateFindPaneL();
+ return EKeyWasConsumed;
+ }
+
+ // find items with all event codes (that's the reason why there is EEventKey instead of aType)
+ TBool needsRefresh( EFalse );
+ keyResponse = AknFind::HandleFindOfferKeyEventL(
+ aKeyEvent, EEventKey, this,
+ iWidgetsList, iFindbox, ETrue, needsRefresh );
+ if ( needsRefresh )
+ {
+ DrawNow();
+ }
+ }
+ }
+
+ // check special cases for movement between controls
+ if ( keyResponse == EKeyWasNotConsumed && !iFindPaneIsVisible )
+ {
+ keyResponse = MoveFocusByKeys( aKeyEvent, aType );
+ }
+
+ // pass key event except backpace or delete key event to widgets list if focused
+ if ( keyResponse == EKeyWasNotConsumed && iWidgetsList->IsFocused() )
+ {
+ if ( (aType == EEventKey) && (aKeyEvent.iCode == EKeyBackspace || aKeyEvent.iCode == EKeyDelete))
+ {
+ if( CanDoUninstall() )
+ {
+ UninstallWidgetL();
+ }
+ else
+ {
+ CWmWidgetData* data = iWidgetsList->WidgetData();
+ if( data != NULL )
+ iWmPlugin.ResourceLoader().InfoPopupL(
+ R_QTN_WM_UNINST_NOT_ALLOWED, data->Name() );
+ }
+ }
+ else
+ {
+ //passing to listbox handler
+ keyResponse = iWidgetsList->OfferKeyEventL(
+ aKeyEvent, aType );
+ }
+ }
+
+ // pass key event to OVI portal if focused
+ if ( keyResponse == EKeyWasNotConsumed && iOviPortal->IsFocused() )
+ {
+ keyResponse = iOviPortal->OfferKeyEventL(
+ aKeyEvent, aType );
+ }
+
+ if ( keyResponse == EKeyWasConsumed )
+ DrawDeferred();
+
+ // Do not let UI framework forward the keys to child controls as
+ // we have already done that.
+ return EKeyWasConsumed;
+ }
+
+
+// ---------------------------------------------------------
+// CWmMainContainer::MoveFocusByKeys
+// ---------------------------------------------------------
+//
+TKeyResponse CWmMainContainer::MoveFocusByKeys(
+ const TKeyEvent& aKeyEvent,
+ TEventCode aType )
+ {
+ TKeyResponse keyResponse( EKeyWasNotConsumed );
+
+ if ( iWidgetsList->IsFocused() )
+ {
+ // ------------------------------------
+ // focus is in the WIDGETS LIST
+ // ------------------------------------
+ if ( iLayout == EPortrait &&
+ aKeyEvent.iScanCode == EStdKeyUpArrow &&
+ iWidgetsList->CurrentItemIndex() == 0 )
+ {
+ // widget list top -> up -> ovi button (portrait)
+ if ( aType == EEventKey )
+ SetFocusToOviButton();
+ keyResponse = EKeyWasConsumed;
+ }
+ else if ( iLayout == EPortrait &&
+ aKeyEvent.iScanCode == EStdKeyDownArrow &&
+ iWidgetsList->CurrentItemIndex() ==
+ iWidgetsList->Model()->NumberOfItems() - 1 )
+ {
+ // widget list bottom -> down -> ovi button (portrait)
+ if ( aType == EEventKey )
+ SetFocusToOviButton();
+ keyResponse = EKeyWasConsumed;
+ }
+ else if ( iLayout == ELandscape &&
+ aKeyEvent.iScanCode == EStdKeyRightArrow )
+ {
+ // widget list -> right -> ovi button (landscape)
+ if ( aType == EEventKey )
+ SetFocusToOviButton();
+ keyResponse = EKeyWasConsumed;
+ }
+ else if ( iLayout == ELandscapeMirrored &&
+ aKeyEvent.iScanCode == EStdKeyLeftArrow )
+ {
+ // widget list -> left -> ovi button (landscape mirrored)
+ if ( aType == EEventKey )
+ SetFocusToOviButton();
+ keyResponse = EKeyWasConsumed;
+ }
+ }
+ else if ( iOviPortal->IsFocused() )
+ {
+ // ------------------------------------
+ // focus is in the OVI PORTAL BUTTON
+ // ------------------------------------
+ if ( iLayout == EPortrait &&
+ aKeyEvent.iScanCode == EStdKeyDownArrow )
+ {
+ // ovi button -> down -> widget list top (portrait)
+ if ( aType == EEventKey )
+ SetFocusToWidgetList( 0 );
+ keyResponse = EKeyWasConsumed;
+ }
+ else if ( iLayout == EPortrait &&
+ aKeyEvent.iScanCode == EStdKeyUpArrow )
+ {
+ // obi button -> up -> widget list bottom (portrait)
+ if ( aType == EEventKey )
+ SetFocusToWidgetList( iWidgetsList->Model()->NumberOfItems()-1 );
+ keyResponse = EKeyWasConsumed;
+ }
+ else if ( iLayout == ELandscape &&
+ aKeyEvent.iScanCode == EStdKeyLeftArrow )
+ {
+ // ovi button -> left -> widget list (landscape)
+ if ( aType == EEventKey )
+ SetFocusToWidgetList();
+ keyResponse = EKeyWasConsumed;
+ }
+ else if ( iLayout == ELandscapeMirrored &&
+ aKeyEvent.iScanCode == EStdKeyRightArrow )
+ {
+ // ovi button -> right -> widget list (landscape mirrored)
+ if ( aType == EEventKey )
+ SetFocusToWidgetList();
+ keyResponse = EKeyWasConsumed;
+ }
+ }
+ else
+ {
+ // ------------------------------------
+ // focus is NOWHERE
+ // ------------------------------------
+ if ( aKeyEvent.iScanCode == EStdKeyUpArrow ||
+ aKeyEvent.iScanCode == EStdKeyDownArrow ||
+ aKeyEvent.iScanCode == EStdKeyLeftArrow ||
+ aKeyEvent.iScanCode == EStdKeyRightArrow )
+ {
+ // no focus -> key hit -> focus list
+ if ( aType == EEventKey )
+ SetFocusToWidgetList();
+ keyResponse = EKeyWasConsumed;
+ }
+ }
+
+ return keyResponse;
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::SetFocusToOviButton
+// ---------------------------------------------------------
+//
+void CWmMainContainer::SetFocusToOviButton()
+ {
+ iWidgetsList->SetFocus(EFalse);
+ iOviPortal->SetFocus(ETrue);
+ DrawDeferred();
+ UpdateFocusMode();
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::SetFocusToWidgetList
+// ---------------------------------------------------------
+//
+void CWmMainContainer::SetFocusToWidgetList( TInt aIndex )
+ {
+ iOviPortal->SetFocus(EFalse);
+ iWidgetsList->SetFocus(ETrue);
+ if ( aIndex >= 0 && aIndex < iWidgetsList->Model()->NumberOfItems() )
+ {
+ iWidgetsList->SetCurrentItemIndex( aIndex );
+ }
+ DrawDeferred();
+ UpdateFocusMode();
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::UpdateFocusMode
+// ---------------------------------------------------------
+//
+void CWmMainContainer::UpdateFocusMode()
+ {
+ if ( iOviPortal->IsFocused() )
+ {
+ // OVI BUTTON is focused
+ iFocusMode = EOvi;
+ }
+ else if( ( iFindPaneIsVisible ) &&
+ ( iFindbox->IsFocused() || iWidgetsList->IsFocused() ) )
+ {
+ // FIND MODE
+ iFocusMode = EFind;
+ }
+ else if ( iWidgetsList->IsFocused() )
+ {
+ // WIDGETS LIST is focused
+ iFocusMode = EList;
+ }
+ else
+ {
+ // NO focus
+ iFocusMode = ENowhere;
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::FindChildControlByPoint
+// ---------------------------------------------------------
+//
+CCoeControl* CWmMainContainer::FindChildControlByPoint(
+ const TPoint& aPoint )
+ {
+ CCoeControl* theControl = NULL;
+ CCoeControlArray::TCursor cursor = Components().Begin();
+ CCoeControl* c;
+ while((c=cursor.Control<CCoeControl>()) != NULL )
+ {
+ if(c->IsVisible())
+ {
+ if ( c->Rect().Contains( aPoint ) ) theControl = c;
+ }
+ cursor.Next();
+ }
+ return theControl;
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::HandlePointerEventL
+// ---------------------------------------------------------
+//
+void CWmMainContainer::HandlePointerEventL( const TPointerEvent& aPointerEvent )
+ {
+ if ( !iClosingDown )
+ {
+
+ if (aPointerEvent.iType == TPointerEvent::EButton1Down)
+ {
+ // Check if user clicked a child control
+ CCoeControl* control = FindChildControlByPoint( aPointerEvent.iPosition );
+ if ( control && !control->IsFocused() )
+ {
+ // set focus to selected list box item.
+ if ( control == iWidgetsList )
+ {
+ TInt itemIndex = iWidgetsList->CurrentListBoxItemIndex();
+ TBool itemPointed = iWidgetsList->View()->XYPosToItemIndex(
+ aPointerEvent.iParentPosition,
+ itemIndex );
+ if ( itemIndex >= 1 && itemPointed )
+ {
+ iWidgetsList->SetCurrentItemIndex( itemIndex - 1 );
+ }
+ }
+
+ // Set focus to the control that was clicked
+ control->SetFocus( ETrue );
+ // remove focus from ALL other child controls.
+ CCoeControlArray::TCursor cursor = Components().Begin();
+ CCoeControl* c;
+ while ((c=cursor.Control<CCoeControl>()) != NULL )
+ {
+ if ( c != control && c->IsFocused() ) c->SetFocus( EFalse );
+ cursor.Next();
+ }
+ // update focus mode accordingly
+ UpdateFocusMode();
+ // repaint
+ DrawDeferred();
+ }
+ }
+
+ CCoeControl::HandlePointerEventL( aPointerEvent );
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::InitializeControlsL
+// ---------------------------------------------------------
+//
+void CWmMainContainer::InitializeControlsL( const TRect& /*aRect*/ )
+ {
+ // Create OVI STORE button
+ HBufC* oviText = StringLoader::LoadLC( R_QTN_WM_GO_TO_OVI_STORE );
+ iOviPortal = CWmPortalButton::NewL( this, *oviText );
+ CleanupStack::PopAndDestroy( oviText );
+
+ iOviPortal->SetMopParent( this );
+ AddControlL( iOviPortal, EOviPortal );
+
+ // Create widget list box
+ iWidgetsList = CWmListBox::NewL(
+ iWmPlugin,
+ TRect(),
+ this );
+ iWidgetsList->SetMopParent( this );
+ AddControlL( iWidgetsList, EWidgetsList );
+ iWidgetsList->ActivateL();
+ iWidgetsList->SetListBoxObserver( this );
+
+ // Create scroll bar.
+ iWidgetsList->CreateScrollBarFrameL( ETrue );
+ iWidgetsList->ScrollBarFrame()->SetScrollBarVisibilityL(
+ CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto );
+ iWidgetsList->UpdateScrollBarsL();
+
+ // search field
+ iFindbox = CAknSearchField::NewL( *this,
+ CAknSearchField::EAdaptiveSearch,
+ 0, KTextLimit );
+ AddControlL( iFindbox, EFindBox );
+
+ UpdateFocusMode();
+ StartLoadingWidgetsL();
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::HandleWidgetListChanged
+// ---------------------------------------------------------
+//
+void CWmMainContainer::HandleWidgetListChanged()
+ {
+ TRAP_IGNORE( StartLoadingWidgetsL(); );
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::StartLoadingWidgetsL
+// ---------------------------------------------------------
+//
+void CWmMainContainer::StartLoadingWidgetsL()
+ {
+ if ( !iWidgetLoader )
+ {
+ // create the widget loader AO
+ iWidgetLoader = CWmWidgetLoaderAo::NewL( iWmPlugin, *iWidgetsList );
+ }
+ iWidgetLoader->StartLoading();
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::HandleResourceChange
+// ---------------------------------------------------------
+//
+void CWmMainContainer::HandleResourceChange( TInt aType )
+ {
+ CCoeControl::HandleResourceChange( aType );
+
+ if ( KEikDynamicLayoutVariantSwitch == aType )
+ {
+ TRect rect;
+ AknLayoutUtils::LayoutMetricsRect(
+ AknLayoutUtils::EMainPane, rect );
+ SetRect( rect );
+
+ // notify widgetlist
+ iWidgetsList->HandleLayoutChanged();
+ }
+ else if ( KAknsMessageSkinChange == aType )
+ {
+ // notify widgetlist , colored add icon need to be updated
+ iWidgetsList->HandleSkinChanged();
+ }
+ }
+
+
+// ---------------------------------------------------------
+// CWmMainContainer::MopSupplyObject
+// ---------------------------------------------------------
+//
+TTypeUid::Ptr CWmMainContainer::MopSupplyObject( TTypeUid aId )
+ {
+ if ( aId.iUid == MAknsControlContext::ETypeId )
+ {
+ return MAknsControlContext::SupplyMopObject(
+ aId, iBgContext );
+ }
+ return CCoeControl::MopSupplyObject( aId );
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::Draw
+// ---------------------------------------------------------
+//
+void CWmMainContainer::Draw( const TRect& /*aRect*/ ) const
+ {
+ CWindowGc& gc = SystemGc();
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+ MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
+ AknsDrawUtils::Background( skin, cc, this, gc, Rect() );
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::AddControlL
+// ---------------------------------------------------------
+//
+void CWmMainContainer::AddControlL(
+ CCoeControl* aControl,
+ TInt aControlId )
+ {
+ Components().AppendLC( aControl, aControlId ); // Ownership transfered
+ CleanupStack::Pop(aControl);
+ iWmPlugin.ViewAppUi().AddToStackL( aControl );
+ aControl->MakeVisible( ETrue );
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::WmPlugin
+// ---------------------------------------------------------
+//
+CWmPlugin& CWmMainContainer::WmPlugin()
+ {
+ return iWmPlugin;
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::PortalSelected
+// ---------------------------------------------------------
+//
+TBool CWmMainContainer::PortalSelected()
+ {
+ return ( iFocusMode == EOvi );
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::WidgetSelected
+// ---------------------------------------------------------
+//
+TBool CWmMainContainer::WidgetSelected()
+ {
+ return ( iFocusMode == EList ) || ( iFocusMode == EFind );
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::CanDoAdd
+// ---------------------------------------------------------
+//
+TBool CWmMainContainer::CanDoAdd()
+ {
+ TBool retVal = EFalse;
+ CWmWidgetData* data = iWidgetsList->WidgetData();
+ if ( WidgetSelected() && data )
+ {
+ if ( data->HsContentInfo().CanBeAdded() )
+ retVal = ETrue;
+ }
+ return retVal;
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::CanDoUninstall
+// ---------------------------------------------------------
+//
+TBool CWmMainContainer::CanDoUninstall()
+ {
+ TBool retVal( EFalse );
+ CWmWidgetData* data = iWidgetsList->WidgetData();
+ if ( WidgetSelected() && data )
+ {
+ if ( data->WidgetType() == CWmWidgetData::ECps &&
+ data->PublisherUid() != KNullUid )
+ {
+ retVal = ETrue;
+ }
+ }
+ return retVal;
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::CanDoLaunch
+// ---------------------------------------------------------
+//
+TBool CWmMainContainer::CanDoLaunch()
+ {
+ TBool retVal(EFalse);
+ if ( WidgetSelected() )
+ {
+ CWmWidgetData* data = iWidgetsList->WidgetData();
+ if ( data->WidgetType() == CWmWidgetData::ECps &&
+ data->PublisherUid() != KNullUid )
+ {
+ retVal = ETrue;
+ }
+ }
+ return retVal;
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::CanDoFind
+// ---------------------------------------------------------
+//
+TBool CWmMainContainer::CanDoFind()
+ {
+ TBool canDo( !iFindPaneIsVisible );
+ if ( canDo )
+ {
+ canDo = ( iFocusMode == EList || iFocusMode == ENowhere );
+ }
+ return canDo;
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::CanDoSort
+// ---------------------------------------------------------
+//
+TBool CWmMainContainer::CanDoSort()
+ {
+ return !iFindPaneIsVisible;
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::CanDoDetails
+// ---------------------------------------------------------
+//
+TBool CWmMainContainer::CanDoDetails()
+ {
+ return WidgetSelected();
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainer::CanDoHelp
+// ---------------------------------------------------------
+//
+TBool CWmMainContainer::CanDoHelp()
+ {
+ return FeatureManager::FeatureSupported( KFeatureIdHelp );
+ }
+
+// ---------------------------------------------------------------------------
+// CWmMainContainer::AddWidgetToHomeScreenL
+// ---------------------------------------------------------------------------
+//
+void CWmMainContainer::AddWidgetToHomeScreenL()
+ {
+ CWmWidgetData* data = iWidgetsList->WidgetData();
+ if ( !iClosingDown && data )
+ {
+ if ( iFindbox && iFindPaneIsVisible )
+ {
+ DeactivateFindPaneL();
+ }
+
+ // set add to homescreen to be executed later
+ iWmPlugin.SetPostponedCommandL(
+ CWmPlugin::EAddToHomescreen, data->HsContentInfo() );
+
+ iWmPlugin.Deactivate();
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CWmMainContainer::LaunchWidgetL
+// ---------------------------------------------------------------------------
+//
+void CWmMainContainer::LaunchWidgetL()
+ {
+ if ( CanDoLaunch() )
+ {
+ CWmWidgetData* data = iWidgetsList->WidgetData();
+
+ HBufC* param = KNullDesC().AllocLC(); // launch params
+
+ RApaLsSession appArc;
+ User::LeaveIfError( appArc.Connect() ); // connect to AppArc server
+ CleanupClosePushL( appArc );
+ TThreadId id;
+ User::LeaveIfError( appArc.StartDocument(
+ *param, data->PublisherUid(), id ) );
+
+ CleanupStack::PopAndDestroy( &appArc );
+ CleanupStack::PopAndDestroy( param );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CWmMainContainer::ActivateFindPaneL
+// ---------------------------------------------------------------------------
+//
+void CWmMainContainer::ActivateFindPaneL()
+ {
+ if ( iFindbox && !iFindPaneIsVisible &&
+ iWidgetsList->Model()->NumberOfItems() > KMinWidgets )
+ {
+ // enable filtering
+ CAknFilteredTextListBoxModel* m =
+ static_cast <CAknFilteredTextListBoxModel*> ( iWidgetsList->Model() );
+ if ( m )
+ {
+ m->CreateFilterL( iWidgetsList, iFindbox );
+ if ( m->Filter() )
+ {
+ m->Filter()->SetParentControl( this );
+ }
+ }
+
+ iFindbox->ActivateL();
+ iFindbox->ResetL();
+ iFindbox->SetSearchTextL( KNullDesC );
+ iFindbox->SetSkinEnabledL( ETrue );
+
+ iFindPaneIsVisible = ETrue;
+ iFindbox->MakeVisible( ETrue );
+
+ // layout listbox and findbox
+ LayoutControls();
+
+ iFindbox->SetFocus( ETrue );
+ iWidgetsList->SetFindPaneIsVisible( ETrue );
+
+ // set soft key set
+ CEikButtonGroupContainer* cbaGroup =
+ CEikButtonGroupContainer::Current();
+ cbaGroup->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_CANCEL__SELECT );
+ cbaGroup->DrawNow();
+
+ UpdateFocusMode();
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CWmMainContainer::DeactivateFindPaneL
+// ---------------------------------------------------------------------------
+//
+void CWmMainContainer::DeactivateFindPaneL()
+ {
+ if( iFindbox && iFindPaneIsVisible )
+ {
+ // notify search field we're shutting down
+ TKeyEvent keyEvent = { EKeyNo, EStdKeyNo, 0, 0 };
+ iFindbox->OfferKeyEventL( keyEvent, EEventKey );
+
+ // reset findbox
+ iFindbox->ResetL();
+
+ // reset filter
+ CAknFilteredTextListBoxModel* m =
+ static_cast <CAknFilteredTextListBoxModel*> ( iWidgetsList->Model() );
+ if ( m && m->Filter() )
+ {
+ m->Filter()->ResetFilteringL();
+ m->RemoveFilter();
+ }
+
+ iFindbox->MakeVisible( EFalse );
+ iFindbox->SetFocus( EFalse );
+ iFindPaneIsVisible = EFalse;
+ iWidgetsList->SetFindPaneIsVisible( EFalse );
+
+ LayoutControls();
+ iWidgetsList->SetFocus( ETrue );
+
+ // set soft key set
+ CEikButtonGroupContainer* cbaGroup =
+ CEikButtonGroupContainer::Current();
+ cbaGroup->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_BACK__SELECT );
+ cbaGroup->DrawNow();
+
+ UpdateFocusMode();
+ DrawNow();
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CWmMainContainer::SortListAlphabeticallyL
+// ---------------------------------------------------------------------------
+//
+void CWmMainContainer::SortListAlphabeticallyL()
+ {
+ if ( iWidgetsList )
+ {
+ iWidgetsList->SetSortOrderL( CWmListBox::EAlphabetical );
+
+ //store changed list order
+ CWmPersistentWidgetOrder* widgetOrder =
+ CWmPersistentWidgetOrder::NewL( iWmPlugin.FileServer() );
+ CleanupStack::PushL( widgetOrder );
+ widgetOrder->StoreL( iWidgetsList->WidgetDataArray() );
+ CleanupStack::PopAndDestroy( widgetOrder );
+
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CWmMainContainer::UninstallWidgetL
+// ---------------------------------------------------------------------------
+//
+void CWmMainContainer::UninstallWidgetL()
+ {
+ if ( CanDoUninstall() )
+ {
+ CWmWidgetData* data = iWidgetsList->WidgetData();
+
+ SwiUI::RSWInstLauncher installer;
+ User::LeaveIfError( installer.Connect() );
+
+ installer.Uninstall( data->PublisherUid(), KWrtMime );
+ installer.Close();
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CWmMainContainer::OpenOviPortalL
+// ---------------------------------------------------------------------------
+//
+void CWmMainContainer::OpenOviPortalL()
+ {
+ if ( !iClosingDown )
+ {
+ RApaLsSession session;
+ User::LeaveIfError( session.Connect() );
+ CleanupClosePushL( session );
+ TApaAppInfo appInfo;
+ TUid launchUid;
+
+ // Get ovi store uid
+ RWidgetRegistryClientSession widgetSession;
+ User::LeaveIfError( widgetSession.Connect() );
+ CleanupClosePushL( widgetSession );
+
+ launchUid.iUid = widgetSession.GetWidgetUidL( *iOviStoreClientBundleId );
+ CleanupStack::PopAndDestroy( &widgetSession );
+
+ TInt err = session.GetAppInfo( appInfo, launchUid );
+ if ( err == KErrNone )
+ {
+ CApaCommandLine* commandLine = CApaCommandLine::NewLC();
+ commandLine->SetExecutableNameL(appInfo.iFullName);
+ HBufC8* buf8 = HBufC8::NewLC( iOviStoreClientParam->Des().Length() );
+ buf8->Des().Copy( *iOviStoreClientParam );
+
+ //cmdLine->SetOpaqueDataL( *buf8 );
+ commandLine->SetTailEndL( *buf8 );
+ err = session.StartApp( *commandLine );
+ CleanupStack::PopAndDestroy( buf8 );
+ CleanupStack::PopAndDestroy( commandLine );
+ }
+ else
+ {
+ if( iOviStoreUrl )
+ {
+ // Ovi store not found start browser
+ const TUid KOSSBrowserUidValue = { 0x10008D39 };
+ HBufC* param = HBufC::NewLC( iOviStoreUrl->Length() +
+ KBrowserPrefix().Length() );
+
+ param->Des().Copy( KBrowserPrefix );
+ param->Des().Append( *iOviStoreUrl );
+
+ 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::PopAndDestroy( param );
+ }
+ }
+ CleanupStack::PopAndDestroy( &session );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CWmMainContainer::SelectL
+// ---------------------------------------------------------------------------
+//
+void CWmMainContainer::SelectL()
+ {
+ if ( WidgetSelected() )
+ AddWidgetToHomeScreenL();
+ else if ( PortalSelected() )
+ OpenOviPortalL();
+ else
+ SetFocusToWidgetList();
+ }
+
+// ---------------------------------------------------------------------------
+// CWmMainContainer::ShowHelpL
+// ---------------------------------------------------------------------------
+//
+void CWmMainContainer::ShowHelpL()
+ {
+ TUid fwUid = TUid::Uid( AI_UID3_AIFW_COMMON );
+ // retrieve resolve host application help context
+ CArrayFix<TCoeHelpContext>* helpContext =
+ iEikonEnv->EikAppUi()->AppHelpContextL();
+
+ // add the widget manager entry into the help context
+ CleanupStack::PushL( helpContext );
+ helpContext->InsertL( 0, TCoeHelpContext(
+ fwUid, KWM_HLP_WIDGET_COLLECTION ) );
+ CleanupStack::Pop( helpContext );
+
+ // launch help
+ HlpLauncher::LaunchHelpApplicationL(
+ iEikonEnv->WsSession(),
+ helpContext );
+ helpContext = 0; // HlpLauncher takes ownership of helpContext
+ }
+
+// ---------------------------------------------------------------------------
+// CWmMainContainer::RemoveCtrlsFromStack
+// ---------------------------------------------------------------------------
+//
+void CWmMainContainer::RemoveCtrlsFromStack()
+ {
+ for ( TInt i=0; i < CountComponentControls(); i++ )
+ {
+ CCoeControl* ctl = ComponentControl( i ) ;
+ if ( ctl )
+ {
+ iWmPlugin.ViewAppUi().RemoveFromStack( ctl );
+ }
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CWmMainContainer::HandleListBoxEventL
+// ---------------------------------------------------------------------------
+//
+void CWmMainContainer::HandleListBoxEventL(
+ CEikListBox* /*aListBox*/, TListBoxEvent aEventType )
+ {
+ if ( !iClosingDown && ( aEventType == EEventEnterKeyPressed ||
+ aEventType == EEventItemSingleClicked ) )
+ {
+ AddWidgetToHomeScreenL();
+ }
+ }
+
+// ----------------------------------------------------
+// CWmMainContainer::LaunchDetailsDialogL
+// ----------------------------------------------------
+//
+void CWmMainContainer::LaunchDetailsDialogL()
+ {
+ CWmWidgetData* data = iWidgetsList->WidgetData();
+ if ( data )
+ {
+ const CFbsBitmap* logo = ( data->LogoImage() ) ?
+ data->LogoImage() : iWidgetsList->DefaultLogo();
+ const CFbsBitmap* mask = ( data->LogoImageMask() ) ?
+ data->LogoImageMask() : iWidgetsList->DefaultMask();
+
+ TPtrC description = ( data->Description().Length() > 0 ) ?
+ data->Description() : iWmPlugin.ResourceLoader().NoDescriptionText();
+ CWmDetailsDlg* dlg = CWmDetailsDlg::NewL(
+ data->Name(), description,
+ data->HsContentInfo().CanBeAdded(),
+ logo, mask, iBgContext );
+
+ if ( dlg && dlg->ExecuteLD() == ECbaAddToHs )
+ {
+ AddWidgetToHomeScreenL();
+ }
+ }
+ }
+
+// ----------------------------------------------------
+// CWmMainContainer::SetClosingDown
+// ----------------------------------------------------
+//
+void CWmMainContainer::SetClosingDown( TBool aClosingDown )
+ {
+ iClosingDown = aClosingDown;
+ }
+
+// ----------------------------------------------------
+// CWmMainContainer::ClosingDown
+// ----------------------------------------------------
+//
+TBool CWmMainContainer::ClosingDown()
+ {
+ return iClosingDown;
+ }
+
+// ----------------------------------------------------
+// CWmMainContainer::HandleFindSizeChanged
+// ----------------------------------------------------
+//
+void CWmMainContainer::HandleFindSizeChanged()
+ {
+ TAknWindowLineLayout findPane =
+ AknLayoutScalable_Avkon::find_pane().LayoutLine();
+
+ TAknWindowLineLayout listPane;
+
+ TRect listRect = iWidgetsList->Rect();
+ listPane.il = listRect.iTl.iX;
+ listPane.it = listRect.iTl.iY;
+ listPane.ib = 0;
+ listPane.iH = TUint16( listRect.Height() - ( findPane.iH - 1 ) );
+ listPane.iW = listRect.Width();
+ listPane.ir = ELayoutEmpty;
+
+ // set findpane width equal to listwidth
+ findPane.iW = listPane.iW;
+
+ TRect rect = Rect();
+ AknLayoutUtils::LayoutControl( iFindbox, rect, findPane );
+ AknLayoutUtils::LayoutControl( iWidgetsList, rect, listPane );
+
+ iWidgetsList->DrawNow();
+ }
+
+
+// End of File
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/src/wmmaincontainerview.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,415 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Implementation of the main container view for WidgetManager application.
+*
+*/
+
+// INCLUDES
+#include <aknViewAppUi.h>
+#include <eikmenub.h>
+#include <avkon.hrh>
+#include <akncontext.h>
+#include <akntitle.h>
+#include <StringLoader.h>
+#include <barsread.h>
+#include <eikbtgpc.h>
+#include <widgetmanagerview.rsg>
+#include <hscontentcontroller.h>
+
+#include "wmplugin.h"
+#include "widgetmanager.hrh"
+#include "wmmaincontainerview.h"
+#include "wmresourceloader.h"
+#include "wmmaincontainer.h"
+#include <avkon.rsg>
+
+
+// ---------------------------------------------------------
+// CWmMainContainerView::CWmMainContainerView()
+// ---------------------------------------------------------
+//
+CWmMainContainerView::CWmMainContainerView(
+ CWmPlugin& aWmPlugin ):
+ iWmPlugin( aWmPlugin )
+ {
+ iWmMainContainer = NULL;
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainerView::~CWmMainContainerView()
+// ---------------------------------------------------------
+//
+CWmMainContainerView::~CWmMainContainerView()
+ {
+ if ( iWmMainContainer != NULL )
+ {
+ AppUi()->RemoveFromViewStack( *this, iWmMainContainer );
+ delete iWmMainContainer;
+ iWmMainContainer = NULL;
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainerView::NewL
+// ---------------------------------------------------------
+//
+CWmMainContainerView* CWmMainContainerView::NewL(
+ CWmPlugin& aWmPlugin )
+ {
+ CWmMainContainerView* self = CWmMainContainerView::NewLC(
+ aWmPlugin );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainerView::NewLC
+// ---------------------------------------------------------
+//
+CWmMainContainerView* CWmMainContainerView::NewLC(
+ CWmPlugin& aWmPlugin )
+ {
+ CWmMainContainerView* self =
+ new ( ELeave ) CWmMainContainerView( aWmPlugin );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainerView::ConstructL
+// ---------------------------------------------------------
+//
+void CWmMainContainerView::ConstructL()
+ {
+ BaseConstructL( R_WM_MAIN_CONTAINER_VIEW );
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainerView::Id
+// ---------------------------------------------------------
+//
+TUid CWmMainContainerView::Id() const
+ {
+ return TUid::Uid( EWmMainContainerViewId );
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainerView::HandleCommandL
+// ---------------------------------------------------------
+//
+void CWmMainContainerView::HandleCommandL( TInt aCommand )
+ {
+ if ( !iWmMainContainer->ClosingDown() )
+ {
+ switch ( aCommand )
+ {
+ case EWmMainContainerViewOpenPortalMenuItemCommand:
+ HandleOpenMenuItemSelectedL();
+ break;
+ case EWmMainContainerViewAddMenuItemCommand:
+ HandleAddMenuItemSelectedL();
+ break;
+ case EWmMainContainerViewLaunchMenuItemCommand:
+ HandleLaunchMenuItemSelectedL();
+ break;
+ case EWmMainContainerViewSearchMenuItemCommand: // flow through
+ case EAknSoftkeySearch:
+ HandleSearchMenuItemSelectedL();
+ break;
+ case EWmMainContainerViewSortAlphaMenuItemCommand:
+ HandleSortAlphaMenuItemSelectedL();
+ break;
+ case EWmMainContainerViewUninstallMenuItemCommand:
+ HandleUninstallMenuItemSelectedL();
+ break;
+ case EWmMainContainerViewHelpMenuItemCommand:
+ HandleHelpMenuItemSelectedL();
+ break;
+ case EWmMainContainerViewBackMenuItemCommand: // flow through
+ case EAknSoftkeyBack:
+ iWmPlugin.Deactivate();
+ break;
+ case EWmMainContainerViewWiddetDetailsMenuItemCommand:
+ HandleDetailsMenuItemSelectedL();
+ break;
+ case EAknSoftkeySelect:
+ if ( iWmMainContainer )
+ iWmMainContainer->SelectL();
+ break;
+ case EAknSoftkeyCancel: // flow through
+ case EEikCmdCanceled:
+ {
+ HandleDeactivateFindPaneL();
+ break;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainerView::DoActivateL
+// ---------------------------------------------------------
+//
+void CWmMainContainerView::DoActivateL(
+ const TVwsViewId& aPrevViewId,
+ TUid /*aCustomMessageId*/,
+ const TDesC8& /*aCustomMessage*/ )
+ {
+ if ( iWmMainContainer == NULL )
+ {
+ iWmMainContainer = CreateContainerL();
+ iWmMainContainer->SetMopParent( this );
+ AppUi()->AddToStackL( *this, iWmMainContainer );
+ }
+
+ SetupStatusPaneL();
+
+ iWmPlugin.MainViewActivated( aPrevViewId, iWmMainContainer );
+ StatusPane()->SwitchLayoutL(
+ R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT );
+ StatusPane()->ApplyCurrentSettingsL();
+ StatusPane()->DrawNow();
+ CEikButtonGroupContainer* bgc( Cba() );
+
+ CEikCba* cba = static_cast< CEikCba* >( bgc->ButtonGroup() );
+ if ( cba )
+ {
+
+ bgc->SetBoundingRect( TRect() );
+ cba->DrawNow();
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainerView::DoDeactivate
+// ---------------------------------------------------------
+//
+void CWmMainContainerView::DoDeactivate()
+ {
+ if ( iWmMainContainer != NULL )
+ {
+ AppUi()->RemoveFromViewStack( *this, iWmMainContainer );
+ delete iWmMainContainer;
+ 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() );
+ }
+ }
+
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainerView::SetupStatusPaneL
+// ---------------------------------------------------------
+//
+void CWmMainContainerView::SetupStatusPaneL()
+ {
+ // setup the title pane
+ TUid titlePaneUid = TUid::Uid( EEikStatusPaneUidTitle );
+ CEikStatusPaneBase::TPaneCapabilities subPaneTitle =
+ StatusPane()->PaneCapabilities( titlePaneUid );
+ if ( subPaneTitle.IsPresent() && subPaneTitle.IsAppOwned() )
+ {
+ CAknTitlePane* title = static_cast< CAknTitlePane* >(
+ StatusPane()->ControlL( titlePaneUid ) );
+ if ( title )
+ {
+ TResourceReader reader;
+ iEikonEnv->CreateResourceReaderLC(
+ reader, R_WM_MAIN_CONTAINER_TITLE_RESOURCE );
+ title->SetFromResourceL( reader );
+ title->DrawDeferred();
+ CleanupStack::PopAndDestroy(); // reader internal state
+ }
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainerView::CreateContainerL
+// ---------------------------------------------------------
+//
+CWmMainContainer* CWmMainContainerView::CreateContainerL()
+ {
+ return CWmMainContainer::NewL( ClientRect(), iWmPlugin );
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainerView::DynInitMenuPaneL
+// ---------------------------------------------------------
+//
+void CWmMainContainerView::DynInitMenuPaneL(
+ TInt aResourceId, CEikMenuPane* aMenuPane )
+ {
+ if ( aResourceId == R_WM_MAIN_CONTAINER_MENU_PANE &&
+ iWmMainContainer )
+ {
+ aMenuPane->SetItemDimmed( EWmMainContainerViewAddMenuItemCommand,
+ !iWmMainContainer->CanDoAdd() );
+ aMenuPane->SetItemDimmed( EWmMainContainerViewWiddetDetailsMenuItemCommand,
+ !iWmMainContainer->CanDoDetails() );
+ aMenuPane->SetItemDimmed( EWmMainContainerViewLaunchMenuItemCommand,
+ !iWmMainContainer->CanDoLaunch() );
+ aMenuPane->SetItemDimmed( EWmMainContainerViewSearchMenuItemCommand,
+ !iWmMainContainer->CanDoFind() );
+ aMenuPane->SetItemDimmed( EWmMainContainerViewSortAlphaMenuItemCommand,
+ !iWmMainContainer->CanDoSort() );
+ aMenuPane->SetItemDimmed( EWmMainContainerViewHelpMenuItemCommand,
+ !iWmMainContainer->CanDoHelp() );
+ aMenuPane->SetItemDimmed( EWmMainContainerViewUninstallMenuItemCommand,
+ !iWmMainContainer->CanDoUninstall() );
+ if ( !iWmMainContainer->PortalSelected() )
+ aMenuPane->DeleteMenuItem( EWmMainContainerViewOpenPortalMenuItemCommand );
+ if ( !iWmMainContainer->WidgetSelected() )
+ aMenuPane->DeleteMenuItem( EWmMainContainerViewAddMenuItemCommand );
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainerView::HandleOpenMenuItemSelectedL
+// ---------------------------------------------------------
+//
+TBool CWmMainContainerView::HandleOpenMenuItemSelectedL()
+ {
+ if ( iWmMainContainer && iWmMainContainer->PortalSelected() )
+ {
+ iWmMainContainer->OpenOviPortalL();
+ }
+ return ETrue;
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainerView::HandleDetailsMenuItemSelectedL
+// ---------------------------------------------------------
+//
+TBool CWmMainContainerView::HandleDetailsMenuItemSelectedL()
+ {
+ if ( iWmMainContainer && iWmMainContainer->WidgetSelected() )
+ {
+ iWmMainContainer->LaunchDetailsDialogL();
+ }
+ return ETrue;
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainerView::HandleAddMenuItemSelectedL
+// ---------------------------------------------------------
+//
+TBool CWmMainContainerView::HandleAddMenuItemSelectedL()
+ {
+ if ( iWmMainContainer && iWmMainContainer->WidgetSelected() )
+ {
+ iWmMainContainer->AddWidgetToHomeScreenL();
+ }
+ return ETrue;
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainerView::HandleLaunchMenuItemSelectedL
+// ---------------------------------------------------------
+//
+TBool CWmMainContainerView::HandleLaunchMenuItemSelectedL()
+ {
+ if ( iWmMainContainer && iWmMainContainer->WidgetSelected() )
+ {
+ iWmMainContainer->LaunchWidgetL();
+ }
+ return ETrue;
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainerView::HandleSearchMenuItemSelectedL
+// ---------------------------------------------------------
+//
+TBool CWmMainContainerView::HandleSearchMenuItemSelectedL()
+ {
+ if ( iWmMainContainer )
+ {
+ iWmMainContainer->ActivateFindPaneL();
+ }
+ return ETrue;
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainerView::HandleSortAlphaMenuItemSelectedL
+// ---------------------------------------------------------
+//
+TBool CWmMainContainerView::HandleSortAlphaMenuItemSelectedL()
+ {
+ if ( iWmMainContainer )
+ {
+ iWmMainContainer->SortListAlphabeticallyL();
+ }
+ return ETrue;
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainerView::HandleUninstallMenuItemSelectedL
+// ---------------------------------------------------------
+//
+TBool CWmMainContainerView::HandleUninstallMenuItemSelectedL()
+ {
+ if ( iWmMainContainer )
+ {
+ iWmMainContainer->UninstallWidgetL();
+ }
+ return ETrue;
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainerView::HandleHelpMenuItemSelectedL
+// ---------------------------------------------------------
+//
+TBool CWmMainContainerView::HandleHelpMenuItemSelectedL()
+ {
+ iWmMainContainer->ShowHelpL();
+ return ETrue;
+ }
+
+// ---------------------------------------------------------
+// CWmMainContainerView::HandleDeactivateFindPaneL
+// ---------------------------------------------------------
+//
+TBool CWmMainContainerView::HandleDeactivateFindPaneL()
+ {
+ if ( iWmMainContainer )
+ {
+ iWmMainContainer->DeactivateFindPaneL();
+ }
+ return ETrue;
+ }
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/src/wmpersistentwidgetorder.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,230 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Defines an ordered list of widget id's with persistence capability
+*
+*/
+
+// INCLUDES
+#include <s32file.h> // RFile
+#include <s32std.h> // streams
+#include <driveinfo.h>
+#include <sysutil.h>
+
+#include "wmwidgetdata.h"
+#include "wmpersistentwidgetorder.h"
+
+// CONSTANTS
+_LIT( KStoreFileName, "wmlistorder.dat" );
+
+
+// ---------------------------------------------------------
+// CWmPersistentWidgetOrder::NewL
+// ---------------------------------------------------------
+//
+CWmPersistentWidgetOrder* CWmPersistentWidgetOrder::NewL( RFs& aFs )
+ {
+ CWmPersistentWidgetOrder* self =
+ new (ELeave) CWmPersistentWidgetOrder( aFs );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CWmPersistentWidgetOrder::CWmPersistentWidgetOrder
+// ---------------------------------------------------------
+//
+CWmPersistentWidgetOrder::CWmPersistentWidgetOrder( RFs& aFs )
+ : iFs( aFs )
+ {
+ }
+
+// ---------------------------------------------------------
+// CWmPersistentWidgetOrder::ConstructL
+// ---------------------------------------------------------
+//
+void CWmPersistentWidgetOrder::ConstructL()
+ {
+ }
+
+// ---------------------------------------------------------
+// CWmPersistentWidgetOrder::~CWmPersistentWidgetOrder
+// ---------------------------------------------------------
+//
+CWmPersistentWidgetOrder::~CWmPersistentWidgetOrder()
+ {
+ CleanupArray();
+ }
+
+// ---------------------------------------------------------
+// CWmPersistentWidgetOrder::LoadL
+// ---------------------------------------------------------
+//
+void CWmPersistentWidgetOrder::LoadL()
+ {
+ // 1. empty the in-mempory storage
+ CleanupArray();
+ // 2. create stream for reading data from a file
+ TFileName storeFileName;
+ GetStoreFileNameL( storeFileName );
+ CPermanentFileStore* fileStore = NULL;
+ fileStore = CPermanentFileStore::OpenL(
+ iFs, storeFileName, EFileRead );
+ CleanupStack::PushL( fileStore );
+ RStoreReadStream reader;
+ reader.OpenLC( *fileStore, fileStore->Root() );
+ // 3. read all contents from the stream
+ TInt arrayCount = reader.ReadInt32L();
+ while( iTagArray.Count() < arrayCount )
+ {
+ TInt32 uid = reader.ReadInt32L();
+ TInt32 publisherIdLen = reader.ReadInt32L();
+ HBufC16* publisherId = HBufC16::NewLC(publisherIdLen);
+ TPtr16 publisherIdPtr = publisherId->Des();
+ reader.ReadL( publisherIdPtr, publisherIdLen );
+ iTagArray.AppendL( Tag( uid, publisherId ) );
+ CleanupStack::Pop( publisherId );
+ }
+ // 4. cleanup
+ CleanupStack::PopAndDestroy( &reader );
+ CleanupStack::PopAndDestroy( fileStore );
+ }
+
+// ---------------------------------------------------------
+// CWmPersistentWidgetOrder::StoreL
+// ---------------------------------------------------------
+//
+void CWmPersistentWidgetOrder::StoreL( const RWidgetDataValues& aArray )
+ {
+ // 1. create stream for storing the data to a file
+ TFileName storeFileName;
+ GetStoreFileNameL( storeFileName );
+ CPermanentFileStore* fileStore = CPermanentFileStore::ReplaceLC(
+ iFs, storeFileName, EFileWrite );
+ fileStore->SetTypeL( KPermanentFileStoreLayoutUid );
+ RStoreWriteStream writer;
+ TStreamId id = writer.CreateLC( *fileStore );
+ // 2. write all content to the stream
+ writer.WriteInt32L( aArray.Count() );
+ for( TInt i=0; i<aArray.Count(); ++i )
+ {
+ TInt32 uid = aArray[i]->Uid().iUid;
+ const TDesC16& publisherId = aArray[i]->HsContentInfo().PublisherId();
+ writer.WriteInt32L( uid );
+ writer.WriteInt32L( publisherId.Length() );
+ writer.WriteL( publisherId, publisherId.Length() );
+ }
+ // 3. check available space and commit the stream
+ TInt streamsize = writer.Sink()->SizeL();
+ TBool belowCriticalLevel = SysUtil::DiskSpaceBelowCriticalLevelL(
+ &iFs, streamsize, EDriveC );
+ if( !belowCriticalLevel )
+ {
+ writer.CommitL();
+ fileStore->SetRootL(id);
+ fileStore->CommitL();
+ }
+ // 4. cleanup
+ CleanupStack::PopAndDestroy( &writer );
+ CleanupStack::PopAndDestroy( fileStore );
+ }
+
+// ---------------------------------------------------------
+// CWmPersistentWidgetOrder::CleanupArray
+// ---------------------------------------------------------
+//
+void CWmPersistentWidgetOrder::CleanupArray()
+ {
+ for( TInt i=0; i<iTagArray.Count(); ++i )
+ {
+ delete iTagArray[i].iPublisherId;
+ iTagArray[i].iPublisherId = 0;
+ }
+ iTagArray.Close();
+ }
+
+// ---------------------------------------------------------
+// CWmPersistentWidgetOrder::GetStoreFileNameL
+// ---------------------------------------------------------
+//
+void CWmPersistentWidgetOrder::GetStoreFileNameL(
+ TDes& aPathBuf )
+ {
+ // get default drive for phone memory
+ TInt driveNum = EDriveC;
+ User::LeaveIfError( DriveInfo::GetDefaultDrive(
+ DriveInfo::EDefaultPhoneMemory, driveNum ) );
+ // make sure the directory exists
+ iFs.CreatePrivatePath( driveNum ); // ignore errors
+ // build the store path
+ TChar driveLetter;
+ User::LeaveIfError( iFs.DriveToChar( driveNum, driveLetter ) );
+ aPathBuf.Append( driveLetter );
+ aPathBuf.Append( _L(":") );
+ TFileName privatePath;
+ User::LeaveIfError( iFs.PrivatePath( privatePath ) );
+ aPathBuf.Append( privatePath );
+ aPathBuf.Append( KStoreFileName );
+ }
+
+// ---------------------------------------------------------
+// CWmPersistentWidgetOrder::IndexOf
+// ---------------------------------------------------------
+//
+TInt CWmPersistentWidgetOrder::IndexOf( const CWmWidgetData& aWidgetData ) const
+ {
+ TInt found = KErrNotFound;
+ for( TInt i=0; i<iTagArray.Count() && found<0; ++i )
+ {
+ if ( iTagArray[i].Matches( aWidgetData ) )
+ found = i;
+ }
+ return found;
+ }
+
+// ---------------------------------------------------------
+// CWmPersistentWidgetOrder::IsEmpty
+// ---------------------------------------------------------
+//
+TBool CWmPersistentWidgetOrder::IsEmpty() const
+ {
+ return iTagArray.Count() == 0;
+ }
+
+// ---------------------------------------------------------
+// CWmPersistentWidgetOrder::Tag::Tag
+// ---------------------------------------------------------
+//
+CWmPersistentWidgetOrder::Tag::Tag(
+ TInt32 aUid, HBufC16* aPublisherId )
+ {
+ iUid = aUid;
+ iPublisherId = aPublisherId;
+ }
+
+// ---------------------------------------------------------
+// CWmPersistentWidgetOrder::Tag::Matches
+// ---------------------------------------------------------
+//
+TBool CWmPersistentWidgetOrder::Tag::Matches(
+ const CWmWidgetData& aWidgetData ) const
+ {
+ return ( aWidgetData.Uid().iUid == iUid &&
+ aWidgetData.HsContentInfo().PublisherId() == *iPublisherId );
+ }
+
+
+// end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/src/wmplugin.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,266 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* widget manager plugin implementation
+*
+*/
+
+// INCLUDE FILES
+#include <bautils.h>
+#include <coemain.h>
+#include <aknViewAppUi.h>
+
+#include "wmcommon.h"
+#include "widgetmanager.hrh"
+#include "wmmaincontainer.h"
+#include "wmmaincontainerview.h"
+#include "wmresourceloader.h"
+#include "wmplugin.h"
+#include "wmeffectmanager.h"
+#include <widgetmanagerview.rsg>
+
+// ---------------------------------------------------------
+// CWmPlugin::NewL
+// ---------------------------------------------------------
+//
+CWmPlugin* CWmPlugin::NewL()
+ {
+ CWmPlugin* self=new(ELeave) CWmPlugin();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CWmPlugin::~CWmPlugin
+// ---------------------------------------------------------
+//
+CWmPlugin::~CWmPlugin()
+ {
+ if ( iViewAppUi )
+ {
+ Deactivate();
+ iViewAppUi->RemoveView( TUid::Uid( EWmMainContainerViewId ) );
+ }
+ iWmMainContainer = NULL;
+ delete iResourceLoader;
+ delete iEffectManager;
+ delete iPostponedContent;
+ }
+
+// ---------------------------------------------------------
+// CWmPlugin::CWmPlugin
+// ---------------------------------------------------------
+//
+CWmPlugin::CWmPlugin()
+ {
+ iPreviousViewUid.iViewUid = KNullUid;
+ }
+
+// ---------------------------------------------------------
+// CWmPlugin::ConstructL
+// ---------------------------------------------------------
+//
+void CWmPlugin::ConstructL()
+ {
+ iWmMainContainer = NULL;
+
+ // store static view app ui
+ CEikonEnv* eikonEnv = CEikonEnv::Static();
+ if ( !eikonEnv ) User::Leave( KErrUnknown );
+ iViewAppUi = (CAknViewAppUi*)eikonEnv->EikAppUi();
+ if ( !iViewAppUi ) User::Leave( KErrUnknown );
+
+ // create resource loader
+ iFs = &eikonEnv->FsSession();
+ iResourceLoader = CWmResourceLoader::NewL( *eikonEnv );
+ iEffectManager = CWmEffectManager::NewL( *eikonEnv );
+
+ // main view
+ CWmMainContainerView* mainView =
+ CWmMainContainerView::NewL( *this );
+ CleanupStack::PushL( mainView );
+ iViewAppUi->AddViewL( mainView );
+ CleanupStack::Pop( mainView );
+ }
+
+// ---------------------------------------------------------
+// CWmPlugin::Activate
+// ---------------------------------------------------------
+//
+void CWmPlugin::Activate()
+ {
+ if ( !IsActive() && iHsContentController )
+ {
+ TRAP_IGNORE(
+ iEffectManager->BeginFullscreenEffectL(
+ KAppStartCommonDefaultStyle );
+ iViewAppUi->ActivateLocalViewL(
+ TUid::Uid( EWmMainContainerViewId ) );
+ );
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmPlugin::IsActive
+// ---------------------------------------------------------
+//
+TBool CWmPlugin::IsActive()
+ {
+ return ( iPreviousViewUid.iViewUid != KNullUid );
+ }
+
+// ---------------------------------------------------------
+// CWmPlugin::Deactivate
+// ---------------------------------------------------------
+//
+void CWmPlugin::Deactivate()
+ {
+ if ( IsActive() )
+ {
+ iWmMainContainer->SetClosingDown( ETrue );
+ TRAP_IGNORE(
+ iEffectManager->BeginFullscreenEffectL(
+ KAppExitCommonDefaultStyle );
+ iViewAppUi->ActivateLocalViewL(
+ iPreviousViewUid.iViewUid );
+ );
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmPlugin::MainViewActivated
+// ---------------------------------------------------------
+//
+void CWmPlugin::MainViewActivated(
+ const TVwsViewId& aViewId,
+ CWmMainContainer* aWmMainContainer )
+ {
+ iPreviousViewUid = aViewId;
+ iWmMainContainer = aWmMainContainer;
+ iEffectManager->UiRendered();
+ iWmMainContainer->SetClosingDown( EFalse );
+ }
+
+// ---------------------------------------------------------
+// CWmPlugin::MainViewDeactivated
+// ---------------------------------------------------------
+//
+void CWmPlugin::MainViewDeactivated()
+ {
+ iPreviousViewUid.iViewUid = KNullUid;
+ iWmMainContainer = NULL;
+ iEffectManager->UiRendered();
+
+ TRAP_IGNORE( ExecutePostponedCommandL(); );
+ }
+
+// ---------------------------------------------------------
+// CWmPlugin::SetPostponedCommandL
+// ---------------------------------------------------------
+//
+void CWmPlugin::SetPostponedCommandL(
+ TCommand aCommand, CHsContentInfo& aContentInfo )
+ {
+ iPostponedCommand = aCommand;
+ delete iPostponedContent;
+ iPostponedContent = NULL;
+ iPostponedContent = aContentInfo.CloneL();
+ }
+
+// ---------------------------------------------------------
+// CWmPlugin::ExecutePostponedCommandL
+// ---------------------------------------------------------
+//
+void CWmPlugin::ExecutePostponedCommandL()
+ {
+ if ( iPostponedCommand == EAddToHomescreen )
+ {
+ TInt err = ContentController().AddWidgetL( *iPostponedContent );
+ if ( err == KHsErrorViewFull ||
+ err == KHsErrorDoesNotFit )
+ {
+ ResourceLoader().InfoPopupL(
+ R_QTN_HS_ADD_WIDGET_NO_SPACE_NOTE, KNullDesC );
+ }
+ else if ( err == KHsErrorMaxInstanceCountExceeded )
+ {
+ ResourceLoader().InfoPopupL(
+ R_QTN_HS_ADD_WIDGET_MAX_COUNT_NOTE, KNullDesC );
+ }
+ else if ( err == KErrNoMemory )
+ {
+ ResourceLoader().InfoPopupL(
+ R_QTN_HS_HS_MEMORY_FULL, KNullDesC );
+ }
+ else if ( err != KErrNone )
+ {
+ ResourceLoader().ErrorPopup( err );
+ }
+ }
+ iPostponedCommand = ENone;
+ delete iPostponedContent;
+ iPostponedContent = NULL;
+ }
+
+// ---------------------------------------------------------
+// CWmPlugin::MainViewDeactivated
+// ---------------------------------------------------------
+//
+CAknViewAppUi& CWmPlugin::ViewAppUi()
+ {
+ return *iViewAppUi;
+ }
+
+// ---------------------------------------------------------
+// CWmPlugin::MainViewDeactivated
+// ---------------------------------------------------------
+//
+CWmResourceLoader& CWmPlugin::ResourceLoader()
+ {
+ return *iResourceLoader;
+ }
+
+// ---------------------------------------------------------
+// CWmPlugin::MainViewDeactivated
+// ---------------------------------------------------------
+//
+MHsContentController& CWmPlugin::ContentController()
+ {
+ return *iHsContentController;
+ }
+
+// ---------------------------------------------------------
+// CWmPlugin::MainViewDeactivated
+// ---------------------------------------------------------
+//
+RFs& CWmPlugin::FileServer()
+ {
+ return *iFs;
+ }
+
+// ---------------------------------------------------------
+// CWmPlugin::NotifyWidgetListChanged
+// ---------------------------------------------------------
+//
+void CWmPlugin::NotifyWidgetListChanged()
+ {
+ if ( iWmMainContainer )
+ {
+ iWmMainContainer->HandleWidgetListChanged();
+ }
+ }
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/src/wmpluginproxy.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,37 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* widget manager plugin proxy
+*
+*/
+
+#include <e32std.h>
+#include <implementationproxy.h>
+
+#include "wmplugin.h"
+
+// Map the interface implementation UIDs to implementation factory functions
+const TImplementationProxy ImplementationTable[] =
+ {
+ IMPLEMENTATION_PROXY_ENTRY( 0x20026F53, CWmPlugin::NewL )
+ };
+
+
+// Exported proxy for instantiation method resolution.
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(
+ TInt& aTableCount)
+ {
+ aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+ return ImplementationTable;
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/src/wmportalbutton.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,426 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Implementation of the portal button for WidgetManager
+*
+*/
+
+// INCLUDE FILES
+#include <aknlayoutscalable_apps.cdl.h>
+#include <aknlayoutscalable_avkon.cdl.h>
+#include <layoutmetadata.cdl.h>
+#include <aknbutton.h>
+#include <AknsDrawUtils.h>
+#include <AknBidiTextUtils.h>
+#include <AknsFrameBackgroundControlContext.h>
+#include <gulicon.h>
+#include <avkon.mbg>
+#include <widgetmanager.mbg>
+
+#include "wmportalbutton.h"
+#include "wmcommon.h"
+#include "wmplugin.h"
+#include "wmresourceloader.h"
+#include "wmmaincontainer.h"
+
+// MEMBER FUNCTIONS
+
+// ---------------------------------------------------------
+// CWmPortalButton::NewL
+// ---------------------------------------------------------
+//
+CWmPortalButton* CWmPortalButton::NewL(
+ const CCoeControl* aParent,
+ const TDesC& aText,
+ const TDesC& aUrl,
+ TWmUiControlIds aButtonCtrlId )
+ {
+ CWmPortalButton* self = new (ELeave) CWmPortalButton(
+ KAknButtonTextInsideFrame, aButtonCtrlId );
+ CleanupStack::PushL( self );
+ self->ConstructL( aParent,aText, aUrl );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CWmPortalButton::~CWmPortalButton
+// ---------------------------------------------------------
+//
+CWmPortalButton::~CWmPortalButton()
+ {
+ delete iText;
+ delete iUrl;
+ delete iImageConverter;
+ }
+
+// ---------------------------------------------------------
+// CWmPortalButton::CWmPortalButton
+// ---------------------------------------------------------
+//
+CWmPortalButton::CWmPortalButton(
+ const TInt aFlags,
+ TWmUiControlIds aButtonCtrlId )
+ :CAknButton( aFlags ),
+ iButtonCtrlId( aButtonCtrlId )
+ {
+ }
+
+// ---------------------------------------------------------
+// CWmPortalButton::ConstructL
+// ---------------------------------------------------------
+//
+void CWmPortalButton::ConstructL(
+ const CCoeControl* aParent,
+ const TDesC& aText, const TDesC& aUrl )
+ {
+ if ( !aParent )
+ {
+ User::Leave( KErrArgument );
+ }
+ else if ( iButtonCtrlId != EOviPortal )
+ {
+ // operator button not supported until layout available.
+ User::Leave( KErrNotSupported );
+ }
+
+ SetContainerWindowL( *aParent );
+
+ // Obtain pointer to main container.
+ iWmMainContainer =
+ static_cast <CWmMainContainer*>(
+ const_cast <CCoeControl*>( aParent ) );
+
+ CGulIcon* icon = AknsUtils::CreateGulIconL(
+ AknsUtils::SkinInstance(), KAknsIIDQgnMenuOviStore,
+ iWmMainContainer->WmPlugin().ResourceLoader().IconFilePath(),
+ EMbmWidgetmanagerQgn_menu_ovistore,
+ EMbmWidgetmanagerQgn_menu_ovistore_mask );
+
+ CleanupStack::PushL( icon );
+ CAknButton::ConstructL( icon, NULL, NULL, NULL,
+ aText, KNullDesC, 0 );
+ CleanupStack::Pop( icon ); // ownership taken
+
+ TAknsItemID frameId = ((iButtonCtrlId == EOviPortal) ?
+ KAknsIIDQgnHomeWmButton : KAknsIIDQsnFrButtonNormal);
+ TAknsItemID frameCenterId = ((iButtonCtrlId == EOviPortal) ?
+ KAknsIIDQgnHomeWmButtonCenter : KAknsIIDQsnFrButtonCenterNormal );
+ TAknsItemID framePressedId = ((iButtonCtrlId == EOviPortal) ?
+ KAknsIIDQgnHomeWmButtonPressed : KAknsIIDQsnFrButtonPressed );
+ TAknsItemID framePressedCenterId = ((iButtonCtrlId == EOviPortal) ?
+ KAknsIIDQgnHomeWmButtonPressedCenter : KAknsIIDQsnFrButtonCenterPressed );
+
+ iText = aText.AllocL();
+ iUrl = aUrl.AllocL();
+
+ SetFocusing( ETrue );
+ SetBackgroundIds( frameId,
+ framePressedId,
+ KAknsIIDQsnFrButtonInactive,
+ framePressedId,
+ KAknsIIDQsnFrButtonInactive );
+ SetFrameAndCenterIds(
+ frameId,
+ frameCenterId,
+ KAknsIIDDefault,
+ KAknsIIDDefault,
+ KAknsIIDDefault,
+ KAknsIIDDefault,
+ framePressedId,
+ framePressedCenterId,
+ KAknsIIDDefault,
+ KAknsIIDDefault );
+
+ // ready to be drawn
+ ActivateL();
+ }
+
+// ---------------------------------------------------------
+// CWmPortalButton::HandlePointerEventL
+// ---------------------------------------------------------
+//
+void CWmPortalButton::HandlePointerEventL(
+ const TPointerEvent& aPointerEvent )
+ {
+ CAknButton::HandlePointerEventL( aPointerEvent);
+
+ if ( AknLayoutUtils::PenEnabled() )
+ {
+ switch ( aPointerEvent.iType )
+ {
+ case TPointerEvent::EButton1Down:
+ {
+ break;
+ }
+ case TPointerEvent::EButton1Up:
+ {
+ if ( iWmMainContainer &&
+ iButtonCtrlId == EOviPortal )
+ {
+ iWmMainContainer->OpenOviPortalL();
+ }
+ break;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmPortalButton::OfferKeyEventL
+// ---------------------------------------------------------
+//
+TKeyResponse CWmPortalButton::OfferKeyEventL(
+ const TKeyEvent& aKeyEvent,
+ TEventCode aType )
+ {
+ TKeyResponse keyResponse( EKeyWasNotConsumed );
+ keyResponse = CAknButton::OfferKeyEventL( aKeyEvent, aType );
+
+ if ( ( aType == EEventKey ) &&
+ ( aKeyEvent.iScanCode == EStdKeyDevice3 ||
+ aKeyEvent.iScanCode == EStdKeyEnter ) )
+ {
+ if ( iWmMainContainer &&
+ iButtonCtrlId == EOviPortal )
+ {
+ iWmMainContainer->OpenOviPortalL();
+ }
+
+ keyResponse = EKeyWasConsumed;
+ }
+
+ return keyResponse;
+ }
+
+// ---------------------------------------------------------
+// CWmPortalButton::SizeChanged
+// ---------------------------------------------------------
+//
+void CWmPortalButton::SizeChanged()
+ {
+ CAknButton::SizeChanged();
+
+ TBool landscape = Layout_Meta_Data::IsLandscapeOrientation();
+ TRect rect = Rect();
+ TAknLayoutRect imageLayout;
+ if ( iButtonCtrlId == EOviPortal )
+ {
+ imageLayout.LayoutRect( rect,
+ AknLayoutScalable_Apps::wgtman_btn_pane_g1(
+ landscape ? 1 : 0).LayoutLine() );
+ }
+ SetTextVerticalAlignment( CAknButton::ECenter );
+ SetIconSize( imageLayout.Rect().Size() );
+ SetTextAndIconAlignment(
+ landscape ? CAknButton::EIconOverText : CAknButton::EIconBeforeText );
+ }
+
+// ---------------------------------------------------------
+// CWmPortalButton::NotifyCompletion
+// ---------------------------------------------------------
+//
+void CWmPortalButton::NotifyCompletion( TInt aError )
+ {
+ if ( KErrNone != aError )
+ {
+ // no image available. Do nothing.
+ }
+ else
+ {
+ CGulIcon* icon = NULL;
+ TRAPD( err, icon = CGulIcon::NewL(
+ iImageConverter->Bitmap(), iImageConverter->Mask() ) );
+ if ( KErrNone == err && icon )
+ {
+ // Ownership transfered
+ State()->SetIcon( icon );
+ DrawDeferred();
+ }
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmPortalButton::Draw
+// ---------------------------------------------------------
+//
+void CWmPortalButton::Draw( const TRect& /*aRect*/ ) const
+ {
+ TRect rect = Rect();
+
+ TAknLayoutRect centerLayout;
+ centerLayout.LayoutRect( rect,
+ AknLayoutScalable_Avkon::toolbar_button_pane_g1().LayoutLine() );
+ TRect innerRect = centerLayout.Rect();
+
+ CWindowGc& gc = SystemGc();
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+
+ TAknsItemID frameId = ( ( iButtonCtrlId == EOviPortal) ?
+ KAknsIIDQgnHomeWmButton : KAknsIIDQsnFrButtonNormal );
+ TAknsItemID frameCenterId = ( ( iButtonCtrlId == EOviPortal) ?
+ KAknsIIDQgnHomeWmButtonCenter : KAknsIIDQsnFrButtonCenterNormal );
+
+ if ( iButtonPressed )
+ {
+ frameId = ( ( iButtonCtrlId == EOviPortal) ?
+ KAknsIIDQgnHomeWmButtonPressed : KAknsIIDQsnFrButtonPressed );
+ frameCenterId = ( ( iButtonCtrlId == EOviPortal) ?
+ KAknsIIDQgnHomeWmButtonPressedCenter : KAknsIIDQsnFrButtonCenterPressed );
+ }
+ else if ( IsDimmed() )
+ {
+ frameId = KAknsIIDQsnFrButtonInactive;
+ frameCenterId = KAknsIIDQsnFrButtonCenterInactive;
+ }
+ else if ( IsFocused() )
+ {
+ frameId = KAknsIIDQsnFrList;
+ frameCenterId = KAknsIIDQsnFrListCenter;
+ }
+
+ iBgContext->SetFrame( frameId );
+ iBgContext->SetCenter( frameCenterId );
+ iBgContext->SetFrameRects( rect, innerRect );
+
+ if ( !AknsDrawUtils::Background( skin, iBgContext, NULL,
+ gc, rect, KAknsDrawParamNoClearUnderImage ) )
+ {
+ gc.SetBrushColor( KRgbRed );
+ gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
+ gc.DrawRect( rect );
+ }
+ gc.SetBrushStyle( CGraphicsContext::ENullBrush );
+
+ CAknButtonState* state = State();
+ if ( state )
+ {
+ TBool landscape = Layout_Meta_Data::IsLandscapeOrientation();
+
+ const CGulIcon* icon = state->Icon();
+ CFbsBitmap* bitmap = const_cast<CFbsBitmap*>(icon->Bitmap());
+ CFbsBitmap* mask = const_cast<CFbsBitmap*>(icon->Mask());
+ // draw image
+ if ( state->Icon() && bitmap && mask )
+ {
+ TAknLayoutRect imageLayout;
+ if ( iButtonCtrlId == EOviPortal )
+ {
+ imageLayout.LayoutRect( rect,
+ AknLayoutScalable_Apps::wgtman_btn_pane_g1(
+ landscape ? 1 : 0).LayoutLine() );
+ }
+ imageLayout.DrawImage( gc, bitmap, mask );
+ }
+
+ // draw text if portrait
+ if ( !landscape )
+ {
+ TAknTextComponentLayout leftLayout;
+ if ( iButtonCtrlId == EOviPortal )
+ {
+ leftLayout = AknLayoutScalable_Apps::wgtman_btn_pane_t1(
+ landscape ? 1 : 0 );
+ }
+ DrawText( gc, state->Text(), leftLayout, 1 );
+ }
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmPortalButton::DrawText
+// ---------------------------------------------------------
+//
+void CWmPortalButton::DrawText(
+ CWindowGc& aGc,
+ const TDesC& aText,
+ TAknTextComponentLayout& aLayout,
+ TInt aMargin ) const
+ {
+ TAknLayoutText layoutText;
+ layoutText.LayoutText(Rect(), aLayout.LayoutLine() );
+
+ const CFont* font = layoutText.Font();
+ TRect textRect = layoutText.TextRect();
+
+ aGc.UseFont( font );
+
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+
+ TRgb textColor( layoutText.Color() );
+
+ if ( IsDimmed() )
+ {
+ const TInt KAlpha = 77;
+ textColor = iEikonEnv->ControlColor( EColorButtonText, *this );
+ // try over-writing color from theme, ignore error.
+ AknsUtils::GetCachedColor(
+ skin, textColor, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6 );
+ textColor.SetAlpha( KAlpha );
+ }
+ else if ( IsFocused() || iButtonPressed )
+ {
+ textColor = iEikonEnv->ControlColor( EColorButtonTextPressed, *this );
+ // try over-writing color from theme, ignore error.
+ AknsUtils::GetCachedColor(
+ skin, textColor, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG10 );
+ }
+ else if ( textColor.Internal() <= 0 )
+ {
+ textColor = iEikonEnv->ControlColor( EColorButtonText, *this );
+ // try over-writing color from theme, ignore error.
+ AknsUtils::GetCachedColor(
+ skin, textColor, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6 );
+ }
+ aGc.SetPenColor( textColor);
+
+ // Layout data not correct, add some space for text
+ textRect.iBr.iX += aMargin;
+ textRect.iTl.iX -= aMargin;
+
+ // buffer for visually ordered text
+ TBuf<255 + KAknBidiExtraSpacePerLine> visualText;
+ TInt clipWidth = textRect.Width();
+
+ // bidi processing - using AknBidiTextUtils.
+ AknBidiTextUtils::ConvertToVisualAndClip(
+ aText,
+ visualText,
+ *font,
+ clipWidth,
+ clipWidth );
+
+ TInt baselineOffset = 0;
+ switch ( iVerticalAlignment )
+ {
+ case ETop:
+ baselineOffset = font->AscentInPixels();
+ break;
+
+ case EBottom:
+ baselineOffset = textRect.Height();
+ break;
+
+ default: // centered
+ baselineOffset = font->AscentInPixels() +
+ ( textRect.Height() - font->AscentInPixels() ) / 2;
+ }
+
+ aGc.DrawText( visualText, textRect,
+ baselineOffset, layoutText.Align() );
+ }
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/src/wmresourceloader.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,221 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* loads widget manager resources and icons
+*
+*/
+
+// INCLUDE FILES
+#include <eikenv.h>
+#include <eikappui.h>
+#include <aknapp.h>
+#include <bautils.h>
+#include <gdi.h>
+#include <aknbutton.h>
+#include <AknIconUtils.h>
+#include <StringLoader.h>
+#include <aknnotewrappers.h>
+#include <widgetmanagerview.rsg>
+
+#include "wmresourceloader.h"
+
+// CONSTANTS
+_LIT( KZdrive, "Z:" );
+_LIT( KRelativeMifPath, "\\resource\\apps\\widgetmanager.mif" );
+_LIT( KRelativeResourcePathWithWildcard, "\\resource\\widgetmanagerview.r*" );
+_LIT( KRelativeResourcePath, "\\resource\\widgetmanagerview.rsc" );
+
+// ---------------------------------------------------------
+// CWmResourceLoader::NewL
+// ---------------------------------------------------------
+//
+CWmResourceLoader* CWmResourceLoader::NewL(
+ CEikonEnv& aEnv )
+ {
+ CWmResourceLoader* self = new (ELeave) CWmResourceLoader( aEnv );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CWmResourceLoader::CWmResourceLoader
+// ---------------------------------------------------------
+//
+CWmResourceLoader::CWmResourceLoader( CEikonEnv& aEnv )
+ : iEnv( aEnv )
+ {
+ }
+
+// ---------------------------------------------------------
+// CWmResourceLoader::~CWmResourceLoader
+// ---------------------------------------------------------
+//
+CWmResourceLoader::~CWmResourceLoader()
+ {
+ UnloadResources();
+ delete iNote;
+ delete iDescription;
+ }
+
+// ---------------------------------------------------------
+// CWmResourceLoader::ConstructL
+// ---------------------------------------------------------
+//
+void CWmResourceLoader::ConstructL()
+ {
+ Dll::FileName( iDllName );
+
+ LoadResourcesL();
+ DetermineIconFilePath();
+
+ iDescription = StringLoader::LoadL(
+ R_QTN_WM_DETAILS_NO_DESCRIPTION, &iEnv );
+ }
+
+// ---------------------------------------------------------
+// CWmResourceLoader::LoadResourcesL
+// ---------------------------------------------------------
+//
+void CWmResourceLoader::LoadResourcesL()
+ {
+ TFileName resourceFile;
+ RFs& fs = iEnv.FsSession();
+ TPtrC dllDrive = iDllName.Left(2);
+ resourceFile.Copy( dllDrive );
+ resourceFile.Append( KRelativeResourcePathWithWildcard );
+ BaflUtils::NearestLanguageFile( fs, resourceFile );
+ if ( !BaflUtils::FileExists( fs, resourceFile ) )
+ {
+ resourceFile.Copy( dllDrive );
+ resourceFile.Append( KRelativeResourcePath );
+ BaflUtils::NearestLanguageFile( fs, resourceFile );
+ if ( !BaflUtils::FileExists( fs, resourceFile ) &&
+ dllDrive != KZdrive() )
+ {
+ // try to load resource from ROM ( partial upgrade case )
+ resourceFile.Copy( KZdrive );
+ resourceFile.Append( KRelativeResourcePathWithWildcard );
+ BaflUtils::NearestLanguageFile( fs, resourceFile );
+ if ( !BaflUtils::FileExists( fs, resourceFile ) )
+ {
+ resourceFile.Copy( KZdrive );
+ resourceFile.Append( KRelativeResourcePath );
+ BaflUtils::NearestLanguageFile( fs, resourceFile );
+ }
+ }
+ }
+ iResourceFileOffset = iEnv.AddResourceFileL( resourceFile );
+ }
+
+// ---------------------------------------------------------
+// CWmResourceLoader::UnloadResources
+// ---------------------------------------------------------
+//
+void CWmResourceLoader::UnloadResources()
+ {
+ if ( iResourceFileOffset )
+ {
+ iEnv.DeleteResourceFile( iResourceFileOffset );
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmResourceLoader::DetermineIconFilePath
+// ---------------------------------------------------------
+//
+void CWmResourceLoader::DetermineIconFilePath()
+ {
+ RFs& fs = iEnv.FsSession();
+ iMifFile.Copy( iDllName.Left(2) );
+ iMifFile.Append( KRelativeMifPath );
+ if ( !BaflUtils::FileExists( fs, iMifFile ) )
+ {
+ // Load from ROM ( partial upgrade case )
+ iMifFile.Copy( KZdrive );
+ iMifFile.Append( KRelativeMifPath );
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmResourceLoader::IconFilePath
+// ---------------------------------------------------------
+//
+const TDesC& CWmResourceLoader::IconFilePath()
+ {
+ return iMifFile;
+ }
+
+// ---------------------------------------------------------
+// CWmResourceLoader::LoadButtonL
+// ---------------------------------------------------------
+void CWmResourceLoader::LoadButtonL(
+ CAknButton& aResource,
+ TInt aResourceId )
+ {
+ TResourceReader reader;
+ iEnv.CreateResourceReaderLC( reader, aResourceId );
+ aResource.ConstructFromResourceL( reader );
+ CleanupStack::PopAndDestroy(); // reader
+ }
+
+// ---------------------------------------------------------
+// LoadStringLC
+// loads a string from resource. If an additional string is
+// given (the length is greater than zero) uses a different
+// StringLoader method to load.
+// ---------------------------------------------------------
+//
+HBufC* LoadStringLC( TInt aResourceId, const TDesC& aString, CEikonEnv* aEnv )
+ {
+ if ( aString.Length() > 0 )
+ return StringLoader::LoadLC( aResourceId, aString, aEnv );
+ else
+ return StringLoader::LoadLC( aResourceId, aEnv );
+ }
+
+// ---------------------------------------------------------
+// CWmResourceLoader::InfoPopupL
+// ---------------------------------------------------------
+//
+void CWmResourceLoader::InfoPopupL( TInt aResourceId, const TDesC& aString )
+ {
+ HBufC* infoMsg = LoadStringLC( aResourceId, aString, &iEnv );
+ iNote = new (ELeave) CAknInformationNote( &iNote );
+ iNote->SetTimeout( CAknNoteDialog::ELongTimeout );
+ iNote->ExecuteLD( *infoMsg );
+ CleanupStack::PopAndDestroy( infoMsg );
+ }
+
+// ---------------------------------------------------------
+// CWmResourceLoader::ErrorPopup
+// ---------------------------------------------------------
+//
+void CWmResourceLoader::ErrorPopup( TInt aErrorCode )
+ {
+ iEnv.HandleError( aErrorCode );
+ }
+
+// ---------------------------------------------------------
+// CWmResourceLoader::NoDescriptionText
+// ---------------------------------------------------------
+//
+const TDesC& CWmResourceLoader::NoDescriptionText()
+ {
+ return *iDescription;
+ }
+
+// end of file
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/src/wmwidgetdata.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,416 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* CWmWidgetData implementation.
+*
+*/
+
+
+// INCLUDE FILES
+#include <fbs.h>
+#include <bautils.h>
+#include <s32file.h>
+#include <hscontentinfo.h>
+#include <widgetregistryclient.h> // widgetreqistry
+#include <StringLoader.h>
+#include <eikenv.h>
+
+#include "wmwidgetdata.h"
+#include "wmwidgetdataobserver.h"
+#include "wmpersistentwidgetorder.h"
+#include "wmcommon.h"
+#include <widgetmanagerview.rsg>
+
+// ---------------------------------------------------------
+// CWmWidgetData::NewL
+// ---------------------------------------------------------
+//
+CWmWidgetData* CWmWidgetData::NewL(
+ CHsContentInfo* aHsContentInfo,
+ RWidgetRegistryClientSession* aRegistryClientSession )
+ {
+ CWmWidgetData* self = CWmWidgetData::NewLC(
+ aHsContentInfo, aRegistryClientSession );
+ CleanupStack::Pop(); // self;
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CWmWidgetData::NewLC
+// ---------------------------------------------------------
+//
+CWmWidgetData* CWmWidgetData::NewLC(
+ CHsContentInfo* aHsContentInfo,
+ RWidgetRegistryClientSession* aRegistryClientSession )
+ {
+ CWmWidgetData* self = new ( ELeave ) CWmWidgetData();
+ CleanupStack::PushL(self);
+ self->ConstructL( aHsContentInfo, aRegistryClientSession );
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CWmWidgetData::CWmWidgetData
+// ---------------------------------------------------------
+//
+CWmWidgetData::CWmWidgetData()
+ {
+ iIdle = NULL;
+ iLogoImage = NULL;
+ iLogoImageMask = NULL;
+ iHsContentInfo = NULL;
+ iWidgetType = CWmWidgetData::EUnknown;
+ iInstallAnimationIndex = KErrNotFound;
+ iPublisherUid = KNullUid;
+ iLogoSize = TSize( 0, 0 );
+ }
+
+// ---------------------------------------------------------
+// CWmWidgetData::ConstructL
+// ---------------------------------------------------------
+//
+void CWmWidgetData::ConstructL(
+ CHsContentInfo* aHsContentInfo,
+ RWidgetRegistryClientSession* aRegistryClientSession )
+ {
+ InitL( aHsContentInfo, aRegistryClientSession );
+
+ // start decoding the icon
+ iImageConverter = CWmImageConverter::NewL( this );
+ iIdle = CIdle::NewL( CActive::EPriorityLow );
+ iIdle->Start( TCallBack( HandleAsyncIconString, this ) );
+ }
+
+// ---------------------------------------------------------
+// CWmWidgetData::InitL
+// ---------------------------------------------------------
+//
+void CWmWidgetData::InitL(
+ CHsContentInfo* aHsContentInfo,
+ RWidgetRegistryClientSession* aRegistryClientSession )
+ {
+ // analyse the widget type
+ if ( aHsContentInfo->Type() == KContentTemplate )
+ {
+ iWidgetType = CWmWidgetData::ECps; // wrt widgets included in this gategory
+ }
+ else if ( aHsContentInfo->Type() == KContentWidget )
+ {
+ iWidgetType = CWmWidgetData::ENative;
+ }
+
+ // take ownership of the content info
+ iHsContentInfo = aHsContentInfo;
+
+ // get publisher uid from widget registry
+ FetchPublisherUidL( aRegistryClientSession );
+
+ }
+
+// ---------------------------------------------------------
+// CWmWidgetData::~CWmWidgetData
+// ---------------------------------------------------------
+//
+CWmWidgetData::~CWmWidgetData()
+ {
+ if ( iIdle && iIdle->IsActive() )
+ {
+ iIdle->Cancel();
+ }
+ delete iIdle;
+ SetObserver( NULL );
+ delete iLogoImage;
+ delete iLogoImageMask;
+ delete iImageConverter;
+ delete iHsContentInfo;
+ }
+
+// ---------------------------------------------------------
+// CWmWidgetData::SetObserver
+// ---------------------------------------------------------
+//
+void CWmWidgetData::SetObserver( MWmWidgetDataObserver* aObserver )
+ {
+ iObserver = aObserver;
+ }
+
+// ---------------------------------------------------------
+// CWmWidgetData::SetObserver
+// ---------------------------------------------------------
+//
+void CWmWidgetData::SetPersistentWidgetOrder(
+ const CWmPersistentWidgetOrder* aPersistentWidgetOrder )
+ {
+ iPersistentWidgetOrder = aPersistentWidgetOrder;
+ }
+
+// ---------------------------------------------------------
+// CWmWidgetData::EqualsTo
+// ---------------------------------------------------------
+//
+TBool CWmWidgetData::EqualsTo( CHsContentInfo& aContentInfo )
+ {
+ return (
+ HsContentInfo().Uid() == aContentInfo.Uid() &&
+ HsContentInfo().PublisherId() == aContentInfo.PublisherId() );
+ }
+
+// ---------------------------------------------------------
+// CWmWidgetData::CompareByName
+// ---------------------------------------------------------
+//
+TInt CWmWidgetData::CompareByName(
+ const CWmWidgetData& aDataOne, const CWmWidgetData& aDataTwo )
+ {
+ // negate the result for ascending alphabetical order
+ TInt result = aDataOne.Name().CompareC( aDataTwo.Name() );
+ return result;
+ }
+
+// ---------------------------------------------------------
+// CWmWidgetData::CompareByPersistentWidgetOrder
+// ---------------------------------------------------------
+//
+TInt CWmWidgetData::CompareByPersistentWidgetOrder(
+ const CWmWidgetData& aDataOne, const CWmWidgetData& aDataTwo )
+ {
+ TInt result;
+ const CWmPersistentWidgetOrder* order = aDataOne.iPersistentWidgetOrder;
+ if ( order && !order->IsEmpty() )
+ {
+ result = order->IndexOf( aDataOne ) - order->IndexOf( aDataTwo );
+ }
+ else
+ {
+ // fallback: if persistent widget order is not available
+ // or it is empty (this is the case on first start, or if the persistent
+ // file is corrupted or deleted) -> order widgets by name.
+ result = CompareByName( aDataOne, aDataTwo );
+ }
+ return result;
+ }
+
+// ---------------------------------------------------------
+// CWmWidgetData::NotifyCompletion
+// ---------------------------------------------------------
+//
+void CWmWidgetData::NotifyCompletion( TInt aError )
+ {
+ delete iLogoImage;
+ iLogoImage = NULL;
+ delete iLogoImageMask;
+ iLogoImageMask = NULL;
+ if ( KErrNone != aError )
+ {
+ // no image available. Do nothing.
+ }
+ else
+ {
+ iLogoImage = iImageConverter->Bitmap();
+ iLogoImageMask = iImageConverter->Mask();
+ FireDataChanged();
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmWidgetData::HandleIconStringL
+// ---------------------------------------------------------
+//
+void CWmWidgetData::HandleIconStringL( const TDesC& aIconStr )
+ {
+ HBufC* iconStr = NULL;
+ if ( aIconStr.Length() == 0 &&
+ iPublisherUid != KNullUid )
+ {
+ // workaround for wrt widgets icon
+ _LIT( KUidTag, "uid(0x%x)" );
+ const TInt KLength = 32;
+ iconStr = HBufC::NewLC( KLength );
+ iconStr->Des().Format( KUidTag, iPublisherUid.iUid );
+ }
+ else
+ {
+ iconStr = aIconStr.AllocLC();
+ }
+
+ TSize size( iLogoSize );
+ if ( iLogoImage ) { size = iLogoImage->SizeInPixels(); }
+ if ( size != iLogoSize &&
+ iLogoSize.iWidth > 0 && iLogoSize.iHeight > 0 )
+ {
+ size = iLogoSize;
+ }
+ iImageConverter->HandleIconStringL(
+ size.iWidth, size.iHeight, *iconStr );
+
+ CleanupStack::PopAndDestroy( iconStr );
+ }
+
+// ---------------------------------------------------------
+// CWmWidgetData::FireDataChanged
+// ---------------------------------------------------------
+//
+void CWmWidgetData::FireDataChanged()
+ {
+ if ( iObserver )
+ {
+ iObserver->HandleWidgetDataChanged( this );
+ }
+ }
+
+// ----------------------------------------------------
+// CWmWidgetData::UidFromString
+// ----------------------------------------------------
+//
+TUid CWmWidgetData::UidFromString( const TDesC8& aUidString ) const
+ {
+ TUid uid( TUid::Null() );
+ const TInt KHexPrefixLength = 2;
+ if ( aUidString.Length() > KHexPrefixLength )
+ {
+ TUint id = 0;
+ TLex8 lex( aUidString.Mid( KHexPrefixLength ) );
+ if ( lex.Val( id, EHex ) == KErrNone )
+ {
+ uid.iUid = (TInt32)id;
+ }
+ }
+ return uid;
+ }
+
+// ----------------------------------------------------
+// CWmWidgetData::PublisherUid
+// ----------------------------------------------------
+//
+TUid CWmWidgetData::PublisherUid()
+ {
+ return iPublisherUid;
+ }
+
+// ----------------------------------------------------
+// CWmWidgetData::FetchPublisherUidL
+// ----------------------------------------------------
+//
+void CWmWidgetData::FetchPublisherUidL(
+ RWidgetRegistryClientSession* aRegistryClientSession )
+ {
+ if ( iPublisherUid == KNullUid &&
+ PublisherId() != KNullDesC &&
+ iWidgetType != CWmWidgetData::ENative &&
+ aRegistryClientSession )
+ {
+ TInt widgetUid = aRegistryClientSession->GetWidgetUidL( PublisherId() );
+ if ( widgetUid != 0 )
+ {
+ // WRT widget
+ iPublisherUid = TUid::Uid( widgetUid );
+
+ HBufC* desc = StringLoader::LoadLC( R_QTN_WM_WIDGET_DETAILS_WRT,
+ CEikonEnv::Static() );
+ iHsContentInfo->SetDescriptionL( *desc );
+ CleanupStack::PopAndDestroy( desc );
+ }
+ else
+ {
+ iPublisherUid = KNullUid;
+ }
+ }
+ }
+// ----------------------------------------------------
+// CWmWidgetData::SetLogoSize
+// ----------------------------------------------------
+//
+void CWmWidgetData::SetLogoSize( const TSize& aSize )
+ {
+ iLogoSize = aSize;
+ if ( iImageConverter )
+ {
+ iImageConverter->SetLogoSize( aSize );
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmWidgetData::HandleAsyncIconString
+// ---------------------------------------------------------
+//
+TInt CWmWidgetData::HandleAsyncIconString( TAny* aPtr )
+ {
+ CWmWidgetData* self = static_cast< CWmWidgetData* >( aPtr );
+ if ( self->iIdle->IsActive() )
+ {
+ self->iIdle->Cancel();
+ }
+ TRAP_IGNORE( self->HandleIconStringL(
+ self->HsContentInfo().IconPath() ); );
+ return KErrNone;
+ }
+
+// ---------------------------------------------------------
+// CWmWidgetData::ReCreateLogo
+// ---------------------------------------------------------
+//
+void CWmWidgetData::ReCreateLogo( const TSize& aSize )
+ {
+ iLogoSize = aSize;
+
+ delete iLogoImage;
+ iLogoImage = NULL;
+ delete iLogoImageMask;
+ iLogoImageMask = NULL;
+
+ if ( iIdle && !iIdle->IsActive() )
+ {
+ // start decoding the icon
+ iIdle->Start( TCallBack( HandleAsyncIconString, this ) );
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmWidgetData::ReplaceContentInfoL
+// ---------------------------------------------------------
+//
+TBool CWmWidgetData::ReplaceContentInfoL(
+ CHsContentInfo* aHsContentInfo )
+ {
+ TBool sameAppearance = (
+ iHsContentInfo->Name() == aHsContentInfo->Name() &&
+ iHsContentInfo->Description() == aHsContentInfo->Description() &&
+ iHsContentInfo->CanBeAdded() == aHsContentInfo->CanBeAdded() );
+ TBool sameLogo = (
+ iHsContentInfo->IconPath() == aHsContentInfo->IconPath() );
+
+ // delete the old content info
+ delete iHsContentInfo;
+ iHsContentInfo = NULL;
+
+ // re-init the object
+ InitL( aHsContentInfo, NULL );
+
+ if ( !sameAppearance )
+ {
+ // fire change event -> widget redrawn
+ FireDataChanged();
+ }
+
+ if ( !sameLogo )
+ {
+ // re-convert image
+ // change event will be fired later when bitmap is ready
+ ReCreateLogo( iLogoSize );
+ }
+
+ return !( sameAppearance && sameLogo );
+ }
+// End of file
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/src/wmwidgetloaderao.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,271 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Active object to load widgets into list
+*
+*/
+
+// INCLUDE FILES
+#include "wmcommon.h"
+#include "wmplugin.h"
+#include "wmresourceloader.h"
+#include "wmpersistentwidgetorder.h"
+#include "wmlistbox.h"
+#include "wmwidgetloaderao.h"
+
+#include <hscontentcontroller.h> // content control api
+#include <hscontentinfoarray.h> // content control api
+#include <widgetregistryclient.h> // widget reqistry
+#include <avkon.rsg> // avkon resources
+#include <barsread.h> // TResourceReader
+
+// ---------------------------------------------------------------------------
+// CWmWidgetLoaderAo::NewL
+// ---------------------------------------------------------------------------
+//
+CWmWidgetLoaderAo* CWmWidgetLoaderAo::NewL(
+ CWmPlugin& aWmPlugin,
+ CWmListBox& aTargetList )
+ {
+ CWmWidgetLoaderAo* self = new (ELeave) CWmWidgetLoaderAo(
+ aWmPlugin, aTargetList );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// CWmWidgetLoaderAo::NewL
+// ---------------------------------------------------------------------------
+//
+CWmWidgetLoaderAo::CWmWidgetLoaderAo(
+ CWmPlugin& aWmPlugin,
+ CWmListBox& aTargetList )
+ : CAsyncOneShot( EPriorityStandard )
+ , iWmPlugin( aWmPlugin )
+ , iWidgetsList( aTargetList )
+ {
+ iWidgetRegistry = NULL;
+ iWidgetOrder = NULL;
+ }
+
+// ---------------------------------------------------------------------------
+// CWmWidgetLoaderAo::ConstructL
+// ---------------------------------------------------------------------------
+//
+void CWmWidgetLoaderAo::ConstructL()
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// CWmWidgetLoaderAo::~CWmWidgetLoaderAo
+// ---------------------------------------------------------------------------
+//
+CWmWidgetLoaderAo::~CWmWidgetLoaderAo()
+ {
+ // cancel ongoing operation
+ Cancel();
+
+ // cleanup run data
+ Cleanup();
+
+ }
+
+// ---------------------------------------------------------------------------
+// CWmWidgetLoaderAo::StartLoading
+// ---------------------------------------------------------------------------
+//
+void CWmWidgetLoaderAo::StartLoading()
+ {
+ if ( IsActive() )
+ {
+ // cancel ongoing process
+ Cancel();
+ }
+ Call();
+ }
+
+// ---------------------------------------------------------------------------
+// CWmWidgetLoaderAo::RunL
+// ---------------------------------------------------------------------------
+//
+void CWmWidgetLoaderAo::RunL()
+ {
+ DoLoadWidgetsL();
+ Cleanup();
+ }
+
+// ---------------------------------------------------------------------------
+// CWmWidgetLoaderAo::RunError
+// ---------------------------------------------------------------------------
+//
+TInt CWmWidgetLoaderAo::RunError( TInt /*aError*/ )
+ {
+ Cleanup();
+ return KErrNone;
+ }
+
+// ---------------------------------------------------------
+// CWmWidgetLoaderAo::DoLoadWidgetsL
+// ---------------------------------------------------------
+//
+void CWmWidgetLoaderAo::DoLoadWidgetsL()
+ {
+ // 1. mark all the existing widgets initially non-valid
+ for( TInt i=0; i<iWidgetsList.WidgetDataCount(); ++i )
+ iWidgetsList.WidgetData(i).SetValid( EFalse );
+
+ // 2. load the widgets array
+ MHsContentController& controller = iWmPlugin.ContentController();
+ CHsContentInfoArray* contentInfoArray = CHsContentInfoArray::NewL();
+ CleanupStack::PushL( contentInfoArray );
+ controller.WidgetListL( *contentInfoArray );
+
+ // 3. load the widget order
+ iWidgetOrder = CWmPersistentWidgetOrder::NewL( iWmPlugin.FileServer() );
+ TRAPD( loadError, iWidgetOrder->LoadL() );
+
+ // 4. loop through the content array and compare it against the existing
+ // widget data.
+ TInt widgetsAdded = 0;
+ TInt widgetsChanged = 0;
+ while( contentInfoArray->Array().Count() > 0 )
+ {
+ CHsContentInfo* contentInfo = contentInfoArray->Array()[0];
+ contentInfoArray->Array().Remove( 0 );
+
+ // check if this widget exists.
+ // if it does, keep the existing one
+ // if it does not, add it
+ CWmWidgetData* existingData = FindWidgetData( *contentInfo );
+ if ( existingData )
+ {
+ // update existing widget data
+ existingData->SetValid( ETrue );
+ if ( existingData->ReplaceContentInfoL( contentInfo ) )
+ {
+ ++widgetsChanged;
+ }
+ }
+ else
+ {
+ // add a new widget data
+ AddWidgetDataL( contentInfo );
+ ++widgetsAdded;
+ }
+ }
+
+ // 5: finally, remove all UI widgets that during the loading process were
+ // NOT marked as VALID. those widgets do not exist anymore.
+ TInt widgetsRemoved = 0;
+ for( TInt i=0; i<iWidgetsList.WidgetDataCount(); i++ )
+ {
+ if( !iWidgetsList.WidgetData(i).IsValid() )
+ {
+ iWidgetsList.RemoveWidgetData( i );
+ ++widgetsRemoved;
+ }
+ }
+ if ( widgetsRemoved > 0 )
+ {
+ iWidgetsList.DrawDeferred();
+ }
+
+ // 6: cleanup
+ CleanupStack::PopAndDestroy( contentInfoArray );
+
+ // 7. check list empty condition
+ if ( iWidgetsList.WidgetDataCount() == 0 )
+ {
+ TResourceReader rr;
+ CEikonEnv::Static()->CreateResourceReaderLC(
+ rr, R_AVKON_LISTBOX_DEFAULT_EMPTY_TEXT );
+ TPtrC empty= rr.ReadTPtrC();
+ iWidgetsList.View()->SetListEmptyTextL( empty );
+ CleanupStack::PopAndDestroy();
+ iWidgetsList.DrawDeferred();
+ }
+
+ // 8. store list order if necessary
+ if ( loadError != KErrNone || widgetsAdded > 0 || widgetsRemoved > 0 )
+ {
+ iWidgetOrder->StoreL( iWidgetsList.WidgetDataArray() );
+ }
+
+ }
+
+// ---------------------------------------------------------
+// CWmWidgetLoaderAo::FindWidgetDataL
+// ---------------------------------------------------------
+//
+CWmWidgetData* CWmWidgetLoaderAo::FindWidgetData(
+ CHsContentInfo& aContentInfo )
+ {
+ CWmWidgetData* data = NULL;
+ for( TInt i=0; i<iWidgetsList.WidgetDataCount() && !data; ++i )
+ {
+ if ( iWidgetsList.WidgetData(i).EqualsTo( aContentInfo ) )
+ {
+ data = &iWidgetsList.WidgetData(i);
+ }
+ }
+ return data;
+ }
+
+// ---------------------------------------------------------
+// CWmWidgetLoaderAo::AddWidgetDataL
+// ---------------------------------------------------------
+//
+void CWmWidgetLoaderAo::AddWidgetDataL(
+ CHsContentInfo* aContentInfo )
+ {
+ CleanupStack::PushL( aContentInfo );
+ if ( !iWidgetRegistry )
+ {
+ iWidgetRegistry = new (ELeave) RWidgetRegistryClientSession();
+ User::LeaveIfError( iWidgetRegistry->Connect() );
+ }
+ CleanupStack::Pop( aContentInfo );
+
+ CWmWidgetData* widgetData = CWmWidgetData::NewLC(
+ aContentInfo, iWidgetRegistry );
+ widgetData->SetPersistentWidgetOrder( iWidgetOrder );
+ widgetData->SetValid( ETrue );
+ iWidgetsList.AddWidgetDataL( widgetData );
+ CleanupStack::Pop( widgetData );
+ }
+
+// ---------------------------------------------------------------------------
+// CWmWidgetLoaderAo::Cleanup
+// ---------------------------------------------------------------------------
+//
+void CWmWidgetLoaderAo::Cleanup()
+ {
+ // disconnect widget registry
+ if ( iWidgetRegistry )
+ {
+ iWidgetRegistry->Disconnect();
+ iWidgetRegistry->Close();
+ delete iWidgetRegistry;
+ iWidgetRegistry = NULL;
+ }
+
+ // delete widget order
+ delete iWidgetOrder;
+ iWidgetOrder = NULL;
+ }
+
+// end of file
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/bwins/wmunittestu.def Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,3 @@
+EXPORTS
+ ?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * LibEntryL(class CTestModuleIf &)
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/conf/ui_wmunittest.cfg Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,909 @@
+//-------------------------------------------------------------------------------
+// constants
+//-------------------------------------------------------------------------------
+//
+[Define]
+
+TRUE 1
+FALSE 0
+
+OK 0
+FAIL -1
+
+MAX_WIDGET_AMOUNT 1000 // non-functional requirement
+
+NAME 100
+DESCRIPTION 101
+LOGO_PATH 102
+CAN_BE_ADDED 103
+CAN_BE_REMOVED 104
+
+EUnrecognized 0
+EUidIcon 1
+ESvgIcon 2
+ESkinIcon 3
+EMifIcon 4
+ESkinAndMifIcon 5
+EImageIcon 6
+
+[Enddefine]
+
+//-------------------------------------------------------------------------------
+// Test cases for the plugin
+//-------------------------------------------------------------------------------
+//
+
+
+// Tests WmPlugin construction
+[Test]
+title WmPlugin create/delete
+create wmunittest test
+test HeapSet
+test PluginCreate
+pause 500
+test PluginDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Heap usage logging
+[Test]
+title WmPlugin memcon test
+create wmunittest test
+test HeapSet
+test LogHeap "before wm"
+test PluginCreate
+test LogHeap "wm Active"
+//
+test SetMass 10
+test PluginActivate
+pause 500
+test LogHeap "10 widgets"
+//
+test SetMass 20
+test PluginWidgetsChanged
+pause 250
+test LogHeap "20 widgets"
+//
+test SetMass 30
+test PluginWidgetsChanged
+pause 250
+test LogHeap "30 widgets"
+//
+test SetMass 40
+test PluginWidgetsChanged
+pause 250
+test LogHeap "40 widgets"
+//
+test SetMass 50
+test PluginWidgetsChanged
+pause 250
+test LogHeap "50 widgets"
+//
+test SetMass 60
+test PluginWidgetsChanged
+pause 250
+test LogHeap "60 widgets"
+//
+test SetMass 70
+test PluginWidgetsChanged
+pause 250
+test LogHeap "70 widgets"
+//
+test SetMass 80
+test PluginWidgetsChanged
+pause 250
+test LogHeap "80 widgets"
+//
+test SetMass 90
+test PluginWidgetsChanged
+pause 250
+test LogHeap "90 widgets"
+//
+test SetMass 100
+test PluginWidgetsChanged
+pause 250
+test LogHeap "100 widgets"
+//
+test SetMass 200
+test PluginWidgetsChanged
+pause 250
+test LogHeap "200 widgets"
+//
+test SetMass 300
+test PluginWidgetsChanged
+pause 250
+test LogHeap "300 widgets"
+//
+test SetMass 400
+test PluginWidgetsChanged
+pause 250
+test LogHeap "400 widgets"
+//
+test SetMass 500
+test PluginWidgetsChanged
+pause 250
+test LogHeap "500 widgets"
+//
+test PluginDeactivate
+pause 250
+test LogHeap "wm deactive"
+//
+test PluginDeactivate
+pause 500
+test PluginDelete
+test HeapCheck
+test LogHeap "after wm"
+delete test
+[Endtest]
+
+// Tests WmPlugin Activate method
+[Test]
+title WmPlugin activate/deactivate
+create wmunittest test
+test HeapSet
+test PluginCreate
+test SetMass 10
+test PluginActivate
+pause 500
+test PluginDeactivate
+pause 500
+test PluginDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests WmPlugin NotifyWidgetListChanged 10->10 wigets
+[Test]
+title WmPlugin notify 10->10
+create wmunittest test
+test HeapSet
+test PluginCreate
+test SetMass 10
+test PluginActivate
+pause 500
+test SetMass 10
+test PluginWidgetsChanged
+pause 500
+test PluginDeactivate
+pause 500
+test PluginDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests WmPlugin NotifyWidgetListChanged 10->11 widgets
+[Test]
+title WmPlugin notify 10->11
+create wmunittest test
+test HeapSet
+test PluginCreate
+test SetMass 10
+test PluginActivate
+pause 500
+test SetMass 11
+test PluginWidgetsChanged
+pause 500
+test PluginDeactivate
+pause 500
+test PluginDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests WmPlugin NotifyWidgetListChanged 10->9 widgets
+[Test]
+title WmPlugin notify 10->9
+create wmunittest test
+test HeapSet
+test PluginCreate
+test SetMass 10
+test PluginActivate
+pause 500
+test SetMass 9
+test PluginWidgetsChanged
+pause 500
+test PluginDeactivate
+pause 500
+test PluginDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests WmPlugin NotifyWidgetListChanged 0->10 widgets
+[Test]
+title WmPlugin notify 0->10
+create wmunittest test
+test HeapSet
+test PluginCreate
+test SetMass 0
+test PluginActivate
+pause 500
+test SetMass 10
+test PluginWidgetsChanged
+pause 500
+test PluginDeactivate
+pause 500
+test PluginDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests WmPlugin NotifyWidgetListChanged 10->0 widgets
+[Test]
+title WmPlugin notify 10->0
+create wmunittest test
+test HeapSet
+test PluginCreate
+test SetMass 10
+test PluginActivate
+pause 500
+test SetMass 0
+test PluginWidgetsChanged
+pause 500
+test PluginDeactivate
+pause 500
+test PluginDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests WmPlugin NotifyWidgetListChanged with ridiculous amount of widgets
+// testing the OOM error handling
+[Test]
+title WmPlugin notify OOM
+create wmunittest test
+test HeapSet
+test PluginCreate
+test SetMass 10
+test PluginActivate
+pause 500
+test SetMass 10000
+test PluginWidgetsChanged
+pause 500
+test PluginDeactivate
+pause 500
+test PluginDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests WmPlugin with large data amount
+[Test]
+title WmPlugin capacity
+create wmunittest test
+test HeapSet
+test PluginCreate
+test SetMass MAX_WIDGET_AMOUNT
+test PluginActivate
+pause 3000
+test PluginDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests WmPlugin by notifying widget list changed hundreds of times
+// with different widget amounts and different timeouts. Target is to
+// interrupt the previous update process test that it is cancelled ok
+[Test]
+title WmPlugin robustness
+create wmunittest test
+test HeapSet
+test PluginCreate
+test SetMass 5
+test PluginActivate
+pause 500
+loop 100
+test SetMass 10
+test PluginWidgetsChanged
+pause 10
+test SetMass 15
+test PluginWidgetsChanged
+pause 90
+test SetMass 11
+test PluginWidgetsChanged
+pause 50
+test SetMass 16
+test PluginWidgetsChanged
+pause 120
+endloop
+test PluginDeactivate
+pause 500
+test PluginDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests WmPlugin by notifying widget list changed hundreds of times
+// with no change in the widget list at all -> there should be no
+// unnecessary drawing in widget manager UI at all
+[Test]
+title WmPlugin robustness 2
+create wmunittest test
+test HeapSet
+test PluginCreate
+test SetMass 5
+test PluginActivate
+pause 500
+loop 100
+test SetMass 10
+test PluginWidgetsChanged
+endloop
+pause 500
+test PluginDeactivate
+pause 500
+test PluginDelete
+test HeapCheck
+delete test
+[Endtest]
+
+
+//-------------------------------------------------------------------------------
+// Test cases for notifications where widget data changes
+//-------------------------------------------------------------------------------
+//
+
+// Tests WmPlugin Notify one widget name changes
+[Test]
+title WmPlugin change name
+create wmunittest test
+test HeapSet
+test PluginCreate
+test SetMass 5
+test PluginActivate
+pause 1000
+test ChangeContent 1 NAME "New widget name!"
+test PluginWidgetsChanged
+pause 1000
+test ChangeContent 1 NAME "Name changes again!"
+test PluginWidgetsChanged
+pause 1000
+test PluginDeactivate
+pause 500
+test PluginDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests WmPlugin Notify one widget descr. changes
+[Test]
+title WmPlugin change description
+create wmunittest test
+test HeapSet
+test PluginCreate
+test SetMass 5
+test PluginActivate
+pause 1000
+test ChangeContent 1 DESCRIPTION "New description!"
+test PluginWidgetsChanged
+pause 1000
+test ChangeContent 1 DESCRIPTION "Description changes again!"
+test PluginWidgetsChanged
+pause 1000
+test PluginDeactivate
+pause 500
+test PluginDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests WmPlugin Notify one widget logo changes
+[Test]
+title WmPlugin change logo
+create wmunittest test
+test HeapSet
+test PluginCreate
+test SetMass 5
+test PluginActivate
+pause 1000
+test ChangeContent 1 LOGO_PATH "uid(0x10005901)"
+test PluginWidgetsChanged
+pause 1000
+test ChangeContent 1 LOGO_PATH "c:\testframework\wmunittest\wmlogo\logo.svg"
+test PluginWidgetsChanged
+pause 1000
+test PluginDeactivate
+pause 500
+test PluginDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests WmPlugin Notify CanbeAdded values change
+[Test]
+title WmPlugin change plus-sign
+create wmunittest test
+test HeapSet
+test PluginCreate
+test SetMass 5
+test PluginActivate
+pause 1000
+test ChangeContent 1 CAN_BE_ADDED "0"
+test PluginWidgetsChanged
+pause 1000
+test ChangeContent 1 CAN_BE_ADDED "1"
+test PluginWidgetsChanged
+pause 1000
+test PluginDeactivate
+pause 500
+test PluginDelete
+test HeapCheck
+delete test
+[Endtest]
+
+
+
+//-------------------------------------------------------------------------------
+// Test cases for the persistent widget order
+//-------------------------------------------------------------------------------
+//
+
+// Tests persistent widget order NewL method
+[Test]
+title Widget order create
+create wmunittest test
+test HeapSet
+test WidgetOrderCreate
+test WidgetOrderCheckIsEmpty TRUE
+test WidgetOrderDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Test persistent widget order STORE method
+[Test]
+title Widget order store
+create wmunittest test
+test HeapSet
+test WidgetOrderCreate
+test SetMass 5
+test WidgetOrderSave
+test WidgetOrderDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Test persistent widget order STORE method when storing an empty array
+[Test]
+title Widget order store empty
+create wmunittest test
+test HeapSet
+test WidgetOrderCreate
+test SetMass 0
+test WidgetOrderSave
+test WidgetOrderDelete
+test HeapCheck
+delete test
+[Endtest]
+
+
+// Tests persistent widget order LOAD method
+[Test]
+title Widget order load
+create wmunittest test
+test HeapSet
+test WidgetOrderCreate
+test SetMass 5
+test WidgetOrderSave
+test WidgetOrderDelete
+test WidgetOrderCreate
+test WidgetOrderLoad
+test WidgetOrderCheckIsEmpty FALSE
+test WidgetOrderDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests persistent widget order LOAD method when count is ZERO
+[Test]
+title Widget order load empty
+create wmunittest test
+test HeapSet
+test WidgetOrderCreate
+test SetMass 0
+test WidgetOrderSave
+test WidgetOrderDelete
+test WidgetOrderCreate
+test WidgetOrderLoad
+test WidgetOrderCheckIsEmpty TRUE
+test WidgetOrderDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests persistent widget order INDEXOF method
+[Test]
+title Widget order use
+create wmunittest test
+test HeapSet
+test WidgetOrderCreate
+test SetMass 8
+test WidgetOrderSave
+test WidgetOrderDelete
+test WidgetOrderCreate
+test WidgetOrderLoad
+test WidgetOrderCheckIsEmpty FALSE
+test SetMass 7
+test WidgetOrderUse
+test WidgetOrderDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests persistent widget order INDEXOF method when class is empty
+[Test]
+title Widget order use empty
+create wmunittest test
+test HeapSet
+test WidgetOrderCreate
+test SetMass 0
+test WidgetOrderSave
+test WidgetOrderDelete
+test WidgetOrderCreate
+test WidgetOrderLoad
+test WidgetOrderCheckIsEmpty TRUE
+test SetMass 18
+test WidgetOrderUse
+test WidgetOrderDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests persistent widget order with large data amount
+[Test]
+title Widget order capacity
+create wmunittest test
+test HeapSet
+test WidgetOrderCreate
+test SetMass MAX_WIDGET_AMOUNT
+test WidgetOrderSave
+test WidgetOrderDelete
+test WidgetOrderCreate
+test WidgetOrderLoad
+test SetMass MAX_WIDGET_AMOUNT
+test WidgetOrderUse
+test WidgetOrderDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests persistent widget order save & load 100 times in sequence
+[Test]
+title Widget order robustness
+create wmunittest test
+test HeapSet
+test WidgetOrderCreate
+test SetMass 100
+loop 100
+test WidgetOrderSave
+endloop
+test WidgetOrderDelete
+test WidgetOrderCreate
+test SetMass 100
+loop 100
+test WidgetOrderLoad
+endloop
+test WidgetOrderUse
+test WidgetOrderDelete
+test HeapCheck
+delete test
+[Endtest]
+
+
+//-------------------------------------------------------------------------------
+// Test cases for the image converter
+//-------------------------------------------------------------------------------
+//
+
+// Tests image converter NewL method
+[Test]
+title Image converter create delete
+create wmunittest test
+test HeapSet
+test ImageConverterCreate
+test ImageConverterConversionMethod EUnrecognized
+test ImageConverterDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests malformed icon string
+[Test]
+title malformed image formats
+create wmunittest test
+test HeapSet
+test ImageConverterCreate
+test ImageConverterConvert "foo bar"
+test ImageConverterWaitResult FAIL
+test ImageConverterConvert "*************"
+test ImageConverterWaitResult FAIL
+test ImageConverterConvert "uid skin mif logo icon jpg jpeg icon"
+test ImageConverterWaitResult FAIL
+test ImageConverterConvert "girl.jpg"
+test ImageConverterWaitResult FAIL
+test ImageConverterConvert "dirty_hack.exe"
+test ImageConverterWaitResult FAIL
+test ImageConverterConvert "c:/testframework/wmunittest/wmlogo/logo.jpg"
+test ImageConverterWaitResult FAIL
+test ImageConverterConvert "skin (0x10005a26 0x1000 )"
+test ImageConverterWaitResult FAIL
+test ImageConverterConvert "mif ( c:\testframework\wmunittest\wmlogo\logo.mif 16384 16385)"
+test ImageConverterWaitResult FAIL
+test ImageConverterConvert "skin( 0x100056c6 0x86 ):mif ( c:\testframework\wmunittest\wmlogo\logo.mif 16384 16385 )"
+test ImageConverterWaitResult FAIL
+test ImageConverterConvert "skin ( 0x101f84b7 0x1000594D ) : mif ( c:\testframework\wmunittest\wmlogo\logo.mif 16384 16385 )"
+test ImageConverterWaitResult FAIL
+test ImageConverterConvert " uid(0x10005901 )"
+test ImageConverterWaitResult FAIL
+test ImageConverterConvert "uid (268458241 )"
+test ImageConverterWaitResult FAIL
+test ImageConverterConvert "uid (0x10005901)"
+test ImageConverterWaitResult FAIL
+test ImageConverterDelete
+test HeapCheck
+delete test
+[Endtest]
+
+
+// Tests image converter with skin syntax
+// this test will never pass on STIF because STIF AppUI does
+// not have EAknEnableSkin flag defined in its BaseConstructL
+// therefore commented out.
+/*
+[Test]
+title Image converter skin
+create wmunittest test
+test HeapSet
+test ImageConverterCreate
+test ImageConverterConvert "skin(0x101F86E3 0x100d)"
+test ImageConverterWaitResult OK
+test ImageConverterConversionMethod ESkinIcon
+test ImageConverterDelete
+test HeapCheck
+delete test
+[Endtest]
+*/
+
+// Tests image converter skin method with null skin item ids
+[Test]
+title Image converter skin (null)
+create wmunittest test
+test HeapSet
+test ImageConverterCreate
+test ImageConverterConvert "skin(0 0)"
+test ImageConverterWaitResult FAIL
+test ImageConverterDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests image converter with skin/mif syntax
+[Test]
+title Image converter skin/mif
+create wmunittest test
+test HeapSet
+test ImageConverterCreate
+test ImageConverterConvert "skin(270501603 4145):mif(c:\testframework\wmunittest\wmlogo\logo.mif 16384 16385)"
+test ImageConverterWaitResult OK
+test ImageConverterConversionMethod ESkinAndMifIcon
+test ImageConverterDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests image converter mif method
+[Test]
+title Image converter mif
+create wmunittest test
+test HeapSet
+test ImageConverterCreate
+test ImageConverterConvert "mif(c:\testframework\wmunittest\wmlogo\logo.mif 16384 16385)"
+test ImageConverterWaitResult OK
+test ImageConverterConversionMethod EMifIcon
+test ImageConverterDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests image converter mif method with invalid path
+[Test]
+title Image converter mif (invalid path)
+create wmunittest test
+test HeapSet
+test ImageConverterCreate
+test ImageConverterConvert "mif(c:\blabla.mif 16384 16385)"
+test ImageConverterWaitResult FAIL
+test ImageConverterDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests image converter mif method with invalid bitmap & mask ids
+[Test]
+title Image converter mif (invalid ids)
+create wmunittest test
+test HeapSet
+test ImageConverterCreate
+test ImageConverterConvert "mif(c:\testframework\wmunittest\wmlogo\logo.mif 1 2)"
+test ImageConverterWaitResult FAIL
+test ImageConverterDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests image converter uid method
+[Test]
+title Image converter uid
+create wmunittest test
+test HeapSet
+test ImageConverterCreate
+test ImageConverterConvert "uid(0x10005901)"
+test ImageConverterWaitResult OK
+test ImageConverterConversionMethod EUidIcon
+test ImageConverterDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests image converter uid method with null uid
+[Test]
+title Image converter uid (null)
+create wmunittest test
+test HeapSet
+test ImageConverterCreate
+test ImageConverterConvert "uid(0x0)"
+test ImageConverterWaitResult FAIL
+test ImageConverterDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests image converter uid method with wrt widget uid.
+[Test]
+title Image converter wrt widget
+create wmunittest test
+test HeapSet
+test InstallWrtWidget "c:\testframework\wmunittest\wmlogo\test.wgz"
+test ImageConverterCreate
+test ImageConverterConvert "uid(0x2000DAD2)"
+test ImageConverterWaitResult OK
+test ImageConverterConversionMethod EUidIcon
+test ImageConverterDelete
+test UninstallWrtWidget "0x2000DAD2"
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests image converter svg method
+[Test]
+title Image converter svg
+create wmunittest test
+test HeapSet
+test ImageConverterCreate
+test ImageConverterConvert "c:\testframework\wmunittest\wmlogo\logo.svg"
+test ImageConverterWaitResult OK
+test ImageConverterConversionMethod ESvgIcon
+test ImageConverterDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests image converter svg method corrupt file.
+[Test]
+title Image converter svg (corrupted)
+create wmunittest test
+test HeapSet
+test ImageConverterCreate
+test ImageConverterConvert "c:\testframework\wmunittest\wmlogo\logocorrupt.svg"
+test ImageConverterWaitResult FAIL
+test ImageConverterConversionMethod ESvgIcon
+test ImageConverterDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests image converter png method
+[Test]
+title Image converter png
+create wmunittest test
+test HeapSet
+test ImageConverterCreate
+test ImageConverterConvert "c:\testframework\wmunittest\wmlogo\logo.png"
+test ImageConverterWaitResult OK
+test ImageConverterConversionMethod EImageIcon
+test ImageConverterDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests image converter png method corrupt file.
+[Test]
+title Image converter png (corrupted)
+create wmunittest test
+test HeapSet
+test ImageConverterCreate
+test ImageConverterConvert "c:\testframework\wmunittest\wmlogo\logocorrupt.png"
+test ImageConverterWaitResult FAIL
+test ImageConverterDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests image converter jpeg method
+[Test]
+title Image converter jpeg
+create wmunittest test
+test HeapSet
+test ImageConverterCreate
+test ImageConverterConvert "c:\testframework\wmunittest\wmlogo\logo.jpg"
+test ImageConverterWaitResult OK
+test ImageConverterConversionMethod EImageIcon
+test ImageConverterDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests image converter jpeg method
+[Test]
+title Image converter jpeg (corrupted)
+create wmunittest test
+test HeapSet
+test ImageConverterCreate
+test ImageConverterConvert "c:\testframework\wmunittest\wmlogo\logocorrupt.jpg"
+test ImageConverterWaitResult FAIL
+test ImageConverterDelete
+test HeapCheck
+delete test
+[Endtest]
+
+// Tests image converter cancel
+[Test]
+title Image converter cancel
+create wmunittest test
+test HeapSet
+test ImageConverterCreate
+test ImageConverterConvert "c:\testframework\wmunittest\wmlogo\logo.svg"
+test CancelConvert
+test ImageConverterWaitResult FAIL
+test ImageConverterDelete
+test HeapCheck
+delete test
+[Endtest]
+
+
+//-------------------------------------------------------------------------------
+// Misc Test cases
+//-------------------------------------------------------------------------------
+//
+
+// Tests error note
+[Test]
+title Other error note
+create wmunittest test
+test HeapSet
+test PluginCreate
+test PluginActivate
+test ErrorPopup
+pause 3000
+test PluginDelete
+test HeapCheck
+delete test
+[Endtest]
+
+/*
+// Test for heikki to play :)
+[Test]
+title WmPlugin 1h test
+create wmunittest test
+test HeapSet
+test PluginCreate
+test SetMass 500
+test PluginActivate
+pause 3600000
+test PluginDelete
+test HeapCheck
+delete test
+[Endtest]
+*/
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/conf/wmunittest.bat Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,19 @@
+rem /*
+rem * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+rem * All rights reserved.
+rem * This component and the accompanying materials are made available
+rem * under the terms of "Eclipse Public License v1.0"
+rem * which accompanies this distribution, and is available
+rem * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+rem *
+rem * Initial Contributors:
+rem * Nokia Corporation - initial contribution.
+rem *
+rem * Contributors:
+rem *
+rem * Description:
+rem *
+rem */
+
+ATSInterface.exe -testmodule TestScripter -config c:\testframework\ui_wmunittest.cfg
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/conf/wmunittest.ini Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,188 @@
+#
+# This is STIF initialization file
+# Comment lines start with '#'-character.
+# See STIF TestFramework users guide.doc for instructions
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set following test engine settings:
+# - Set Test Reporting mode. TestReportMode's possible values are:
+# + 'Summary': Summary of the tested test cases.
+# + 'Environment': Hardware and software info.
+# + 'TestCases': Test case report.
+# + 'FullReport': Set of all above ones.
+# + Example 'TestReportMode= Summary TestCases'
+#
+# - CreateTestReport setting controls report creation mode
+# + YES, Test report will created.
+# + NO, No Test report.
+#
+# - File path indicates the base path of the test report.
+# - File name indicates the name of the test report.
+#
+# - File format indicates the type of the test report.
+# + TXT, Test report file will be txt type, for example 'TestReport.txt'.
+# + HTML, Test report will be html type, for example 'TestReport.html'.
+# + XML, Test report will be xml type, for example 'TestReport.xml'.
+# Note, that xml format is available only when output is set to FILE.
+#
+# - File output indicates output source of the test report.
+# + FILE, Test report logging to file.
+# + RDEBUG, Test report logging to using rdebug.
+#
+# - File Creation Mode indicates test report overwriting if file exist.
+# + OVERWRITE, Overwrites if the Test report file exist.
+# + APPEND, Continue logging after the old Test report information if
+# report exist.
+# - Sets a device reset module's dll name(Reboot).
+# + If Nokia specific reset module is not available or it is not correct one
+# StifHWResetStub module may use as a template for user specific reset
+# module.
+# - Sets STIF test measurement disable options. e.g. pluging1 and pluging2 disablation
+# DisableMeasurement= stifmeasurementplugin01 stifmeasurementplugin02
+#
+
+[Engine_Defaults]
+
+TestReportMode= FullReport # Possible values are: 'Empty', 'Summary', 'Environment',
+ # 'TestCases' or 'FullReport'
+
+CreateTestReport= YES # Possible values: YES or NO
+
+TestReportFilePath= C:\LOGS\TestFramework\
+TestReportFileName= WidgetManager
+
+TestReportFormat= TXT # Possible values: TXT, HTML or XML
+TestReportOutput= FILE # Possible values: FILE or RDEBUG
+TestReportFileCreationMode= OVERWRITE # Possible values: OVERWRITE or APPEND
+
+DeviceResetDllName= StifResetForNokia.dll # e.g. 'StifHWResetStub.dll' for user specific reseting
+
+DisableMeasurement= stifmeasurementdisablenone # Possible values are:
+ # 'stifmeasurementdisablenone', 'stifmeasurementdisableall'
+ # 'stifmeasurementplugin01', 'stifmeasurementplugin02',
+ # 'stifmeasurementplugin03', 'stifmeasurementplugin04',
+ # 'stifmeasurementplugin05' or 'stifbappeaprofiler'
+
+Timeout= 0 # Default timeout value for each test case. In milliseconds
+UITestingSupport= YES # Possible values: YES or NO
+#SeparateProcesses= YES # Possible values: YES or NO (default: NO)
+[End_Defaults]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+# Widget manager unit tests
+[New_Module]
+ModuleName= testscripter
+TestCaseFile= c:\testframework\ui_wmunittest.cfg
+[End_Module]
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set STIF logging overwrite parameters for Logger.
+# Hardware and emulator environment logging path and styles can
+# be configured from here to overwrite the Logger's implemented values.
+#
+# Settings description:
+# - Indicates option for creation log directory/directories. If log directory/directories
+# is/are not created by user they will make by software.
+# + YES, Create log directory/directories if not allready exist.
+# + NO, Log directory/directories not created. Only created one is used.
+#
+# - Overwrite emulator path setting.
+# + Example: If 'EmulatorBasePath= C:\LOGS\TestFramework\' and in code is defined
+# Logger's path 'D:\\LOGS\\Module\\' with those definition the path
+# will be 'C:\LOGS\TestFramework\LOGS\Module\'
+#
+# - Overwrite emulator's logging format.
+# + TXT, Log file(s) will be txt type(s), for example 'Module.txt'.
+# + HTML, Log file(s) will be html type(s), for example 'Module.html'.
+#
+# - Overwrited emulator logging output source.
+# + FILE, Logging to file(s).
+# + RDEBUG, Logging to using rdebug(s).
+#
+# - Overwrite hardware path setting (Same description as above in emulator path).
+# - Overwrite hardware's logging format(Same description as above in emulator format).
+# - Overwrite hardware's logging output source(Same description as above in emulator output).
+#
+# - File Creation Mode indicates file overwriting if file exist.
+# + OVERWRITE, Overwrites if file(s) exist.
+# + APPEND, Continue logging after the old logging information if file(s) exist.
+#
+# - Will thread id include to the log filename.
+# + YES, Thread id to log file(s) name, Example filename 'Module_b9.txt'.
+# + NO, No thread id to log file(s), Example filename 'Module.txt'.
+#
+# - Will time stamps include the to log file.
+# + YES, Time stamp added to each line in log file(s). Time stamp is
+# for example'12.Nov.2003 115958 LOGGING INFO'
+# + NO, No time stamp(s).
+#
+# - Will line breaks include to the log file.
+# + YES, Each logging event includes line break and next log event is in own line.
+# + NO, No line break(s).
+#
+# - Will event ranking include to the log file.
+# + YES, Event ranking number added to each line in log file(s). Ranking number
+# depends on environment's tics, for example(includes time stamp also)
+# '012 12.Nov.2003 115958 LOGGING INFO'
+# + NO, No event ranking.
+#
+# - Will write log file in unicode format.
+# + YES, Log file will be written in unicode format
+# + NO, Log will be written as normal, not unicode, file.
+#
+
+[Logger_Defaults]
+
+#NOTE: If you want to set Logger using next setting(s) remove comment(s)'#'
+#NOTE: TestEngine and TestServer logging settings cannot change here
+
+#CreateLogDirectories= YES # Possible values: YES or NO
+
+#EmulatorBasePath= C:\LOGS\TestFramework\
+#EmulatorFormat= HTML # Possible values: TXT or HTML
+#EmulatorOutput= FILE # Possible values: FILE or RDEBUG
+
+#HardwareBasePath= D:\LOGS\TestFramework\
+#HardwareFormat= HTML # Possible values: TXT or HTML
+#HardwareOutput= FILE # Possible values: FILE or RDEBUG
+
+#FileCreationMode= OVERWRITE # Possible values: OVERWRITE or APPEND
+
+#ThreadIdToLogFile= YES # Possible values: YES or NO
+#WithTimeStamp= YES # Possible values: YES or NO
+#WithLineBreak= YES # Possible values: YES or NO
+#WithEventRanking= YES # Possible values: YES or NO
+
+#FileUnicode= YES # Possible values: YES or NO
+#AddTestCaseTitle= YES # Possible values: YES or NO
+[End_Logger_Defaults]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set filters to be used by ConsoleUI.
+# If you want to use filter with ConsoleUI, simply remove comments
+# from section below and provide valid filter entries.
+# Each filter line has to start with "filter= " keyword.
+# Filter can contain special wildcard characters:
+# * which stands for none or any literal;
+# ? which stands for single character.
+# Filters are not case-sensitive.
+
+#[Filters]
+#filter= *math*
+#filter= *radio*
+#[End_Filters]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+# End of file
Binary file idlehomescreen/widgetmanager/tsrc/wmunittest/data/wmlogo/logo.jpg has changed
Binary file idlehomescreen/widgetmanager/tsrc/wmunittest/data/wmlogo/logo.mif has changed
Binary file idlehomescreen/widgetmanager/tsrc/wmunittest/data/wmlogo/logo.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/data/wmlogo/logo.svg Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32px"
+ height="32px"
+ id="svg2466"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="drawing.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs2468">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 16 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="32 : 16 : 1"
+ inkscape:persp3d-origin="16 : 10.666667 : 1"
+ id="perspective2474" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="15.938205"
+ inkscape:cx="9.927765"
+ inkscape:cy="10.627086"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="1680"
+ inkscape:window-height="1031"
+ inkscape:window-x="0"
+ inkscape:window-y="0" />
+ <metadata
+ id="metadata2471">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <image
+ y="5.765738"
+ x="-0.030936712"
+ id="image2462"
+ height="18.19879"
+ width="31.139833"
+ sodipodi:absref="Y:\HS_Domain\homescreen\idlehomescreen\data\qhd_tch\shortcut2_2001f484\gfx\shortcut2logo.png"
+ xlink:href="Y:\HS_Domain\homescreen\idlehomescreen\data\qhd_tch\shortcut2_2001f484\gfx\shortcut2logo.png"
+ transform="matrix(1,0,2.5955691e-2,0.9996631,0,0)" />
+ </g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/data/wmlogo/logocorrupt.jpg Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,13 @@
+ÿØÿà JFIF ` ` ÿá 6Exif II* & ÓJûZP `NƒÜà:÷¬Çy¥êmC%´™0»¦Až™ÿ
+Ö~í5;ܬz ê9áÕ¢s7‘(dUó =‡ç]_„.ßû%P·Íå9è3Ÿçšãå̧˜ã_dPµÓh
+öúlŒ8,2>¼š¬
W9µÒÇ>MÉ®‡©£‡\te?~jµ£±Až»ùTÛz–;Ç桹ÿ YÜoåI,éfI]Q,Xà
+ÁºñŽ‹Œ³)\œ{óúSå¹*5*| ³€ÿ Åi ÿ lÿ #^ÂÊ®¥YCØŒ×Û8o@Àä$_”×±î>ÕRèzYº|ÔÓþTr>)ð½ï—- k¶$
¼vïíÏ~•o—@†G¸¸GšlnU^èO^ž‚¶`ŸÍlŒ1ùqÙsÇçÖ±5MrãOÕ
+©ÝS·@eV´iCšnÈ󥋩
+Å¿u»9RA
øb0n{JʲÖí¯ áû¬Z–(¬ ðW÷ü:þtá(N<ÑwF ¦®‹µ“oþ¿ë£ÿ èF´÷j˶?ºoúèÿ úª%²8šëýõÿ ÐV1ùOÒªZ®ºÿ |è+VIùOÒ“(äƒíàqÞž»$ª:Ÿ_jÆâÎJ 8Ïsì)q¿ | }Õ|&)V“}ÙïÒàØ[ûh¯@$luåYN>¹þµL®¬WÉ7Q„Æß0/ͯ¯¾*Ï›ÏZ<ßzÅN]KöHd[(hN'ù‡’ÙëŸPjÔW[ò¬6È¿yAæûÔRøem²/Ýoè}©7}ÇÉm8ß2 Ïñ
+ë³\•Ï™rˆÃlŠÃrÿ Qí]Îkë2%l;õ<ŒrµEè?5ƒâÛ&¾ÐäŒÈŸ2qÎ? üko4Ž¡Õ‘€!†=ëÜ„œd¤·G£Ì¬Ï ³ÕRßP “r»¡nÙ»ÖãËægy
žÇšgŽ|#-Ô—Ö±—·–uQÊœòÇó¬« Ø ÜI; 9® ¥
+œ¸ªNÍèןsÉ)Sm=‡k+@’**¶ð¤¨ÆFøV3¸ee=ø5wZºO"8÷ìà…ï€5æZúnu%^Ñ·«ß±ÉR+›CHÔnàÛÜN¬e2 $‚;÷5»
+µÕÌVÊ7X)û¿ÅúgñÇq6LÍDg`ü*®IàôëþðûÛíÔvUÏ
+½qýIõÇ¥|þm”ÒXõ:i(Úí.çnœ§fö:ëxü‹xãã* ¯z—4Ê3[ž°®£!èÀƒ^ys—uqg7X‘ž2¬O?žGá^…\׊t‰.oí3Ä>eé¹{ƒú}³I««ÕÎBêi-ØÄrÍÉÿ ?L~5Òà ÅÂRrwfÉ$¬‚Š(¤0 àäQE sß„b½”ÜÙ9·º#QÃ{Üœ×-%¶½¤Ëó[HÀËKvëÿ 8?νB‚<ŠVËŽ»¬·ÈÔ3ÿ \óÅ,vºþ Ûm"ç%Ãçð“ü«Ó|ˆ³þ?ï‘O€)(¤+Ήá(ld[›Ç77XûÍÑ}€èùÉ®˜pµU(=h¢€
+ZJ(£#†í^gâ_ ^Ïpe°uhÙ‹laÈ$ó‚•é´P‹¥VtåÍfxí‡ÃmNæP·eb‹ø° $~#ç¥vñøO†Þ(à’[wU
+Z'eÝùù⺺(m½Ê«^¥gy»œå·ƒ4øfY§i.d^33`ÿ À‰ý+¡$ …QÐ
+u-B¥iþ¤ÿ ×Gÿ Ð]5J×ýIÿ ®ÿ ¡ R¯³Å MßyJîúõã—7xÿ _ýú?üUP¥ÿ Ïx¿ïÑÿ â¨ÿ Kÿ žñߣÿ ÅQE éóÞ/ûôøª_ô¿ùïýú?üUP¥ÿ Ïx¿ïÑÿ â©Òóþ¾/ûôøª( ý/þ{Åÿ ~ÿ Gú_ü÷‹þýþ*Š( ÿ Kÿ žñߣÿ ÅRfëþ{Eÿ ~ÿ E fëþ{Eÿ ~ÿ Gú_ü÷‹þýþ*Š(Òÿ ç¼_÷èÿ ñT™ºÿ žÑߣÿ ÅQE /ú_ü÷‹þýþ*ô¿ùïýú?üUPþ—ÿ =âÿ ¿Gÿ Š£ý/þ{Åÿ ~ÿ E ¥ÿ Ïx¿ïÑÿ â¨Íßü÷‹þýþ*Š( ÿ Kÿ žñߣÿ ÅRfëþ{Eÿ ~ÿ E fëþ{Eÿ ~ÿ Kþ—ÿ =âÿ ¿Gÿ Š¢Š ?Òÿ ç¼_÷èÿ ñT™ºÿ žÑߣÿ ÅQE éóÞ/ûôøª?Òÿ ç¼_÷èÿ ñTQ@ú_ü÷‹þýþ*ŒÝÏh¿ïÑÿ ⨢€ý/þ{Åÿ ~ÿ Gú_ü÷‹þýþ*Š( ÿ Kÿ žñߣÿ ÅRfëþ{Eÿ ~ÿ E ¿éóÞ/ûôøªLÝÏh¿ïÑÿ ⨢€Ý"9ü>j|_ºR‰ÎI'©<ÑE ÿÙ
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/data/wmlogo/logocorrupt.png Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,23 @@
+‰PNG
+
+
IHDR < W #n| sRGB ®Îé gAMA ±üa cHRM z& €„ ú €è u0 ê` :˜ pœºQ< ˜þIDATx^í½XÙº5œ{Ï=÷ž3÷ !4„@Ü=3™ÈÄ…@šœ¸»»1 ÁÝÝÝݦ•¦
—úWu‘’@&ÌÉÜïû¿çäYÙOu±»ºjïZû•ýîwÿ£–ÙÝÝý_ÿõ_~÷«¿ƒí³î·ú]â“øãûÛWéÕ âûü¸‘¿üý>/Ñ=°öÿVíÖßCôwýö{õÿc@ÍßS÷{ý¾ÏyȺ co ¹þsùH8ÿ÷¿ÿ½½¥õoûÛ z
£ª´eƒË®çÔ”×V•VrèlF-Dí#ÔÒë«Æ׃^þþÊTMz½O0ªB¿×¡Úá3ÔWÓúÁ€Ú‡N¯©ªiô¾À¨©ïý=×_Ýn½þ@ï³ßúmÏ~ê÷׿ë¬oq3’טCãÐËi´ÒZ’´u•4ðt-Ì)ÊHÎLKLÍËÌÍLÉ ‘šöR2Pa@ÈLÉtqTÎLêYÉYB×éiª5z!#9½´}>½r¿Øs>9=³/d¥dô‰~Ÿë¯n·^ ÷™‘˜Ñ'þ õ>ëÇöï·ºþ—¯“•šIÕð˜é éµeµõ•õ 0‚6¨¢¸’Ec—–ç•äg@[ndq™u»‘§áð9<1ÿw”>‹ß'lÁ7AO;PÑÚjÏñõíÓßú>/àð†oÔߤ1¿áEúë÷?ê—µöÿþÕÀ>¼f’ßÅG.[’[RœSý‚YÃT]Vá7dâ ¶¢®³¥‹è"Z…-Íü&á'hŠHšÿ¯(ÍÍ|Üjh´~ô´Õ½@¶@øúöùÂE¾ÙŸ¾M;|“Æü†é¿ßûï—oÖ¤áOù"‘ ©IØÜ,jÁÖÄ ¹"Aƒ°ª¸*7-b–$-D+ª>9.…Çæâ|ð»?Ò~Nã/Ÿiâ„^_Ô(56}Ž&x èï%è´ýžÿl˜ûƒöá‰Ð1_þ~·¿+ôÿ\}vj4TþV×ÿV×ùú–ürͶó·ú]Š´=¼å7á²x·ÁJh™ÐRÒV–TÅFĵ‰ÚÛ›::š;;[:ˆön[¢¦OÐŒA` ÐÅ›EŸ
+@I[Iö5âö</õÔÿ
+È~5š,&”Éч-€6ÒBØþŽ=í@Oz|öÙýgS&OÁfYؘçÎÕ;ÈüÒ>¹û9Í]<{k7aÌØÑÃG„…ææ”ddÑÒ¸‡/ú[Ú6ÕøL¦Ñé,ã3Ù&g3öƒPMÝ{¥lÿÍÚG²Õ7yŒšólÔ¼Ò+œÇ,v¾àý°ùï†Îw±È
oþ°E®?-tºÔkÈ!K‡,q²äýðÅ.£xŽ_à.3ïÜ‚»;Líò›SsjÒ2óã±O`µ]õ'ÝŠ}“–VZºâ]0¨7¾o`µR7ÔÖÖVÕ2bÓÊ☳W]Q]üxÒü7RœÆ.rµäýˆ¥ï‡-w¶ÒgÌÏžã—½Üx$ê]á˜Ýæ\ÐàZX÷.»Ä9¯Ü5¿Ö5ážÃqÏiðÈáxä0<rk=skÝ2k}òÙïRÊ|‹9~åB—€¸èÕ0nÅÓÑKíG-ñ¹ÈkäbÏ‘KÝF-u”]v¤ÍHà0Z$¤²°ï%ÞWÑŒ·–°Hç¬üþÞïOHÆbs—”¨¤Ô¨G[‡PïDê`É8H+lD
+Æ®&zs]Tmwð´£Å!h‰¦Öû¬ãm¢tmüõ¬CÏ;›k I!²«xnÁ^º¾»L#t,bõDèÖ?¸ïD€å9§ýGì-Ž¾?|¾Ø;¬..[TÁªÍ¯©-/ÈE*H4YZëîí mrTlbD4ò±i¿ÀUÉŸÈF HËf‹yÛCÚô˜¬ÄÈ´úzF«,›xÖÉì·óÓ¹¤°ùùŒµO§ü|Wþ×{Škoªn»5w…ÅÔM–Ë5–¨)¨(ËMT…Jj´Ü˜QãGŽúÓMŒ-í½ßùx^n¡ «£½àž=cñ†uÛ Q×Y¿`Þ|0vá‚y(-X¸pþ‚9³æÊL>d윙K|=ß=rxñÄÉÍ1ôÙC'ðöù#ççɓ켜ü?!íGŒ{{‘”ÆGÊ¥ŒwÓã;±‰öÈöý0ìšuÿÆ}
+8ž¥>[Qb ÃÇÿn0ëôäÂÄäªØTžõi_«ñWsM¯”ì½Php>ßäR‘éõrÃ+µ¿ZdLÙà-µüýÄ•îòküdVúŒZäq2j±÷È%¾£—ù]8zEàÈeÖúŽXá;l¥×Е.CW:
_á:b¹ç˜¥ã—øN\쬰äÉNS縬æ¤ôêôÔ‚”˜ôØà–•>‹?%-½œFIZ–¢+ŸN½ñ} Í- ;{¤cÏä<ìx̘¾ü¶â|Û‰óœ¥úŒ_ê5j‰ÛPŒ+K/s#SU+CM;©Uv¦ªîJ™ªª¦“ª¦¤º3IuGªŠV²’vŒ¢N¤‚N´‚NŒÒ®$U¸é»Ãfî|·ç¤›OBµWõ%B‹‹ÆXüíI˯â±Jhq1ï_yððæ¥7n=u¹ü0ðÔè+/‹‘~sÐ[d—<¡y_zÛSß~¯þrð¬×Ãæ¾<ûÙ?5îþCãƳn_xïÇÙ7~šs}ðÜCçß™!ón™skø‚Û?̼òi—¾ŸqsÈÜGƒç=ûqö‹g½:ÛaÈ,D“¼:Ó~8‰·#f¼•šyã‰mBb\!Ôc i›8ðEõëˆúiÑXX…‹IÊšÅJ¨Ð€°ÀÀHÖñ½GR<ç–e•"ÑfqzqQJaa2¶è(ÈO.$‘‚ÌE…©…%ÉÙÅ)™y)9é¹)…I™…iH7‘ž‡TH%)éåIée‰iÅIY¨™–Ÿžž__Ž¹Á’âj9U©úº›[:ɽöšÚ[š;êjhî>
Œ #cr4KZ‰MÛ¿êiéäk
Æ~ -/!86?)»89ÙieÕH©Œl±eåEåyùìꚚ⒲¼‚<¤Ëuyÿî ©ÙšÅËç(O›&£¨1QEa¬Ü„aãÇ‹ ›_Wm9}üÚų÷,öŸ8vðêåsàC:wêö±C—ïݲ}x÷•…éá_V®_¶xb¡ *««iª©N›5}Þ®z'Ž^ ±o_amvñÉЇAÔã‡n=píÄᛧŽÞ>}ìÖùã×Þ<}Ò"¸â+I+±óTŸ™”ùöù[ÐyÛ>‚µvìÔÕÕÑÑÞ±[g§o`”wX–SPÙâ·çï|=[ËcÆ® ÚaÓw…jjƒÃÚ¡»Â5vEŠ=M+
+ÐÜ5]+Zsg„ÆŽpM°Z¡¨?]+XsGðŒÑ3´Â§khìöž¦ë=m·ïtm\ÐoÆŽ÷Ku_œxû>(Í3$*<:&À/0"(ì_"Ø&ü‚z^3¥<½$ÜkõÖÿeÑòUÓæÿ&§±mè¤mrs
Sµ4L{äŒ+æ=9Ý~ô,pzò?§=ûiæ«QÆ-}?jÑ+½?Í~0xÎýÁs‚™$æ<2çéÐ9O†Ïy0löý¡3
™õdäü7£‘æë÷¯Ï´#1ãõெN5t†íð/Çϸ
+I›œPŒyZŠ´ƒIoõ'lZÊ{AIZ‹*ñøñ«Ko^¾pyèÉm…O_¾|âÂís×o½vóìõg®Ý8sãƹ›7ÎÞ¾uîÆíSn†Ò…ŒÕWN\¼vüÒµ3¯_8åæ¹K÷Ï\xxú܃“çoŸ!÷&¾pñÚ¹‹7.]ºuúÔ…Ó§.]¾tãÚÕÛ±mé™K¨éâµóg/aƒ&lazþÔ9D½øøû!ÌYê1 H"¢ lqç}ÆO=5ÕE7·$$ÆëˆÀTš¡&¸ÄÀä¸Ï'ê9‰†¶ ï16†Åxéô%{[{p2ÔEĘ¿‡¿Ÿ‡¿§/²û‘,ú _0×ÛßÏD
ò÷
+ðÄ1 ï p²/ ro쀈WÆOÇbàc¨0œa8 @ ~žþØ¡øÝ«wØ÷ K
+꧿~y©
+
Œ|.©(b0èt$î#3Œ±¸%ù¥îNØvÙÔØÜÔÀÂP{¯ÞNc#]sc]Kƒ]Và¸úvÛ@IÈ?}86Ús2ÖÔø8´hHÑc8yKª&ùØs°ÛRŸ„¹¡¶É™£ga¤@7FãF¬¢¸©n¥ÀL¸$Hô×ýgT3‘µHŒˆ…vc÷ÌöÙݯžÚbGi¬‚RC®ã{jûüáã×onØ!¤>-±kuaØ7€*q†*ñW„ìQE‰ãä¸Tì-ôY™Šß¥WÁü!ÓJR¼Åýàö¾i©w†û¨f§¼8†A…+'5:5‚ã C瀀Çú®ŠR?„׉Ü*@¼8éÛKZrA#½‰^Â2ZùõÍ<Zx´f¬VëYnŽ±9 ÉL>“Ž±8X/*¤‰¾¦Ä’12(B²«ØéòÊ@]~š[Ãk¨å"ñÆ‹FŒl2žSBÔæÜ{L)Õÿ³d.^¢ˆJØò¹NÕ¡¾"^I3 PßêM!É™ÞýG¹Ç1++‘«½ŸôORý‘C09
+“ËÍñ>‘ô (o-Jf
)©›¡Æ”/<,æ~%@5jÃ26³ë9(©ð±O@ÔSú0î‡â*Î|[Ò‚9Ô@LÚTœ¥nPNjU=ÆM*…̀Р)¿öv¤Ìi£ÄOi©}¸`¹ážÈà„Oç9?‘'®hæÒ[ë{£
¹´fn}²«`\2;J®§'Áùú’Gg| &4r\„49èä›M¾“%94ˆ×ˆÜ|ý+¾"éÈ¿ââÿÊ5û#g¿×D÷IÐKýô:ÇQ!+¨©×ž9ž3±}Lùô¼vgHɸü¯4ø'ßíS-ê_Íù4¦@ò^ASó´\õ&$8¡ßá\)‚ sÀe Í@#â~‘Wd,EZ’·
t¤~ÖÑYüz’_Sòõ\f=Y"êŠÎ€¿óLÔ¢gr
·¸$7)¢ðoÒþј5`Ò‚¨i?6?ºN¯å¬]?ÿ&X¶CW§¶o{HS’Vâä蟴ö‡Ñp ¥Þ ®7Ø0ëÅ (ê~] Š2°Ù ¸Ä1%õZ€Ÿâß"ËÞ U¬?zqÿ*ü¿#i?檤ézHûÉêscü…bVÌÛ“VLÚöòé3"êK¤åСC³9t›—ÅìA/‚a#L a3ÅfLO¸tö¥ØòAoýpG÷ÍŠCg±TQïÔ‚•“öËCÒÀ%mïþú}@ü?DÚ«Ç=&4µkôbR=Ƈ¯=@Td‡‚›à²ëYt
+bU–’6“à¨+Ö“…H8úu%¥cK@*Ûâ/
+9,¡Q%›ÙÌ—8†xÿ_¤øIÛçB‹/œüÃ+ÿ‹þi¡×`l«Hü™ë|
èß’–zµ(õò–T%¤Å‰ÑÜß¼IZhÅ bÛÈd’þa1øH”fKñ¶i{¸G1°?ôЕ¿ôGF2êĦli
+bÒâ@ðoÒ~cIû1WÿMÚqÐüVŽ¨²1ˆ´ÔÒ< ³˜ŒÁt9£SO¦G`ž“ô÷˜¯ 7¥$T}¥Óñi(±°îw)JÎjPsäʲß1Ðëÿ‹}ð>5"þÿ^Ò’¤%½ `#ð£EöT
+5Ÿø«¾ùÇKZ꽂L¥ÔcLñ¢.Qøü‡’–t¾ÓEðSs§˜V„$o‘œšÝ!ׂQovϼ\ÏK@½
+X’<à*u±ç™ÒÐXâ¥dbw±ØiOÿßç=þ…´éƤ÷þߤýSÚþ·’´ðSê1x:óȈóÀZ$0@8µ»t"E2ÄŠ3qRø(ÿ[ƵXùã²Çj¢l'Iù¡]$Ìï¹
ê¥éu*…ïŸÀ·’´ÿŠ×{v~ ×hýþû±ïÖû¼/¾U‹ý¹ëH¢\> AùVí0ÐöùV¿û…ëPap¨€÷¥dáæi¡…&mZ,B¬Â ±‰
+s¡¢öúÄ€ÂAþDåþ~÷Ïuùçßú·ÔçWþPOþä[’úýÿä‚ýÝç@÷¯¾Î·jϯ¹ÏÞu¾U;|Íï~Í»7Ðvèïš’hYT Ýà.†
+k®L…²c!Zñáéȇ *ƒÙ8 Aü—ƒEŸèöwþÎSS\ÿ:ú»Ïþ®Œîý§?¼íþ®óžë[]ç_oÉ/_¡÷}~Í»ñÚí;è“
+m‡þž…º,( ¢âšxm°®‹Zu„œ*THü 0C‰u$øôf¬H@~“þÖãS©þuÀŠîÍ0Ðúýýî@Ï÷÷»ý]G’¾à“
+½Î@ë´ÚuýOžWòâ}«vhû|«ßíï:ð6á–@@dÌ@‰ *c•x
+-ñQ‹ññ™Š¼ËÅk²¨ðÆÏ1Ð¥¿úø•>Ñßï~«ûèõ¿U}êa{_íË-9Ðçè}~A#è¥þ×ê÷¾çþè@ß·¾ç½Ÿ/Ô§ÞHZ€rS+%©µ¾Ð‚áæpDiÈÐ)èK3Їh#þÕ÷3Ðûèý|=]z'ÿo×—¼'Ÿ4à@Û¿¿÷íÿTëõwÿQ!A©Œ i‰ªü{pHK XhÏ›ñêôÿl6ú@ïs ¶ß×Ôï]ç[µÃ@Ÿk ¿;Ðë«úÔËý¹;` ÷ÿêô:_ó>ô¾&8ˆ¯ô¦4*taœÇµïÿÛ ³^²g<b IEND®B`‚
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/data/wmlogo/logocorrupt.svg Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2466"
+ inkscape:version="0.46"
+ sodipodi:docname="drawing.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ id="image2462"
+ height="18.19879"
+ width="31.139833"
+ sodipodi:absref="Y:\HS_Domain\homescreen\idlehomescreen\data\qhd_tch\shortcut2_2001f484\gfx\shortcut2logo.png"
+ xlink:href="Y:\HS_Domain\homescreen\idlehomescreen\data\qhd_tch\shortcut2_2001f484\gfx\shortcut2logo.png"
+ transform="matrix(1,0,2.5955691e-2,0.9996631,0,0)" />
+ </g>
+</svg>
Binary file idlehomescreen/widgetmanager/tsrc/wmunittest/data/wmlogo/test.wgz has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/eabi/wmunittestu.def Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,3 @@
+EXPORTS
+ _Z9LibEntryLR13CTestModuleIf @ 1 NONAME
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/group/Create_sisx.bat Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,19 @@
+rem
+rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+rem All rights reserved.
+rem This component and the accompanying materials are made available
+rem under the terms of "Eclipse Public License v1.0"
+rem which accompanies this distribution, and is available
+rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+rem
+rem Initial Contributors:
+rem Nokia Corporation - initial contribution.
+rem
+rem Contributors:
+rem
+rem Description:
+rem
+
+rem Create wm sis&sisx files
+makesis wmunittest.pkg
+signsis wmunittest.SIS wmunittest.SISX Nokia_RnDCert_02.der Nokia_RnDCert_02.key
Binary file idlehomescreen/widgetmanager/tsrc/wmunittest/group/Nokia_RnDCert_02.der has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/group/Nokia_RnDCert_02.key Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQC/TDP7KKIaf5+uW4OD2iVZuUMC2a+SeQTjf6srlKcOm+CpPNXn
+uLNm/8fdEnyOIuRXPRKmqhs1n0JkxEGHynELWMTuKXbQx9SRAGUXzyneGn+IJNnO
+vOKHWgKCouX2hfI8rtkdqJpqmO460gGsMgw+lsbeyWyW9lnfLxq+ZC7sqQIDAQAB
+AoGBALmUWZE8GBaQ3P4u9WUCSd3DJkkrmXIFSULSZeH/chlwCwDjbbhArHothVzo
+REE3hEFFlERvHbplZ+mNouzy7boduvgUzbksGrbGMLJ2qO1GzWWVwV+GzOWKd3ss
+/98Gwoy5R8pjnkqUE2wP1iJFw0FjvUTKcYv/z6t3LLJ0CsoBAkEA+c7ixvsviQ3J
+s0INytCKU2bf8fqFQJi1VI82ukxNsujGTQ9upVSjuvqPvWyDvvTdrUBHqO+3qPut
+sEh01Q8aiQJBAMQKDJPVRu4ud3mwUfEavzL5EjqwG1k9VCNGYsT4FwtrHcxu1oP/
+pk6M3rIZukqomoEEnHWPMwhrK3fhBqi0OSECQQDr40VXege4FnH5OI2Hj4afHMyp
+VdQQXGMWFyopnzXblFz0lXb43cTCIiorR9XcMqNFHybLypkWE5o+lRzlt55pAkBQ
+P/zeF5Sts//cpL0mgdh7OVKpC6ZmZaCnwAx2rUhhuDu+kDDoYCLoTOps5fNI1LRK
+1GRoC3LMo3Jr5IYhUYWBAkBpCpN6k4JU/mszq98EojHerQNxk8sPqvQKUzTutohT
+1gLX9yepGayB/TtT2EEJDkWOlnTy/dvN6W3vzbJYz97x
+-----END RSA PRIVATE KEY-----
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/group/bld.inf Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,39 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Widget manager unit tests
+*/
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_TESTEXPORTS
+// test case configuration
+../conf/wmunittest.bat /epoc32/winscw/c/wmunittest.bat
+../conf/wmunittest.ini /epoc32/winscw/c/testframework/testframework.ini
+../conf/ui_wmunittest.cfg /epoc32/winscw/c/testframework/ui_wmunittest.cfg
+// test data
+../data/wmlogo/logo.jpg /epoc32/winscw/c/testframework/wmunittest/wmlogo/logo.jpg
+../data/wmlogo/logo.mif /epoc32/winscw/c/testframework/wmunittest/wmlogo/logo.mif
+../data/wmlogo/logo.png /epoc32/winscw/c/testframework/wmunittest/wmlogo/logo.png
+../data/wmlogo/logo.svg /epoc32/winscw/c/testframework/wmunittest/wmlogo/logo.svg
+../data/wmlogo/logocorrupt.jpg /epoc32/winscw/c/testframework/wmunittest/wmlogo/logocorrupt.jpg
+../data/wmlogo/logocorrupt.png /epoc32/winscw/c/testframework/wmunittest/wmlogo/logocorrupt.png
+../data/wmlogo/logocorrupt.svg /epoc32/winscw/c/testframework/wmunittest/wmlogo/logocorrupt.svg
+../data/wmlogo/test.wgz /epoc32/winscw/c/testframework/wmunittest/wmlogo/test.wgz
+
+PRJ_TESTMMPFILES
+wmunittest.mmp
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/group/wmunittest.mmp Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,104 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: MMP file for STIF Test Framework's TestScripter
+* testclass test module.
+*
+*/
+
+#include <data_caging_paths.hrh>
+#include <platform_paths.hrh>
+#include <bldvariant.hrh>
+
+TARGET wmunittest.dll
+TARGETTYPE dll
+UID 0x1000008D 0x101FB3E3
+
+CAPABILITY ALL -TCB
+VENDORID VID_DEFAULT
+SECUREID 0x101FB3E3
+
+DEFFILE wmunittest.def
+
+USERINCLUDE ../inc
+USERINCLUDE ../../../inc
+
+APP_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE /epoc32/include/libc
+SYSTEMINCLUDE /epoc32/include/ecom
+
+SOURCEPATH ../../../src
+SOURCE wmplugin.cpp
+SOURCE wmresourceloader.cpp
+SOURCE wmmaincontainer.cpp
+SOURCE wmmaincontainerview.cpp
+SOURCE wmwidgetdata.cpp
+SOURCE wmlistbox.cpp
+SOURCE wmimageconverter.cpp
+SOURCE wmpersistentwidgetorder.cpp
+SOURCE wmeffectmanager.cpp
+SOURCE wmdetailsdlg.cpp
+SOURCE wmportalbutton.cpp
+SOURCE wmwidgetloaderao.cpp
+
+SOURCEPATH ../src
+SOURCE wmunittest.cpp
+SOURCE wmunittest_all.cpp
+SOURCE wmunittest_plugin.cpp
+SOURCE wmunittest_sortorder.cpp
+SOURCE wmunittest_converter.cpp
+
+// same as in widgetmanager.mmp
+LIBRARY euser.lib
+LIBRARY cone.lib
+LIBRARY avkon.lib
+LIBRARY eikcore.lib
+LIBRARY estor.lib
+LIBRARY eikcoctl.lib
+LIBRARY eikctl.lib
+LIBRARY eikdlg.lib
+LIBRARY efsrv.lib // RFs
+LIBRARY bafl.lib // BaflUtils
+LIBRARY apgrfx.lib // RApaLsSession
+LIBRARY commonengine.lib // StringLoader
+LIBRARY aknicon.lib // AknIconUtility
+LIBRARY imageconversion.lib // CImageDecoder
+LIBRARY bitmaptransforms.lib // CBitmapScaler
+LIBRARY fbscli.lib // CFbsBitmap
+LIBRARY gdi.lib // CFont
+LIBRARY egul.lib // TextUtils
+LIBRARY ecom.lib // ECom fw
+LIBRARY aknskins.lib // AknsDrawUtils
+LIBRARY aknskinsrv.lib // AknsDrawUtils
+LIBRARY aknswallpaperutils.lib // AknsDrawUtils
+LIBRARY hscontentcontrol.lib // CHsContentControlUi
+LIBRARY apparc.lib // CApaCommandLine
+LIBRARY aknlayout.lib // avkon layout
+LIBRARY aknlayout2scalable.lib // scalable avkon layout
+LIBRARY swinstcli.lib // widget uninstall
+LIBRARY hscontentinfo.lib // CHsContentInfo
+LIBRARY platformenv.lib // DriveInfo::GetDefaultDrive
+LIBRARY svgengine.lib // CSvgEngineInterfaceImpl
+LIBRARY gfxtrans.lib // effect manager
+LIBRARY ws32.lib //WindowSession
+LIBRARY widgetregistryclient.lib // WidgetRegistryClient
+LIBRARY hlplch.lib // HlpLauncher
+LIBRARY sysutil.lib // diskspace
+LIBRARY featmgr.lib // FeatureManager
+LIBRARY etext.lib
+LIBRARY centralrepository.lib
+
+// libraries needed by the test framework
+LIBRARY stiftestinterface.lib
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/group/wmunittest.pkg Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,51 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+; Installation file for STIF
+;
+
+; Languages
+&EN
+
+; Provide value for uid
+#{"STIF"},(0x101FB3E3),1,1,0,TYPE=SA
+
+; Series60 product id for S60 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+
+; Install files
+
+"\epoc32\release\armv5\udeb\wmunittest.dll" - "!:\sys\bin\wmunittest.dll"
+
+"..\conf\wmunittest.bat" - "!:\wmunittest.bat"
+"..\conf\wmunittest.ini" - "!:\testframework\testframework2.ini"
+"..\conf\ui_wmunittest.cfg" - "!:\testframework\ui_wmunittest.cfg"
+
+"..\data\wmlogo\logo.jpg" - "!:\testframework\wmunittest\wmlogo\logo.jpg"
+"..\data\wmlogo\logo.mif" - "!:\testframework\wmunittest\wmlogo\logo.mif"
+"..\data\wmlogo\logo.png" - "!:\testframework\wmunittest\wmlogo\logo.png"
+"..\data\wmlogo\logo.svg" - "!:\testframework\wmunittest\wmlogo\logo.svg"
+"..\data\wmlogo\logocorrupt.jpg" - "!:\testframework\wmunittest\wmlogo\logocorrupt.jpg"
+"..\data\wmlogo\logocorrupt.png" - "!:\testframework\wmunittest\wmlogo\logocorrupt.png"
+"..\data\wmlogo\logocorrupt.svg" - "!:\testframework\wmunittest\wmlogo\logocorrupt.svg"
+"..\data\wmlogo\test.wgz" - "!:\testframework\wmunittest\wmlogo\test.wgz"
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/inc/wmunittest.h Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,211 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: STIF testclass declaration
+*
+*/
+
+#ifndef WMUNITTEST_H
+#define WMUNITTEST_H
+
+// INCLUDES
+#include <stiflogger.h>
+#include <testscripterinternal.h>
+#include <stiftestmodule.h>
+#include <testclassassert.h>
+#include <s32file.h> // RFs
+
+#include "wmimageconverter.h" // MConverterObserver
+#include <hscontentcontroller.h>
+
+// MACROS
+#define TEST_CLASS_VERSION_MAJOR 0
+#define TEST_CLASS_VERSION_MINOR 0
+#define TEST_CLASS_VERSION_BUILD 0
+
+// MACROS FOR THE TEST CASES
+#define _LOG(a) iLog->Log(_L(a))
+#define _RETURN(a, b) iLog->Log(_L("\treturn: %d"),b); \
+ iLog->Log(_L(a)); \
+ return b; \
+
+#define _CLEANUPCHECK_BEGIN \
+ CBase* __check = new (ELeave) CBase(); \
+ CleanupStack::PushL( __check );
+
+#define _CLEANUPCHECK_END \
+ CleanupStack::PopAndDestroy( __check );
+
+
+// Logging path & file
+_LIT( KWmUnitTestLogPath, "\\logs\\testframework\\wmunittest\\" );
+_LIT( KWmUnitTestLogFile, "wmunittest.txt" );
+
+// FORWARD DECLARATIONS
+class CWmPlugin;
+class CWmPersistentWidgetOrder;
+class CWmImageConverter;
+class CHsContentInfo;
+class CHsContentInfoArray;
+class RWidgetDataValues;
+
+
+// CLASS DECLARATION
+/**
+* test class for STIF Test Framework TestScripter.
+*/
+NONSHARABLE_CLASS(CWmUnitTest) : public CScriptBase,
+ public MConverterObserver,
+ public MHsContentController
+ {
+ public: // Constructors and destructor
+ /** static constructor */
+ static CWmUnitTest* NewL( CTestModuleIf& aTestModuleIf );
+ /** desctructor */
+ ~CWmUnitTest();
+
+ private: // private stuff
+ /** default constructor */
+ CWmUnitTest( CTestModuleIf& aTestModuleIf );
+ /** 2nd phase constructor */
+ void ConstructL();
+ /** version check */
+ void SendTestClassVersion();
+
+ public: // Test run API
+
+ /** From CScriptBase Runs a script line. */
+ virtual TInt RunMethodL( CStifItemParser& aItem );
+
+ public: // from MConverterObserver
+
+ virtual void NotifyCompletion( TInt aError );
+
+ public: // from MHsContentController
+
+ TInt WidgetListL( CHsContentInfoArray& aArray );
+ TInt ViewListL( CHsContentInfoArray& aArray );
+ TInt AppListL( CHsContentInfoArray& aArray );
+ TInt AddWidgetL( CHsContentInfo& aInfo );
+ TInt RemoveWidgetL( CHsContentInfo& aInfo );
+ TInt AddViewL( CHsContentInfo& aInfo );
+ TInt RemoveViewL( CHsContentInfo& aInfo );
+ TInt ActivateViewL( CHsContentInfo& aInfo );
+ TInt ActivateAppL( CHsContentInfo& aInfo );
+
+ private: // Test methods
+
+ // GENERAL
+
+ // sets heap reference value
+ TInt HeapSetL( CStifItemParser& aItem );
+ // Log heap usage to file
+ TInt LogHeapL( CStifItemParser& aItem );
+ // compares heap against reference, logs warning if no match
+ TInt HeapCheckL( CStifItemParser& aItem );
+ // sets the mass of data for next test case
+ TInt SetMassL( CStifItemParser& aItem );
+ // install and uninstall wrt widget for tests
+ TInt InstallWrtWidgetL( CStifItemParser& aItem );
+ TInt UninstallWrtWidgetL( CStifItemParser& aItem );
+ // test error note
+ TInt ErrorPopupL( CStifItemParser& aItem );
+
+ // TESTING THE PLUGIN
+
+ // creates the WM plugin
+ TInt PluginCreateL( CStifItemParser& aItem );
+ // deletes WM plugin
+ TInt PluginDeleteL( CStifItemParser& aItem );
+ // calls Activate method for WM plugin
+ TInt PluginActivateL( CStifItemParser& aItem );
+ // calls Deactivate method for WM plugin
+ TInt PluginDeactivateL( CStifItemParser& aItem );
+ // calls NotifyWidgetListChanged method for WM plugin
+ TInt PluginWidgetsChangedL( CStifItemParser& aItem );
+ // changes test content
+ TInt ChangeContentL( CStifItemParser& aItem );
+
+ // TESTING THE WIDGET SORTING AND ORDER
+
+ // creates WM persistent widget order object
+ TInt WidgetOrderCreateL( CStifItemParser& aItem );
+ // deletes WM persistent widget order object
+ TInt WidgetOrderDeleteL( CStifItemParser& aItem );
+ // tests WM persistent widget order's LOAD method
+ TInt WidgetOrderLoadL( CStifItemParser& aItem );
+ // tests WM persistent widget order's SAVE method
+ TInt WidgetOrderSaveL( CStifItemParser& aItem );
+ // tests WM persistent widget order's SAVE method
+ TInt WidgetOrderCheckIsEmptyL( CStifItemParser& aItem );
+ // calls WM persistent widget order's API methods
+ TInt WidgetOrderUseL( CStifItemParser& aItem );
+
+ // TESTING IMAGE CONVERSION ROUTINES
+
+ // creates image converter object
+ TInt ImageConverterCreateL( CStifItemParser& aItem );
+ // deletes image converter object
+ TInt ImageConverterDeleteL( CStifItemParser& aItem );
+ // calls image converter's main conversion method
+ TInt ImageConverterConvertL( CStifItemParser& aItem );
+ // checks image converter callback and checks its result
+ TInt ImageConverterWaitResultL( CStifItemParser& aItem );
+ // gets and checks the conversion method from image converter
+ TInt ImageConverterConversionMethodL( CStifItemParser& aItem );
+ // cancel ongoing convert
+ TInt CancelConvertL( CStifItemParser& aItem );
+
+
+ private: // members used in testing
+
+ void CreateContentInfoArrayL( CHsContentInfoArray& aArray, TInt aCount );
+ void CreateWidgetDataArrayL( RWidgetDataValues& aArray, TInt aCount );
+
+ // file server
+ RFs iFs;
+
+ // the WM plugin instance
+ CWmPlugin* iWmPlugin;
+
+ // the WM persistent widget order instance
+ CWmPersistentWidgetOrder* iWmWidgetOrder;
+
+ // the Image converter instance
+ CWmImageConverter* iImageConverter;
+
+ // amount of heap allocated in HeapSet
+ TInt iHeapSize;
+
+ // image converter response ready
+ TBool iConversionReady;
+
+ // image converter result
+ TInt iConversionError;
+
+ // switch for active schedular wait
+ TBool iWaiting;
+
+ // multipurpose test data count
+ TInt iMass;
+
+ // requested changes to the content
+ TInt iChangeIndex;
+ TInt iChangeType;
+ HBufC16* iChangeValue;
+ };
+
+
+#endif // WMUNITTEST_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/src/wmunittest.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,112 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: This file contains testclass implementation.
+*
+*/
+
+// INCLUDE FILES
+#include <stiftestinterface.h>
+#include <settingserverclient.h>
+
+#include "wmunittest.h"
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::CWmUnitTest
+// -----------------------------------------------------------------------------
+//
+CWmUnitTest::CWmUnitTest(
+ CTestModuleIf& aTestModuleIf ):
+ CScriptBase( aTestModuleIf )
+ {
+ iChangeValue = NULL;
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CWmUnitTest::ConstructL()
+ {
+ iLog = CStifLogger::NewL( KWmUnitTestLogPath,
+ KWmUnitTestLogFile,
+ CStifLogger::ETxt,
+ CStifLogger::EFile,
+ EFalse );
+
+ SendTestClassVersion();
+
+ User::LeaveIfError( iFs.Connect() );
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::NewL
+// -----------------------------------------------------------------------------
+//
+CWmUnitTest* CWmUnitTest::NewL(
+ CTestModuleIf& aTestModuleIf )
+ {
+ CWmUnitTest* self = new (ELeave) CWmUnitTest( aTestModuleIf );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::~CWmUnitTest
+// -----------------------------------------------------------------------------
+//
+CWmUnitTest::~CWmUnitTest()
+ {
+ // Delete logger
+ delete iLog;
+ // close file server
+ iFs.Close();
+ }
+
+//-----------------------------------------------------------------------------
+// CWmDeploymentClientTest::SendTestClassVersion
+//-----------------------------------------------------------------------------
+//
+void CWmUnitTest::SendTestClassVersion()
+ {
+ TVersion moduleVersion;
+ moduleVersion.iMajor = TEST_CLASS_VERSION_MAJOR;
+ moduleVersion.iMinor = TEST_CLASS_VERSION_MINOR;
+ moduleVersion.iBuild = TEST_CLASS_VERSION_BUILD;
+
+ TFileName moduleName;
+ moduleName = _L("wmunittest.dll");
+
+ TBool newVersionOfMethod = ETrue;
+ TestModuleIf().SendTestModuleVersion(moduleVersion, moduleName, newVersionOfMethod);
+ }
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// LibEntryL() - polymorphic Dll entry point.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CScriptBase* LibEntryL(
+ CTestModuleIf& aTestModuleIf ) // Backpointer to STIF Test Framework
+ {
+ return ( CScriptBase* ) CWmUnitTest::NewL( aTestModuleIf );
+ }
+
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/src/wmunittest_all.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,250 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: list of all test blocks
+*
+*/
+
+//INCLUDE FILES
+#include <e32svr.h>
+#include <stdlib.h>
+#include <stifparser.h>
+#include <stiftestinterface.h>
+#include <bautils.h>
+#include <aknsskininstance.h>
+#include <swinstapi.h>
+#include <swinstdefs.h>
+#include <coemain.h>
+#include <EIKENV.H>
+#include "wmunittest.h"
+#include "wmresourceloader.h"
+
+// CONSTANTS
+_LIT( KHexPrefix, "0x" );
+_LIT8( KWrtMime, "application/x-nokia-widget");
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::RunMethodL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::RunMethodL(
+ CStifItemParser& aItem )
+ {
+ static TStifFunctionInfo const KFunctions[] =
+ {
+ // general test blocks
+ ENTRY( "HeapSet", CWmUnitTest::HeapSetL ),
+ ENTRY( "LogHeap", CWmUnitTest::LogHeapL ),
+ ENTRY( "HeapCheck", CWmUnitTest::HeapCheckL ),
+ ENTRY( "SetMass", CWmUnitTest::SetMassL ),
+ ENTRY( "ErrorPopup", CWmUnitTest::ErrorPopupL ),
+
+ // install/uninstall wrt widget for test
+ ENTRY( "InstallWrtWidget", CWmUnitTest::InstallWrtWidgetL ),
+ ENTRY( "UninstallWrtWidget", CWmUnitTest::UninstallWrtWidgetL ),
+
+ // test blocks for the plugin
+ ENTRY( "PluginCreate", CWmUnitTest::PluginCreateL ),
+ ENTRY( "PluginDelete", CWmUnitTest::PluginDeleteL ),
+ ENTRY( "PluginActivate", CWmUnitTest::PluginActivateL ),
+ ENTRY( "PluginDeactivate", CWmUnitTest::PluginDeactivateL ),
+ ENTRY( "PluginWidgetsChanged", CWmUnitTest::PluginWidgetsChangedL ),
+ ENTRY( "ChangeContent", CWmUnitTest::ChangeContentL ),
+
+ // test blocks for the persistent widget order class
+ ENTRY( "WidgetOrderCreate", CWmUnitTest::WidgetOrderCreateL ),
+ ENTRY( "WidgetOrderDelete", CWmUnitTest::WidgetOrderDeleteL ),
+ ENTRY( "WidgetOrderLoad", CWmUnitTest::WidgetOrderLoadL ),
+ ENTRY( "WidgetOrderSave", CWmUnitTest::WidgetOrderSaveL ),
+ ENTRY( "WidgetOrderCheckIsEmpty", CWmUnitTest::WidgetOrderCheckIsEmptyL ),
+ ENTRY( "WidgetOrderUse", CWmUnitTest::WidgetOrderUseL ),
+
+ // test blocks for the image converter
+ ENTRY( "ImageConverterCreate", CWmUnitTest::ImageConverterCreateL ),
+ ENTRY( "ImageConverterDelete", CWmUnitTest::ImageConverterDeleteL ),
+ ENTRY( "ImageConverterConvert", CWmUnitTest::ImageConverterConvertL ),
+ ENTRY( "ImageConverterWaitResult", CWmUnitTest::ImageConverterWaitResultL ),
+ ENTRY( "ImageConverterConversionMethod", CWmUnitTest::ImageConverterConversionMethodL ),
+ ENTRY( "CancelConvert", CWmUnitTest::CancelConvertL ),
+
+ };
+
+ const TInt count = sizeof( KFunctions ) /
+ sizeof( TStifFunctionInfo );
+
+ return RunInternalL( KFunctions, count, aItem );
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::HeapSetL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::HeapSetL( CStifItemParser& /*aItem*/ )
+ {
+ User::Heap().AllocSize( iHeapSize );
+ _RETURN("HeapSetL End", KErrNone);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::LogHeapL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::LogHeapL( CStifItemParser& aItem )
+ {
+ TPtrC inputStr;
+ aItem.SetParsingType( CStifItemParser::EQuoteStyleParsing );
+ User::LeaveIfError( aItem.GetNextString( inputStr ) );
+
+ TInt size = 0;
+ User::Heap().AllocSize( size );
+ iLog->Log( _L("Heap usage, %S: %d"), &inputStr, size );
+ _RETURN("LogHeapL End", KErrNone);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::HeapCheckL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::HeapCheckL( CStifItemParser& /*aItem*/ )
+ {
+ TInt ret = KErrNone;
+ TInt heapSizeAtCheckpoint;
+ User::Heap().AllocSize( heapSizeAtCheckpoint );
+ if ( iHeapSize != heapSizeAtCheckpoint )
+ {
+ //ret = KErrTooBig; <-- not reliable
+ _LOG("Warning: potential memory leak detected!!!");
+ }
+ _RETURN("HeapCheckL End", ret);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::SetMassL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::SetMassL( CStifItemParser& aItem )
+ {
+ aItem.GetNextInt( iMass );
+ _RETURN("SetMassL End", KErrNone);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::InstallWrtWidgetL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::InstallWrtWidgetL( CStifItemParser& aItem )
+ {
+ TInt ret = KErrNone;
+ TPtrC inputStr;
+ aItem.SetParsingType( CStifItemParser::EQuoteStyleParsing );
+ User::LeaveIfError( aItem.GetNextString( inputStr ) );
+ if ( inputStr.Length() == 0 ) User::Leave( KErrArgument );
+
+ // install widget
+ SwiUI::RSWInstSilentLauncher installer;
+ User::LeaveIfError( installer.Connect() );
+ CleanupClosePushL( installer );
+
+ SwiUI::TInstallReqPckg installReqPckg;
+ SwiUI::TInstallOptions options;
+ TRequestStatus status = KRequestPending;
+
+ options.iUpgrade = SwiUI::EPolicyAllowed;
+ options.iOptionalItems = SwiUI::EPolicyAllowed;
+ options.iOCSP = SwiUI::EPolicyAllowed;
+ options.iIgnoreOCSPWarnings = SwiUI::EPolicyAllowed;
+ options.iUntrusted = SwiUI::EPolicyAllowed;
+ options.iPackageInfo = SwiUI::EPolicyAllowed;
+ options.iCapabilities = SwiUI::EPolicyAllowed;
+ options.iKillApp = SwiUI::EPolicyAllowed;
+ options.iOverwrite = SwiUI::EPolicyAllowed;
+ options.iDownload = SwiUI::EPolicyAllowed;
+ options.iDrive = 'C';
+ options.iLang = User::Language();
+ options.iUsePhoneLang = ETrue;
+ options.iUpgradeData = SwiUI::EPolicyAllowed;
+
+ SwiUI::TInstallOptionsPckg optionsPkg( options );
+ installer.SilentInstall( status , inputStr, optionsPkg );
+ User::WaitForRequest( status );
+ ret = status.Int();
+ CleanupStack::PopAndDestroy( &installer );
+ _RETURN("InstallWrtWidgetL End", ret);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::UninstallWrtWidgetL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::UninstallWrtWidgetL( CStifItemParser& aItem )
+ {
+ TInt ret = KErrNone;
+ TPtrC inputStr;
+ aItem.SetParsingType( CStifItemParser::EQuoteStyleParsing );
+ User::LeaveIfError( aItem.GetNextString( inputStr ) );
+ if ( inputStr.Length() == 0 ) User::Leave( KErrArgument );
+
+ TUid uid;
+ TLex lex( inputStr );
+ lex.SkipSpaceAndMark();
+ TPtrC mtoken = lex.MarkedToken();
+ TInt pos = mtoken.FindF( KHexPrefix );
+ if ( pos == 0 )
+ {
+ TLex lex( mtoken.Mid( KHexPrefix().Length() ) );
+ TUint id = 0;
+ ret = lex.Val( id, EHex );
+ uid = TUid::Uid( (TInt)id );
+ }
+ else
+ {
+ TInt id( 0 );
+ ret = lex.Val( id );
+ uid.iUid = id;
+ }
+
+ if ( ret == KErrNone )
+ {
+ // Uninstall widget
+ SwiUI::RSWInstSilentLauncher installer;
+ User::LeaveIfError( installer.Connect() );
+ CleanupClosePushL( installer );
+
+ TRequestStatus status = KRequestPending;
+ SwiUI::TUninstallOptions optionsUninstall;
+ optionsUninstall.iBreakDependency = SwiUI::EPolicyAllowed;
+ optionsUninstall.iKillApp = SwiUI::EPolicyAllowed;
+ SwiUI::TUninstallOptionsPckg uninstallOptionsPkg( optionsUninstall );
+
+ installer.SilentUninstall( status, uid, uninstallOptionsPkg, KWrtMime );
+ User::WaitForRequest( status );
+ CleanupStack::PopAndDestroy( &installer );
+ }
+
+ _RETURN("UninstallWrtWidgetL End", ret);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::ErrorPopup
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::ErrorPopupL( CStifItemParser& /*aItem*/ )
+ {
+ CWmResourceLoader* res = CWmResourceLoader::NewL( *CEikonEnv::Static() );
+ res->ErrorPopup(KErrNone);
+ delete res;
+ _RETURN("ErrorPopupL End", KErrNone);
+ }
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/src/wmunittest_converter.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,164 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: test blocks for CWmImageConverter
+*
+*/
+
+//INCLUDE FILES
+#include <e32svr.h>
+#include <stdlib.h>
+#include <stifparser.h>
+#include <stiftestinterface.h>
+#include <bautils.h>
+#include <aknsskininstance.h>
+#include "wmunittest.h"
+// components to test
+#include "wmimageconverter.h"
+
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::ImageConverterCreateL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::ImageConverterCreateL( CStifItemParser& /*aItem*/ )
+ {
+ if ( iImageConverter != 0 ) User::Leave( KErrArgument );
+ TInt ret = KErrNone;
+ _CLEANUPCHECK_BEGIN
+ iImageConverter = CWmImageConverter::NewL( this );
+ _CLEANUPCHECK_END
+ _RETURN("ImageConverterCreateL End", ret);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::ImageConverterDeleteL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::ImageConverterDeleteL( CStifItemParser& /*aItem*/ )
+ {
+ if ( iImageConverter == 0 ) User::Leave( KErrArgument );
+ TInt ret = KErrNone;
+ delete iImageConverter;
+ iImageConverter = 0;
+ _RETURN("ImageConverterDeleteL End", ret);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::ImageConverterConvertL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::ImageConverterConvertL( CStifItemParser& aItem )
+ {
+ if ( iImageConverter == 0 ) User::Leave( KErrArgument );
+ TInt ret = KErrNone;
+ iConversionReady = EFalse;
+ TPtrC inputStr;
+
+ aItem.SetParsingType( CStifItemParser::EQuoteStyleParsing );
+ User::LeaveIfError( aItem.GetNextString( inputStr ) );
+ if ( inputStr.Length() == 0 ) User::Leave( KErrArgument );
+
+ TRAPD( err, iImageConverter->HandleIconStringL( 40, 40, inputStr ) );
+ if ( err != KErrNone )
+ {
+ _LOG("ImageConverterConvertL:HandleIconStringL returns with leave");
+ iConversionReady = ETrue;
+ iConversionError = err;
+ }
+
+ _RETURN("ImageConverterConvertL End", ret );
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::ImageConverterWaitResultL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::ImageConverterWaitResultL( CStifItemParser& aItem )
+ {
+ if ( iImageConverter == 0 ) User::Leave( KErrArgument );
+ TInt ret = KErrNone;
+ TInt expectedResult;
+
+ User::LeaveIfError( aItem.GetNextInt( expectedResult ) );
+
+ iWaiting = EFalse;
+ if ( !iConversionReady )
+ {
+ iWaiting = ETrue;
+ CActiveScheduler::Start();
+ iWaiting = EFalse;
+ }
+
+ // check conversion error
+ if ( expectedResult == KErrNone && iConversionError != KErrNone )
+ {
+ _LOG("ImageConverterWaitResultL: expected ok, returns error");
+ ret = iConversionError;
+ }
+ else if ( expectedResult != KErrNone && iConversionError == KErrNone )
+ {
+ _LOG("ImageConverterWaitResultL: expected error, returns ok");
+ ret = KErrGeneral;
+ }
+
+ _RETURN("ImageConverterWaitResultL End", ret);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::NotifyCompletion
+// -----------------------------------------------------------------------------
+//
+void CWmUnitTest::NotifyCompletion( TInt aError )
+ {
+ if ( !iConversionReady )
+ {
+ iConversionReady = ETrue;
+ iConversionError = aError;
+ if ( iWaiting )
+ {
+ CActiveScheduler::Stop();
+ }
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::ImageConverterConversionMethodL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::ImageConverterConversionMethodL( CStifItemParser& aItem )
+ {
+ if ( iImageConverter == 0 ) User::Leave( KErrArgument );
+ TInt ret = KErrNone;
+ TInt conversionMethod;
+
+ User::LeaveIfError( aItem.GetNextInt( conversionMethod ) );
+
+ // check conversion method
+ if ( conversionMethod != iImageConverter->ConversionMethod() )
+ ret = KErrGeneral;
+
+ _RETURN("ImageConverterConversionMethodL End", ret);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::CancelConvertL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::CancelConvertL( CStifItemParser& /*aItem*/ )
+ {
+ if ( iImageConverter == 0 ) User::Leave( KErrArgument );
+ iImageConverter->Cancel();
+ _RETURN("CancelConvertL End", KErrNone);
+ }
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/src/wmunittest_plugin.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,232 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: test blocks for CWmPlugin
+*
+*/
+
+//INCLUDE FILES
+#include <e32svr.h>
+#include <stdlib.h>
+#include <stifparser.h>
+#include <stiftestinterface.h>
+#include <bautils.h>
+#include <aknsskininstance.h>
+#include "wmunittest.h"
+// components to test
+#include "wmplugin.h"
+#include <hscontentinfo.h>
+#include <hscontentinfoarray.h>
+
+// MACROS
+#define _LOG(a) iLog->Log(_L(a))
+#define _RETURN(a, b) iLog->Log(_L("\treturn: %d"),b); \
+ iLog->Log(_L(a)); \
+ return b; \
+
+#define _CLEANUPCHECK_BEGIN \
+ CBase* __check = new (ELeave) CBase(); \
+ CleanupStack::PushL( __check );
+
+#define _CLEANUPCHECK_END \
+ CleanupStack::PopAndDestroy( __check );
+
+// CONSTANTS
+const TInt KName = 100;
+const TInt KDescription = 101;
+const TInt KLogoPath = 102;
+const TInt KCanBeAdded = 103;
+const TInt KCanBeRemoved = 104;
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::PluginCreateL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::PluginCreateL( CStifItemParser& /*aItem*/ )
+ {
+ if ( iWmPlugin != 0 ) User::Leave( KErrArgument );
+ TInt ret = KErrNone;
+ _CLEANUPCHECK_BEGIN
+ iWmPlugin = CWmPlugin::NewL();
+ iWmPlugin->SetContentController( this );
+ _CLEANUPCHECK_END
+ _RETURN("PluginCreateL End", ret);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::PluginDeleteL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::PluginDeleteL( CStifItemParser& /*aItem*/ )
+ {
+ if ( iWmPlugin == 0 ) User::Leave( KErrArgument );
+ TInt ret = KErrNone;
+ delete iWmPlugin;
+ iWmPlugin = 0;
+ _RETURN("PluginDeleteL End", ret);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::PluginActivateL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::PluginActivateL( CStifItemParser& /*aItem*/ )
+ {
+ if ( iWmPlugin == 0 ) User::Leave( KErrArgument );
+ iWmPlugin->Activate();
+ _RETURN("PluginActivateL End", KErrNone);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::PluginDeactivateL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::PluginDeactivateL( CStifItemParser& /*aItem*/ )
+ {
+ if ( iWmPlugin == 0 ) User::Leave( KErrArgument );
+ iWmPlugin->Deactivate();
+ _RETURN("PluginActivateL End", KErrNone);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::PluginWidgetsChangedL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::PluginWidgetsChangedL( CStifItemParser& /*aItem*/ )
+ {
+ if ( iWmPlugin == 0 ) User::Leave( KErrArgument );
+ iWmPlugin->NotifyWidgetListChanged();
+ _RETURN("PluginWidgetsChangedL End", KErrNone);
+ }
+
+// =============================================================================
+// Methods from MHsContentController
+// =============================================================================
+
+TInt CWmUnitTest::WidgetListL( CHsContentInfoArray& aArray )
+ {
+ CreateContentInfoArrayL( aArray, iMass );
+ return KErrNone;
+ }
+
+TInt CWmUnitTest::ViewListL( CHsContentInfoArray& /*aArray*/ )
+ {
+ return KErrNone;
+ }
+
+TInt CWmUnitTest::AppListL( CHsContentInfoArray& /*aArray*/ )
+ {
+ return KErrNone;
+ }
+
+TInt CWmUnitTest::AddWidgetL( CHsContentInfo& /*aInfo*/ )
+ {
+ return KErrNone;
+ }
+
+TInt CWmUnitTest::RemoveWidgetL( CHsContentInfo& /*aInfo*/ )
+ {
+ return KErrNone;
+ }
+
+TInt CWmUnitTest::AddViewL( CHsContentInfo& /*aInfo*/ )
+ {
+ return KErrNone;
+ }
+
+TInt CWmUnitTest::RemoveViewL( CHsContentInfo& /*aInfo*/ )
+ {
+ return KErrNone;
+ }
+
+TInt CWmUnitTest::ActivateViewL( CHsContentInfo& /*aInfo*/ )
+ {
+ return KErrNone;
+ }
+
+TInt CWmUnitTest::ActivateAppL( CHsContentInfo& /*aInfo*/ )
+ {
+ return KErrNone;
+ }
+
+
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::ChangeContentL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::ChangeContentL( CStifItemParser& aItem )
+ {
+ aItem.GetNextInt( iChangeIndex );
+ aItem.GetNextInt( iChangeType );
+ TPtrC changeValue;
+ aItem.SetParsingType( CStifItemParser::EQuoteStyleParsing );
+ aItem.GetNextString( changeValue );
+ delete iChangeValue;
+ iChangeValue = NULL;
+ iChangeValue = changeValue.AllocL();
+ _RETURN("ChangeContentL End", KErrNone);
+ }
+
+// string -> bool conversion function
+TBool s2b( const TDesC& str )
+ {
+ return ( str == _L("1") ? ETrue : EFalse );
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::CreateContentInfoArrayL
+// -----------------------------------------------------------------------------
+//
+void CWmUnitTest::CreateContentInfoArrayL( CHsContentInfoArray& aArray, TInt aCount )
+ {
+ for( TInt i=0; i<aCount; ++i )
+ {
+ CHsContentInfo* info = CHsContentInfo::NewLC();
+ TBuf<64> name;
+ name.Format( _L("Widget_%d"), i );
+ info->SetNameL( name );
+ TBuf8<20> id;
+ id.Num( i );
+ info->SetUidL( id );
+ info->SetTypeL( _L8("template") );
+ info->SetIconPathL( _L("uid(0x2000DAD2)") );
+ info->SetCanBeAdded( ETrue );
+ info->SetDescriptionL(_L("Default plaa plaa plaa plaa plaa plaa plaa"));
+
+ aArray.Array().AppendL( info );
+ CleanupStack::Pop( info );
+ }
+
+ // change content
+ if ( iChangeIndex >= 0 && iChangeIndex < aCount )
+ {
+ CHsContentInfo* info = aArray.Array()[iChangeIndex];
+ if ( iChangeType == KName )
+ { info->SetNameL( *iChangeValue ); }
+ else if ( iChangeType == KDescription )
+ { info->SetDescriptionL( *iChangeValue ); }
+ else if ( iChangeType == KLogoPath )
+ { info->SetIconPathL( *iChangeValue ); }
+ else if ( iChangeType == KCanBeAdded )
+ { info->SetCanBeAdded( s2b(*iChangeValue) ); }
+ else if ( iChangeType == KCanBeRemoved )
+ { info->SetCanBeRemoved( s2b(*iChangeValue) ); }
+ }
+ }
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/src/wmunittest_sortorder.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -0,0 +1,175 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: test blocks for CWmPersistentWidgetorder
+*
+*/
+
+//INCLUDE FILES
+#include <e32svr.h>
+#include <stdlib.h>
+#include <stifparser.h>
+#include <stiftestinterface.h>
+#include <bautils.h>
+#include <aknsskininstance.h>
+#include "wmunittest.h"
+// components to test
+#include "wmpersistentwidgetorder.h"
+#include "wmwidgetdata.h"
+#include <hscontentinfo.h>
+#include <hscontentinfoarray.h>
+#include <widgetregistryclient.h> // widgetreqistry
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::WidgetOrderCreateL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::WidgetOrderCreateL( CStifItemParser& /*aItem*/ )
+ {
+ if ( iWmWidgetOrder != 0 ) User::Leave( KErrArgument );
+ TInt ret = KErrNone;
+ _CLEANUPCHECK_BEGIN
+ iWmWidgetOrder = CWmPersistentWidgetOrder::NewL( iFs );
+ _CLEANUPCHECK_END
+ _RETURN("WidgetOrderCreateL End", ret);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::WidgetOrderDeleteL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::WidgetOrderDeleteL( CStifItemParser& /*aItem*/ )
+ {
+ if ( iWmWidgetOrder == 0 ) User::Leave( KErrArgument );
+ TInt ret = KErrNone;
+ delete iWmWidgetOrder;
+ iWmWidgetOrder = 0;
+ _RETURN("WidgetOrderDeleteL End", ret);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::WidgetOrderLoadL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::WidgetOrderLoadL( CStifItemParser& /*aItem*/ )
+ {
+ if ( iWmWidgetOrder == 0 ) User::Leave( KErrArgument );
+ TInt ret = KErrNone;
+ _CLEANUPCHECK_BEGIN
+ iWmWidgetOrder->LoadL();
+ _CLEANUPCHECK_END
+ _RETURN("WidgetOrderLoadL End", ret);
+ }
+
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::WidgetOrderSaveL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::WidgetOrderSaveL( CStifItemParser& /*aItem*/ )
+ {
+ if ( iWmWidgetOrder == 0 ) User::Leave( KErrArgument );
+ TInt ret = KErrNone;
+
+ _CLEANUPCHECK_BEGIN
+ RWidgetDataValues array;
+ CleanupClosePushL( array );
+ CreateWidgetDataArrayL( array, iMass );
+ iWmWidgetOrder->StoreL( array );
+ array.ResetAndDestroy();
+ CleanupStack::Pop( &array );
+ _CLEANUPCHECK_END
+
+ _RETURN("WidgetOrderSaveL End", ret);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::WidgetOrderCheckIsEmptyL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::WidgetOrderCheckIsEmptyL( CStifItemParser& aItem )
+ {
+ if ( iWmWidgetOrder == 0 ) User::Leave( KErrArgument );
+ TInt ret = KErrNone;
+ TInt expectedResult;
+ aItem.GetNextInt( expectedResult );
+
+ if ( iWmWidgetOrder->IsEmpty() && !expectedResult )
+ ret = KErrGeneral;
+ if ( !iWmWidgetOrder->IsEmpty() && expectedResult )
+ ret = KErrGeneral;
+
+ _RETURN("WidgetOrderCheckIsEmptyL End", ret);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::WidgetOrderUseL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::WidgetOrderUseL( CStifItemParser& /*aItem*/ )
+ {
+ if ( iWmWidgetOrder == 0 ) User::Leave( KErrArgument );
+ TInt ret = KErrNone;
+
+ _CLEANUPCHECK_BEGIN
+ // test IndexOf
+ RWidgetDataValues array;
+ CreateWidgetDataArrayL( array, iMass );
+ for( TInt i=0; i<array.Count() && ret==KErrNone; ++i )
+ {
+ TInt index = iWmWidgetOrder->IndexOf( *array[i] );
+ if ( index < KErrNotFound || index >= array.Count() )
+ ret = KErrUnknown; // illegal index
+ }
+ array.ResetAndDestroy();
+ _CLEANUPCHECK_END
+
+ _RETURN("WidgetOrderUseL End", ret);
+ }
+
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::CreateWidgetDataArrayL
+// -----------------------------------------------------------------------------
+//
+void CWmUnitTest::CreateWidgetDataArrayL( RWidgetDataValues& aArray, TInt aCount )
+ {
+ // first create an array of content info classes
+ CHsContentInfoArray* contentArray = CHsContentInfoArray::NewL();
+ CleanupStack::PushL( contentArray );
+ CreateContentInfoArrayL( *contentArray, aCount );
+ // connect to widget registry
+ RWidgetRegistryClientSession registryClient;
+ User::LeaveIfError( registryClient.Connect() );
+ CleanupClosePushL( registryClient );
+
+ while( contentArray->Array().Count() > 0 )
+ {
+ CWmWidgetData* data = CWmWidgetData::NewL(
+ contentArray->Array()[0], ®istryClient);
+ contentArray->Array().Remove( 0 );
+ CleanupStack::PushL( data );
+ aArray.AppendL( data );
+ CleanupStack::Pop( data );
+ }
+
+ registryClient.Disconnect();
+ CleanupStack::PopAndDestroy( ®istryClient );
+ CleanupStack::PopAndDestroy( contentArray );
+ }
+
+
+// End of File
--- a/idlehomescreen/xmluicontroller/inc/contentpublisher.h Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluicontroller/inc/contentpublisher.h Thu Jan 07 12:39:41 2010 +0200
@@ -28,7 +28,7 @@
#define CONTENTPUBLISHER_H
#include <e32base.h>
-#include <LiwCommon.h>
+#include <liwcommon.h>
// FORWARD DECLARATIONS
class CLiwGenericParamList;
--- a/idlehomescreen/xmluicontroller/src/aieventhandler.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluicontroller/src/aieventhandler.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -15,9 +15,9 @@
*
*/
-#include <LiwServiceHandler.h>
-#include <LiwVariant.h>
-#include <LiwCommon.h>
+#include <liwservicehandler.h>
+#include <liwvariant.h>
+#include <liwcommon.h>
#include <UikonInternalPSKeys.h>
#include <e32property.h>
--- a/idlehomescreen/xmluicontroller/src/contentpublisher.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluicontroller/src/contentpublisher.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -18,9 +18,9 @@
#include "contentpublisher.h"
#include "globalqueryhandler.h"
-#include <LiwServiceHandler.h>
-#include <LiwVariant.h>
-#include <LiwGenericParam.h>
+#include <liwservicehandler.h>
+#include <liwvariant.h>
+#include <liwgenericparam.h>
#include <AknQueryDialog.h>
#include <ai3xmlui.rsg>
#include "xmluicontroller.h"
--- a/idlehomescreen/xmluicontroller/src/onlineofflinehelper.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluicontroller/src/onlineofflinehelper.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -273,7 +273,7 @@
// Show roaming notification
CAknGlobalNote* note = CAknGlobalNote::NewLC();
HBufC* msg( StringLoader::LoadLC( R_QTN_HS_AUTOMATIC_OFFLINE ) );
-
+ note->SetSoftkeys(R_AVKON_SOFTKEYS_OK_EMPTY);
note->ShowNoteL( EAknGlobalInformationNote, *msg );
CleanupStack::PopAndDestroy( 2, note ); // msg
}
--- a/idlehomescreen/xmluirendering/renderingplugins/extrenderingplugin/src/xnextrenderingpluginadapter.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluirendering/renderingplugins/extrenderingplugin/src/xnextrenderingpluginadapter.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -22,9 +22,6 @@
// Local constants
-// TODO: Content controller ECom interface UID
-const TUid KInterfaceUidContentController = { 0x20026F51 };
-
// ======== MEMBER FUNCTIONS ========
// ----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/renderingplugins/xnmenufactory/src/xnmenu.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnmenufactory/src/xnmenu.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -96,7 +96,6 @@
adapter->SetSoftKeyImageL( aBitmap, aMask, aPos, aNode, aPreserveAspectRatio, aInvertMask, aTransferOwnership );
}
-#if 0 // MSK icon
// -----------------------------------------------------------------------------
// CXnMenu::SetSoftKeyImageL
//
@@ -111,7 +110,6 @@
CXnMenuAdapter* adapter = static_cast< CXnMenuAdapter* >( ControlAdapter() );
adapter->SetSoftKeyImageL( aId, aBmpFile, aBmp, aBmpM, aPos, aEnable );
}
-#endif // MSK icon
// -----------------------------------------------------------------------------
// CXnMenu::SetSoftKeyTextL
--- a/idlehomescreen/xmluirendering/renderingplugins/xnmenufactory/src/xnmenuadapter.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnmenufactory/src/xnmenuadapter.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -71,8 +71,6 @@
const TInt KXnMenuArrayGranularity = 6;
const TInt KWideScreenWidth = 640;
-_LIT( KMskIconDialer, "#dialer");
-
using namespace XnPropertyNames;
static CXnNodePluginIf* FindChildL(CXnNodePluginIf& aNode,
@@ -93,14 +91,11 @@
iPreserveAspectRatio( EFalse ),
iUpdateAppearance( ETrue ),
iOwnBitmaps( ETrue ),
- iDefault( EFalse )
-#if 0 // MSK icon change
- ,
+ iDefault( EFalse ),
iId( KAknsIIDQsnIconColors ),
iBmpFile( NULL ),
iBmp( 0 ),
iBmpM( 0 )
-#endif // MSK icon change
{
}
@@ -129,10 +124,8 @@
iImageOn = EFalse;
iInvertMask = EFalse;
iPreserveAspectRatio = EFalse;
-#if 0 // MSK icon change
delete iBmpFile;
iBmpFile = NULL;
-#endif // MSK icon change
}
CXnNodePluginIf* iNode;
@@ -147,12 +140,10 @@
TBool iUpdateAppearance;
TBool iOwnBitmaps;
TBool iDefault;
-#if 0 // MSK icon change
TAknsItemID iId;
HBufC* iBmpFile;
TInt32 iBmp;
TInt32 iBmpM;
-#endif // MSK icon change
};
@@ -1104,7 +1095,6 @@
//
void CXnMenuAdapter::SetSoftkeyAppearanceL( CXnSoftkeyItem& aItem )
{
-#if 0 // MSK icon change
if( IsNodeVisibleL( *aItem.iNode) )
{
if( aItem.iImageOn )
@@ -1129,54 +1119,6 @@
}
}
}
-#else // MSK icon change
- if( IsNodeVisibleL( *aItem.iNode) )
- {
- if( aItem.iPosition == CEikButtonGroupContainer::ELeftSoftkeyPosition
- || aItem.iPosition == CEikButtonGroupContainer::ERightSoftkeyPosition)
- {
- if(aItem.iImageOn)
- {
- ChangeSoftkeyImageL(aItem);
- }
- else if(aItem.iLabel)// change label
- {
- TBool left(EFalse);
- if(aItem.iPosition == CEikButtonGroupContainer::ELeftSoftkeyPosition)
- {
- left = ETrue;
- }
- EikSoftkeyImage::SetLabel( iContainer,left );
- iContainer->SetCommandL( aItem.iPosition, aItem.iCommandId, *aItem.iLabel );
-
- }
-
- }
- else if(aItem.iPosition == CEikButtonGroupContainer::EMiddleSoftkeyPosition)
- {
- if( aItem.iLabel )
- {
- // Msk will have predefined image based on command id
- if( *aItem.iLabel == menu::KMSKDotImage16 )
- {
- aItem.iCommandId = KCBACommandFirst;
- }
- else if(*aItem.iLabel == KMskIconDialer)
- {
-#ifndef _AVKON_CBA_LSC
- aItem.iCommandId = EAknSoftkeyDialler;
-#endif
- }
- else
- {
- aItem.iCommandId = KCBACommandMiddle;
- }
- iContainer->SetCommandL( aItem.iPosition, aItem.iCommandId, *aItem.iLabel );
- }
- }
- }
- }
-#endif // MSK icon change
// -----------------------------------------------------------------------------
// CXnMenuAdapter::InitSoftkeyItemsL
@@ -1220,13 +1162,11 @@
// No layout calulations needed
node->SetLayoutCapable( EFalse );
-#if 0 // MSK icon change
if ( aItem.iPosition == CEikButtonGroupContainer::EMiddleSoftkeyPosition )
{
aItem.iImageOn = ETrue;
return;
}
-#endif // MSK icon change
CXnProperty* pathProp( node->PathL() );
if( pathProp )
@@ -1778,6 +1718,9 @@
//
void CXnMenuAdapter::SetContainerL( CEikButtonGroupContainer& aContainer )
{
+
+ User::LeaveIfNull( &aContainer );
+
TBool updateNeeded( EFalse );
TInt statusPaneId( iAvkonAppUi->StatusPane()->CurrentLayoutResId() );
@@ -1985,7 +1928,6 @@
}
}
-#if 0 // MSK icon change
// -----------------------------------------------------------------------------
// CXnMenuAdapter::SetSoftKeyImageL
//
@@ -2039,7 +1981,6 @@
softkey->iNode->SetDirtyL();
}
}
-#endif // MSK icon change
// -----------------------------------------------------------------------------
// CXnMenuAdapter::SetSoftKeyTextL
@@ -2422,11 +2363,9 @@
//
void CXnMenuAdapter::ChangeSoftkeyImageL(const CXnSoftkeyItem& aSoftkey)
{
-#if 0 // MSK icon change
if ( aSoftkey.iPosition == CEikButtonGroupContainer::ELeftSoftkeyPosition ||
aSoftkey.iPosition == CEikButtonGroupContainer::ERightSoftkeyPosition )
{
-#endif // MSK icon change
TSize size;
if(AknLayoutUtils::PenEnabled())
{
@@ -2444,8 +2383,7 @@
{
left = EFalse;
}
- EikSoftkeyImage::SetImage( iContainer, *image, left );
-#if 0 // MSK icon change
+ EikSoftkeyImage::SetImage( iContainer, *image, left );
}
else if ( aSoftkey.iBmpFile )
{
@@ -2460,7 +2398,6 @@
ETrue );
cba->DrawNow();
}
-#endif // MSK icon change
}
// ---------------------------------------------------------------------------
@@ -2626,17 +2563,11 @@
softkey->iImageOn = EFalse;
softkey->iLabel = FindSoftkeyLabelL(aNode);
}
-#if 0 // MSK icon change
else
{
InitSoftkeyItemImageL( *softkey );
}
-#else // MSK icon change
- else if(softkey->iPosition != CEikButtonGroupContainer::EMiddleSoftkeyPosition)
- { // we can't set own image to middle softkey
- InitSoftkeyItemImageL( *softkey );
- }
-#endif // MSK icon change
+
softkey->iUpdateAppearance = ETrue;
iSoftkeyItems.AppendL(softkey);
CleanupStack::Pop(softkey);
--- a/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewstickercontrol.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewstickercontrol.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -422,7 +422,7 @@
//
const TDesC& CXnNewstickerControl::Title(TInt aIndex)
{
- if (aIndex < 0 || aIndex > iTitles.Count())
+ if (aIndex < 0 || aIndex >= iTitles.Count())
{
return KNullDesC;
}
@@ -513,6 +513,11 @@
//
const TDesC8& CXnNewstickerControl::CurrentSvgTitle()
{
+ if ( iFirstDrawingTitleIndex < 0 || iFirstDrawingTitleIndex >= iTitles.Count() )
+ {
+ return KNullDesC8;
+ }
+
CTitleData* title = iTitles[iFirstDrawingTitleIndex];
// Is it SVG title
if (title->IsSvgTitle())
@@ -787,7 +792,7 @@
return;
}
iFirstDrawingTitleIndex = GetNextTitleWithContent( iFirstDrawingTitleIndex );
- if ( iFirstDrawingTitleIndex < 0 )
+ if ( iFirstDrawingTitleIndex < 0 || iFirstDrawingTitleIndex >= iTitles.Count() )
{
return;
}
@@ -938,6 +943,10 @@
{
return;
}
+ if ( iFirstDrawingTitleIndex < 0 || iFirstDrawingTitleIndex >= iTitles.Count() )
+ {
+ return;
+ }
if (iTitles[iFirstDrawingTitleIndex]->IsSvgTitle())
{
// Show SVG title
@@ -1086,7 +1095,8 @@
void CXnNewstickerControl::DoScrollL()
{
// If there are no titles, don't do anything.
- if( !IsVisibleTitles() || iFirstDrawingTitleIndex < 0 )
+ if( !IsVisibleTitles() || iFirstDrawingTitleIndex < 0 ||
+ iFirstDrawingTitleIndex >= iTitles.Count() )
{
return;
}
@@ -1317,7 +1327,7 @@
const TInt count = iTitles.Count();
TInt textWidth=0;
const TInt rectWidth = iContentRect.Width();
- if( iCurrentTitleIndex < count )
+ if( iCurrentTitleIndex >= 0 && iCurrentTitleIndex < count )
{
textWidth = iTitles[iCurrentTitleIndex]->TitleTextLengthInPixels();
}
--- a/idlehomescreen/xmluirendering/renderingplugins/xnnppluginfactory/inc/xnnpplugincontroladapter.h Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnnppluginfactory/inc/xnnpplugincontroladapter.h Thu Jan 07 12:39:41 2010 +0200
@@ -21,7 +21,7 @@
#define CPLUGINCONTROLADAPTER_H
// INCLUDES
-#include <PluginAdapterInterface.h>
+#include <pluginadapterinterface.h>
// CLASS DECLARATION
--- a/idlehomescreen/xmluirendering/renderingplugins/xnnppluginfactory/src/xnnppluginhandler.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnnppluginfactory/src/xnnppluginhandler.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -20,7 +20,7 @@
// INCLUDE FILES
#include "xnnppluginhandler.h"
#include <ecom/implementationinformation.h>
-#include <CEcomBrowserPluginInterface.h>
+#include <cecombrowserplugininterface.h>
// ============================= LOCAL FUNCTIONS ===============================
--- a/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditorpublisher.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditorpublisher.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -18,9 +18,9 @@
#include "xntexteditorpublisher.h"
#include "xntexteditoradapter.h"
-#include <LiwServiceHandler.h>
-#include <LiwVariant.h>
-#include <LiwGenericParam.h>
+#include <liwservicehandler.h>
+#include <liwvariant.h>
+#include <liwgenericparam.h>
#include <eikedwin.h>
#include <eikedwin.h>
#include <utf.h>
--- a/idlehomescreen/xmluirendering/renderingplugins/xnvolumecontrolfactory/src/xnvolumecontroladapter.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnvolumecontrolfactory/src/xnvolumecontroladapter.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -214,10 +214,24 @@
void CXnVolumeControlAdapter::GetRangeL( TInt& aMinimumValue, TInt& aMaximumValue )
{
CXnProperty* minRange = iNode.GetPropertyL( XnPropertyNames::volumecontrol::KMinRange );
- aMinimumValue = static_cast<TInt>( minRange->FloatValueL() );
+ if ( minRange )
+ {
+ aMinimumValue = static_cast<TInt>( minRange->FloatValueL() );
+ }
+ else
+ {
+ aMinimumValue = 1;
+ }
CXnProperty* maxRange = iNode.GetPropertyL( XnPropertyNames::volumecontrol::KMaxRange );
- aMaximumValue = static_cast<TInt>( maxRange->FloatValueL() );
+ if ( maxRange )
+ {
+ aMaximumValue = static_cast<TInt>( maxRange->FloatValueL() );
+ }
+ else
+ {
+ aMaximumValue = aMinimumValue;
+ }
}
// -----------------------------------------------------------------------------
@@ -517,7 +531,12 @@
TInt CXnVolumeControlAdapter::GetCurrentValueL()
{
CXnProperty* valueProperty = iNode.GetPropertyL( XnPropertyNames::action::KValue );
- return static_cast<TInt>( valueProperty->FloatValueL() );
+ TInt retVal( 1 );
+ if ( valueProperty )
+ {
+ retVal = static_cast<TInt>( valueProperty->FloatValueL() );
+ }
+ return retVal;
}
// ----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/inc/xneditor.h Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xneditor.h Thu Jan 07 12:39:41 2010 +0200
@@ -37,6 +37,7 @@
class CAknListQueryDialog;
class CXnViewManager;
class CXnViewData;
+class CRepository;
namespace hspswrapper
{
@@ -185,6 +186,14 @@
*/
CHspsWrapper& HspsWrapper() const;
+ /**
+ * Retrives Id read from central repository.
+ *
+ * @since S60 5.0
+ * @return sucess or failure standard error code
+ */
+ TInt IdFromCrep ( TDes8& aUid ) const;
+
private:
// from MHsContentController
@@ -296,6 +305,8 @@
CXnNode* iTargetPlugin;
/** Widgets visibility state */
TBool iWidgetsVisibilityState;
+ /** Central repository , to choose plugin, owned*/
+ CRepository* iRepository;
};
#endif // C_XNEDITOR_H
--- a/idlehomescreen/xmluirendering/uiengine/inc/xneffectmanager.h Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xneffectmanager.h Thu Jan 07 12:39:41 2010 +0200
@@ -94,14 +94,16 @@
/**
* Starts fullscreen effect.
* @param aEffect effect data
+ * @return ETrue if effect started, otherwise EFalse
*/
- void DoBeginFullscreenEffect( TXnEffect& aEffect );
+ TBool DoBeginFullscreenEffect( TXnEffect& aEffect );
/**
* Starts control effect.
* @param aEffect effect data
+ * @return ETrue if effect started, otherwise EFalse
*/
- void DoBeginControlEffect( TXnEffect& aEffect );
+ TBool DoBeginControlEffect( TXnEffect& aEffect );
/**
* Removes and destroys effect from effect list.
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnplugindefs.h Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnplugindefs.h Thu Jan 07 12:39:41 2010 +0200
@@ -67,7 +67,7 @@
_LIT8( KDummy8, "empty" );
// CPS constants
-_LIT( KTemplatedWidget, "ai3templatedwidget" );
+_LIT( KWRTTemplate, "ai3templatedwidget" );
_LIT( KPublisher16, "publisher" );
_LIT8( KPublisher, "publisher" );
_LIT8( KContentType, "content_type" );
@@ -93,6 +93,5 @@
_LIT8( KWallpaper, "wallpaper" );
_LIT8( KPath, "path" );
-_LIT8( KWRTTemplate, "ai3templatedwidget");
#endif /* _XNPLUGINDEFS_H_ */
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnscrollablecontroladapter.h Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnscrollablecontroladapter.h Thu Jan 07 12:39:41 2010 +0200
@@ -18,24 +18,25 @@
#ifndef __XNSCROLLABLECONTROLADAPTER_H__
#define __XNSCROLLABLECONTROLADAPTER_H__
-// INCLUDES
-#include "xncontroladapter.h"
+// System includes
#include <e32base.h>
+#include <coeccntx.h>
#include <aknphysicsobserveriface.h>
-#include <coeccntx.h>
-// FORWARD DECLARATIONS
+// User includes
+#include "xncontroladapter.h"
+
+// Forward declarations
class CXnNodePluginIf;
class CXnUiEngine;
class CXnNode;
class CAknPhysics;
-
-// CLASS DECLARATION
+// Class declaration
/**
* @ingroup group_xnlayoutengine
-* Popup Control adapter interface class
+* Scrollable Control adapter interface class
* @lib xnlayoutengine.lib
* @since Series 60 5.0
*/
@@ -224,6 +225,11 @@
* True, if layout has been changed and engine needs to be reset.
*/
TBool iLayoutChanged;
+
+ /**
+ * Direction
+ */
+ TInt iDirection;
};
#endif // __XNSCROLLABLECONTROLADAPTER_H__
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnwidgetextensionadapter.h Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnwidgetextensionadapter.h Thu Jan 07 12:39:41 2010 +0200
@@ -22,8 +22,6 @@
#include "xncontroladapter.h"
#include <e32base.h>
-#include "xncontroladapter.h"
-
// Forward declarations
class CXnAppUiAdapter;
class CXnNode;
--- a/idlehomescreen/xmluirendering/uiengine/src/xncontroladapterimpl.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xncontroladapterimpl.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -3064,10 +3064,15 @@
CFbsBitmap* returnValue = NULL;
CFbsBitmap* bitmapMask = NULL;
+ if ( !pathProperty )
+ {
+ return NULL;
+ }
+
CXnDomList& propertyValueList = pathProperty->Property()->PropertyValueList();
TInt count = propertyValueList.Length();
- for ( TInt i = 0; i < propertyValueList.Length(); ++i )
+ for ( TInt i = 0; i < count; ++i )
{
CXnDomPropertyValue* value = static_cast< CXnDomPropertyValue* >(
propertyValueList.Item( i ) );
@@ -3093,53 +3098,56 @@
}
else if ( value->PrimitiveValueType() == CXnDomPropertyValue::EPercentage )
{
- CXnDomPropertyValue* tmpValue = NULL;
- tmpValue = value->CloneL();
- CXnProperty* tmpProperty = NULL;
- CleanupStack::PushL( tmpValue );
- tmpProperty = CXnProperty::NewL(
- KNullDesC8,
- tmpValue,
- aNode.UiEngine()->ODT()->DomDocument().StringPool() );
- CleanupStack::Pop( tmpValue );
- TSize imageSize = returnValue->SizeInPixels();
- CleanupStack::PushL( tmpProperty );
- TInt intValue = static_cast< TInt >( value->FloatValueL() );
- TInt dividerValue = 0;
-
- switch ( i )
+ if ( returnValue )
{
- case 1:
+ CXnDomPropertyValue* tmpValue = NULL;
+ tmpValue = value->CloneL();
+ CXnProperty* tmpProperty = NULL;
+ CleanupStack::PushL( tmpValue );
+ tmpProperty = CXnProperty::NewL(
+ KNullDesC8,
+ tmpValue,
+ aNode.UiEngine()->ODT()->DomDocument().StringPool() );
+ CleanupStack::Pop( tmpValue );
+ TSize imageSize = returnValue->SizeInPixels();
+ CleanupStack::PushL( tmpProperty );
+ TInt intValue = static_cast< TInt >( value->FloatValueL() );
+ TInt dividerValue = 0;
+
+ switch ( i )
{
- dividerValue = aNode.UiEngine()->VerticalPixelValueL(
- tmpProperty, imageSize.iHeight );
- aBorderBitmapDividerTop = dividerValue;
- break;
+ case 1:
+ {
+ dividerValue = aNode.UiEngine()->VerticalPixelValueL(
+ tmpProperty, imageSize.iHeight );
+ aBorderBitmapDividerTop = dividerValue;
+ break;
+ }
+ case 2:
+ {
+ dividerValue = aNode.UiEngine()->HorizontalPixelValueL(
+ tmpProperty, imageSize.iWidth );
+ aBorderBitmapDividerRight = dividerValue;
+ break;
+ }
+ case 3:
+ {
+ dividerValue = aNode.UiEngine()->VerticalPixelValueL(
+ tmpProperty, imageSize.iHeight );
+ aBorderBitmapDividerBottom = dividerValue;
+ break;
+ }
+ case 4:
+ {
+ dividerValue = aNode.UiEngine()->HorizontalPixelValueL(
+ tmpProperty, imageSize.iWidth );
+ aBorderBitmapDividerLeft = dividerValue;
+ break;
+ }
}
- case 2:
- {
- dividerValue = aNode.UiEngine()->HorizontalPixelValueL(
- tmpProperty, imageSize.iWidth );
- aBorderBitmapDividerRight = dividerValue;
- break;
- }
- case 3:
- {
- dividerValue = aNode.UiEngine()->VerticalPixelValueL(
- tmpProperty, imageSize.iHeight );
- aBorderBitmapDividerBottom = dividerValue;
- break;
- }
- case 4:
- {
- dividerValue = aNode.UiEngine()->HorizontalPixelValueL(
- tmpProperty, imageSize.iWidth );
- aBorderBitmapDividerLeft = dividerValue;
- break;
- }
+
+ CleanupStack::PopAndDestroy( tmpProperty );
}
-
- CleanupStack::PopAndDestroy( tmpProperty );
}
else if ( value->PrimitiveValueType() == CXnDomPropertyValue::EString ||
value->PrimitiveValueType() == CXnDomPropertyValue::EIdent )
--- a/idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -28,6 +28,7 @@
#include <xnuiengine.rsg>
#include <hscontentcontrolui.h>
#include <hscontentcontrol.h>
+#include <activeidle2domaincrkeys.h>
// User includes
#include "xnuiengine.h"
@@ -80,12 +81,14 @@
_LIT8( KSingle, "single" );
_LIT8( KMulti, "multi" );
-_LIT8( KWMUi, "WmContentControlUI" );
const TInt32 KMultiInstanceUnlimitedValue = -1;
-const TInt32 KMultiInstanceHiddenValue = 0;
const TUid KDummyUid = { 0x0000000 };
+
+const TUint32 KAICCPluginUIDKey = 0x00003010;
+const TInt32 KOpaQDataLen = 10;
+
enum
{
ECanBeAdded = 0x01,
@@ -307,6 +310,7 @@
{
iCpsWrapper = CCpsWrapper::NewL( *this );
iHspsWrapper = CHspsWrapper::NewL( aUid, this );
+ iRepository= CRepository::NewL( TUid::Uid( KCRUidActiveIdleLV ) );
}
// ---------------------------------------------------------------------------
@@ -320,6 +324,7 @@
delete iCpsWrapper;
delete iHspsWrapper;
delete iPublisherMap;
+ delete iRepository;
}
// -----------------------------------------------------------------------------
@@ -617,14 +622,26 @@
}
// ---------------------------------------------------------------------------
+// CXnEditor::IdFromCrep
+// ---------------------------------------------------------------------------
+//
+TInt CXnEditor::IdFromCrep (TDes8& aUid) const
+ {
+ return iRepository->Get( KAICCPluginUIDKey, aUid );
+ }
+
// CXnEditor::AddWidgetL
// ---------------------------------------------------------------------------
//
void CXnEditor::AddWidgetL()
{
- MHsContentControlUi* ui(
- iViewManager.AppUiAdapter().HsContentController( KWMUi ) );
-
+ TBuf8<KOpaQDataLen> oPaqDataStr;
+
+ MHsContentControlUi* ui( NULL );
+ if ( IdFromCrep ( oPaqDataStr ) == KErrNone )
+ {
+ ui = iViewManager.AppUiAdapter().HsContentController( oPaqDataStr );
+ }
if( ui )
{
ui->SetContentController( this );
@@ -1517,9 +1534,13 @@
//
void CXnEditor::WidgetListChanged()
{
- MHsContentControlUi* ui(
- iViewManager.AppUiAdapter().HsContentController( KWMUi ) );
-
+ TBuf8<KOpaQDataLen> oPaqDataStr;
+
+ MHsContentControlUi* ui( NULL );
+ if ( IdFromCrep ( oPaqDataStr ) == KErrNone )
+ {
+ ui = iViewManager.AppUiAdapter().HsContentController( oPaqDataStr );
+ }
if( ui )
{
ui->NotifyWidgetListChanged();
@@ -1537,9 +1558,13 @@
//
void CXnEditor::ViewListChanged()
{
- MHsContentControlUi* ui(
- iViewManager.AppUiAdapter().HsContentController( KWMUi ) );
-
+ TBuf8<KOpaQDataLen> oPaqDataStr;
+
+ MHsContentControlUi* ui( NULL );
+ if ( IdFromCrep ( oPaqDataStr ) == KErrNone )
+ {
+ ui = iViewManager.AppUiAdapter().HsContentController( oPaqDataStr );
+ }
if( ui )
{
ui->NotifyViewListChanged();
--- a/idlehomescreen/xmluirendering/uiengine/src/xneffectmanager.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xneffectmanager.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -156,7 +156,6 @@
{
for ( TInt i = 0; i < iEffects.Count(); )
{
- TInt count = iEffects.Count(); // for debugging
TXnEffect* effect = iEffects[i];
if ( effect && effect->iState == KEffectStarted )
{
@@ -183,9 +182,9 @@
//
void CXnEffectManager::UiLayouted()
{
- TInt count = iEffects.Count();
- for ( TInt i = 0; i < count; i++ )
+ for ( TInt i = 0; i < iEffects.Count(); )
{
+ TBool effectStarted = ETrue;
TXnEffect* effect = iEffects[i];
if ( effect && effect->iNode &&
effect->iState == KWaitForLayout &&
@@ -193,13 +192,23 @@
{
if ( effect->iType == KEffectTypeFullscreen )
{
- DoBeginFullscreenEffect( *effect );
+ effectStarted = DoBeginFullscreenEffect( *effect );
}
else if ( effect->iType == KEffectTypeControl )
{
- DoBeginControlEffect( *effect );
+ effectStarted = DoBeginControlEffect( *effect );
}
}
+
+ if ( effectStarted )
+ {
+ i++;
+ }
+ else
+ {
+ // effect cannot be started, remove it
+ RemoveEffect( effect );
+ }
}
}
@@ -207,7 +216,7 @@
// CXnEffectManager::DoBeginFullscreenEffect
// -----------------------------------------------------------------------------
//
-void CXnEffectManager::DoBeginFullscreenEffect( TXnEffect& aEffect )
+TBool CXnEffectManager::DoBeginFullscreenEffect( TXnEffect& aEffect )
{
CCoeEnv* coe( CCoeEnv::Static() );
@@ -215,8 +224,7 @@
coe->RootWin().Identifier() )
{
// Window group is not focused
- RemoveEffect( &aEffect );
- return;
+ return EFalse;
}
const TInt flags( AknTransEffect::TParameter::EActivateExplicitCancel );
@@ -228,22 +236,23 @@
targetAppUid, flags ) );
aEffect.iState = KEffectStarted;
+ return ETrue;
}
// -----------------------------------------------------------------------------
// CXnEffectManager::DoBeginControlEffect
// -----------------------------------------------------------------------------
//
-void CXnEffectManager::DoBeginControlEffect( TXnEffect& aEffect )
+TBool CXnEffectManager::DoBeginControlEffect( TXnEffect& aEffect )
{
+ TBool ret = EFalse;
CCoeEnv* coe( CCoeEnv::Static() );
if ( coe->WsSession().GetFocusWindowGroup() !=
coe->RootWin().Identifier() )
{
// Window group is not focused
- RemoveEffect( &aEffect );
- return;
+ return ret;
}
// Set effect begin point
@@ -251,11 +260,10 @@
{
GfxTransEffect::Begin( aEffect.iNode->Control() , aEffect.iId );
aEffect.iState = KEffectStarted;
+ ret = ETrue;
}
- else
- {
- RemoveEffect( &aEffect );
- }
+
+ return ret;
}
// -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnkeyeventdispatcher.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnkeyeventdispatcher.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -596,28 +596,8 @@
// -----------------------------------------------------------------------------
//
void CXnKeyEventDispatcher::NotifyWidgetAdditionL(
- const CXnPluginData& aPluginData )
+ const CXnPluginData& /*aPluginData*/ )
{
- if ( aPluginData.Active() )
- {
- iUiEngine.AppUiAdapter().ShowFocus();
-
- RPointerArray< CXnNode > initial;
- CleanupClosePushL( initial );
-
- if ( iUiEngine.IsEditMode() )
- {
- initial.AppendL( aPluginData.Owner()->LayoutNode() );
- }
- else
- {
- aPluginData.InitialFocusNodesL( initial );
- }
-
- SetInitialFocusL( initial );
-
- CleanupStack::PopAndDestroy( &initial );
- }
}
// -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -2331,6 +2331,10 @@
attrs.FindByName( XnPropertyNames::action::KName ) );
CXnDomAttribute* valueAttribute = static_cast< CXnDomAttribute* >(
attrs.FindByName( XnPropertyNames::action::KValue ) );
+ if ( !nameAttribute || !valueAttribute )
+ {
+ continue;
+ }
if ( nameAttribute->Value() ==
XnPropertyNames::action::trigger::name::keyevent::KEventType )
{
@@ -2522,6 +2526,10 @@
attrs.FindByName( XnPropertyNames::action::KName ) );
CXnDomAttribute* valueAttribute = static_cast< CXnDomAttribute* >(
attrs.FindByName( XnPropertyNames::action::KValue ) );
+ if ( !nameAttribute || !valueAttribute )
+ {
+ continue;
+ }
if ( nameAttribute->Value() ==
XnPropertyNames::action::trigger::name::stylus::KStylusState )
{
@@ -2677,6 +2685,11 @@
CXnDomAttribute* valueAttribute = static_cast< CXnDomAttribute* >(
attrs.FindByName( XnPropertyNames::action::KValue ) );
+ if ( !nameAttribute || !valueAttribute )
+ {
+ return EFalse;
+ }
+
const TDesC8& name = nameAttribute->Value();
// check that eventype name matches
@@ -7520,17 +7533,7 @@
if ( popup )
{
- if ( aSource == XnEventSource::EStylus )
- {
- const TTimeIntervalMicroSeconds32 delay( 0 );
- const TTimeIntervalMicroSeconds32 display( 1000 * 1000 * 6 );
-
- popup->ShowPopupL( aRect, delay, display );
- }
- else
- {
- popup->ShowPopupL( aRect );
- }
+ popup->ShowPopupL( aRect );
}
}
}
--- a/idlehomescreen/xmluirendering/uiengine/src/xnscrollablecontroladapter.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnscrollablecontroladapter.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -36,6 +36,11 @@
_LIT8(KViewportWidth, "viewport-width");
_LIT8(KViewportTop, "viewport-top");
_LIT8(KViewportLeft, "viewport-left");
+_LIT8(KScrollDirection, "scroll-direction");
+_LIT8(KHorizontal, "horizontal");
+
+const TInt EVertical( 0 );
+const TInt EHorizontal( 1 );
// ============================ MEMBER FUNCTIONS ===============================
@@ -90,6 +95,16 @@
iUiEngine = iNode.Node().UiEngine();
iNode.Node().SetScrollableControl( this );
+
+ // Default
+ iDirection = EVertical;
+
+ CXnProperty* prop( iNode.GetPropertyL( KScrollDirection ) );
+
+ if ( prop && prop->StringValue() == KHorizontal )
+ {
+ iDirection = EHorizontal;
+ }
}
// -----------------------------------------------------------------------------
@@ -104,7 +119,9 @@
{
return;
}
- TPoint stylusPos = aPointerEvent.iPosition;
+
+ TPoint stylusPos( aPointerEvent.iPosition );
+
switch( aPointerEvent.iType )
{
case TPointerEvent::EButton1Down:
@@ -118,17 +135,20 @@
}
break;
case TPointerEvent::EButton1Up:
- {
- TInt distance = iStartPosition.iY - stylusPos.iY;
- TPoint drag( 0, distance );
- iPhysics->StartPhysics( drag, iStartTime );
+ {
+ TInt distanceY( iStartPosition.iY - stylusPos.iY );
+ TInt distanceX( iStartPosition.iX - stylusPos.iX );
+
+ TPoint drag( distanceX, distanceY );
+ iPhysics->StartPhysics( drag, iStartTime );
}
break;
case TPointerEvent::EDrag:
{
TPoint distanceFromStart( iStartPosition - stylusPos );
- if( Abs( distanceFromStart.iY ) > KOffset )
+ if( ( Abs( distanceFromStart.iY ) > KOffset && iDirection == EVertical ) ||
+ ( Abs( distanceFromStart.iX ) > KOffset && iDirection == EHorizontal ) )
{
CXnNode* focused( iUiEngine->FocusedNode() );
@@ -142,8 +162,12 @@
}
TInt deltaY( iStylusPosition.iY - stylusPos.iY );
+ TInt deltaX( iStylusPosition.iX - stylusPos.iX );
+
iStylusPosition = stylusPos;
- TPoint deltaPoint( 0, deltaY );
+
+ TPoint deltaPoint( deltaX, deltaY );
+
iPhysics->RegisterPanningPosition( deltaPoint );
}
break;
@@ -161,7 +185,7 @@
//
void CXnScrollableControlAdapter::Draw( const TRect& aRect ) const
{
- CXnControlAdapter::Draw( aRect );
+ CXnControlAdapter::Draw( aRect );
}
// -----------------------------------------------------------------------------
@@ -248,20 +272,44 @@
// -----------------------------------------------------------------------------
void CXnScrollableControlAdapter::ShowItem( CXnNode& aNode )
{
- TRect rect = aNode.MarginRect();
+ TRect rect( aNode.MarginRect() );
+
if( !iViewPort.Contains( rect.iTl ) || !iViewPort.Contains( rect.iBr ) )
{
- TInt delta( 0 );
- if( rect.iTl.iY < iViewPort.iTl.iY )
- {
- delta = rect.iTl.iY - iViewPort.iTl.iY;
+ if ( iDirection == EVertical )
+ {
+ TInt delta( 0 );
+
+ if( rect.iTl.iY < iViewPort.iTl.iY )
+ {
+ delta = rect.iTl.iY - iViewPort.iTl.iY;
+ }
+ else if( rect.iBr.iY > iViewPort.iBr.iY )
+ {
+ delta = rect.iBr.iY - iViewPort.iBr.iY;
+ }
+
+ TPoint newPosition( iPreviousPosition + TPoint( 0, delta ) );
+
+ ViewPositionChanged( newPosition, ETrue, 0 );
}
- else if( rect.iBr.iY > iViewPort.iBr.iY )
+ else
{
- delta = rect.iBr.iY - iViewPort.iBr.iY;
+ TInt delta( 0 );
+
+ if( rect.iTl.iX < iViewPort.iTl.iX )
+ {
+ delta = rect.iTl.iX - iViewPort.iTl.iX;
+ }
+ else if( rect.iBr.iX > iViewPort.iBr.iX )
+ {
+ delta = rect.iBr.iX - iViewPort.iBr.iX;
+ }
+
+ TPoint newPosition( iPreviousPosition + TPoint( delta, 0 ) );
+
+ ViewPositionChanged( newPosition, ETrue, 0 );
}
- TPoint newPosition = iPreviousPosition + TPoint( 0, delta );
- ViewPositionChanged( newPosition, ETrue, 0 );
}
}
@@ -286,7 +334,17 @@
void CXnScrollableControlAdapter::ViewPositionChanged(
const TPoint& aNewPosition, TBool aDrawNow, TUint /*aFlags*/ )
{
- TPoint diff = TPoint( 0, aNewPosition.iY - iPreviousPosition.iY );
+ TPoint diff;
+
+ if ( iDirection == EVertical )
+ {
+ diff = TPoint( 0, aNewPosition.iY - iPreviousPosition.iY );
+ }
+ else
+ {
+ diff = TPoint( aNewPosition.iX - iPreviousPosition.iX, 0 );
+ }
+
iPreviousPosition = aNewPosition;
iCurrentPosition += diff;
TPoint tmpPos = iNode.Control()->Position();
@@ -341,9 +399,21 @@
return;
}
TSize viewPortSize = iViewPort.Size();
- TSize totalSize( iNode.MarginRect().Size() );
- iPhysics->InitPhysicsL( totalSize, viewPortSize, EFalse );
- iCurrentPosition = TPoint( 0, viewPortSize.iHeight / 2 );
+ TSize totalSize( iNode.Rect().Size() );
+
+ if ( iDirection == EVertical )
+ {
+ iPhysics->InitPhysicsL( totalSize, viewPortSize, EFalse );
+ }
+ else
+ {
+ iPhysics->InitPhysicsL( totalSize, viewPortSize, ETrue );
+ }
+
+
+ iCurrentPosition =
+ TPoint( viewPortSize.iWidth / 2, viewPortSize.iHeight / 2 );
+
iPreviousPosition = iStartViewPosition = iCurrentPosition;
}
@@ -358,16 +428,18 @@
TInt top( 0 );
TInt left( 0 );
+ CXnNode& node( iNode.Node() );
+
// Width
CXnProperty* prop = iNode.GetPropertyL( KViewportWidth );
if( prop )
{
width = iUiEngine->HorizontalPixelValueL(
- prop, iNode.MarginRect().Width() );
+ prop, iNode.Rect().Width() );
}
if( width == 0 )
{
- width = iNode.MarginRect().Width();
+ width = node.Parent()->Rect().Width();
}
// Height
@@ -375,11 +447,11 @@
if( prop )
{
height = iUiEngine->VerticalPixelValueL(
- prop, iNode.MarginRect().Height() );
+ prop, iNode.Rect().Height() );
}
if( height == 0 )
{
- height = iNode.MarginRect().Height();
+ height = node.Parent()->Rect().Height();
}
// Top
@@ -387,7 +459,7 @@
if( prop )
{
top = iUiEngine->VerticalPixelValueL(
- prop, iNode.MarginRect().Height() );
+ prop, iNode.Rect().Height() );
}
// Left
@@ -395,10 +467,10 @@
if( prop )
{
left = iUiEngine->HorizontalPixelValueL(
- prop, iNode.MarginRect().Width() );
+ prop, iNode.Rect().Width() );
}
- iViewPort = TRect( iNode.MarginRect().iTl, TSize( width, height ) );
+ iViewPort = TRect( iNode.Rect().iTl, TSize( width, height ) );
iViewPort.Move( left, top );
}
--- a/idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -9247,111 +9247,115 @@
//
void CXnUiEngineImpl::AddToDirtyListL( CXnNode* aNode )
{
- CXnNode* nodeToRedrawList( aNode );
- CXnNode* nodeToDirtyList( aNode );
-
- if ( aNode == RootNode() )
- {
- // Force relayout and redraw from current view
- iDirtyList.Reset();
- iDirtyList.AppendL( iCurrentView );
- TXnDirtyRegion* dirtyRegion = FindDirtyRegionL( *iCurrentView );
- if( dirtyRegion )
- {
- dirtyRegion->iRegion.Clear();
- }
- iLayoutControl |= XnLayoutControl::EViewDirty;
- nodeToDirtyList = nodeToRedrawList = iCurrentView;
- nodeToDirtyList->ClearRenderedAndLaidOut();
-
- // Add to draw list for redraw
- AddToRedrawListL( nodeToRedrawList );
- }
- else
- {
- if ( !IsAbsoluteL( *aNode ) && !IsNodeTooltip( *aNode ) )
- {
- // Check adaptives in normal flow
- CXnNode* oldest( NULL );
- CXnNode* adaptive( aNode );
-
- if ( !aNode->IsAdaptive( ETrue ) )
- {
- adaptive = aNode->Parent();
- }
-
- for ( ; adaptive && adaptive->IsAdaptive( ETrue );
- adaptive = adaptive->Parent() )
- {
- oldest = adaptive;
- }
-
- // Now we have found the oldest adaptive node if present
- if ( oldest )
- {
- nodeToRedrawList = nodeToDirtyList = adaptive;
- }
- }
-
- RPointerArray< CXnNode > dirtyList;
- CleanupClosePushL( dirtyList );
- TInt count( iDirtyList.Count() );
- TBool found;
-
- // first, check that aNode's children are not in the dirty array
- for ( TInt i = 0; i < count; ++i )
- {
- found = EFalse;
- CXnNode* candidate( iDirtyList[i] );
-
- for ( CXnNode* node = candidate->Parent(); node && !found;
- node = node->Parent() )
- {
- if ( nodeToDirtyList == node )
- {
- found = ETrue;
- }
- }
-
- if ( !found )
- {
- // Put candidate back to list as child is not found
- dirtyList.AppendL( candidate );
- }
- }
-
- found = EFalse;
-
- // second, check that aNode's parent is not in dirty array
- for ( TInt i = 0; i < count && !found; ++i )
- {
- CXnNode* candidate( iDirtyList[i] );
-
- for ( CXnNode* node = nodeToDirtyList; node && !found;
- node = node->Parent() )
- {
- if ( node == candidate )
- {
- found = ETrue;
- }
- }
- }
-
- if ( !found && iDirtyList.Find( nodeToDirtyList ) == KErrNotFound )
- {
- // Add node to dirty list as parent is neither found
- dirtyList.AppendL( nodeToDirtyList );
+
+ if ( aNode )
+ {
+ CXnNode* nodeToRedrawList( aNode );
+ CXnNode* nodeToDirtyList( aNode );
+
+ if ( aNode == RootNode() )
+ {
+ // Force relayout and redraw from current view
+ iDirtyList.Reset();
+ iDirtyList.AppendL( iCurrentView );
+ TXnDirtyRegion* dirtyRegion = FindDirtyRegionL( *iCurrentView );
+ if( dirtyRegion )
+ {
+ dirtyRegion->iRegion.Clear();
+ }
+ iLayoutControl |= XnLayoutControl::EViewDirty;
+ nodeToDirtyList = nodeToRedrawList = iCurrentView;
nodeToDirtyList->ClearRenderedAndLaidOut();
-
+
// Add to draw list for redraw
AddToRedrawListL( nodeToRedrawList );
}
-
- // finally update the dirty list
- iDirtyList.Reset();
- iDirtyList = dirtyList;
-
- CleanupStack::Pop( &dirtyList );
+ else
+ {
+ if ( !IsAbsoluteL( *aNode ) && !IsNodeTooltip( *aNode ) )
+ {
+ // Check adaptives in normal flow
+ CXnNode* oldest( NULL );
+ CXnNode* adaptive( aNode );
+
+ if ( !aNode->IsAdaptive( ETrue ) )
+ {
+ adaptive = aNode->Parent();
+ }
+
+ for ( ; adaptive && adaptive->IsAdaptive( ETrue );
+ adaptive = adaptive->Parent() )
+ {
+ oldest = adaptive;
+ }
+
+ // Now we have found the oldest adaptive node if present
+ if ( oldest )
+ {
+ nodeToRedrawList = nodeToDirtyList = adaptive;
+ }
+ }
+
+ RPointerArray< CXnNode > dirtyList;
+ CleanupClosePushL( dirtyList );
+ TInt count( iDirtyList.Count() );
+ TBool found;
+
+ // first, check that aNode's children are not in the dirty array
+ for ( TInt i = 0; i < count; ++i )
+ {
+ found = EFalse;
+ CXnNode* candidate( iDirtyList[i] );
+
+ for ( CXnNode* node = candidate->Parent(); node && !found;
+ node = node->Parent() )
+ {
+ if ( nodeToDirtyList == node )
+ {
+ found = ETrue;
+ }
+ }
+
+ if ( !found )
+ {
+ // Put candidate back to list as child is not found
+ dirtyList.AppendL( candidate );
+ }
+ }
+
+ found = EFalse;
+
+ // second, check that aNode's parent is not in dirty array
+ for ( TInt i = 0; i < count && !found; ++i )
+ {
+ CXnNode* candidate( iDirtyList[i] );
+
+ for ( CXnNode* node = nodeToDirtyList; node && !found;
+ node = node->Parent() )
+ {
+ if ( node == candidate )
+ {
+ found = ETrue;
+ }
+ }
+ }
+
+ if ( !found && iDirtyList.Find( nodeToDirtyList ) == KErrNotFound )
+ {
+ // Add node to dirty list as parent is neither found
+ dirtyList.AppendL( nodeToDirtyList );
+ nodeToDirtyList->ClearRenderedAndLaidOut();
+
+ // Add to draw list for redraw
+ AddToRedrawListL( nodeToRedrawList );
+ }
+
+ // finally update the dirty list
+ iDirtyList.Reset();
+ iDirtyList = dirtyList;
+
+ CleanupStack::Pop( &dirtyList );
+ }
}
}
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -23,10 +23,7 @@
#include <xnuiengine.rsg>
#include <aknnotewrappers.h>
-#if 0 // MSK icon change
#include <AknsConstants.h>
-#include <avkon.mbg>
-#endif // MSK icon change
// User includes
#include "xnapplication.h"
@@ -56,9 +53,8 @@
// Constants
_LIT8( KEmptyWidgetUid, "0x2001f47f" );
-_LIT8( KViewSwitcherText, "switcher_text" );
_LIT8( KStateError, "Error" );
-_LIT8( KMax, "max" );
+
_LIT8( KTemplateViewUID, "0x20026f50" );
@@ -69,60 +65,9 @@
EViewIsValid,
};
-const TInt KMinPages = 1;
-
-#if 0 // MSK icon change
-
-const TInt KIconIds[] = {
- EMbmAvkonQgnQgn_home_page_11,
- EMbmAvkonQgnQgn_home_page_21,
- EMbmAvkonQgnQgn_home_page_22,
- EMbmAvkonQgnQgn_home_page_31,
- EMbmAvkonQgnQgn_home_page_32,
- EMbmAvkonQgnQgn_home_page_33,
- EMbmAvkonQgnQgn_home_page_41,
- EMbmAvkonQgnQgn_home_page_42,
- EMbmAvkonQgnQgn_home_page_43,
- EMbmAvkonQgnQgn_home_page_44,
- EMbmAvkonQgnQgn_home_page_51,
- EMbmAvkonQgnQgn_home_page_52,
- EMbmAvkonQgnQgn_home_page_53,
- EMbmAvkonQgnQgn_home_page_54,
- EMbmAvkonQgnQgn_home_page_55,
- EMbmAvkonQgnQgn_home_page_61,
- EMbmAvkonQgnQgn_home_page_62,
- EMbmAvkonQgnQgn_home_page_63,
- EMbmAvkonQgnQgn_home_page_64,
- EMbmAvkonQgnQgn_home_page_65,
- EMbmAvkonQgnQgn_home_page_66
- };
-
-const TInt KMaskIds[] = {
- EMbmAvkonQgnQgn_home_page_11_mask,
- EMbmAvkonQgnQgn_home_page_21_mask,
- EMbmAvkonQgnQgn_home_page_22_mask,
- EMbmAvkonQgnQgn_home_page_31_mask,
- EMbmAvkonQgnQgn_home_page_32_mask,
- EMbmAvkonQgnQgn_home_page_33_mask,
- EMbmAvkonQgnQgn_home_page_41_mask,
- EMbmAvkonQgnQgn_home_page_42_mask,
- EMbmAvkonQgnQgn_home_page_43_mask,
- EMbmAvkonQgnQgn_home_page_44_mask,
- EMbmAvkonQgnQgn_home_page_51_mask,
- EMbmAvkonQgnQgn_home_page_52_mask,
- EMbmAvkonQgnQgn_home_page_53_mask,
- EMbmAvkonQgnQgn_home_page_54_mask,
- EMbmAvkonQgnQgn_home_page_55_mask,
- EMbmAvkonQgnQgn_home_page_61_mask,
- EMbmAvkonQgnQgn_home_page_62_mask,
- EMbmAvkonQgnQgn_home_page_63_mask,
- EMbmAvkonQgnQgn_home_page_64_mask,
- EMbmAvkonQgnQgn_home_page_65_mask,
- EMbmAvkonQgnQgn_home_page_66_mask
- };
-
-const TAknsItemID KSkinIds[] = {
+/*
+const TAknsItemID KSkinIds[] = {
KAknsIIDQgnHomePage11,
KAknsIIDQgnHomePage21,
KAknsIIDQgnHomePage22,
@@ -144,10 +89,8 @@
KAknsIIDQgnHomePage64,
KAknsIIDQgnHomePage65,
KAknsIIDQgnHomePage66
- };
-
-#endif // MSK icon change
-
+ };
+*/
// ============================ LOCAL FUNCTIONS ===============================
@@ -227,6 +170,129 @@
CleanupStack::PopAndDestroy( 2, &nodes ); // &list
}
+// -----------------------------------------------------------------------------
+// resolveIconId
+// -----------------------------------------------------------------------------
+//
+static TAknsItemID ResolveIconId( TInt aIndex )
+ {
+ TAknsItemID ret( KAknsIIDNone );
+ switch( aIndex )
+ {
+ case 0:
+ {
+ ret = KAknsIIDQgnHomePage11;
+ }
+ break;
+ case 1:
+ {
+ ret = KAknsIIDQgnHomePage21;
+ }
+ break;
+ case 2:
+ {
+ ret = KAknsIIDQgnHomePage22;
+ }
+ break;
+ case 3:
+ {
+ ret = KAknsIIDQgnHomePage31;
+ }
+ break;
+ case 4:
+ {
+ ret = KAknsIIDQgnHomePage32;
+ }
+ break;
+ case 5:
+ {
+ ret = KAknsIIDQgnHomePage33;
+ }
+ break;
+ case 6:
+ {
+ ret = KAknsIIDQgnHomePage41;
+ }
+ break;
+ case 7:
+ {
+ ret = KAknsIIDQgnHomePage42;
+ }
+ break;
+ case 8:
+ {
+ ret = KAknsIIDQgnHomePage43;
+ }
+ break;
+ case 9:
+ {
+ ret = KAknsIIDQgnHomePage44;
+ }
+ break;
+ case 10:
+ {
+ ret = KAknsIIDQgnHomePage51;
+ }
+ break;
+ case 11:
+ {
+ ret = KAknsIIDQgnHomePage52;
+ }
+ break;
+ case 12:
+ {
+ ret = KAknsIIDQgnHomePage53;
+ }
+ break;
+ case 13:
+ {
+ ret = KAknsIIDQgnHomePage54;
+ }
+ break;
+ case 14:
+ {
+ ret = KAknsIIDQgnHomePage55;
+ }
+ break;
+ case 15:
+ {
+ ret = KAknsIIDQgnHomePage61;
+ }
+ break;
+ case 16:
+ {
+ ret = KAknsIIDQgnHomePage62;
+ }
+ break;
+ case 17:
+ {
+ ret = KAknsIIDQgnHomePage63;
+ }
+ break;
+ case 18:
+ {
+ ret = KAknsIIDQgnHomePage64;
+ }
+ break;
+ case 19:
+ {
+ ret = KAknsIIDQgnHomePage65;
+ }
+ break;
+ case 20:
+ {
+ ret = KAknsIIDQgnHomePage66;
+ }
+ break;
+ default:
+ {
+ }
+ break;
+ }
+
+ return ret;
+ }
+
// ============================ MEMBER FUNCTIONS ===============================
// -----------------------------------------------------------------------------
@@ -1597,7 +1663,7 @@
// -----------------------------------------------------------------------------
//
void CXnViewManager::UpdatePageManagementInformationL()
- {
+ {
// Update MSK info
// Obtain menu bar
CXnNode* menuBar( iUiEngine->MenuBarNode() );
@@ -1610,50 +1676,28 @@
if ( menuIf )
{
-#if 0 // MSK icon change
// Get count of views in array and index of actual view
TInt count( ViewAmount() );
TInt current( ViewIndex() + 1 );
// Update MSK icon
+ /*
TInt index = ResolveIconIndex( count, current );
menuIf->SetSoftKeyImageL( KSkinIds[index],
- AknIconUtils::AvkonIconFileName(),
- KIconIds[index],
- KMaskIds[index],
+ KNullDesC,
+ 0,
+ 0,
XnMenuInterface::MXnMenuInterface::ECenter,
ETrue );
-
-#else // MSK icon change
- // Get array of views
- RPointerArray< CXnPluginData >& views( iRootData->PluginData() );
- // Get count of views in array and index of actual view
- TInt count( views.Count() );
- TInt actual( views.Find( &ActiveViewData() ) + 1 );
-
- // Construct a text info
- _LIT( KSeparator, "/" );
- TBuf< 32 >info( KNullDesC );
-
- if ( AknLayoutUtils::LayoutMirrored() )
- {
- info.AppendNum( actual );
- info.Append( KSeparator );
- info.AppendNum( count );
- }
- else
- {
- info.AppendNum( actual );
- info.Append( KSeparator );
- info.AppendNum( count );
- }
-
- AknTextUtils::LanguageSpecificNumberConversion( info );
-
- // Update info
- menuIf->SetSoftKeyTextL( info,
- XnMenuInterface::MXnMenuInterface::ECenter );
-#endif // MSK icon change
+ */
+ TInt index = ResolveIconIndex( count, current );
+ TAknsItemID iconId = ResolveIconId( index );
+ menuIf->SetSoftKeyImageL( iconId,
+ KNullDesC,
+ 0,
+ 0,
+ XnMenuInterface::MXnMenuInterface::ECenter,
+ ETrue );
}
}
}
@@ -1692,10 +1736,6 @@
return iRootData->MaxPages();
}
-
-#if 0 // MSK icon change
-
-
// -----------------------------------------------------------------------------
// CXnViewManager::ResolveIconIndex
//
@@ -1714,6 +1754,4 @@
return index;
}
-
-#endif // MSK icon change
// End of file
--- a/layers.sysdef.xml Thu Dec 17 08:40:49 2009 +0200
+++ b/layers.sysdef.xml Thu Jan 07 12:39:41 2010 +0200
@@ -15,7 +15,7 @@
<layer name="unit_test_layer">
<module name="homescreen_unit_tests">
- <unit unitID="hsdo.wmunit.test" mrp="" bldFile="&layer_real_source_path;/widgetmanager/tsrc/wmunittest/group" name="wmunit.test" />
+ <unit unitID="hsdo.wmunit.test" mrp="" bldFile="&layer_real_source_path;/idlehomescreen/widgetmanager/tsrc/wmunittest/group" name="wmunit.test" />
</module>
</layer>
--- a/menufw/hierarchynavigator/hnengine/inc/hncontrollerinterface.h Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/hierarchynavigator/hnengine/inc/hncontrollerinterface.h Thu Jan 07 12:39:41 2010 +0200
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description:
+* Description:
*
*/
@@ -21,11 +21,11 @@
#include "hnsuiteobserver.h"
-class CLiwGenericParamList;
+class CLiwGenericParamList;
/**
* @ingroup group_hnengine
- * User interface refresh type
+ * User interface refresh type
*/
enum THnUiRefreshType
{
@@ -33,9 +33,6 @@
ERefreshToolbar,
EStartEditMode,
EStopEditMode,
- EZoomLarge,
- EZoomSmall,
- EZoomNormal,
EForegroundGain,
EBackgroundGain,
ELightOn,
@@ -63,22 +60,22 @@
* @param aRefreshType Defines reason for refresh.
*/
virtual void NotifyUiRefreshL( const THnUiRefreshType aRefreshType ) = 0;
-
+
/**
* Trigger appropriate action on suite model.
- *
+ *
* @param aCustomSuiteEvent Event that is associated
* with the lifecycle of a suite
* @param aModel Suite model on that custom event should be performed.
*/
- virtual void HandleSuiteEventL ( THnCustomSuiteEvent aCustomSuiteEvent,
+ virtual void HandleSuiteEventL ( THnCustomSuiteEvent aCustomSuiteEvent,
CHnSuiteModel *aModel ) = 0;
-
+
/**
* Whenever an action for extension manager occurs it invokes
* this method to execute one, passing the information needed
* by extension manager about the action as a parameters.
- *
+ *
* @param aUid UID of the ECom plugin's.
* @param aCommand Command which has to be executed on the plugin.
* Request to the Service.
--- a/menufw/hierarchynavigator/hnengine/src/hnengine.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/hierarchynavigator/hnengine/src/hnengine.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description:
+* Description:
*
*/
@@ -19,7 +19,7 @@
#include <uri8.h>
#include <mmf/common/mmfcontrollerpluginresolver.h>
#include <sacls.h>
-#include <apgtask.h>
+#include <apgtask.h>
#include <centralrepository.h>
#include <AknUtils.h>
@@ -143,7 +143,7 @@
//
CHnSuiteModel* CHnEngine::GetLastSuiteModelL()
{
- return iSuiteContainer->GetLastSuiteModel();
+ return iSuiteContainer->GetLastSuiteModel();
}
// ---------------------------------------------------------------------------
@@ -152,14 +152,14 @@
//
CHnSuiteModel* CHnEngine::GetParentSuiteModelL()
{
- return iSuiteContainer->GetParentSuiteModel();
+ return iSuiteContainer->GetParentSuiteModel();
}
// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
//
-EXPORT_C TInt CHnEngine::TriggerHnEventL( const TInt aHnEventId,
+EXPORT_C TInt CHnEngine::TriggerHnEventL( const TInt aHnEventId,
const TInt aRecipientId, CLiwGenericParamList* aEventParameters )
{
TInt ret = iSuiteContainer->OfferHnEventL( aHnEventId, aRecipientId,
@@ -187,14 +187,14 @@
//
// ---------------------------------------------------------------------------
//
-TInt CHnEngine::LoadSuiteFromUriL( const TDesC8& aSuiteName,
+TInt CHnEngine::LoadSuiteFromUriL( const TDesC8& aSuiteName,
const TDesC8& aUriQuery, const TDesC8& aUriFragment )
{
TInt error( KErrNone );
-
+
if( !( aSuiteName.Compare( KRoot8 ) ) )
{
- CLiwGenericParamList* uriParams =
+ CLiwGenericParamList* uriParams =
UriQueryToLiwListLC( aUriQuery, aUriFragment, aSuiteName );
CLiwGenericParamList* params = CLiwGenericParamList::NewLC();
params->AppendL( iMetaDataModel->GetSuiteParameters( 0 ) );
@@ -211,15 +211,15 @@
UriQueryToLiwListLC( aUriQuery, aUriFragment, aSuiteName );
HBufC* suiteName = HnConvUtils::Str8ToStrLC( aSuiteName );
- params->AppendL( TLiwGenericParam( KNewSuiteParamNameEn,
+ params->AppendL( TLiwGenericParam( KNewSuiteParamNameEn,
TLiwVariant( *suiteName ) ) );
-
+
error = HandleNewSuiteLoadedEventL( *params );
-
+
CleanupStack::PopAndDestroy( suiteName );
CleanupStack::PopAndDestroy( params );
}
-
+
return error;
}
@@ -255,7 +255,7 @@
// set parameters
iSuiteContainer->GetLastSuiteModel()->SetExitMode( EExitModeHide );
}
-
+
CleanupStack::PopAndDestroy( params );
CleanupStack::PopAndDestroy( &exitMode );
@@ -273,25 +273,25 @@
{
DEBUG(("_MM_:CHnEngine::LoadSuitesFromUriL IN"));
DEBUG8(("_MM_:\tURI: %S",&aUri));
-
+
TBool consumed(EFalse);
-
+
if ( aUri.Find( KSetFocusWithPref ) != KErrNotFound )
{
LoadFromCrL( aUri );
consumed = ETrue;
}
-
+
if ( !consumed )
{
consumed = HandleActionL( aUri );
}
-
+
if ( !consumed )
{
LoadSuitesL( aUri );
}
-
+
DEBUG(("_MM_:CHnEngine::LoadSuitesFromUriL OUT"));
}
@@ -303,10 +303,10 @@
CLiwGenericParamList& aParams )
{
TInt ret(KErrNotFound);
-
+
if ( aEventName == KNewSuiteLoadedMdEvent )
{
- // This handles new suite creation, putting its visual model
+ // This handles new suite creation, putting its visual model
// onto the stack eventually.
ret = HandleNewSuiteLoadedEventL( aParams );
}
@@ -349,30 +349,12 @@
// Stopping edit mode
iControllerInterface.NotifyUiRefreshL( EStopEditMode );
ret = KErrNone;
- }
+ }
else if (aEventName == KSetFocusEvent )
{
// SetFocus
ret = HandleSetFocusEventL( aParams );
}
- else if (aEventName == KZoomLarge )
- {
- // Stopping edit mode
- iControllerInterface.NotifyUiRefreshL( EZoomLarge );
- ret = KErrNone;
- }
- else if (aEventName == KZoomSmall)
- {
- // Stopping edit mode
- iControllerInterface.NotifyUiRefreshL( EZoomSmall );
- ret = KErrNone;
- }
- else if (aEventName == KZoomNormal )
- {
- // Stopping edit mode
- iControllerInterface.NotifyUiRefreshL( EZoomNormal );
- ret = KErrNone;
- }
else if (aEventName == KAppGainForeground )
{
//force matrix gain foreground
@@ -387,7 +369,7 @@
iControllerInterface.NotifyUiRefreshL( EBackgroundGain );
ret = KErrNone;
}
-
+
return ret;
}
@@ -395,10 +377,10 @@
//
// ---------------------------------------------------------------------------
//
-TInt CHnEngine::HandleWidgetChangeL(
+TInt CHnEngine::HandleWidgetChangeL(
CLiwGenericParamList& aParams )
{
- THnSuiteWidgetType type = EChangeWidget;
+ THnSuiteWidgetType type = EChangeWidget;
TInt pos( 0 );
const TLiwGenericParam* param = NULL;
param = aParams.FindFirst( pos, KWidgetTypeAttrName8 );
@@ -407,13 +389,13 @@
TPtrC widgetType( KNullDesC );
param->Value().Get( widgetType );
if ( widgetType.Compare( KWidgetTypeList ) == 0 )
- type = EListWidget;
- else if ( widgetType.Compare( KWidgetTypeGrid ) == 0 )
- type = EGridWidget;
+ type = EListWidget;
+ else if ( widgetType.Compare( KWidgetTypeGrid ) == 0 )
+ type = EGridWidget;
else if ( widgetType.Compare( KWidgetTypeCoverFlow ) == 0 )
- type = ECoverFlowWidget;
+ type = ECoverFlowWidget;
}
-
+
CHnSuiteModel* model = iSuiteContainer->GetLastSuiteModel();
return HandleWidgetChangeL( model->SuiteName(), type );
}
@@ -424,16 +406,16 @@
//
TInt CHnEngine::HandleWidgetChangeL( const TDesC& aSuiteName,
THnSuiteWidgetType aType )
- {
+ {
DEBUG(("_MM_:CMatrixMenuAppUi::HandleWidgetChangeL IN"));
TInt ret( KErrGeneral );
-
+
CHnRepositoryManager* rep = CHnRepositoryManager::NewLC();
THnSuiteWidgetType type( EUnspecified );
TInt err( rep->ReadSuiteWidgetTypeL( aSuiteName, type ) );
-
+
if( ( !err || err == KErrNotFound ) && type != EUnspecified )
- {
+ {
ret = rep->StoreSuiteWidgetTypeL( aSuiteName, aType );
}
CleanupStack::PopAndDestroy( rep );
@@ -445,7 +427,7 @@
//
// ---------------------------------------------------------------------------
//
-TInt CHnEngine::HandleReevaluateEventL(
+TInt CHnEngine::HandleReevaluateEventL(
CLiwGenericParamList& aParams )
{
TInt ret(KErrNone);
@@ -454,21 +436,21 @@
_LIT8( KIdGlobalPath, "filter:id");
_LIT8( KGenrePath, "filter:[%d]/genre");
_LIT8( KItemPath, "filter:[%d]/item");
-
+
CHnFilter* filter = CHnFilter::NewLC();
-
+
TLiwGenericParam param;
param.PushL();
aParams.AtL(0, param);
ASSERT( !param.Name().Compare( KFilterElementItem8 ) );
-
+
TLiwVariant suiteIdVariant;
suiteIdVariant.PushL();
TLiwVariant genreVariant;
genreVariant.PushL();
- TInt idFound =
+ TInt idFound =
HnLiwUtils::GetVariantL( aParams, KIdGlobalPath(), suiteIdVariant );
- TInt found =
+ TInt found =
HnLiwUtils::GetVariantL(aParams, KGenreGlobalPath(), genreVariant );
if (idFound != KErrNotFound)
{
@@ -498,16 +480,16 @@
TLiwVariant itemVariant;
HnLiwUtils::GetVariantL(aParams, path, itemVariant );
CleanupStack::PopAndDestroy( &path );
-
+
TPtrC suiteName;
TPtrC itemId;
genreVariant.Get(suiteName);
itemVariant.Get(itemId);
-
+
CHnItemId* itemIdObject = CHnItemId::NewLC(suiteName, itemId);
filter->AppendItemIdL( itemIdObject );
CleanupStack::Pop( itemIdObject );
-
+
genreVariant.Reset();
itemVariant.Reset();
}
@@ -539,7 +521,7 @@
{
DEBUG(("_MM_:CHnEngine::HandleNewSuiteLoadedEventL IN"));
TInt err( KErrNone );
- const TLiwGenericParam* param =
+ const TLiwGenericParam* param =
aParams.FindFirst( err, KNewSuiteParamNameEn );
if( err != KErrNotFound )
{
@@ -562,9 +544,9 @@
{
iMetaDataModel->SetModeL( EMdModeNormal );
}
-
- TRAP( err, iMetaDataModel->EvaluateL( *filter ) );
-
+
+ TRAP( err, iMetaDataModel->EvaluateL( *filter ) );
+
CleanupStack::PopAndDestroy( filter );
if ( err )
{
@@ -590,7 +572,7 @@
break;
default :
{
- message = HBufC::NewL( KDebugNoteOtherError().Length() +
+ message = HBufC::NewL( KDebugNoteOtherError().Length() +
KMaxLength );
message->Des().AppendFormat( KDebugNoteOtherError, err );
}
@@ -602,7 +584,7 @@
}
DEBUG(("_MM_:\tReturned error code: %d",err));
DEBUG(("_MM_:CHnEngine::HandleNewSuiteLoadedEventL OUT"));
-
+
return err;
}
@@ -612,10 +594,10 @@
//
TInt CHnEngine::HandleSetFocusEventL( const CLiwGenericParamList& aParams )
{
- // Triggering event in hierarchy navigator, specifying
+ // Triggering event in hierarchy navigator, specifying
// that suite given by the name genre has been
DEBUG(("_MM_:CHnEngine::HandleSetFocusEventL IN"));
-
+
TInt posSuite( 0 );
TInt posItem( 0 );
TInt64 suiteCustomId( KErrNotFound );
@@ -624,25 +606,25 @@
// Get suite's and item's custom ids.
const TLiwGenericParam* paramSuiteId = aParams.FindFirst( posSuite, KSuiteCustomId8 );
const TLiwGenericParam* paramItemId = aParams.FindFirst( posItem, KItemCustomId8 );
-
-
+
+
if ( posSuite >= 0 && posItem >= 0 )
{
suiteCustomId = paramSuiteId->Value().AsTInt64();
itemCustomId = paramItemId->Value().AsTInt64();
-
+
// Get matching suite.
CHnSuiteModel* suiteModel = iSuiteContainer->GetMatchingSuiteModel( suiteCustomId );
-
+
if ( suiteModel )
{
// If suite is not null, then find matching item model.
TInt index( KErrNotFound );
CHnItemModel* itemModel = suiteModel->GetMatchingItemModelL( itemCustomId, index );
-
+
if ( itemModel )
{
- // If itemModel is not null then set highlight and set highligh
+ // If itemModel is not null then set highlight and set highligh
// on matching item.
suiteModel->SetSuiteHighlightL( index );
iControllerInterface.HandleSuiteEventL( ESuiteHighlightChanged, suiteModel );
@@ -653,7 +635,7 @@
}
}
}
-
+
DEBUG(("_MM_:CHnEngine::HandleSetFocusEventL OUT"));
return KErrNone;
}
@@ -665,13 +647,13 @@
TInt CHnEngine::HandleMoveFocusBeforeDeleteEventL(
const CLiwGenericParamList& /* aParams */ )
{
- // Triggering event in hierarchy navigator, specifying
+ // Triggering event in hierarchy navigator, specifying
// that suite given by the name genre has been
DEBUG(("_MM_:CHnEngine::HandleMoveFocusBeforeDeleteEventL IN"));
-
+
TInt currentHighlight( GetLastSuiteModelL()->GetSuiteHighlight() );
TInt itemsCount( GetLastSuiteModelL()->GetItemModelsCount() );
-
+
TInt shift( 0 );
if( AknLayoutUtils::PenEnabled() && iEditMode )
{
@@ -688,7 +670,7 @@
}
iControllerInterface.HandleSuiteEventL(
ESuiteHighlightChanged, GetLastSuiteModelL() );
-
+
DEBUG(("_MM_:CHnEngine::HandleMoveFocusBeforeDeleteEventL OUT"));
return KErrNone;
}
@@ -752,12 +734,12 @@
// ---------------------------------------------------------------------------
//
EXPORT_C TInt CHnEngine::InitializeL( CLiwGenericParamList& aParam )
- {
+ {
DEBUG(("_MM_:CMatrixMenuAppUi::InitializeL IN"));
User::LeaveIfError( HandleNewSuiteLoadedEventL( aParam ) );
DEBUG(("_MM_:CMatrixMenuAppUi::InitializeL OUT"));
// This is an interface method so some value has to be returned.
- return KErrNone;
+ return KErrNone;
}
// ---------------------------------------------------------------------------
@@ -835,7 +817,7 @@
EXPORT_C void CHnEngine::ResetModelsL()
{
MMPERF(("CHnEngine::ResetModelsL - START"));
-
+
iControllerInterface.NotifyUiRefreshL( ERemoveLiwObjects );
if( iSuiteContainer )
@@ -863,12 +845,12 @@
const TDesC8& aUriQuery, const TDesC8& aUriFragment, const TDesC8& aSuiteName )
{
CLiwGenericParamList* list = CLiwGenericParamList::NewLC();
-
+
CLiwDefaultMap* map = CLiwDefaultMap::NewL();
map->PushL();
-
+
RPointerArray< HBufC8 > params = SplitL( aUriQuery, KAnd8 );
-
+
for( TInt i = 0; i < params.Count(); i++ )
{
RPointerArray< HBufC8 > paramValue = SplitL( *params[ i ], KEquals8 );
@@ -877,15 +859,15 @@
map->InsertL( *paramValue[ 0 ], TLiwVariant( *paramValue[ 1 ] ) );
CleanupStack::PopAndDestroy( ¶mValue );
}
-
+
if ( aUriFragment.Length() > 0 && aSuiteName.Length() > 0 )
{
map->InsertL( KUriHighlight, TLiwVariant( aUriFragment ) );
map->InsertL( KUriHighlightSuite, TLiwVariant( aSuiteName ) );
}
-
+
list->AppendL( TLiwGenericParam( KParams8, TLiwVariant( map )));
-
+
params.ResetAndDestroy();
CleanupStack::PopAndDestroy( map );
@@ -901,17 +883,17 @@
{
RPointerArray< HBufC8 > tokens;
CleanupResetAndDestroyPushL( tokens );
-
+
if ( aSource.Length() > 0 && aSeparator.Length() > 0 )
{
TPtrC8 tmpSource = aSource;
TPtrC8 token( KNullDesC8 );
-
+
while( ETrue )
{
TInt length = tmpSource.Find( aSeparator );
-
+
if ( length >= 0 )
{
token.Set( tmpSource.Mid( 0, length ) );
@@ -947,8 +929,8 @@
}
//The suite on top of the stack is probably displayed.
//Switching to edit mode has some dramatic ui impact,
- //thus when parts of the suite will get displayed
- //it may look awkward thus the suite on top of the stack
+ //thus when parts of the suite will get displayed
+ //it may look awkward thus the suite on top of the stack
//is marked as uninitialized, therefore ui will be able to
//react only to the ready suite model.
if (AknLayoutUtils::PenEnabled() || (!AknLayoutUtils::PenEnabled() && iEditMode))
@@ -973,7 +955,7 @@
// ---------------------------------------------------------------------------
//
-EXPORT_C void CHnEngine::HandleRequestL( const CLiwGenericParamList& aParam,
+EXPORT_C void CHnEngine::HandleRequestL( const CLiwGenericParamList& aParam,
CLiwGenericParamList* /*aOutput*/ )
{
TInt pos( 0 );
@@ -1013,22 +995,22 @@
{
HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() );
uriBuf->Des().Copy( aUri );
-
+
TUriParser8 parser;
parser.Parse( *uriBuf );
User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound );
-
+
const TDesC8& query = parser.Extract( EUriQuery );
RPointerArray< HBufC8 > params = SplitL( query, HnLogicalRelations::KLogicalAnd8);
-
+
TBuf8<KApaMaxAppGroupName + KTimeStampBufferLength + KUidStringLength + 2> item;
-
+
for( TInt i = 0; i < params.Count(); i++ )
{
RPointerArray< HBufC8 > paramValue = SplitL( *params[ i ], HnLogicalRelations::KLogicalEqual8 );
CleanupResetAndDestroyPushL( paramValue );
ASSERT( paramValue.Count() == 2 );
-
+
if ( !paramValue[0]->Compare(KMcsAppGroupName8) )
{
TBuf8<KApaMaxAppGroupName> appgrname;
@@ -1054,19 +1036,19 @@
}
CleanupStack::PopAndDestroy( ¶mValue );
}
-
+
TBuf<KApaMaxAppGroupName + KTimeStampBufferLength + KUidStringLength + 2> item1;
item1.Copy(item);
CRepository *cenRep = CRepository::NewLC( KCRUidMenu );
cenRep->Set(KMenuShowFolder, item1);
CleanupStack::PopAndDestroy( cenRep );
-
+
params.ResetAndDestroy();
CleanupStack::PopAndDestroy( uriBuf );
-
+
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
void CHnEngine::LightStatusChanged(TInt aTarget,
@@ -1094,23 +1076,23 @@
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
TBool CHnEngine::HandleActionL( const TDesC8& aUri )
{
TBool exitActionConsumed(EFalse);
-
+
HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() );
uriBuf->Des().Copy( aUri );
-
+
TUriParser8 parser;
parser.Parse( *uriBuf );
User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound );
-
+
const TDesC8& host8 = parser.Extract( EUriHost );
const TDesC8& query = parser.Extract( EUriQuery );
-
+
RBuf action;
CleanupClosePushL( action );
CLiwGenericParamList* paramsUri = UriQueryToLiwListLC( query, KNullDesC8, KNullDesC8 );
@@ -1128,7 +1110,7 @@
{
exitHideHostNotFound = EFalse;
}
-
+
if ( exitHideHostNotFound )
{
//send to foreground
@@ -1145,7 +1127,7 @@
HandleModelEventL( KAppGainBackground, *pl );
CleanupStack::PopAndDestroy( pl );
}
-
+
if ( exitHideHostNotFound && iSuiteContainer->GetLastSuiteModel() == suiteModel )
{
HandleBackEventL( host, 1 );
@@ -1156,14 +1138,14 @@
CLiwGenericParamList* params = CLiwGenericParamList::NewLC();
params->AppendL( iMetaDataModel->GetSuiteParameters( 0 ) );
ResetModelsL();
- InitializeL( *params );
+ InitializeL( *params );
CleanupStack::PopAndDestroy( params );
}
-
+
CleanupStack::PopAndDestroy( &host );
exitActionConsumed = ETrue;
}
-
+
CleanupStack::PopAndDestroy( paramsUri );
CleanupStack::PopAndDestroy( &action );
CleanupStack::PopAndDestroy( uriBuf );
@@ -1171,7 +1153,7 @@
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
void CHnEngine::LoadSuitesL( const TDesC8& aUri )
@@ -1179,14 +1161,14 @@
TBool sendToForeground(EFalse);
HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() );
uriBuf->Des().Copy( aUri );
-
+
TUriParser8 parser;
parser.Parse( *uriBuf );
User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound );
-
+
CDesC8ArrayFlat* suiteNameArray = new( ELeave ) CDesC8ArrayFlat( KDefaultGranularity ) ;
CleanupStack::PushL( suiteNameArray );
-
+
const TDesC8& host = parser.Extract( EUriHost );
RBuf8 host8;
CleanupClosePushL( host8 );
@@ -1207,18 +1189,18 @@
ParseSuiteUriPathL( *path8, *suiteNameArray );
CleanupStack::PopAndDestroy( path8 );
}
-
+
TBool suiteExists( EFalse );
iMetaDataModel->IgnoreEvaluations( ETrue );
iMetaDataModel->QueueForeground( CHnMdModel::EWhenAnySuiteIsEvaluated );
-
+
if( host8.Length() == 0 || ( host8.Length() > 0 &&
!iMetaDataModel->SuiteModelExistsL( host8 ) ) )
{
suiteNameArray->Reset();
suiteNameArray->AppendL( KRoot8 );
}
-
+
for( TInt i = 0; i < suiteNameArray->Count(); ++i )
{
suiteExists = iMetaDataModel->SuiteModelExistsL(
@@ -1226,13 +1208,13 @@
TBool nextExists = i < suiteNameArray->Count() - 1 &&
iMetaDataModel->SuiteModelExistsL( ( *suiteNameArray )[i + 1] );
TBool isLast = ( i == ( suiteNameArray->Count() - 1 ) );
-
+
TBool turnOnEvaluation = ( suiteExists && ( !nextExists || isLast ) );
if( turnOnEvaluation || !suiteExists )
{
iMetaDataModel->IgnoreEvaluations( EFalse );
}
-
+
TInt err( KErrNone );
// Ignore loading new suite if the last suite in model is the same
@@ -1246,7 +1228,7 @@
continue;
}
}
-
+
if( suiteExists )
{
if (!nextExists)
@@ -1261,7 +1243,7 @@
{
// Tricky: if foreground is still queued it means that the suite is evaluated
// asynchronously. Override the previos foreground queue setting with one
- // that will be effective only if the last loaded suite is evaluated.
+ // that will be effective only if the last loaded suite is evaluated.
iMetaDataModel->QueueForeground( CHnMdModel::EWhenCurrentTopSuiteIsEvaluated );
}
if ( err != KErrNone )
@@ -1269,19 +1251,19 @@
sendToForeground = ETrue;
}
}
-
+
if( !suiteExists || err != KErrNone || !nextExists )
{
CHnFilter* filter = CHnFilter::NewLC();
filter->SetSuiteId(
iSuiteContainer->GetLastSuiteModel()->CustomId() );
-
+
filter->SetEvaluateSuiteL( ETrue );
iMetaDataModel->IgnoreEvaluations( EFalse );
-
+
TRAPD( err, iMetaDataModel->EvaluateL( *filter ) );
-
+
CleanupStack::PopAndDestroy( filter );
if( err )
{
@@ -1293,17 +1275,17 @@
break;
}
}
-
+
// set highlight only when path is valid!
if( suiteExists )
{
HighlightPlacementFromUriL( parser.Extract( EUriFragment ) );
}
-
+
CleanupStack::PopAndDestroy( &host8 );
CleanupStack::PopAndDestroy( suiteNameArray );
CleanupStack::PopAndDestroy( uriBuf );
-
+
// send to foreground
if ( sendToForeground )
{
--- a/menufw/hierarchynavigator/hnmetadatamodel/inc/hnglobals.h Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/hierarchynavigator/hnmetadatamodel/inc/hnglobals.h Thu Jan 07 12:39:41 2010 +0200
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description:
+* Description:
*
*/
@@ -38,23 +38,23 @@
*/
const TInt KMaxLength = 12;
-/**
+/**
* Single character length.
*/
const TInt KSingleChar( 1 );
-/**
+/**
* Default datagranularity.
*/
const TInt KDefaultGranularity( 8 );
-/**
+/**
* Max digit number.
*/
const TInt KMaxDigitNumber( 10 );
-/**
- * A number of cached suites.
+/**
+ * A number of cached suites.
*/
const TInt KXmlModelCacheMaxLength( 10 );
@@ -67,77 +67,77 @@
* KErrNoMemory code from MenuService
*/
const TInt KSErrNoMemory = 1007;
-/**
+/**
* Logical relations namespace
*/
namespace HnLogicalRelations
- {
- /**
- * Greater.
+ {
+ /**
+ * Greater.
*/
_LIT8( KLogicalGreater8, ">" );
-
- /**
- * Less.
+
+ /**
+ * Less.
*/
_LIT8( KLogicalLess8, "<" );
-
- /**
- * Equals.
+
+ /**
+ * Equals.
*/
_LIT8( KLogicalEqual8, "=" );
-
- /**
- * Different.
+
+ /**
+ * Different.
*/
_LIT8( KLogicalDifferent8, "!=" );
-
- /**
- * And.
+
+ /**
+ * And.
*/
_LIT8( KLogicalAnd8, "&" );
-
- /**
- * Or.
+
+ /**
+ * Or.
*/
_LIT8( KLogicalOr8, "|" );
-
- /**
- * Nas.
+
+ /**
+ * Nas.
*/
_LIT8( KLogicalHas8, "HAS" );
-
- /**
- * Has not.
+
+ /**
+ * Has not.
*/
_LIT8( KLogicalHasNot8, "HASNOT" );
}
-/**
+/**
* Event namespace
*/
namespace HnEvent
{
- /**
- * Event data.
+ /**
+ * Event data.
*/
_LIT8( KEventArgNamespace8, "event_data");
-
- /**
- * Dropped before custom id.
+
+ /**
+ * Dropped before custom id.
*/
_LIT8( KDroppedBefore8, "dropped_before_custom_id" );
-
- /**
- * Dragged custom id.
+
+ /**
+ * Dragged custom id.
*/
_LIT8( KDragged8, "dragged_custom_id" );
-
- /**
- * Highlight offset.
+
+ /**
+ * Highlight offset.
*/
_LIT8( KHighlightOffset8, "highlight_offset" );
-
+
}
@@ -183,7 +183,7 @@
_LIT8( KMenuConditionAttrName8, "condition" );
_LIT8( KIndexAttrName8, "index" );
_LIT8( KMenuDimmAttrName8, "dimm" );
-_LIT8( KGenreAttrName8, "genre" );
+_LIT8( KGenreAttrName8, "genre" );
_LIT8( KTitleAttrName8, "title" );
_LIT8( KEmptyTextAttrName8, "emptytext" );
_LIT8( KNameAttrName8, "name" );
@@ -315,7 +315,7 @@
_LIT8( KEvaluateMdModel, "EvaluateMdModel" );
_LIT8( KDisableActionsForItem, "DisableActionsForItem" );
-_LIT( KSuiteName, "suite_name" );
+_LIT( KSuiteName, "suite_name" );
_LIT8( KSuiteName8, "suite_name" );
//
@@ -351,7 +351,7 @@
_LIT8( KTitleName8, "suite" );
_LIT8( KItemName8, "item" );
_LIT8( KGenreName8, "genre" );
-_LIT8( KLocalizationName8, "localization" );
+_LIT8( KLocalizationName8, "localization" );
_LIT8( KEventName8, "event" );
_LIT8( KMenuItemName8, "menuitem" );
@@ -359,13 +359,13 @@
_LIT8( KMenuItemSpecificName8, "menuitem_specific" );
_LIT( KMenuItemSpecificName, "menuitem_specific" );
-_LIT( KRoot, "root" );
+_LIT( KRoot, "root" );
_LIT8( KRoot8, "root" );
_LIT( KExtension, ".r" ); // rsc, r01, r02, etc.
_LIT( KExtensionRsc, ".rsc" );
-_LIT8( KHexStart8, "0x");
+_LIT8( KHexStart8, "0x");
_LIT( KDrive , "C:");
_LIT( KEntriesSuffix, "suites\\");
@@ -394,9 +394,6 @@
_LIT( KSwitchWidgetMdEvent, "switch_widget" );
_LIT( KStartEditModeMdEvent, "start_edit_mode" );
_LIT( KStopEditModeMdEvent, "stop_edit_mode" );
-_LIT( KZoomLarge, "zoom_large" );
-_LIT( KZoomNormal, "zoom_normal" );
-_LIT( KZoomSmall, "zoom_small" );
_LIT( KAppGainForeground, "gain_foreground" );
_LIT( KAppGainBackground, "gain_background" );
_LIT( KSetFocusEvent, "set_focus" );
@@ -423,11 +420,11 @@
#endif// _DEBUG
// info notes for notifying lack of configuration files
-_LIT( KDebugNoteDirNotFound,
+_LIT( KDebugNoteDirNotFound,
"Directory containing suite configuration not found!" );
-_LIT( KDebugNoteFileNotFound,
+_LIT( KDebugNoteFileNotFound,
"File containing suite configuration not found!" );
-_LIT( KDebugNoteOtherError,
+_LIT( KDebugNoteOtherError,
"Loading suite configuration returned error: %d" );
_LIT8( KStar8, "*" );
@@ -446,7 +443,7 @@
_LIT( KOnFocusGain, "item:focus" );
_LIT( KOnFocusLost, "item:unfocus" );
-_LIT8( KIndexWithBrackets8, "[$index]");
+_LIT8( KIndexWithBrackets8, "[$index]");
_LIT8( KIndex8, "$index" );
_LIT( KIndex, "$index" );
_LIT8( KCount, "/[$count]" );
@@ -507,9 +504,9 @@
const TInt KTimeStampBufferLength = 25;
-const TInt KUidStringLength = 10;
+const TInt KUidStringLength = 10;
-const TInt KTimeStampCutOff = 5;
+const TInt KTimeStampCutOff = 5;
/**
* Order in which drives are searched for suites.
@@ -550,7 +547,7 @@
{
EImageSourceUndefined = 0,
EImageSourceFile,
- EImageSourceResource,
+ EImageSourceResource,
EImageSourceApplicationUid,
EImageSourceLiw
};
--- a/menufw/hierarchynavigator/hnmetadatamodel/inc/hnmdmodel.h Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/hierarchynavigator/hnmetadatamodel/inc/hnmdmodel.h Thu Jan 07 12:39:41 2010 +0200
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description:
+* Description:
*
*/
@@ -21,7 +21,7 @@
#define C_HNMDMODEL_H
#include <e32base.h>
-#include <xmlengelement.h>
+#include <xmlengelement.h>
#include <liwgenericparam.h>
#include <eikenv.h>
#include "hnglobals.h"
@@ -44,19 +44,19 @@
/**
* Type of the property.
- *
+ *
* @ingroup group_hnmetadatamodel
*/
enum TPropertyType
{
EUndefined = 0,
EGenre,
- EVisualItemCount
+ EVisualItemCount
};
/**
* Mode type.
- *
+ *
* @ingroup group_hnmetadatamodel
*/
enum TMdMode
@@ -69,72 +69,72 @@
* Common pointers.
*
* @since S60 5.0
- * @ingroup group_hnmetadatamodel
+ * @ingroup group_hnmetadatamodel
*/
struct THnMdCommonPointers
- {
+ {
/**
* Not own - Localization.
*/
CHnMdLocalization* iLocalization;
-
+
/**
* Not own - Query generator.
*/
THnIdGenerator* iIdGenerator;
-
+
/**
* Not own - Suite model container.
*/
CHnSuiteModelContainer* iContainer;
-
+
/**
* Not own - Meta data model.
*/
CHnMdModel* iModel;
-
+
/**
* Not own - Xml model provider.
*/
CHnXmlModelProvider* iXmlModelProvider;
-
+
/**
* Not own - Cache for bitmap and mask ids.
*/
CHnBitmapIdCache* iBitmapIdCache;
-
+
/**
* Not own - Model event observer.
*/
MHnMdModelEventObserver* iModelEventObserver;
-
+
/**
* Not own - Edit mode interface.
*/
MHnEditModeInterface* iEditModeInterface;
-
+
/**
* Not own - Handler to file server session;
- */
+ */
RFs& iFs;
-
+
/**
* Gets static pointer from TLS.
*/
static THnMdCommonPointers* Static() {return (THnMdCommonPointers*)Dll::Tls(); }
-
+
/**
* Sets pointer to TLS.
- *
+ *
* @param aCmnPtrs Pointer to set
*/
static void SetStatic( THnMdCommonPointers* aCmnPtrs ) { Dll::SetTls(aCmnPtrs); }
-
- private:
+
+ private:
// only model can create it
- friend class CHnMdModel;
-
+ friend class CHnMdModel;
+
/**
* Standard C++ consturctor.
*/
@@ -151,26 +151,26 @@
/**
* Copy constructor declared as private to disallow copying.
- *
+ *
* @param aCmnPtrs Pointer to set.
*/
THnMdCommonPointers( const THnMdCommonPointers& aCmnPtrs ):iFs( aCmnPtrs.iFs ) { }
-
+
/**
* Assignment operator
*/
THnMdCommonPointers& operator=( const THnMdCommonPointers& ){return *this;}
};
-
+
/**
* Id generator.
*
* @lib ?library
* @since S60 5.0
- * @ingroup group_hnmetadatamodel
+ * @ingroup group_hnmetadatamodel
*/
struct THnIdGenerator
- {
+ {
/**
* Standatrd C++ constructor.
*/
@@ -188,7 +188,7 @@
return iId++;
}
private:
-
+
/**
* Copy constructor declared as private to disallow copying.
* @param aGenerator Id generator;
@@ -199,23 +199,23 @@
* Assignment operator.
*/
THnIdGenerator& operator=(const THnIdGenerator&);
-
+
/**
* Id
*/
- TInt iId;
+ TInt iId;
};
/**
* Model event observer.
*
- * @since S60 5.0
+ * @since S60 5.0
* @ingroup group_hnmetadatamodel
*/
class MHnMdModelEventObserver
{
public:
-
+
/**
* Handles modlde event.
*
@@ -223,7 +223,7 @@
* @param aEventName Event name.
* @param aParams Parameters.
*/
- virtual TInt HandleModelEventL( const TDesC& aEventName,
+ virtual TInt HandleModelEventL( const TDesC& aEventName,
CLiwGenericParamList& aParams ) = 0;
};
@@ -231,10 +231,10 @@
* Meta data model
*
* This is the main class of the Meta Data Model component.
- *
+ *
* This class is the entry point for building the meta data model
* and for evaluation.
- *
+ *
* @since S60 5.0
* @ingroup group_hnmetadatamodel
*/
@@ -277,7 +277,7 @@
* @since S60 5.0
*/
virtual ~CHnMdModel();
-
+
/**
* Evaluates the model. Takes filter as a parameter.
*
@@ -288,19 +288,19 @@
/**
* Manages evaluation lock.
- *
+ *
* @param aLock Locks evaluation if set to ETrue.
* @param aEvaluate Runs evaluation if aEvaluate == ETrue.
*/
IMPORT_C void SetEvaluationLockL( TBool aLock, TBool aEvaluate = ETrue );
-
+
/**
* Evaluates the model.
*
* @since S60 5.0
*/
IMPORT_C void EvaluateL();
-
+
/**
* Switches between edit mode and normal mode
*
@@ -308,8 +308,8 @@
* @param aMode Suite model container.
*/
IMPORT_C void SetModeL( TMdMode aMode );
-
-
+
+
/**
* Gets suite's meta data model.
*
@@ -317,7 +317,7 @@
* @return Suite meta data model.
*/
IMPORT_C CHnMdSuite* GetLastSuite();
-
+
/**
* Gets suite's meta data model.
*
@@ -326,7 +326,7 @@
* @return Suite meta data model.
*/
CHnMdSuite* GetSuite( TInt aPosition );
-
+
/**
* Gets suite's parameters..
*
@@ -336,39 +336,39 @@
* @return Suite meta data model.
*/
IMPORT_C CLiwGenericParamList& GetSuiteParameters( TInt aPosition );
-
-
+
+
/**
* Handles back event.
- *
+ *
* @since S60 v3.2
* @param aMulContainer Suite model container.
* @param aGenre Name of the suite.
* @param aIterations Number of iterations.
* @return Error code.
- */
+ */
IMPORT_C TInt HandleBackEventL( CHnSuiteModelContainer* aMulContainer,
const TDesC& aGenre, TInt aIterations = KModelCountForRoot );
-
+
/**
* Handles sis installation event.
- *
+ *
* @since S60 v3.2
* @param aMulContainer Suite model container.
- */
- IMPORT_C void HandleSisInstallationEventL(
+ */
+ IMPORT_C void HandleSisInstallationEventL(
CHnSuiteModelContainer* aMulContainer );
-
+
/**
* Loads a suite from xml data.
- *
+ *
* @since S60 v5.0
* @param aGenre Name of the suite.
* @param aSuiteParams Suite parameters.
* @return Error code.
- */
+ */
IMPORT_C TInt LoadSuiteL( const TDesC& aGenre, CLiwGenericParamList* aSuiteParams = NULL );
-
+
/**
* Check if suite model exists.
*
@@ -377,7 +377,7 @@
* @return ETrue if suite model exists, otherwise EFalse.
*/
IMPORT_C TBool SuiteModelExistsL( const TDesC8& aSuiteModel );
-
+
/**
* Gets suite's meta data model.
*
@@ -393,22 +393,22 @@
* @since S60 5.0
*/
IMPORT_C void DeleteLastSuite();
-
-
+
+
/**
* Realeses localization files.
*
* @since S60 5.0
*/
IMPORT_C void ReleaseLocalization();
-
+
/**
* Reloads localization.
*
* @since S60 5.0
*/
IMPORT_C void ReloadLocalizationL();
-
+
/**
* Informs metadatamodel to ignore evaluations or
* to performing evaluations, according to the
@@ -418,7 +418,7 @@
* @param aIgnore Metadatamodel ignores evaluations when set to ETrue.
*/
IMPORT_C void IgnoreEvaluations( TBool aIgnore );
-
+
/**
* Request that menu goes to foreground when evaluation completes.
*
@@ -435,7 +435,7 @@
* simply means not to bring menu to foreground.
*/
IMPORT_C void QueueForeground( TForegroundGainTriggeringEvent aWhen );
-
+
/**
* Is there a queue for foreground gain.
*
@@ -443,7 +443,7 @@
* @return should foreground be gained after evaluation.
*/
IMPORT_C TBool IsForegroundQueued() const;
-
+
/**
* Notifies this metadata model that suite evaluation has completed.
*
@@ -451,7 +451,7 @@
* has completed
*/
void SuiteModelReadyToShowL( CHnSuiteModel* aJustEvaluatedSuite );
-
+
/**
* Causes all of the loades suites except for the suite at the bottom
* of the stack to be reloaded from their corresponding xml file
@@ -461,10 +461,10 @@
* @param aIgnore aModelContainer Model container object.
*/
void ReloadStackSuitesL( CHnSuiteModelContainer* aModelContainer );
-
+
/**
* Counts number of loaded suites.
- *
+ *
* @since S60 5.0
* @return Number of loaded suites
*/
@@ -476,7 +476,7 @@
* @since S60 5.0
*/
void EvaluateTopSuiteL();
-
+
private:
/**
@@ -497,83 +497,78 @@
CHnSuiteModelContainer * aSuiteModelContainer );
private: // data
-
+
/**
* Id generator.
*/
- THnIdGenerator iIdGenerator;
-
+ THnIdGenerator iIdGenerator;
+
/**
* Own - Localization.
*/
CHnMdLocalization* iLocalization;
-
+
/**
* Own - Xml model provider.
*/
CHnXmlModelProvider* iXmlModelProvider;
-
+
/**
* Own - bitmap and mask ids cache.
*/
CHnBitmapIdCache* iBitmapIdCache;
-
+
/**
* Not Own - Event observer.
*/
MHnMdModelEventObserver* iModelEventObserver;
-
+
/**
* Stores pointers to common objects in the system
* This object is shared throut the whole system.
- */
+ */
THnMdCommonPointers iCmnPtrs;
-
+
/**
* Stores information about mode.
*/
TMdMode iMode;
-
+
/**
* Loaded Suites stack.
* Object and content owned.
*/
RPointerArray<CHnMdSuite> iLoadedSuites;
-
+
/**
* Repository widget type observer.
*/
CHnRepositoryObserver* iRepositoryWidgetTypeObserver;
-
+
/**
* Repository folder change observer.
*/
CHnRepositoryObserver* iRepositoryShowFolderObserver;
-
- /**
- * Repository folder change observer.
- */
- CHnRepositoryObserver* iRepositoryZoomObserver;
-
+
/**
* When set, forces metadatamodel to skip evaluations.
*/
TBool iIgnoreEvaluations;
-
+
/**
* Queues foreground gain action.
*/
TBool iForegroundQueued;
-
+
/**
* Not own - pointer to the suite model that must be evaluated
* before matrix menu can be brought to foreground.
- *
+ *
* When NULL, then any suite evaluation brings menu to foreground.
* It is only meaningful when iForegroundQueued is ETrue.
*/
CHnSuiteModel* iForegroundTriggeringSuite;
-
+
};
#endif // C_HNMDMODEL_H
--- a/menufw/hierarchynavigator/hnmetadatamodel/inc/hnrepositoryobserver.h Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/hierarchynavigator/hnmetadatamodel/inc/hnrepositoryobserver.h Thu Jan 07 12:39:41 2010 +0200
@@ -29,9 +29,9 @@
/**
* Repository Observer base class.
- *
+ *
* It is used to be derived by repository observers.
- *
+ *
* @lib hnmetadatamodel
* @since S60 5.0
* @ingroup group_hnmetadatamodel
@@ -41,70 +41,70 @@
public MCenRepNotifyHandlerCallback
{
public:
-
+
/**
* Default C++ Destructor.
- *
+ *
* @since S60 v5.0
- */
+ */
virtual ~CHnRepositoryObserver();
-
+
protected:
/**
* Defautlt C++ Constructor.
- *
+ *
* @param aCmnPtrs Common pointers.
* @since S60 v5.0
- */
+ */
CHnRepositoryObserver( THnMdCommonPointers* aCmnPtrs );
-
+
/**
* Defautlt C++ Constructor.
- *
+ *
* @param aCmnPtrs Common pointers.
* @since S60 v5.0
- */
+ */
CHnRepositoryObserver( THnMdCommonPointers* aCmnPtrs, TUint32 iId );
-
+
/**
* Second stage constructor.
- *
+ *
* @since S60 v5.0
*/
void ConstructL( const TUid aRepositoryUid );
-
+
protected:
/**
* Own - Central Repository access class.
*/
CRepository *iRepository;
-
+
/**
* Id of the CR entry to be watched.
*/
TUint32 iId;
-
+
/**
* Common pointers.
- */
+ */
THnMdCommonPointers* iCmnPtrs;
-
+
/**
* Own - Central repository notification handler.
*/
CCenRepNotifyHandler* iNotifyHandler;
-
+
};
/**
* Widget Type Repository Observer.
- *
+ *
* It is used to inform hierarchy navigator of changes in the suites repository.
- *
+ *
* @lib hnmetadatamodel
* @since S60 5.0
* @ingroup group_hnmetadatamodel
@@ -112,71 +112,71 @@
NONSHARABLE_CLASS( CHnRepositoryWidgetTypeObserver ): public CHnRepositoryObserver
{
public:
-
+
/**
* Default C++ Destructor.
- *
+ *
* @since S60 v5.0
- */
+ */
virtual ~CHnRepositoryWidgetTypeObserver();
-
+
/**
* Factory function.
- *
+ *
* @param aCmnPtrs Common pointers.
* @return Repository Observer.
* @since S60 v5.0
- */
- static CHnRepositoryWidgetTypeObserver* NewL( THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid );
+ */
+ static CHnRepositoryWidgetTypeObserver* NewL( THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid );
/**
* Factory function.
- *
+ *
* @param aCmnPtrs Common pointers.
* @return Repository Observer.
* @since S60 v5.0
- */
+ */
static CHnRepositoryWidgetTypeObserver* NewLC( THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid );
-
+
/**
- * Change handler method.
+ * Change handler method.
* It is invoked whenever notifier detects a change in the CR.
- *
+ *
* @param aId Id of the entry in CR.
* @since S60 v5.0
*/
void HandleNotifyGeneric(TUint32 aId);
-
+
/**
- * Change handler method.
+ * Change handler method.
* It is invoked whenever notifier detects a change in the CR.
- *
+ *
* @param aId Id of the entry in CR.
* @since S60 v5.0
*/
void HandleNotifyGenericL(TUint32 aId);
-
+
private:
/**
* Defautlt C++ Constructor.
- *
+ *
* @param aCmnPtrs Common pointers.
* @since S60 v5.0
- */
+ */
CHnRepositoryWidgetTypeObserver( THnMdCommonPointers* aCmnPtrs );
-
+
private:
-
+
/**
* Second stage constructor.
- *
+ *
* @since S60 v5.0
*/
void ConstructL( const TUid aRepositoryUid );
-
+
private:
-
+
/**
* Array holding ids of widgets being switched.
* It is used to eliminate double refresh for such suites.
@@ -187,22 +187,22 @@
-NONSHARABLE_CLASS( CHnRepositoryShowFolderObserver ): public CHnRepositoryObserver,
+NONSHARABLE_CLASS( CHnRepositoryShowFolderObserver ): public CHnRepositoryObserver,
public MLiwNotifyCallback,
public MHnSuiteObserver
{
public:
-
+
/**
* Default C++ Destructor.
- *
+ *
* @since S60 v5.0
- */
+ */
virtual ~CHnRepositoryShowFolderObserver();
-
+
/**
* Factory function.
- *
+ *
* @param aCmnPtrs Common pointers.
* @return Repository Observer.
* @since S60 v5.0
@@ -213,7 +213,7 @@
/**
* Factory function.
- *
+ *
* @param aCmnPtrs Common pointers.
* @return Repository Observer.
* @since S60 v5.0
@@ -221,26 +221,26 @@
static CHnRepositoryShowFolderObserver* NewLC(
THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid,
const TUint32 aId);
-
+
/**
- * Change handler method.
+ * Change handler method.
* It is invoked whenever notifier detects a change in the CR.
- *
+ *
* @param aId Id of the entry in CR.
* @since S60 v5.0
*/
void HandleNotifyString(TUint32 aId, const TDesC16& aNewValue );
-
+
/**
- * Change handler method.
+ * Change handler method.
* It is invoked whenever notifier detects a change in the CR.
- *
+ *
* @param aId Id of the entry in CR.
* @since S60 v5.0
*/
void HandleNotifyStringL(TUint32 aId, const TDesC16& aNewValue );
-
-
+
+
/**
* From MLiwNotifyCallback
*/
@@ -249,49 +249,49 @@
TInt aEventId,
CLiwGenericParamList& aEventParamList,
const CLiwGenericParamList& aInParamList);
-
+
/**
* From MHnSuiteObserver
*/
- virtual void HandleSuiteEventL ( THnCustomSuiteEvent aCustomSuiteEvent,
+ virtual void HandleSuiteEventL ( THnCustomSuiteEvent aCustomSuiteEvent,
CHnSuiteModel *aModel );
-
+
private:
/**
* Defautlt C++ Constructor.
- *
+ *
* @param aCmnPtrs Common pointers.
* @since S60 v5.0
- */
+ */
CHnRepositoryShowFolderObserver( THnMdCommonPointers* aCmnPtrs, TUint32 iId );
/**
* Extracts the folder name from the CR key.
- *
+ *
* @param aNewValue The CR key.
* @since S60 v5.0
- */
+ */
void ExtractCRKeyShowFolderName( const TDesC& aNewValue );
-
+
/**
* Request get list for parent folder of an application.
- *
+ *
* @param aFolderId A parent folder id
* @since S60 v5.0
*/
void GetShowFolderL( TUint32 aFolderId );
-
+
/**
* Request get list for a folder with given application group name
* contained in iCRKeyFolderName.
- *
+ *
* @since S60 v5.0
*/
void GetShowFolderGroupNameL();
-
+
private:
/**
* Type of a flag describing the type of notification.
@@ -300,119 +300,40 @@
* SECOND_NOTIFY - handled notify caused by the second get list
*/
enum TNotifyType { EAPP_ID=1, EAPP_UID=2, ESECOND_NOTIFY=4 };
-
+
private:
-
+
/**
* Second stage constructor.
- *
+ *
* @since S60 v5.0
*/
void ConstructL( const TUid aRepositoryUid );
private:
-
+
/**
* Folder application group name.
*/
TBuf8<KApaMaxAppGroupName> iCRKeyFolderName;
-
+
/**
* Mcs id for an application item in a folder with a given app group name.
*/
TBuf8<KUidStringLength> iCRKeyFolderItemUid;
-
+
/**
* Own.
* Intance of the service handler.
*/
CHnServiceHandler* iServiceHandler;
-
+
/**
* Flag describing the type of notification.
*/
TInt iNotifyType;
};
-
-NONSHARABLE_CLASS( CHnRepositoryZoomObserver ): public CHnRepositoryObserver
- {
-public:
-
- /**
- * Default C++ Destructor.
- *
- * @since S60 v5.0
- */
- virtual ~CHnRepositoryZoomObserver();
-
- /**
- * Factory function.
- *
- * @param aCmnPtrs Common pointers.
- * @return Repository Observer.
- * @since S60 v5.0
- */
- static CHnRepositoryZoomObserver* NewL(
- THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid,
- const TUint32 aId);
-
- /**
- * Factory function.
- *
- * @param aCmnPtrs Common pointers.
- * @return Repository Observer.
- * @since S60 v5.0
- */
- static CHnRepositoryZoomObserver* NewLC(
- THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid,
- const TUint32 aId);
-
- /**
- * Change handler method.
- * It is invoked whenever notifier detects a change in the CR.
- *
- * @param aId Id of the entry in CR.
- * @since S60 v5.0
- */
- void HandleNotifyInt(TUint32 aId, TInt aNewValue );
-
- /**
- * Change handler method.
- * It is invoked whenever notifier detects a change in the CR.
- *
- * @param aId Id of the entry in CR.
- * @since S60 v5.0
- */
- void HandleNotifyIntL(TUint32 aId, TInt aNewValue );
-
-private:
-
- /**
- * Defautlt C++ Constructor.
- *
- * @param aCmnPtrs Common pointers.
- * @since S60 v5.0
- */
- CHnRepositoryZoomObserver( THnMdCommonPointers* aCmnPtrs, TUint32 iId );
-
-private:
-
- /**
- * Second stage constructor.
- *
- * @since S60 v5.0
- */
- void ConstructL( const TUid aRepositoryUid );
-
- /**
- * Setup initial value of zoom at startup;
- *
- * @since S60 v5.0
- */
- void InitializeL();
- };
-
#endif /*HNREPOSITORYOBSERVER_H_*/
//End of file
--- a/menufw/hierarchynavigator/hnmetadatamodel/src/hnmdmodel.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/hierarchynavigator/hnmetadatamodel/src/hnmdmodel.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description:
+* Description:
*
*/
@@ -52,7 +52,7 @@
MMPERF(("CHnMetaDataModel::ConstructL - model privider ready"));
iXmlModelProvider->ReloadModelL();
MMPERF(("CHnMetaDataModel::ConstructL - model reloaded"));
-
+
iCmnPtrs.iLocalization = iLocalization;
iCmnPtrs.iIdGenerator = &iIdGenerator;
iCmnPtrs.iModel = this;
@@ -60,13 +60,12 @@
iCmnPtrs.iContainer = aSuiteModelContainer;
iCmnPtrs.iModelEventObserver = aModelObserver;
iCmnPtrs.iBitmapIdCache = iBitmapIdCache;
-
+
THnMdCommonPointers::SetStatic(&iCmnPtrs);
-
+
iMode = EMdModeNormal;
iRepositoryWidgetTypeObserver = CHnRepositoryWidgetTypeObserver::NewL( &iCmnPtrs, KMatrixRepositoryUid );
iRepositoryShowFolderObserver = CHnRepositoryShowFolderObserver::NewL( &iCmnPtrs, KCRUidMenu, KMenuShowFolder );
- iRepositoryZoomObserver = CHnRepositoryZoomObserver::NewL( &iCmnPtrs, KCRUidAvkon, KAknGlobalUiZoom );
MMPERF(("CHnMetaDataModel::ConstructL - rep. observer ready"));
}
@@ -74,7 +73,7 @@
//
// ---------------------------------------------------------------------------
//
-EXPORT_C CHnMdModel* CHnMdModel::NewL(
+EXPORT_C CHnMdModel* CHnMdModel::NewL(
MHnMdModelEventObserver* aModelObserver,
CHnSuiteModelContainer * aSuiteModelContainer )
{
@@ -88,7 +87,7 @@
//
// ---------------------------------------------------------------------------
//
-EXPORT_C CHnMdModel* CHnMdModel::NewLC(
+EXPORT_C CHnMdModel* CHnMdModel::NewLC(
MHnMdModelEventObserver* aModelObserver,
CHnSuiteModelContainer * aSuiteModelContainer )
{
@@ -114,7 +113,6 @@
{
delete iRepositoryWidgetTypeObserver;
delete iRepositoryShowFolderObserver;
- delete iRepositoryZoomObserver;
iLoadedSuites.ResetAndDestroy();
delete iXmlModelProvider;
delete iLocalization;
@@ -136,7 +134,7 @@
CHnMdSuite* lastMdModel = GetLastSuite();
ASSERT( !lastMdModel->SuiteName().Compare( aSuiteName ) );
#endif
-
+
TInt countDown( aIterations );
CHnSuiteModel* current = NULL;
while( ( current = aMulContainer->GetParentSuiteModel() ) != NULL &&
@@ -145,12 +143,12 @@
current = aMulContainer->GetLastSuiteModel();
// pop the suite model
aMulContainer->PopSuiteModelL( current->SuiteName() );
-
+
// remove the suite that we are leaving
DeleteLastSuite();
countDown--;
}
-
+
current = aMulContainer->GetLastSuiteModel();
current->GetItemsOrder()->MarkSuiteUninitialized();
CHnFilter* filter = CHnFilter::NewLC();
@@ -191,7 +189,7 @@
{
break;
}
-
+
CHnMdSuite* suite = GetLastSuite();
if( iXmlModelProvider->SuiteExistsL( suite->SuiteName() ) )
{
@@ -204,13 +202,13 @@
aModelContainer->PopSuiteModelL( suite->SuiteName() );
DeleteLastSuite();
}
-
+
TInt err( KErrNone );
CHnFilter* filter = CHnFilter::NewLC();
filter->SetEvaluateSuiteL( ETrue );
SetModeL( iMode );
-
+
for( TInt i( paramsArray.Count() - 1 ); i >= 0 && !err; i-- )
{
CLiwGenericParamList* suiteParams = CLiwGenericParamList::NewL();
@@ -231,7 +229,7 @@
*filter, *iCmnPtrs.iContainer->GetLastSuiteModel() );
GetLastSuite()->EvaluateL( *iCmnPtrs.iContainer->GetLastSuiteModel() );
}
-
+
CleanupStack::PopAndDestroy( filter );
CleanupStack::PopAndDestroy( ¶msArray );
}
@@ -296,7 +294,7 @@
//
EXPORT_C CHnMdSuite* CHnMdModel::GetLastSuite()
{
- return (iLoadedSuites.Count()>0)
+ return (iLoadedSuites.Count()>0)
? iLoadedSuites[ iLoadedSuites.Count()-1 ]
: NULL;
}
@@ -355,7 +353,7 @@
{
User::Leave( KErrArgument );
}
-
+
if ( IsForegroundQueued() && ( !iForegroundTriggeringSuite ||
iForegroundTriggeringSuite == aJustEvaluatedSuite ) )
{
@@ -373,7 +371,7 @@
//
CHnMdSuite* CHnMdModel::GetSuite( TInt aPosition )
{
- return ( (aPosition >= 0) && (aPosition < iLoadedSuites.Count()) )
+ return ( (aPosition >= 0) && (aPosition < iLoadedSuites.Count()) )
? iLoadedSuites[ aPosition ]
: NULL;
}
@@ -405,11 +403,11 @@
//
// ---------------------------------------------------------------------------
//
-EXPORT_C TInt CHnMdModel::LoadSuiteL( const TDesC& aGenre,
+EXPORT_C TInt CHnMdModel::LoadSuiteL( const TDesC& aGenre,
CLiwGenericParamList* aSuiteParams )
{
TInt err( KErrNone );
-
+
RXmlEngDocument xmlDoc;
// Xml model provider takes ownership of xmlDoc.
TRAP( err, iXmlModelProvider->GetModelL( aGenre, xmlDoc ) );
@@ -423,28 +421,28 @@
err = KErrCorrupt;
}
}
-
+
if ( !err )
{
CHnMdSuite* newSuite = CHnMdSuite::NewLC( element, &iCmnPtrs );
-
+
if (aSuiteParams)
{
newSuite->SetSuiteParametersL( *aSuiteParams );
}
-
+
TInt pos( 0 );
newSuite->GetSuiteParameters().FindFirst( pos, KSuiteName8);
if ( pos == KErrNotFound )
{
- newSuite->GetSuiteParameters().AppendL(
+ newSuite->GetSuiteParameters().AppendL(
TLiwGenericParam(KSuiteName8, TLiwVariant( aGenre ) ) );
}
iCmnPtrs.iContainer->PushNewSuiteModelL( newSuite->SuiteName() );
iCmnPtrs.iContainer->GetLastSuiteModel()->GetItemsOrder()->
SetSuiteId( iCmnPtrs.iIdGenerator->GetNextId() );
-
+
CleanupStack::Pop( newSuite );
iLoadedSuites.AppendL( newSuite );
}
@@ -452,7 +450,7 @@
{
MMPERF(("CHnMdModel::LoadSuiteL - Error TRAPPED!"));
}
-
+
return err;
}
@@ -477,7 +475,7 @@
EXPORT_C void CHnMdModel::GetCurrentUriL( TDes& aUri )
{
iXmlModelProvider->ReloadModelL();
-
+
aUri.Append( KPrefMm );
for( TInt i(0); i < iLoadedSuites.Count(); i++ )
{
--- a/menufw/hierarchynavigator/hnmetadatamodel/src/hnrepositoryobserver.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/hierarchynavigator/hnmetadatamodel/src/hnrepositoryobserver.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -35,7 +35,7 @@
class CHnServiceHandler;
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
void CHnRepositoryObserver::ConstructL( const TUid aRepositoryUid )
@@ -44,27 +44,27 @@
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
-CHnRepositoryObserver::CHnRepositoryObserver( THnMdCommonPointers* aCmnPtrs )
+CHnRepositoryObserver::CHnRepositoryObserver( THnMdCommonPointers* aCmnPtrs )
: iCmnPtrs(aCmnPtrs)
{
-
+
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
-CHnRepositoryObserver::CHnRepositoryObserver( THnMdCommonPointers* aCmnPtrs, TUint32 aId )
+CHnRepositoryObserver::CHnRepositoryObserver( THnMdCommonPointers* aCmnPtrs, TUint32 aId )
: iId( aId ), iCmnPtrs(aCmnPtrs)
{
-
+
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
CHnRepositoryObserver::~CHnRepositoryObserver()
@@ -78,10 +78,10 @@
// class CHnRepositoryWidgetTypeObserver
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
-CHnRepositoryWidgetTypeObserver * CHnRepositoryWidgetTypeObserver::NewL(
+CHnRepositoryWidgetTypeObserver * CHnRepositoryWidgetTypeObserver::NewL(
THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid )
{
CHnRepositoryWidgetTypeObserver * self = CHnRepositoryWidgetTypeObserver::NewLC( aCmnPtrs, aRepositoryUid );
@@ -90,10 +90,10 @@
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
-CHnRepositoryWidgetTypeObserver * CHnRepositoryWidgetTypeObserver::NewLC(
+CHnRepositoryWidgetTypeObserver * CHnRepositoryWidgetTypeObserver::NewLC(
THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid )
{
CHnRepositoryWidgetTypeObserver * self = new (ELeave) CHnRepositoryWidgetTypeObserver( aCmnPtrs );
@@ -103,7 +103,7 @@
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
void CHnRepositoryWidgetTypeObserver::ConstructL( const TUid aRepositoryUid )
@@ -115,26 +115,26 @@
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
-CHnRepositoryWidgetTypeObserver::CHnRepositoryWidgetTypeObserver( THnMdCommonPointers* aCmnPtrs )
+CHnRepositoryWidgetTypeObserver::CHnRepositoryWidgetTypeObserver( THnMdCommonPointers* aCmnPtrs )
: CHnRepositoryObserver( aCmnPtrs )
{
-
+
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
CHnRepositoryWidgetTypeObserver::~CHnRepositoryWidgetTypeObserver()
{
iWidgetSwitches.Close();
}
-
+
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
void CHnRepositoryWidgetTypeObserver::HandleNotifyGeneric(TUint32 aId)
@@ -143,7 +143,7 @@
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
void CHnRepositoryWidgetTypeObserver::HandleNotifyGenericL(TUint32 aId)
@@ -152,9 +152,9 @@
DEBUG(("\tID: %d",aId));
THnSuiteWidgetType suiteState( EUnspecified );
- iRepository->Get( aId, (int &) suiteState);
+ iRepository->Get( aId, (int &) suiteState);
TInt id = iWidgetSwitches.Find(aId);
-
+
if ( suiteState == EChangeWidget )
{
iWidgetSwitches.AppendL(aId);
@@ -164,7 +164,7 @@
iWidgetSwitches.Remove(id);
return;
}
-
+
CHnSuiteModel* lastSuiteModel = iCmnPtrs->iContainer->GetLastSuiteModel();
TBuf <NCentralRepositoryConstants::KMaxUnicodeStringLength> suiteName;
if ( iRepository->Get( aId - 1, suiteName ) == KErrNone && lastSuiteModel
@@ -172,21 +172,21 @@
{
DEBUG16(("\t\tSuite Name: %S",&suiteName));
lastSuiteModel->GetItemsOrder()->MarkSuiteUninitialized();
-
+
TInt32 suiteId = lastSuiteModel->CustomId();
-
+
CLiwGenericParamList* inParam = CLiwGenericParamList::NewL();
CleanupStack::PushL( inParam );
-
+
CLiwDefaultMap* map = CLiwDefaultMap::NewLC();
-
+
map->InsertL( KGenreName8, TLiwVariant(suiteName) );
map->InsertL( KId8, TLiwVariant(suiteId) );
inParam->AppendL(TLiwGenericParam( KFilterElementItem8, TLiwVariant(map) ));
CleanupStack::PopAndDestroy( map );
-
+
iCmnPtrs->iModelEventObserver->HandleModelEventL( KReevaluateMdEvent, *inParam );
-
+
CleanupStack::PopAndDestroy( inParam );
}
DEBUG(("_MM_:CHnRepositoryObserver::HandleNotifyGeneric OUT"));
@@ -195,10 +195,10 @@
// class CHnRepositoryShowFolderObserver
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
-CHnRepositoryShowFolderObserver * CHnRepositoryShowFolderObserver::NewL(
+CHnRepositoryShowFolderObserver * CHnRepositoryShowFolderObserver::NewL(
THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid, const TUint32 aId )
{
CHnRepositoryShowFolderObserver * self = CHnRepositoryShowFolderObserver::NewLC( aCmnPtrs, aRepositoryUid, aId );
@@ -207,10 +207,10 @@
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
-CHnRepositoryShowFolderObserver * CHnRepositoryShowFolderObserver::NewLC(
+CHnRepositoryShowFolderObserver * CHnRepositoryShowFolderObserver::NewLC(
THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid, const TUint32 aId )
{
CHnRepositoryShowFolderObserver * self = new (ELeave) CHnRepositoryShowFolderObserver( aCmnPtrs, aId );
@@ -220,7 +220,7 @@
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
void CHnRepositoryShowFolderObserver::ConstructL( const TUid aRepositoryUid )
@@ -228,24 +228,24 @@
CHnRepositoryObserver::ConstructL( aRepositoryUid );
TInt ret = iRepository->Create( iId, KBlank );
iNotifyHandler = CCenRepNotifyHandler::NewL(
- *this, *iRepository,
+ *this, *iRepository,
CCenRepNotifyHandler::EStringKey, iId );
iNotifyHandler->StartListeningL();
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
-CHnRepositoryShowFolderObserver::CHnRepositoryShowFolderObserver( THnMdCommonPointers* aCmnPtrs, TUint32 aId )
+CHnRepositoryShowFolderObserver::CHnRepositoryShowFolderObserver( THnMdCommonPointers* aCmnPtrs, TUint32 aId )
: CHnRepositoryObserver( aCmnPtrs, aId )
{
-
+
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
CHnRepositoryShowFolderObserver::~CHnRepositoryShowFolderObserver()
@@ -254,7 +254,7 @@
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
void CHnRepositoryShowFolderObserver::HandleNotifyString(TUint32 aId, const TDesC16& aNewValue )
@@ -263,20 +263,20 @@
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
void CHnRepositoryShowFolderObserver::HandleNotifyStringL(TUint32 aId, const TDesC16& aNewValue)
{
DEBUG(("_MM_:CHnRepositoryShowFolderObserver::HandleNotifyStringL IN"));
DEBUG(("\tID: %d : %S", aId, &aNewValue));
-
+
//++Show Folder
if( aId == iId && aNewValue.Length())
{
iNotifyType = 0;
ExtractCRKeyShowFolderName( aNewValue );
-
+
// iCRKeyFolderItemUid can contain mcs id or uid
// in case of uid it will be replaced whith id in HandleNotifyL callback
if( iCRKeyFolderItemUid.Length()>0 )
@@ -294,7 +294,7 @@
CHnMdBaseKey* inDataKey = HnMdKeyFactory::CreateL(
KInData8, KKeyTypeMap, KDefaultParentId8 );
CleanupStack::PushL( inDataKey );
-
+
CHnMdBaseKey* filter( NULL );
HBufC8* id( NULL );
if ( iCRKeyFolderName.Length()>0 && !( iNotifyType & EAPP_UID ) )
@@ -306,8 +306,8 @@
inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KIdParam, KKeyTypeInteger, *id ) );
inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KRecursiveSearch8, KKeyTypeBoolean, KStringTrue8 ) );
inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KFlatResult8, KKeyTypeBoolean, KStringTrue8 ) );
-
- filter = HnMdKeyFactory::CreateL(
+
+ filter = HnMdKeyFactory::CreateL(
KFilter8, KKeyTypeMap, KStringTrue8 );
CleanupStack::PushL( filter );
filter->AddSubKeyL( HnMdKeyFactory::CreateL( KMcsAppGroupName8, KKeyTypeString, iCRKeyFolderName ) );
@@ -331,7 +331,7 @@
inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KRecursiveSearch8, KKeyTypeBoolean, KStringTrue8 ) );
inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KFlatResult8, KKeyTypeBoolean, KStringTrue8 ) );
- filter = HnMdKeyFactory::CreateL(
+ filter = HnMdKeyFactory::CreateL(
KFilter8, KKeyTypeMap, KStringTrue8 );
CleanupStack::PushL( filter );
filter->AddSubKeyL( HnMdKeyFactory::CreateL( KUid8, KKeyTypeInteger, iCRKeyFolderItemUid ) );
@@ -346,7 +346,7 @@
inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KIdParam, KKeyTypeInteger, *id ) );
inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KParentOnly8, KKeyTypeBoolean, KStringTrue8 ) );
}
-
+
RPointerArray< CHnMdBaseKey > data;
CleanupClosePushL( data );
data.AppendL( inDataKey );
@@ -393,32 +393,32 @@
}
CleanupStack::PopAndDestroy( inDataKey );
}
-
+
DEBUG(("_MM_:CHnRepositoryShowFolderObserver::HandleNotifyStringL OUT"));
-
+
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
void CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName( const TDesC& aNewValue )
{
- DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName IN" ));
+ DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName IN" ));
iCRKeyFolderName.Copy( KBlank );
iCRKeyFolderItemUid.Copy( KBlank );
-
+
int keyValueLength = aNewValue.Length();
if( keyValueLength )
{
TApaAppGroupName folder;
TBuf<KTimeStampBufferLength + KUidStringLength + 1> tempBuf;
TBuf<KTimeStampBufferLength> timeStamp;
-
+
TInt ret = aNewValue.Find( KComma );
if( (ret == KErrNotFound )|| ( ret == ( keyValueLength-1 ) ) )
{
- DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (bad CR key value input) OUT" ));
+ DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (bad CR key value input) OUT" ));
return; //bad CR key value input
}
if( ret>KApaMaxAppGroupName )
@@ -431,7 +431,7 @@
return;
}
tempBuf.Copy(aNewValue.Mid( ret + 1 ) );
-
+
TInt posUid = tempBuf.Find( KComma );
if ( KErrNotFound != posUid )
{
@@ -454,31 +454,31 @@
}
timeStamp.Copy( tempBuf );
}
-
+
TTime currentTime;
currentTime.HomeTime();
TTimeIntervalSeconds interval;
-
+
TTime timeStampTime;
ret = timeStampTime.Set(timeStamp);
-
+
if(ret == KErrGeneral )
{
- DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (bad timestamp) OUT" ));
- return; // bad time stamp value
+ DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (bad timestamp) OUT" ));
+ return; // bad time stamp value
}
-
+
ret = currentTime.SecondsFrom( timeStampTime, interval );
-
+
if( interval.Int() < 0 )
{//negative timestamp is set ahead of current time...!
- DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (negative interval) OUT" ));
+ DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (negative interval) OUT" ));
return;
}
-
+
if(( interval.Int()) > KTimeStampCutOff )
{//positive timestamp but more than 5 seconds
- DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (more than 5 seconds) OUT" ));
+ DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (more than 5 seconds) OUT" ));
return;
}
else
@@ -486,16 +486,16 @@
iCRKeyFolderName.Copy(folder);
}
}
- DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName OUT" ));
+ DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName OUT" ));
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
void CHnRepositoryShowFolderObserver::GetShowFolderL( TUint32 aFolderId )
{
-
+
CHnMdBaseKey* inDataKey = HnMdKeyFactory::CreateL(
KInData8, KKeyTypeMap, KDefaultParentId8 );
CleanupStack::PushL( inDataKey );
@@ -507,7 +507,7 @@
RPointerArray< CHnMdBaseKey > data;
CleanupClosePushL( data );
data.Append( inDataKey );
-
+
CHnMdBaseKey* serviceData = HnMdKeyFactory::CreateL(
KServiceContentName, KKeyTypeString, KMatrixMenuData );
CleanupStack::PushL( serviceData );
@@ -542,12 +542,12 @@
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
void CHnRepositoryShowFolderObserver::GetShowFolderGroupNameL()
{
-
+
CHnMdBaseKey* inDataKey = HnMdKeyFactory::CreateL(
KInData8, KKeyTypeMap, KDefaultParentId8 );
CleanupStack::PushL( inDataKey );
@@ -556,14 +556,14 @@
inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KIdParam, KKeyTypeInteger, *id ) );
inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KRecursiveSearch8, KKeyTypeBoolean, KStringTrue8 ) );
inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KFlatResult8, KKeyTypeBoolean, KStringTrue8 ) );
-
- CHnMdBaseKey* filter = HnMdKeyFactory::CreateL(
+
+ CHnMdBaseKey* filter = HnMdKeyFactory::CreateL(
KFilter8, KKeyTypeMap, KStringTrue8 );
CleanupStack::PushL( filter );
filter->AddSubKeyL( HnMdKeyFactory::CreateL( KMcsAppGroupName8, KKeyTypeString, iCRKeyFolderName ) );
filter->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuFolder8 ) );
filter->AddSubKeyL( HnMdKeyFactory::CreateL( KHidden8, KKeyTypeBoolean, KStringFalse8 ) );
-
+
RPointerArray< CHnMdBaseKey > data;
CleanupClosePushL( data );
data.AppendL( inDataKey );
@@ -571,7 +571,7 @@
{
data.AppendL( filter );
}
-
+
CHnMdBaseKey* serviceData = HnMdKeyFactory::CreateL(
KServiceContentName, KKeyTypeString, KMatrixMenuData );
CleanupStack::PushL( serviceData );
@@ -607,7 +607,7 @@
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
TInt CHnRepositoryShowFolderObserver::HandleNotifyL(
@@ -644,7 +644,7 @@
iNotifyType |= ESECOND_NOTIFY;
TLiwVariant varId; varId.PushL();
TLiwVariant varParentId; varParentId.PushL();
-
+
HnLiwUtils::GetVariantL( aEventParamList, KIdPath8, 0, varId );
HnLiwUtils::GetVariantL( aEventParamList, KParentIdPath8, 0, varParentId );
@@ -656,7 +656,7 @@
CleanupStack::PopAndDestroy( &varParentId );
CleanupStack::PopAndDestroy( &varId );
-
+
GetShowFolderL( parentId );
return KErrNone;
}
@@ -692,43 +692,43 @@
{
return KErrNotFound;
}
-
+
TLiwVariant varId; varId.PushL();
TLiwVariant varAppGroupName; varAppGroupName.PushL();
TLiwVariant varSuiteName; varSuiteName.PushL();
TLiwVariant varChildrenCount; varChildrenCount.PushL();
-
+
HnLiwUtils::GetVariantL( aEventParamList, KIdPath8, 0, varId );
HnLiwUtils::GetVariantL( aEventParamList, KAppGroupNamePath8, 0, varAppGroupName );
HnLiwUtils::GetVariantL( aEventParamList, KTitleNamePath8, 0, varSuiteName );
HnLiwUtils::GetVariantL( aEventParamList, KChildrenCountPath8, 0, varChildrenCount );
-
+
CLiwGenericParamList* paramList = CLiwGenericParamList::NewL();
CleanupStack::PushL( paramList );
-
+
CLiwDefaultMap* map = CLiwDefaultMap::NewLC();
-
- paramList->AppendL( TLiwGenericParam( KSuiteName8,
- TLiwVariant( KFolderSuite ) ) );
-
- map->InsertL( KSuiteName8, varSuiteName );
+
+ paramList->AppendL( TLiwGenericParam( KSuiteName8,
+ TLiwVariant( KFolderSuite ) ) );
+
+ map->InsertL( KSuiteName8, varSuiteName );
map->InsertL( KFolderId8, varId );
map->InsertL( KRemoveLocked8, TLiwVariant( KStringFalse8 ) );
map->InsertL( KParentFolderId8, varId );
map->InsertL( KTmpParentFolderId8, varId );
map->InsertL( KMcsAppGroupName8, varAppGroupName );
-
+
paramList->AppendL( TLiwGenericParam( KParams8, TLiwVariant( map ) ) );
-
+
CleanupStack::PopAndDestroy( map );
-
+
while ( iCmnPtrs->iModel->LoadedSuitesCount() > 1 )
{
CHnMdSuite* suite = iCmnPtrs->iModel->GetLastSuite();
iCmnPtrs->iContainer->PopSuiteModelL( suite->SuiteName() );
- iCmnPtrs->iModel->DeleteLastSuite();
+ iCmnPtrs->iModel->DeleteLastSuite();
}
-
+
if ( iCmnPtrs->iContainer->GetLastSuiteModel()->CustomId() != varId.AsTInt64() )
{
iCmnPtrs->iModelEventObserver->HandleModelEventL( KNewSuiteLoadedMdEvent, *paramList );
@@ -754,33 +754,33 @@
CleanupStack::PopAndDestroy( pl );
CleanupStack::PopAndDestroy( &varId );
CleanupStack::PopAndDestroy( &varItemCustomId );
-
+
iCRKeyFolderItemUid.Copy( KBlank );
}
-
+
iNotifyType = 0;
iCRKeyFolderName.Copy( KBlank );
iRepository->Set( iId, KBlank );
-
+
CleanupStack::PopAndDestroy( paramList );
CleanupStack::PopAndDestroy( &varChildrenCount );
CleanupStack::PopAndDestroy( &varSuiteName );
CleanupStack::PopAndDestroy( &varAppGroupName );
CleanupStack::PopAndDestroy( &varId );
}
-
+
DEBUG(("_MM_:CHnRepositoryShowFolderObserver::HandleNotifyL OUT"));
return KErrNone;
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
-void CHnRepositoryShowFolderObserver::HandleSuiteEventL ( THnCustomSuiteEvent aCustomSuiteEvent,
+void CHnRepositoryShowFolderObserver::HandleSuiteEventL ( THnCustomSuiteEvent aCustomSuiteEvent,
CHnSuiteModel *aModel )
{
-
+
if ( aCustomSuiteEvent == ESuiteModelInitialized && iCRKeyFolderItemUid.Length() > 0 )
{
if (iCRKeyFolderItemUid.Length() > 0 )
@@ -802,112 +802,4 @@
}
}
-
-// class CHnRepositoryZoomObserver
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CHnRepositoryZoomObserver * CHnRepositoryZoomObserver::NewL(
- THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid, const TUint32 aId )
- {
- CHnRepositoryZoomObserver * self = CHnRepositoryZoomObserver::NewLC( aCmnPtrs, aRepositoryUid, aId );
- CleanupStack::Pop(self);
- return self;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CHnRepositoryZoomObserver * CHnRepositoryZoomObserver::NewLC(
- THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid, const TUint32 aId )
- {
- CHnRepositoryZoomObserver * self = new (ELeave) CHnRepositoryZoomObserver( aCmnPtrs, aId );
- CleanupStack::PushL(self);
- self->ConstructL( aRepositoryUid );
- return self;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CHnRepositoryZoomObserver::ConstructL( const TUid aRepositoryUid )
- {
- CHnRepositoryObserver::ConstructL( aRepositoryUid );
- iNotifyHandler = CCenRepNotifyHandler::NewL(
- *this, *iRepository,
- CCenRepNotifyHandler::EIntKey, iId );
- InitializeL();
- iNotifyHandler->StartListeningL();
- }
-
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CHnRepositoryZoomObserver::CHnRepositoryZoomObserver( THnMdCommonPointers* aCmnPtrs, TUint32 aId )
- : CHnRepositoryObserver( aCmnPtrs, aId )
- {
-
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CHnRepositoryZoomObserver::~CHnRepositoryZoomObserver()
- {
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CHnRepositoryZoomObserver::HandleNotifyInt(TUint32 aId, TInt aNewValue )
- {
- TRAP_IGNORE( HandleNotifyIntL(aId, aNewValue) );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CHnRepositoryZoomObserver::HandleNotifyIntL(TUint32 aId, TInt aNewValue )
- {
- DEBUG(("_MM_:CHnRepositoryZoomObserver::HandleNotifyStringL IN"));
- DEBUG(("\tID: %d : %d", aId, aNewValue));
-
- CLiwGenericParamList* paramList = CLiwGenericParamList::NewL();
- CleanupStack::PushL( paramList );
-
- if ( (TAknUiZoom)aNewValue == EAknUiZoomLarge )
- {
- iCmnPtrs->iModelEventObserver->HandleModelEventL( KZoomLarge, *paramList );
- }
- else if ( (TAknUiZoom)aNewValue == EAknUiZoomSmall )
- {
- iCmnPtrs->iModelEventObserver->HandleModelEventL( KZoomSmall, *paramList );
- }
- else
- {
- iCmnPtrs->iModelEventObserver->HandleModelEventL( KZoomNormal, *paramList );
- }
-
- CleanupStack::PopAndDestroy( paramList );
- DEBUG(("_MM_:CHnRepositoryZoomObserver::HandleNotifyStringL OUT"));
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CHnRepositoryZoomObserver::InitializeL()
- {
- TInt value(0);
- iRepository->Get( iId, value);
- HandleNotifyIntL( iId, value );
- }
// End of File
--- a/menufw/hierarchynavigator/hnutilities/group/bld.inf Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/hierarchynavigator/hnutilities/group/bld.inf Thu Jan 07 12:39:41 2010 +0200
@@ -28,9 +28,7 @@
../inc/hnmdkeyfactory.h |../../../inc/hnmdkeyfactory.h
../inc/hnservicehandler.h |../../../inc/hnservicehandler.h
-../data/20012474_newMenuFw.txt /epoc32/release/winscw/udeb/z/private/10202be9/20012474.txt
-../data/20012474_newMenuFw.txt /epoc32/release/winscw/urel/z/private/10202be9/20012474.txt
-../data/20012474_newMenuFw.txt /epoc32/data/z/private/10202be9/20012474.txt
+../data/20012474_newMenuFw.txt z:/private/10202be9/20012474.txt
PRJ_MMPFILES
hnutilities.mmp
--- a/menufw/menufwui/matrixmenu/group/bld.inf Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/menufwui/matrixmenu/group/bld.inf Thu Jan 07 12:39:41 2010 +0200
@@ -33,9 +33,7 @@
../inc/mmguiuid.hrh |../../../inc/mmguiuid.hrh
// backup registration
-backup_registration.xml /epoc32/data/Z/private/101F4CD2/backup_registration.xml
-backup_registration.xml /epoc32/release/winscw/udeb/Z/private/101F4CD2/backup_registration.xml
-backup_registration.xml /epoc32/release/winscw/urel/Z/private/101F4CD2/backup_registration.xml
+backup_registration.xml Z:/private/101F4CD2/backup_registration.xml
PRJ_MMPFILES
matrixmenu.mmp
--- a/menufw/menufwui/matrixmenu/group/matrixmenu.mmp Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/menufwui/matrixmenu/group/matrixmenu.mmp Thu Jan 07 12:39:41 2010 +0200
@@ -35,7 +35,6 @@
SOURCE mmapplication.cpp
SOURCE mmappui.cpp
SOURCE mmdocument.cpp
-SOURCE mmpropertysubscriber.cpp
SOURCE mmnomemory.cpp
SOURCE mmappkeyhandler.cpp
Binary file menufw/menufwui/matrixmenu/help/data/xhtml.zip has changed
--- a/menufw/menufwui/matrixmenu/inc/mmappui.h Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/menufwui/matrixmenu/inc/mmappui.h Thu Jan 07 12:39:41 2010 +0200
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Application UI class
-* Version : %version: MM_83.1.2.1.23.1.18 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_83.1.2.1.23.1.19 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -28,14 +28,12 @@
#include <aknappui.h>
#include <akntoolbarobserver.h>
#include <eiklbo.h>
-#include <hwrmdomainpskeys.h> //for flip change status
#include <AknsSrvClient.h>
#include "hncontrollerinterface.h"
#include "mmwidgetobserver.h"
#include "hnsuiteobserver.h"
#include "mmactionrequest.h"
-#include "mmpropertysubscriber.h"
#include "hnglobals.h"
@@ -76,7 +74,6 @@
public MAknToolbarObserver,
public MMmWidgetObserver,
public MMmActionRequest,
- public MMmPropertyChangeObserver,
public MAknsSkinChangeObserver
{
@@ -307,24 +304,11 @@
TInt ExecuteExtensionActionL( const TUid aUid , const TDesC& aCommand,
CLiwGenericParamList* aEventParamList );
-// from MMmPropertyChangeObserver
- /**
- * Called when property changed
- * @since S60 v3.0
- */
- void PropertyChangedL(TInt aValue);
-
- /**
- * Sets the zoom for the application.
- */
- void SetZoom( TAknUiZoom aZoom );
-
/**
* Reloads cascade menu map.
*/
void ReloadCascadeMenuMapL();
-
/**
* Called by the skin server when skin content is changed and the
* connected client wants to be informed.
@@ -784,14 +768,6 @@
void ResetContainerMapToRootL();
/**
- * Called to retrive flip status.
- *
- * @since S60 v5.0
- * @return Is flip open.
- */
- TBool FlipOpen();
-
- /**
* Resets view to root.
*
* @return ETrue if view was not displaying root suite already, EFalse otherwise
@@ -962,22 +938,6 @@
CMMExtensionManager* iMmExtManager;
/**
- * Sliding keyboard (flip) status
- */
- EPSHWRMFlipStatus iKeyboardFlipStatus;
-
- /**
- * Slider event subscriber
- * own
- */
- CMmPropertySubscriber* iSliderEventSubscriber;
-
- /**
- * Current zoom;
- */
- TAknUiZoom iZoom;
-
- /**
* Screen state.
*/
TBool iScreenOn;
--- a/menufw/menufwui/matrixmenu/inc/mmpropertysubscriber.h Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +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: Subscribes properties from P&S
- *
-*/
-
-#ifndef MMPROPERTYSUBSCRIBER_H
-#define MMPROPERTYSUBSCRIBER_H
-
-#include <e32base.h> // For CActive, link against: euser.lib
-#include <e32property.h>
-// Observer for property change. Currently integer value supported
-class MMmPropertyChangeObserver
- {
-public:
- virtual void PropertyChangedL(TInt aValue)=0;
- };
-
-/**
-* Subcribes property from P&S and listen property changes
-*
-* @lib xn3layoutengine.lib
-* @since Series 60 5.0
-*/
-NONSHARABLE_CLASS( CMmPropertySubscriber ) : public CActive
- {
-public:
- // Cancel and destroy
- ~CMmPropertySubscriber();
-
- /**
- * Two-phased constructor.
- * @param aUid P&S property category
- * @param aKey P&S property key
- * @param aObserver Given property change observer
- */
- static CMmPropertySubscriber* NewL(
- const TUid aUid,
- const TUint32 aKey,
- MMmPropertyChangeObserver& aObserver);
-
- /**
- * Two-phased constructor.
- * @param aUid P&S property category
- * @param aKey P&S property key
- * @param aObserver Given property change observer
- */
- static CMmPropertySubscriber* NewLC(
- const TUid aUid,
- const TUint32 aKey,
- MMmPropertyChangeObserver& aObserver);
-
-private:
- // C++ constructor
- CMmPropertySubscriber(MMmPropertyChangeObserver& aObserver);
-
- // Second-phase constructor
- void ConstructL(const TUid aUid,const TUint32 aKey);
-
-private: // From CActive
- // Handle completion
- void RunL();
-
- // How to cancel me
- void DoCancel();
-
-private:
- //Observer for property changes
- MMmPropertyChangeObserver& iPropertyChangeObserver;
- // Property to listen
- RProperty iProperty;
- };
-
-#endif // MMPROPERTYSUBSCRIBER_H
--- a/menufw/menufwui/matrixmenu/src/mmappui.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/menufwui/matrixmenu/src/mmappui.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -12,8 +12,8 @@
* Contributors:
*
* Description: Application UI class
-* Version : %version: MM_176.1.28.1.52 % << Don't touch! Updated by Synergy at check-out.
-* Version : %version: MM_176.1.28.1.52 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_176.1.28.1.54 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_176.1.28.1.54 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -42,7 +42,6 @@
#include <matrixmenu.rsg>
#include <akntabgrp.h>
#include <apgcli.h>
-#include <hwrmdomainpskeys.h> //flip status enums
#include <AknDef.hrh>
#include <AknDlgShut.h>
#include <mmenuinternalPSkeys.h>
@@ -66,7 +65,6 @@
#include "mmwidgetcontainer.h"
#include "mmtemplatelibrary.h"
#include "mmextensionmanager.h"
-#include "mmpropertysubscriber.h"
#include "hnitemsorder.h"
#include "mmnomemory.h"
@@ -124,10 +122,6 @@
iMmExtManager = CMMExtensionManager::NewL( *this );
- iKeyboardFlipStatus = EPSHWRMFlipStatusUninitialized;
- iSliderEventSubscriber = CMmPropertySubscriber::NewL(KPSUidHWRM,
- KHWRMFlipStatus, *this);
-
iScreenOn = ETrue;
iSkinChangeNeeded = EFalse;
iSkinChangeInProgress = EFalse;
@@ -190,7 +184,6 @@
delete iHNInterface;
FeatureManager::UnInitializeLib();
delete iMmExtManager;
- delete iSliderEventSubscriber;
delete iTemplateLibrary;
delete iDummyTemplateLib;
delete iAppkeyHandler;
@@ -315,9 +308,9 @@
CAknAppUi::ProcessCommandL( aCommand );
}
- if (iCurrentContainer && iCurrentContainer == TopFocusedControl() )
+ if ( iCurrentContainer )
{
- iCurrentContainer->HandleTopFocusL();
+ iCurrentContainer->EndLongTapL();
}
}
@@ -728,7 +721,8 @@
TBool idByContainer = iCurrentContainer->IsHighlightVisible() &&
iCurrentContainer->GetSuiteModelL()->GetItemModelsCount() > 1;
TInt current = idByContainer ?
- iCurrentContainer->GetHighlight() : KErrNotFound;
+ iCurrentContainer->GetHighlight():
+ iCurrentContainer->GetSuiteModelL()->GetSuiteHighlight();
ForwardEventToHNL( aEvent, current );
}
@@ -763,15 +757,6 @@
case EStopEditMode:
SetEditModeL( EFalse );
break;
- case EZoomLarge:
- SetZoom( EAknUiZoomLarge );
- break;
- case EZoomSmall:
- SetZoom( EAknUiZoomSmall );
- break;
- case EZoomNormal:
- SetZoom( EAknUiZoomNormal );
- break;
case EForegroundGain:
{
DEBUG(("_MM_:CMmAppUi::NotifyUiRefreshL Foreground"));
@@ -1333,10 +1318,9 @@
MMPERF(("CMmAppUi::DynInitMenuPaneL - STOP"));
}
- if ( !popupMenuDisplayed && iCurrentContainer
- && iCurrentContainer == TopFocusedControl() )
+ if ( !popupMenuDisplayed && iCurrentContainer )
{
- iCurrentContainer->HandleTopFocusL( EFalse );
+ iCurrentContainer->EndLongTapL( EFalse );
HandleHighlightItemSingleClickedL(
iCurrentContainer->Widget()->CurrentItemIndex() );
}
@@ -1356,10 +1340,6 @@
{
ForwardEventToHNL( KKeyIdSelect, aIndex );
}
- else if ( iCurrentSuiteModel->WidgetType() == EGridWidget && FlipOpen() )
- {
- ForwardEventToHNL( KKeyIdSelect, aIndex );
- }
else if ( iCurrentSuiteModel->WidgetType() == EGridWidget
&& IsEditMode() && iCurrentContainer->GetPreviousHighlight() == aIndex
&& !iCurrentContainer->IsDraggable())
@@ -1761,8 +1741,6 @@
iCurrentContainer->Widget()->View()->SetDisableRedraw(ETrue);
iDummyContainer->MakeVisible( ETrue );
RefreshCbaL();
- iCurrentContainer->SetZoom( iZoom );
- iCurrentContainer->SetFlipOpenL( FlipOpen() );
iCurrentContainer->SetEditModeL( IsEditMode() );
iCurrentContainer->SetSuiteModelL( iCurrentSuiteModel );
iCurrentContainer->HandleResourceChange( KAknsMessageSkinChange );
@@ -1796,8 +1774,6 @@
if ( iCurrentSuiteModel )
{
iCurrentContainer->Widget()->View()->SetDisableRedraw(ETrue);
- iCurrentContainer->SetZoom( iZoom );
- iCurrentContainer->SetFlipOpenL( FlipOpen() );
iCurrentContainer->SetEditModeL( IsEditMode() );
iCurrentContainer->SetSuiteModelL( iCurrentSuiteModel );
iCurrentContainer->SetEmptyTextL( iCurrentSuiteModel->EmptyText() );
@@ -2344,8 +2320,6 @@
iHNInterface = NULL;
delete iMmExtManager;
iMmExtManager = NULL;
- delete iSliderEventSubscriber;
- iSliderEventSubscriber = NULL;
delete iTemplateLibrary;
iTemplateLibrary = NULL;
@@ -2367,8 +2341,6 @@
iMmExtManager = CMMExtensionManager::NewL( *this );
- iKeyboardFlipStatus = EPSHWRMFlipStatusUninitialized;
-
iScreenOn = ETrue;
iSkinChangeNeeded = EFalse;
iSkinChangeInProgress = EFalse;
@@ -2433,7 +2405,6 @@
if( created )
{
containerToLoad->Widget()->View()->SetDisableRedraw( ETrue );
- containerToLoad->SetFlipOpenL( FlipOpen() );
containerToLoad->SetEditModeL( IsEditMode() );
containerToLoad->SetSuiteModelL( aModel );
containerToLoad->SetEmptyTextL( aModel->EmptyText() );
@@ -2776,57 +2747,6 @@
//
// ---------------------------------------------------------------------------
//
-void CMmAppUi::PropertyChangedL(TInt aValue)
- {
- iKeyboardFlipStatus = (EPSHWRMFlipStatus)aValue;
-
- if ( iCurrentContainer )
- {
- if( iKeyboardFlipStatus == EPSHWRMFlipOpen )
- {
- TBool wasHighlightVisible = iCurrentContainer->IsHighlightVisible();
- iCurrentContainer->SetFlipOpenL( ETrue );
- if ( IsForeground() && !IsEditMode() && !wasHighlightVisible )
- {
- iCurrentContainer->SetDefaultHighlightL( ETrue );
- }
- }
- else if( iKeyboardFlipStatus == EPSHWRMFlipClosed )
- {
- iCurrentContainer->SetFlipOpenL( EFalse );
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TBool CMmAppUi::FlipOpen()
- {
- return iKeyboardFlipStatus == EPSHWRMFlipOpen;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CMmAppUi::SetZoom( TAknUiZoom aZoom )
- {
- if ( iZoom != aZoom)
- {
- if ( iCurrentContainer )
- {
- iCurrentContainer->HandleZoomChanged( aZoom );
- }
- }
- iZoom = aZoom;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
TBool CMmAppUi::ResetToRootL()
{
TBool resetConsumed( EFalse );
@@ -2842,7 +2762,6 @@
if( iCurrentContainer )
{
iCurrentContainer->ResetWidgetPosition();
- iCurrentContainer->SetZoom( iZoom );
AddToStackL( iCurrentContainer );
}
RefreshUiPanesL( ETrue );
@@ -3029,8 +2948,7 @@
//should be reset to normal then.
if( AknLayoutUtils::PenEnabled() )
{
- if( iCurrentContainer->WidgetType() == EGridWidget
- && !FlipOpen() && !IsEditMode() )
+ if( iCurrentContainer->WidgetType() == EGridWidget && !IsEditMode() )
{
iCurrentContainer->Widget()->View()->ItemDrawer()->
SetFlags( CListItemDrawer::EDisableHighlight );
--- a/menufw/menufwui/matrixmenu/src/mmpropertysubscriber.cpp Thu Dec 17 08:40:49 2009 +0200
+++ /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: Subscribes properties from P&S
- *
-*/
-
-
-#include "mmpropertysubscriber.h"
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-CMmPropertySubscriber::CMmPropertySubscriber(MMmPropertyChangeObserver& aObserver)
- : CActive( EPriorityStandard ),
- iPropertyChangeObserver(aObserver)
- {
- }
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-CMmPropertySubscriber* CMmPropertySubscriber::NewLC(
- const TUid aUid,
- const TUint32 aKey,
- MMmPropertyChangeObserver& aObserver)
- {
- CMmPropertySubscriber* self = new ( ELeave ) CMmPropertySubscriber(aObserver);
- CleanupStack::PushL(self);
- self->ConstructL(aUid,aKey);
- return self;
- }
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-CMmPropertySubscriber* CMmPropertySubscriber::NewL(
- const TUid aUid,
- const TUint32 aKey,
- MMmPropertyChangeObserver& aObserver)
- {
- CMmPropertySubscriber* self = CMmPropertySubscriber::NewLC(aUid,aKey,aObserver);
- CleanupStack::Pop(); // self;
- return self;
- }
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-void CMmPropertySubscriber::ConstructL(
- const TUid aUid,
- const TUint32 aKey)
- {
- User::LeaveIfError( iProperty.Attach( aUid, aKey ) );
- CActiveScheduler::Add( this); // Add to scheduler
- // initial subscription and process current property value
- RunL();
- }
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-CMmPropertySubscriber::~CMmPropertySubscriber()
- {
- Cancel(); // Cancel any request, if outstanding
- iProperty.Close();
- }
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-void CMmPropertySubscriber::DoCancel()
- {
- iProperty.Close();
- }
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-void CMmPropertySubscriber::RunL()
- {
- // resubscribe before processing new value to prevent missing updates
- iProperty.Subscribe( iStatus );
- SetActive();
-
- TInt intValue;
- if( iProperty.Get( intValue ) != KErrNotFound )
- {
- iPropertyChangeObserver.PropertyChangedL(intValue);
- }
- }
-
--- a/menufw/menufwui/mmwidgets/bwins/mmwidgetsu.def Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/menufwui/mmwidgets/bwins/mmwidgetsu.def Thu Jan 07 12:39:41 2010 +0200
@@ -1,45 +1,42 @@
EXPORTS
?SetHighlightVisibilityL@CMmWidgetContainer@@UAEXH@Z @ 1 NONAME ; void CMmWidgetContainer::SetHighlightVisibilityL(int)
?SetDefaultHighlightL@CMmGridContainer@@UAEXH@Z @ 2 NONAME ; void CMmGridContainer::SetDefaultHighlightL(int)
- ?HandleZoomChanged@CMmWidgetContainer@@QAEXW4TAknUiZoom@@@Z @ 3 NONAME ; void CMmWidgetContainer::HandleZoomChanged(enum TAknUiZoom)
- ?PrepareForGarbage@CMmWidgetContainer@@QAEXXZ @ 4 NONAME ; void CMmWidgetContainer::PrepareForGarbage(void)
- ?GetPreviousHighlight@CMmWidgetContainer@@UAEHXZ @ 5 NONAME ; int CMmWidgetContainer::GetPreviousHighlight(void)
+ ?PrepareForGarbage@CMmWidgetContainer@@QAEXXZ @ 3 NONAME ; void CMmWidgetContainer::PrepareForGarbage(void)
+ ?GetPreviousHighlight@CMmWidgetContainer@@UAEHXZ @ 4 NONAME ; int CMmWidgetContainer::GetPreviousHighlight(void)
+ ?SetHasFocusL@CMmWidgetContainer@@QAEXH@Z @ 5 NONAME ; void CMmWidgetContainer::SetHasFocusL(int)
?HandleItemAdditionL@CMmWidgetContainer@@UAEXXZ @ 6 NONAME ; void CMmWidgetContainer::HandleItemAdditionL(void)
?NewLC@CMmTemplateLibrary@@SAPAV1@XZ @ 7 NONAME ; class CMmTemplateLibrary * CMmTemplateLibrary::NewLC(void)
?IsDraggable@CMmWidgetContainer@@QAEHXZ @ 8 NONAME ; int CMmWidgetContainer::IsDraggable(void)
?HandleItemRemovalL@CMmWidgetContainer@@UAEXXZ @ 9 NONAME ; void CMmWidgetContainer::HandleItemRemovalL(void)
?NumberOfItemsChangedL@CMmWidgetContainer@@QAEXW4TItemsChangeType@@@Z @ 10 NONAME ; void CMmWidgetContainer::NumberOfItemsChangedL(enum TItemsChangeType)
?RestoreWidgetPosition@CMmWidgetContainer@@QAEXXZ @ 11 NONAME ; void CMmWidgetContainer::RestoreWidgetPosition(void)
- ?NewL@CMmTemplateLibrary@@SAPAV1@XZ @ 12 NONAME ; class CMmTemplateLibrary * CMmTemplateLibrary::NewL(void)
- ?NewL@CMmHighlightTimer@@SAPAV1@PAVCMmWidgetContainer@@@Z @ 13 NONAME ; class CMmHighlightTimer * CMmHighlightTimer::NewL(class CMmWidgetContainer *)
- ?GetSuiteModelL@CMmWidgetContainer@@QAEPAVCHnSuiteModel@@XZ @ 14 NONAME ; class CHnSuiteModel * CMmWidgetContainer::GetSuiteModelL(void)
- ?HandleForegroundGainedL@CMmWidgetContainer@@UAEXXZ @ 15 NONAME ; void CMmWidgetContainer::HandleForegroundGainedL(void)
+ ?GetSuiteModelL@CMmWidgetContainer@@QAEPAVCHnSuiteModel@@XZ @ 12 NONAME ; class CHnSuiteModel * CMmWidgetContainer::GetSuiteModelL(void)
+ ?HandleForegroundGainedL@CMmWidgetContainer@@UAEXXZ @ 13 NONAME ; void CMmWidgetContainer::HandleForegroundGainedL(void)
+ ?NewL@CMmHighlightTimer@@SAPAV1@PAVCMmWidgetContainer@@@Z @ 14 NONAME ; class CMmHighlightTimer * CMmHighlightTimer::NewL(class CMmWidgetContainer *)
+ ?NewL@CMmTemplateLibrary@@SAPAV1@XZ @ 15 NONAME ; class CMmTemplateLibrary * CMmTemplateLibrary::NewL(void)
?CancelDragL@CMmWidgetContainer@@QAEXH@Z @ 16 NONAME ; void CMmWidgetContainer::CancelDragL(int)
?SetManualHighlightL@CMmWidgetContainer@@UAEXHH@Z @ 17 NONAME ; void CMmWidgetContainer::SetManualHighlightL(int, int)
- ?SetFlipOpenL@CMmWidgetContainer@@QAEXH@Z @ 18 NONAME ; void CMmWidgetContainer::SetFlipOpenL(int)
+ ?HandleOptionsMenuVisibilityChangeL@CMmWidgetContainer@@UAEXH@Z @ 18 NONAME ; void CMmWidgetContainer::HandleOptionsMenuVisibilityChangeL(int)
?ItemIsFullyVisible@CMmWidgetContainer@@QAEHH@Z @ 19 NONAME ; int CMmWidgetContainer::ItemIsFullyVisible(int)
- ?SetHasFocusL@CMmWidgetContainer@@QAEXH@Z @ 20 NONAME ; void CMmWidgetContainer::SetHasFocusL(int)
- ?HandleTopFocusL@CMmWidgetContainer@@UAEXH@Z @ 21 NONAME ; void CMmWidgetContainer::HandleTopFocusL(int)
- ?HandleOptionsMenuVisibilityChangeL@CMmWidgetContainer@@UAEXH@Z @ 22 NONAME ; void CMmWidgetContainer::HandleOptionsMenuVisibilityChangeL(int)
- ?NewGridContainerL@CMmWidgetContainer@@SAPAV1@ABVTRect@@PAVMObjectProvider@@PAVCMmTemplateLibrary@@@Z @ 23 NONAME ; class CMmWidgetContainer * CMmWidgetContainer::NewGridContainerL(class TRect const &, class MObjectProvider *, class CMmTemplateLibrary *)
- ?NumberOfItems@CMmWidgetContainer@@QAEHXZ @ 24 NONAME ; int CMmWidgetContainer::NumberOfItems(void)
- ?WidgetType@CMmWidgetContainer@@UAE?AW4THnSuiteWidgetType@@XZ @ 25 NONAME ; enum THnSuiteWidgetType CMmWidgetContainer::WidgetType(void)
- ?GetHighlight@CMmWidgetContainer@@UAEHXZ @ 26 NONAME ; int CMmWidgetContainer::GetHighlight(void)
- ?ItemIconZoomL@CMmWidgetContainer@@QAEXH@Z @ 27 NONAME ; void CMmWidgetContainer::ItemIconZoomL(int)
- ?ResetWidgetPosition@CMmWidgetContainer@@QAEXXZ @ 28 NONAME ; void CMmWidgetContainer::ResetWidgetPosition(void)
- ?HandleBackgroundGainedL@CMmWidgetContainer@@UAEXXZ @ 29 NONAME ; void CMmWidgetContainer::HandleBackgroundGainedL(void)
- ?CacheWidgetPosition@CMmWidgetContainer@@QAEXXZ @ 30 NONAME ; void CMmWidgetContainer::CacheWidgetPosition(void)
- ?NewLC@CMmHighlightTimer@@SAPAV1@PAVCMmWidgetContainer@@@Z @ 31 NONAME ; class CMmHighlightTimer * CMmHighlightTimer::NewLC(class CMmWidgetContainer *)
- ?SetEmptyTextL@CMmListBoxContainer@@UAEXABVTDesC16@@@Z @ 32 NONAME ; void CMmListBoxContainer::SetEmptyTextL(class TDesC16 const &)
- ?SetObserver@CMmWidgetContainer@@UAEXPAVMMmWidgetObserver@@@Z @ 33 NONAME ; void CMmWidgetContainer::SetObserver(class MMmWidgetObserver *)
- ?IsHighlightVisible@CMmWidgetContainer@@UAEHXZ @ 34 NONAME ; int CMmWidgetContainer::IsHighlightVisible(void)
- ?GetItemRectL@CMmWidgetContainer@@QAE?AVTRect@@H@Z @ 35 NONAME ; class TRect CMmWidgetContainer::GetItemRectL(int)
- ?SetZoom@CMmWidgetContainer@@QAEXW4TAknUiZoom@@@Z @ 36 NONAME ; void CMmWidgetContainer::SetZoom(enum TAknUiZoom)
- ?SetIsFaded@CMmWidgetContainer@@QAEXH@Z @ 37 NONAME ; void CMmWidgetContainer::SetIsFaded(int)
- ?NewListBoxContainerL@CMmWidgetContainer@@SAPAV1@ABVTRect@@PAVMObjectProvider@@PAVCMmTemplateLibrary@@@Z @ 38 NONAME ; class CMmWidgetContainer * CMmWidgetContainer::NewListBoxContainerL(class TRect const &, class MObjectProvider *, class CMmTemplateLibrary *)
- ?StopMovingL@CMmWidgetContainer@@QAEXXZ @ 39 NONAME ; void CMmWidgetContainer::StopMovingL(void)
- ?SetDefaultHighlightL@CMmListBoxContainer@@UAEXH@Z @ 40 NONAME ; void CMmListBoxContainer::SetDefaultHighlightL(int)
- ?SetEmptyTextL@CMmGridContainer@@UAEXABVTDesC16@@@Z @ 41 NONAME ; void CMmGridContainer::SetEmptyTextL(class TDesC16 const &)
- ?SetLongTapObserver@CMmWidgetContainer@@UAEXPAVMMmLongTapObserver@@@Z @ 42 NONAME ; void CMmWidgetContainer::SetLongTapObserver(class MMmLongTapObserver *)
- ?ScrollToItemL@CMmWidgetContainer@@QAEHH@Z @ 43 NONAME ; int CMmWidgetContainer::ScrollToItemL(int)
+ ?NewGridContainerL@CMmWidgetContainer@@SAPAV1@ABVTRect@@PAVMObjectProvider@@PAVCMmTemplateLibrary@@@Z @ 20 NONAME ; class CMmWidgetContainer * CMmWidgetContainer::NewGridContainerL(class TRect const &, class MObjectProvider *, class CMmTemplateLibrary *)
+ ?NumberOfItems@CMmWidgetContainer@@QAEHXZ @ 21 NONAME ; int CMmWidgetContainer::NumberOfItems(void)
+ ?WidgetType@CMmWidgetContainer@@UAE?AW4THnSuiteWidgetType@@XZ @ 22 NONAME ; enum THnSuiteWidgetType CMmWidgetContainer::WidgetType(void)
+ ?GetHighlight@CMmWidgetContainer@@UAEHXZ @ 23 NONAME ; int CMmWidgetContainer::GetHighlight(void)
+ ?ItemIconZoomL@CMmWidgetContainer@@QAEXH@Z @ 24 NONAME ; void CMmWidgetContainer::ItemIconZoomL(int)
+ ?ResetWidgetPosition@CMmWidgetContainer@@QAEXXZ @ 25 NONAME ; void CMmWidgetContainer::ResetWidgetPosition(void)
+ ?HandleBackgroundGainedL@CMmWidgetContainer@@UAEXXZ @ 26 NONAME ; void CMmWidgetContainer::HandleBackgroundGainedL(void)
+ ?CacheWidgetPosition@CMmWidgetContainer@@QAEXXZ @ 27 NONAME ; void CMmWidgetContainer::CacheWidgetPosition(void)
+ ?NewLC@CMmHighlightTimer@@SAPAV1@PAVCMmWidgetContainer@@@Z @ 28 NONAME ; class CMmHighlightTimer * CMmHighlightTimer::NewLC(class CMmWidgetContainer *)
+ ?SetEmptyTextL@CMmListBoxContainer@@UAEXABVTDesC16@@@Z @ 29 NONAME ; void CMmListBoxContainer::SetEmptyTextL(class TDesC16 const &)
+ ?SetObserver@CMmWidgetContainer@@UAEXPAVMMmWidgetObserver@@@Z @ 30 NONAME ; void CMmWidgetContainer::SetObserver(class MMmWidgetObserver *)
+ ?IsHighlightVisible@CMmWidgetContainer@@UAEHXZ @ 31 NONAME ; int CMmWidgetContainer::IsHighlightVisible(void)
+ ?GetItemRectL@CMmWidgetContainer@@QAE?AVTRect@@H@Z @ 32 NONAME ; class TRect CMmWidgetContainer::GetItemRectL(int)
+ ?EndLongTapL@CMmWidgetContainer@@UAEXH@Z @ 33 NONAME ; void CMmWidgetContainer::EndLongTapL(int)
+ ?SetIsFaded@CMmWidgetContainer@@QAEXH@Z @ 34 NONAME ; void CMmWidgetContainer::SetIsFaded(int)
+ ?NewListBoxContainerL@CMmWidgetContainer@@SAPAV1@ABVTRect@@PAVMObjectProvider@@PAVCMmTemplateLibrary@@@Z @ 35 NONAME ; class CMmWidgetContainer * CMmWidgetContainer::NewListBoxContainerL(class TRect const &, class MObjectProvider *, class CMmTemplateLibrary *)
+ ?StopMovingL@CMmWidgetContainer@@QAEXXZ @ 36 NONAME ; void CMmWidgetContainer::StopMovingL(void)
+ ?SetDefaultHighlightL@CMmListBoxContainer@@UAEXH@Z @ 37 NONAME ; void CMmListBoxContainer::SetDefaultHighlightL(int)
+ ?SetEmptyTextL@CMmGridContainer@@UAEXABVTDesC16@@@Z @ 38 NONAME ; void CMmGridContainer::SetEmptyTextL(class TDesC16 const &)
+ ?SetLongTapObserver@CMmWidgetContainer@@UAEXPAVMMmLongTapObserver@@@Z @ 39 NONAME ; void CMmWidgetContainer::SetLongTapObserver(class MMmLongTapObserver *)
+ ?ScrollToItemL@CMmWidgetContainer@@QAEHH@Z @ 40 NONAME ; int CMmWidgetContainer::ScrollToItemL(int)
--- a/menufw/menufwui/mmwidgets/data/grid/lct/akn_logical_template_3.xml Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/menufwui/mmwidgets/data/grid/lct/akn_logical_template_3.xml Thu Jan 07 12:39:41 2010 +0200
@@ -4,17 +4,17 @@
<orientation id ="portrait" lct="uiaccel_main_aa_listscroll_pane" variety="0">
<element id="nohighlight">
- <layout id="anchor" name="anchor" lct="cell_hc_apps_pane" variety="3" variety_zoom="1">
- <textvisual id="mul_title" lct="cell_hc_apps_pane_t1" variety="0" variety_zoom="1">
+ <layout id="anchor" name="anchor" lct="cell_hc_apps_pane" variety="3" >
+ <textvisual id="mul_title" lct="cell_hc_apps_pane_t1" variety="0" >
<attributesetter name="text" targetvalue="mul_title" category="data" />
</textvisual>
- <imagevisual id="mul_icon" lct="cell_hc_apps_pane_g1" variety="0" variety_zoom="1" halign="center" >
+ <imagevisual id="mul_icon" lct="cell_hc_apps_pane_g1" variety="0" halign="center" >
<attributesetter name="imagepath" targetvalue="mul_icon" category="data" />
</imagevisual>
- <imagevisual id="mul_indicator_1" lct="cell_hc_apps_pane_g2" variety="0" variety_zoom="1">
+ <imagevisual id="mul_indicator_1" lct="cell_hc_apps_pane_g2" variety="0" >
<attributesetter name="imagepath" targetvalue="mul_indicator_1" category="data" />
</imagevisual>
- <imagevisual id="mul_indicator_2" lct="cell_hc_apps_pane_g3" variety="0" variety_zoom="1">
+ <imagevisual id="mul_indicator_2" lct="cell_hc_apps_pane_g3" variety="0" >
<attributesetter name="imagepath" targetvalue="mul_indicator_2" category="data" />
</imagevisual>
</layout>
@@ -27,14 +27,14 @@
<orientation id ="landscape" lct="uiaccel_main_aa_listscroll_pane" variety="0" >
<element id="nohighlight">
- <layout id="anchor" name="anchor" lct="cell_app_pane" variety="3" variety_zoom="3">
- <textvisual id="mul_title" lct="cell_app_pane_t1" variety="0" variety_zoom="0">
+ <layout id="anchor" name="anchor" lct="cell_app_pane" variety="3" >
+ <textvisual id="mul_title" lct="cell_app_pane_t1" variety="0" >
<attributesetter name="text" targetvalue="mul_title" category="data" />
</textvisual>
- <imagevisual id="mul_icon" lct="cell_app_pane_g1" variety="0" variety_zoom="0" halign="center" >
+ <imagevisual id="mul_icon" lct="cell_app_pane_g1" variety="0" halign="center" >
<attributesetter name="imagepath" targetvalue="mul_icon" category="data" />
</imagevisual>
- <imagevisual id="mul_indicator_1" lct="cell_app_pane_g2" variety="0" variety_zoom="0">
+ <imagevisual id="mul_indicator_1" lct="cell_app_pane_g2" variety="0" >
<attributesetter name="imagepath" targetvalue="mul_indicator_1" category="data" />
</imagevisual>
</layout>
--- a/menufw/menufwui/mmwidgets/eabi/mmwidgetsu.def Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/menufwui/mmwidgets/eabi/mmwidgetsu.def Thu Jan 07 12:39:41 2010 +0200
@@ -8,39 +8,36 @@
_ZN18CMmWidgetContainer10SetIsFadedEi @ 7 NONAME
_ZN18CMmWidgetContainer10WidgetTypeEv @ 8 NONAME
_ZN18CMmWidgetContainer11CancelDragLEi @ 9 NONAME
- _ZN18CMmWidgetContainer11IsDraggableEv @ 10 NONAME
- _ZN18CMmWidgetContainer11SetObserverEP17MMmWidgetObserver @ 11 NONAME
- _ZN18CMmWidgetContainer11StopMovingLEv @ 12 NONAME
- _ZN18CMmWidgetContainer12GetHighlightEv @ 13 NONAME
- _ZN18CMmWidgetContainer12GetItemRectLEi @ 14 NONAME
- _ZN18CMmWidgetContainer12SetFlipOpenLEi @ 15 NONAME
+ _ZN18CMmWidgetContainer11EndLongTapLEi @ 10 NONAME
+ _ZN18CMmWidgetContainer11IsDraggableEv @ 11 NONAME
+ _ZN18CMmWidgetContainer11SetObserverEP17MMmWidgetObserver @ 12 NONAME
+ _ZN18CMmWidgetContainer11StopMovingLEv @ 13 NONAME
+ _ZN18CMmWidgetContainer12GetHighlightEv @ 14 NONAME
+ _ZN18CMmWidgetContainer12GetItemRectLEi @ 15 NONAME
_ZN18CMmWidgetContainer12SetHasFocusLEi @ 16 NONAME
_ZN18CMmWidgetContainer13ItemIconZoomLEi @ 17 NONAME
_ZN18CMmWidgetContainer13NumberOfItemsEv @ 18 NONAME
_ZN18CMmWidgetContainer13ScrollToItemLEi @ 19 NONAME
_ZN18CMmWidgetContainer14GetSuiteModelLEv @ 20 NONAME
- _ZN18CMmWidgetContainer15HandleTopFocusLEi @ 21 NONAME
- _ZN18CMmWidgetContainer17HandleZoomChangedE10TAknUiZoom @ 22 NONAME
- _ZN18CMmWidgetContainer17NewGridContainerLERK5TRectP15MObjectProviderP18CMmTemplateLibrary @ 23 NONAME
- _ZN18CMmWidgetContainer17PrepareForGarbageEv @ 24 NONAME
- _ZN18CMmWidgetContainer18HandleItemRemovalLEv @ 25 NONAME
- _ZN18CMmWidgetContainer18IsHighlightVisibleEv @ 26 NONAME
- _ZN18CMmWidgetContainer18ItemIsFullyVisibleEi @ 27 NONAME
- _ZN18CMmWidgetContainer18SetLongTapObserverEP18MMmLongTapObserver @ 28 NONAME
- _ZN18CMmWidgetContainer19CacheWidgetPositionEv @ 29 NONAME
- _ZN18CMmWidgetContainer19HandleItemAdditionLEv @ 30 NONAME
- _ZN18CMmWidgetContainer19ResetWidgetPositionEv @ 31 NONAME
- _ZN18CMmWidgetContainer20GetPreviousHighlightEv @ 32 NONAME
- _ZN18CMmWidgetContainer20NewListBoxContainerLERK5TRectP15MObjectProviderP18CMmTemplateLibrary @ 33 NONAME
- _ZN18CMmWidgetContainer21NumberOfItemsChangedLE16TItemsChangeType @ 34 NONAME
- _ZN18CMmWidgetContainer21RestoreWidgetPositionEv @ 35 NONAME
- _ZN18CMmWidgetContainer23HandleBackgroundGainedLEv @ 36 NONAME
- _ZN18CMmWidgetContainer23HandleForegroundGainedLEv @ 37 NONAME
- _ZN18CMmWidgetContainer23SetHighlightVisibilityLEi @ 38 NONAME
- _ZN18CMmWidgetContainer34HandleOptionsMenuVisibilityChangeLEi @ 39 NONAME
- _ZN18CMmWidgetContainer7SetZoomE10TAknUiZoom @ 40 NONAME
- _ZN19CMmListBoxContainer13SetEmptyTextLERK7TDesC16 @ 41 NONAME
- _ZN19CMmListBoxContainer20SetDefaultHighlightLEi @ 42 NONAME
- _ZThn52_N18CMmWidgetContainer23HandleBackgroundGainedLEv @ 43 NONAME
- _ZThn52_N18CMmWidgetContainer23HandleForegroundGainedLEv @ 44 NONAME
+ _ZN18CMmWidgetContainer17NewGridContainerLERK5TRectP15MObjectProviderP18CMmTemplateLibrary @ 21 NONAME
+ _ZN18CMmWidgetContainer17PrepareForGarbageEv @ 22 NONAME
+ _ZN18CMmWidgetContainer18HandleItemRemovalLEv @ 23 NONAME
+ _ZN18CMmWidgetContainer18IsHighlightVisibleEv @ 24 NONAME
+ _ZN18CMmWidgetContainer18ItemIsFullyVisibleEi @ 25 NONAME
+ _ZN18CMmWidgetContainer18SetLongTapObserverEP18MMmLongTapObserver @ 26 NONAME
+ _ZN18CMmWidgetContainer19CacheWidgetPositionEv @ 27 NONAME
+ _ZN18CMmWidgetContainer19HandleItemAdditionLEv @ 28 NONAME
+ _ZN18CMmWidgetContainer19ResetWidgetPositionEv @ 29 NONAME
+ _ZN18CMmWidgetContainer20GetPreviousHighlightEv @ 30 NONAME
+ _ZN18CMmWidgetContainer20NewListBoxContainerLERK5TRectP15MObjectProviderP18CMmTemplateLibrary @ 31 NONAME
+ _ZN18CMmWidgetContainer21NumberOfItemsChangedLE16TItemsChangeType @ 32 NONAME
+ _ZN18CMmWidgetContainer21RestoreWidgetPositionEv @ 33 NONAME
+ _ZN18CMmWidgetContainer23HandleBackgroundGainedLEv @ 34 NONAME
+ _ZN18CMmWidgetContainer23HandleForegroundGainedLEv @ 35 NONAME
+ _ZN18CMmWidgetContainer23SetHighlightVisibilityLEi @ 36 NONAME
+ _ZN18CMmWidgetContainer34HandleOptionsMenuVisibilityChangeLEi @ 37 NONAME
+ _ZN19CMmListBoxContainer13SetEmptyTextLERK7TDesC16 @ 38 NONAME
+ _ZN19CMmListBoxContainer20SetDefaultHighlightLEi @ 39 NONAME
+ _ZThn52_N18CMmWidgetContainer23HandleBackgroundGainedLEv @ 40 NONAME
+ _ZThn52_N18CMmWidgetContainer23HandleForegroundGainedLEv @ 41 NONAME
--- a/menufw/menufwui/mmwidgets/group/bld.inf Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/menufwui/mmwidgets/group/bld.inf Thu Jan 07 12:39:41 2010 +0200
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Build information file for project mmwidgets
-* Version : %version: 8.1.3.1.7 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: 8.1.3.1.8 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -26,131 +26,69 @@
../rom/mmwidgets.iby CORE_APP_LAYER_IBY_EXPORT_PATH(mmwidgets.iby)
// list exports
-../data/list/custom/akn_single_large_graphic_pane.xml /epoc32/release/winscw/udeb/Z/resource/list/custom/akn_single_large_graphic_pane.xml
-../data/list/custom/akn_single_large_graphic_pane.xml /epoc32/release/winscw/urel/Z/resource/list/custom/akn_single_large_graphic_pane.xml
-../data/list/custom/akn_single_large_graphic_pane.xml /epoc32/data/z/resource/list/custom/akn_single_large_graphic_pane.xml
+../data/list/custom/akn_single_large_graphic_pane.xml Z:/resource/list/custom/akn_single_large_graphic_pane.xml
-../data/list/custom/akn_logical_template_1.xml /epoc32/release/winscw/udeb/Z/resource/list/custom/akn_logical_template_1.xml
-../data/list/custom/akn_logical_template_1.xml /epoc32/release/winscw/urel/Z/resource/list/custom/akn_logical_template_1.xml
-../data/list/custom/akn_logical_template_1.xml /epoc32/data/z/resource/list/custom/akn_logical_template_1.xml
+../data/list/custom/akn_logical_template_1.xml Z:/resource/list/custom/akn_logical_template_1.xml
-../data/list/custom/akn_logical_template_2.xml /epoc32/release/winscw/udeb/Z/resource/list/custom/akn_logical_template_2.xml
-../data/list/custom/akn_logical_template_2.xml /epoc32/release/winscw/urel/Z/resource/list/custom/akn_logical_template_2.xml
-../data/list/custom/akn_logical_template_2.xml /epoc32/data/z/resource/list/custom/akn_logical_template_2.xml
+../data/list/custom/akn_logical_template_2.xml Z:/resource/list/custom/akn_logical_template_2.xml
-../data/list/custom/akn_logical_template_3.xml /epoc32/release/winscw/udeb/Z/resource/list/custom/akn_logical_template_3.xml
-../data/list/custom/akn_logical_template_3.xml /epoc32/release/winscw/urel/Z/resource/list/custom/akn_logical_template_3.xml
-../data/list/custom/akn_logical_template_3.xml /epoc32/data/z/resource/list/custom/akn_logical_template_3.xml
+../data/list/custom/akn_logical_template_3.xml Z:/resource/list/custom/akn_logical_template_3.xml
-../data/list/custom/akn_logical_template_4.xml /epoc32/release/winscw/udeb/Z/resource/list/custom/akn_logical_template_4.xml
-../data/list/custom/akn_logical_template_4.xml /epoc32/release/winscw/urel/Z/resource/list/custom/akn_logical_template_4.xml
-../data/list/custom/akn_logical_template_4.xml /epoc32/data/z/resource/list/custom/akn_logical_template_4.xml
+../data/list/custom/akn_logical_template_4.xml Z:/resource/list/custom/akn_logical_template_4.xml
-../data/list/custom/akn_logical_template_5.xml /epoc32/release/winscw/udeb/Z/resource/list/custom/akn_logical_template_5.xml
-../data/list/custom/akn_logical_template_5.xml /epoc32/release/winscw/urel/Z/resource/list/custom/akn_logical_template_5.xml
-../data/list/custom/akn_logical_template_5.xml /epoc32/data/z/resource/list/custom/akn_logical_template_5.xml
+../data/list/custom/akn_logical_template_5.xml Z:/resource/list/custom/akn_logical_template_5.xml
-../data/list/custom/akn_logical_template_6.xml /epoc32/release/winscw/udeb/Z/resource/list/custom/akn_logical_template_6.xml
-../data/list/custom/akn_logical_template_6.xml /epoc32/release/winscw/urel/Z/resource/list/custom/akn_logical_template_6.xml
-../data/list/custom/akn_logical_template_6.xml /epoc32/data/z/resource/list/custom/akn_logical_template_6.xml
+../data/list/custom/akn_logical_template_6.xml Z:/resource/list/custom/akn_logical_template_6.xml
-../data/list/custom/akn_logical_template_7.xml /epoc32/release/winscw/udeb/Z/resource/list/custom/akn_logical_template_7.xml
-../data/list/custom/akn_logical_template_7.xml /epoc32/release/winscw/urel/Z/resource/list/custom/akn_logical_template_7.xml
-../data/list/custom/akn_logical_template_7.xml /epoc32/data/z/resource/list/custom/akn_logical_template_7.xml
+../data/list/custom/akn_logical_template_7.xml Z:/resource/list/custom/akn_logical_template_7.xml
-../data/list/custom/akn_logical_template_8.xml /epoc32/release/winscw/udeb/Z/resource/list/custom/akn_logical_template_8.xml
-../data/list/custom/akn_logical_template_8.xml /epoc32/release/winscw/urel/Z/resource/list/custom/akn_logical_template_8.xml
-../data/list/custom/akn_logical_template_8.xml /epoc32/data/z/resource/list/custom/akn_logical_template_8.xml
+../data/list/custom/akn_logical_template_8.xml Z:/resource/list/custom/akn_logical_template_8.xml
-../data/list/custom/akn_logical_template_10.xml /epoc32/release/winscw/udeb/Z/resource/list/custom/akn_logical_template_10.xml
-../data/list/custom/akn_logical_template_10.xml /epoc32/release/winscw/urel/Z/resource/list/custom/akn_logical_template_10.xml
-../data/list/custom/akn_logical_template_10.xml /epoc32/data/z/resource/list/custom/akn_logical_template_10.xml
+../data/list/custom/akn_logical_template_10.xml Z:/resource/list/custom/akn_logical_template_10.xml
-../data/list/custom/akn_logical_template_11.xml /epoc32/release/winscw/udeb/Z/resource/list/custom/akn_logical_template_11.xml
-../data/list/custom/akn_logical_template_11.xml /epoc32/release/winscw/urel/Z/resource/list/custom/akn_logical_template_11.xml
-../data/list/custom/akn_logical_template_11.xml /epoc32/data/z/resource/list/custom/akn_logical_template_11.xml
+../data/list/custom/akn_logical_template_11.xml Z:/resource/list/custom/akn_logical_template_11.xml
-../data/list/custom/akn_logical_template_12.xml /epoc32/release/winscw/udeb/Z/resource/list/custom/akn_logical_template_12.xml
-../data/list/custom/akn_logical_template_12.xml /epoc32/release/winscw/urel/Z/resource/list/custom/akn_logical_template_12.xml
-../data/list/custom/akn_logical_template_12.xml /epoc32/data/z/resource/list/custom/akn_logical_template_12.xml
+../data/list/custom/akn_logical_template_12.xml Z:/resource/list/custom/akn_logical_template_12.xml
-../data/list/custom/akn_logical_template_13.xml /epoc32/release/winscw/udeb/Z/resource/list/custom/akn_logical_template_13.xml
-../data/list/custom/akn_logical_template_13.xml /epoc32/release/winscw/urel/Z/resource/list/custom/akn_logical_template_13.xml
-../data/list/custom/akn_logical_template_13.xml /epoc32/data/z/resource/list/custom/akn_logical_template_13.xml
+../data/list/custom/akn_logical_template_13.xml Z:/resource/list/custom/akn_logical_template_13.xml
// grid exports
-../data/grid/custom/akn_single_large_graphic_pane.xml /epoc32/release/winscw/udeb/Z/resource/grid/custom/akn_single_large_graphic_pane.xml
-../data/grid/custom/akn_single_large_graphic_pane.xml /epoc32/release/winscw/urel/Z/resource/grid/custom/akn_single_large_graphic_pane.xml
-../data/grid/custom/akn_single_large_graphic_pane.xml /epoc32/data/z/resource/grid/custom/akn_single_large_graphic_pane.xml
+../data/grid/custom/akn_single_large_graphic_pane.xml Z:/resource/grid/custom/akn_single_large_graphic_pane.xml
-../data/grid/custom/akn_logical_template_1.xml /epoc32/release/winscw/udeb/Z/resource/grid/custom/akn_logical_template_1.xml
-../data/grid/custom/akn_logical_template_1.xml /epoc32/release/winscw/urel/Z/resource/grid/custom/akn_logical_template_1.xml
-../data/grid/custom/akn_logical_template_1.xml /epoc32/data/z/resource/grid/custom/akn_logical_template_1.xml
+../data/grid/custom/akn_logical_template_1.xml Z:/resource/grid/custom/akn_logical_template_1.xml
-../data/grid/custom/akn_logical_template_2.xml /epoc32/release/winscw/udeb/Z/resource/grid/custom/akn_logical_template_2.xml
-../data/grid/custom/akn_logical_template_2.xml /epoc32/release/winscw/urel/Z/resource/grid/custom/akn_logical_template_2.xml
-../data/grid/custom/akn_logical_template_2.xml /epoc32/data/z/resource/grid/custom/akn_logical_template_2.xml
+../data/grid/custom/akn_logical_template_2.xml Z:/resource/grid/custom/akn_logical_template_2.xml
-../data/grid/custom/akn_logical_template_3.xml /epoc32/release/winscw/udeb/Z/resource/grid/custom/akn_logical_template_3.xml
-../data/grid/custom/akn_logical_template_3.xml /epoc32/release/winscw/urel/Z/resource/grid/custom/akn_logical_template_3.xml
-../data/grid/custom/akn_logical_template_3.xml /epoc32/data/z/resource/grid/custom/akn_logical_template_3.xml
+../data/grid/custom/akn_logical_template_3.xml Z:/resource/grid/custom/akn_logical_template_3.xml
-../data/grid/custom/akn_logical_template_4.xml /epoc32/release/winscw/udeb/Z/resource/grid/custom/akn_logical_template_4.xml
-../data/grid/custom/akn_logical_template_4.xml /epoc32/release/winscw/urel/Z/resource/grid/custom/akn_logical_template_4.xml
-../data/grid/custom/akn_logical_template_4.xml /epoc32/data/z/resource/grid/custom/akn_logical_template_4.xml
+../data/grid/custom/akn_logical_template_4.xml Z:/resource/grid/custom/akn_logical_template_4.xml
//lct exports
-../data/list/lct/akn_list_single_hc_apps_pane.xml /epoc32/release/winscw/udeb/Z/resource/list/lct/akn_list_single_hc_apps_pane.xml
-../data/list/lct/akn_list_single_hc_apps_pane.xml /epoc32/release/winscw/urel/Z/resource/list/lct/akn_list_single_hc_apps_pane.xml
-../data/list/lct/akn_list_single_hc_apps_pane.xml /epoc32/data/z/resource/list/lct/akn_list_single_hc_apps_pane.xml
+../data/list/lct/akn_list_single_hc_apps_pane.xml Z:/resource/list/lct/akn_list_single_hc_apps_pane.xml
-../data/list/lct/akn_single_large_graphic_pane.xml /epoc32/release/winscw/udeb/Z/resource/list/lct/akn_single_large_graphic_pane.xml
-../data/list/lct/akn_single_large_graphic_pane.xml /epoc32/release/winscw/urel/Z/resource/list/lct/akn_single_large_graphic_pane.xml
-../data/list/lct/akn_single_large_graphic_pane.xml /epoc32/data/z/resource/list/lct/akn_single_large_graphic_pane.xml
+../data/list/lct/akn_single_large_graphic_pane.xml Z:/resource/list/lct/akn_single_large_graphic_pane.xml
-../data/list/lct/akn_logical_template_1.xml /epoc32/release/winscw/udeb/Z/resource/list/lct/akn_logical_template_1.xml
-../data/list/lct/akn_logical_template_1.xml /epoc32/release/winscw/urel/Z/resource/list/lct/akn_logical_template_1.xml
-../data/list/lct/akn_logical_template_1.xml /epoc32/data/z/resource/list/lct/akn_logical_template_1.xml
+../data/list/lct/akn_logical_template_1.xml Z:/resource/list/lct/akn_logical_template_1.xml
-../data/list/lct/akn_logical_template_2.xml /epoc32/release/winscw/udeb/Z/resource/list/lct/akn_logical_template_2.xml
-../data/list/lct/akn_logical_template_2.xml /epoc32/release/winscw/urel/Z/resource/list/lct/akn_logical_template_2.xml
-../data/list/lct/akn_logical_template_2.xml /epoc32/data/z/resource/list/lct/akn_logical_template_2.xml
+../data/list/lct/akn_logical_template_2.xml Z:/resource/list/lct/akn_logical_template_2.xml
-../data/list/lct/akn_logical_template_3.xml /epoc32/release/winscw/udeb/Z/resource/list/lct/akn_logical_template_3.xml
-../data/list/lct/akn_logical_template_3.xml /epoc32/release/winscw/urel/Z/resource/list/lct/akn_logical_template_3.xml
-../data/list/lct/akn_logical_template_3.xml /epoc32/data/z/resource/list/lct/akn_logical_template_3.xml
+../data/list/lct/akn_logical_template_3.xml Z:/resource/list/lct/akn_logical_template_3.xml
-../data/list/lct/akn_logical_template_4.xml /epoc32/release/winscw/udeb/Z/resource/list/lct/akn_logical_template_4.xml
-../data/list/lct/akn_logical_template_4.xml /epoc32/release/winscw/urel/Z/resource/list/lct/akn_logical_template_4.xml
-../data/list/lct/akn_logical_template_4.xml /epoc32/data/z/resource/list/lct/akn_logical_template_4.xml
+../data/list/lct/akn_logical_template_4.xml Z:/resource/list/lct/akn_logical_template_4.xml
-../data/list/lct/akn_logical_template_5.xml /epoc32/release/winscw/udeb/Z/resource/list/lct/akn_logical_template_5.xml
-../data/list/lct/akn_logical_template_5.xml /epoc32/release/winscw/urel/Z/resource/list/lct/akn_logical_template_5.xml
-../data/list/lct/akn_logical_template_5.xml /epoc32/data/z/resource/list/lct/akn_logical_template_5.xml
+../data/list/lct/akn_logical_template_5.xml Z:/resource/list/lct/akn_logical_template_5.xml
-../data/list/lct/akn_logical_template_6.xml /epoc32/release/winscw/udeb/Z/resource/list/lct/akn_logical_template_6.xml
-../data/list/lct/akn_logical_template_6.xml /epoc32/release/winscw/urel/Z/resource/list/lct/akn_logical_template_6.xml
-../data/list/lct/akn_logical_template_6.xml /epoc32/data/z/resource/list/lct/akn_logical_template_6.xml
+../data/list/lct/akn_logical_template_6.xml Z:/resource/list/lct/akn_logical_template_6.xml
-../data/list/lct/akn_logical_template_6a.xml /epoc32/release/winscw/udeb/Z/resource/list/lct/akn_logical_template_6a.xml
-../data/list/lct/akn_logical_template_6a.xml /epoc32/release/winscw/urel/Z/resource/list/lct/akn_logical_template_6a.xml
-../data/list/lct/akn_logical_template_6a.xml /epoc32/data/z/resource/list/lct/akn_logical_template_6a.xml
+../data/list/lct/akn_logical_template_6a.xml Z:/resource/list/lct/akn_logical_template_6a.xml
-../data/list/lct/akn_logical_template_7.xml /epoc32/release/winscw/udeb/Z/resource/list/lct/akn_logical_template_7.xml
-../data/list/lct/akn_logical_template_7.xml /epoc32/release/winscw/urel/Z/resource/list/lct/akn_logical_template_7.xml
-../data/list/lct/akn_logical_template_7.xml /epoc32/data/z/resource/list/lct/akn_logical_template_7.xml
+../data/list/lct/akn_logical_template_7.xml Z:/resource/list/lct/akn_logical_template_7.xml
-../data/list/lct/akn_logical_template_8.xml /epoc32/release/winscw/udeb/Z/resource/list/lct/akn_logical_template_8.xml
-../data/list/lct/akn_logical_template_8.xml /epoc32/release/winscw/urel/Z/resource/list/lct/akn_logical_template_8.xml
-../data/list/lct/akn_logical_template_8.xml /epoc32/data/z/resource/list/lct/akn_logical_template_8.xml
+../data/list/lct/akn_logical_template_8.xml Z:/resource/list/lct/akn_logical_template_8.xml
-../data/list/lct/akn_logical_template_12.xml /epoc32/release/winscw/udeb/Z/resource/list/lct/akn_logical_template_12.xml
-../data/list/lct/akn_logical_template_12.xml /epoc32/release/winscw/urel/Z/resource/list/lct/akn_logical_template_12.xml
-../data/list/lct/akn_logical_template_12.xml /epoc32/data/z/resource/list/lct/akn_logical_template_12.xml
+../data/list/lct/akn_logical_template_12.xml Z:/resource/list/lct/akn_logical_template_12.xml
-../data/grid/lct/akn_logical_template_3.xml /epoc32/release/winscw/udeb/Z/resource/grid/lct/akn_logical_template_3.xml
-../data/grid/lct/akn_logical_template_3.xml /epoc32/release/winscw/urel/Z/resource/grid/lct/akn_logical_template_3.xml
-../data/grid/lct/akn_logical_template_3.xml /epoc32/data/z/resource/grid/lct/akn_logical_template_3.xml
+../data/grid/lct/akn_logical_template_3.xml Z:/resource/grid/lct/akn_logical_template_3.xml
../inc/mmdraganddropobserver.h |../../../inc/mmdraganddropobserver.h
../inc/mmlongtapobserver.h |../../../inc/mmlongtapobserver.h
--- a/menufw/menufwui/mmwidgets/inc/mmgrid.h Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/menufwui/mmwidgets/inc/mmgrid.h Thu Jan 07 12:39:41 2010 +0200
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: CMmGrid declaration
-* Version : %version: MM_32.1.19 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_32.1.20 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -359,6 +359,14 @@
TInt ScrollIfNeeded( const TPointerEvent& aPointerEvent );
/**
+ * Minimal scrolling (setting top item index and vertical offset) with
+ * boundary checking and WITHOUT redrawing.
+ *
+ * @param aDistanceInPixels Distance to scroll.
+ */
+ void ScrollWithoutRedraw( TInt aDistanceInPixels );
+
+ /**
* Updates the dispapearing highlight.
*
* @since S60 v3.0
--- a/menufw/menufwui/mmwidgets/inc/mmgridcontainer.h Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/menufwui/mmwidgets/inc/mmgridcontainer.h Thu Jan 07 12:39:41 2010 +0200
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: CMmGridContainer declaration
-* Version : %version: MM_29.1.13 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_29.1.14 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -37,7 +37,7 @@
class CMmListBoxItemDrawer;
/**
- * Container for Multimedia Menu grid widget
+ * Container for Multimedia Menu grid widget
*
* @code
* @endcode
@@ -50,29 +50,29 @@
public:
/**
* Two-phased constructor.
- *
- * @since S60 v5.0
- * @param aRect Rectangle of widget control.
- * @param aObjectProvider Object provider.
- * @param aTemplateLibrary template library for Drawer
- */
- static CMmGridContainer* NewL( const TRect& aRect,
- MObjectProvider* aObjectProvider, CMmTemplateLibrary* aTemplateLibrary );
-
- /**
- * Two-phased constructor.
- *
+ *
* @since S60 v5.0
* @param aRect Rectangle of widget control.
* @param aObjectProvider Object provider.
* @param aTemplateLibrary template library for Drawer
*/
- static CMmGridContainer* NewLC( const TRect& aRect,
+ static CMmGridContainer* NewL( const TRect& aRect,
MObjectProvider* aObjectProvider, CMmTemplateLibrary* aTemplateLibrary );
-
+
+ /**
+ * Two-phased constructor.
+ *
+ * @since S60 v5.0
+ * @param aRect Rectangle of widget control.
+ * @param aObjectProvider Object provider.
+ * @param aTemplateLibrary template library for Drawer
+ */
+ static CMmGridContainer* NewLC( const TRect& aRect,
+ MObjectProvider* aObjectProvider, CMmTemplateLibrary* aTemplateLibrary );
+
/**
* Destructor.
- *
+ *
* @since S60 v5.0
*/
virtual ~CMmGridContainer();
@@ -84,23 +84,23 @@
* @return Pointer to grid.
*/
CAknGrid* Grid();
-
+
public: // from base class CMmWidgetContainer
-
+
/**
* Handle item addition.
- *
+ *
* @since S60 v3.0
*/
void HandleItemAdditionL();
-
+
/**
* Handle item removal.
- *
+ *
* @since S60 v3.0
*/
- void HandleItemRemovalL();
-
+ void HandleItemRemovalL();
+
/**
* Sets the default highlight in grid.
*
@@ -108,7 +108,7 @@
* @param aRedraw Is highlight to redraw.
*/
IMPORT_C void SetDefaultHighlightL( TBool aRedraw = ETrue );
-
+
/**
* Checks if widget is in edit mode state.
*
@@ -116,14 +116,14 @@
* @param aIsEditMode Is grid in edit mode state.
*/
void SetEditModeL( TBool aIsEditMode );
-
+
/**
* Derived from CCoeControl, called when container rectangle size is changed.
*
* @since S60 v5.0
*/
- void SizeChanged();
-
+ void SizeChanged();
+
/**
* Gets grid model.
*
@@ -131,7 +131,7 @@
* @return Grid model.
*/
CMmListBoxModel* GetMmModel();
-
+
/**
* Sets empty text shown when grid is empty.
*
@@ -139,7 +139,7 @@
* @param aText Text to be shown when grid is empty.
*/
IMPORT_C void SetEmptyTextL( const TDesC& aText );
-
+
/**
* Sets item drawer and view background context.
*
@@ -147,91 +147,84 @@
* @param aBgContext Background context.
*/
void SetItemDrawerAndViewBgContext(
- CAknsBasicBackgroundControlContext * aBgContext );
-
+ CAknsBasicBackgroundControlContext * aBgContext );
+
/**
* Sets up the grid layout.
*
* @since S60 v5.0
*/
void SetupWidgetLayoutL();
-
+
/**
* Sets suite model.
- *
+ *
* @since S60 v5.0
* @param aModel Suite model.
*/
void SetSuiteModelL( CHnSuiteModel* aModel );
-
+
/**
* Set highlight visibility.
- *
+ *
* @since S60 v5.0
- * @param aVisible Visibility status.
+ * @param aVisible Visibility status.
*/
void SetHighlightVisibilityL( TBool aVisible );
-
+
/**
* Retrieve type of widget.
- *
+ *
* @since S60 v3.0
* @return Type of widget.
- */
+ */
THnSuiteWidgetType WidgetType();
-
- /**
- * Called when filp state changed.
- *
- * @since S60 v3.0
- */
- void FlipStateChangedL();
-
+
/**
* Draws the widget view.
*
* @since S60 v5.0
*/
virtual void DrawView();
-
+
/**
* Set the vertical item offset;
* @param aOffset The offset to set to the widget.
- *
+ *
* @since S60 v5.0
*/
virtual void SetVerticalItemOffset( TInt aOffset );
/**
* Gets the current widget vertical item offset.
- *
+ *
* @since S60 v5.0
* @return The current widget vertical item offset.
*/
virtual TInt VerticalItemOffset() const;
-
+
/**
* Tells if item is visible (fully or partially).
* Overridden from the base class CMmWidgetContainer in order to
* provide a reliable implementation for grid.
- *
+ *
* @param aItemIndex Item index.
* @return ETrue if visible, EFalse otherwise.
*/
TBool ItemIsVisible( TInt aItemIndex ) const;
-
+
private:
/**
* Default constructor.
- *
- * @since S60 v5.0
+ *
+ * @since S60 v5.0
*/
CMmGridContainer();
-
+
/**
* 2nd phase constructor.
- *
- * @since S60 v5.0
+ *
+ * @since S60 v5.0
* @param aRect Rectangle of widget control.
* @param aObjectProvider Object provider.
* @param aTemplateLibrary template library for Drawer
@@ -247,56 +240,40 @@
* @return Grid model.
*/
CMmGrid* CreateGridL( CMmTemplateLibrary* aTemplateLibrary );
-
+
/**
* Gets column count in current view.
* @returns Column count in current view.
*/
TInt ColumnsInCurrentView();
-
+
/**
* Gets row count in current view.
* @returns Row count in current view.
*/
TInt RowsInCurrentView();
-
+
/**
* Updates current view's scrollbar thumbs.
*/
void UpdateViewScrollBarThumbs();
-
- /**
- * Gets base default highlight in landscape mode.
- *
- * @param aLayout current layout of the grid
- * @returns default highlight
- */
- TInt LandscapeOrientationDefaultHighlight( TSize aLayout );
/**
- * Gets base default highlight in portrait mode.
- *
- * @param aLayout current layout of the grid
- * @returns default highlight
- */
- TInt PortraitOrientationDefaultHighlight( TSize aLayout );
-
- /**
* Calculates offset for default highlight position based on
* index of first visible item.
- *
+ *
* @returns offset for default highlight
*/
TInt DefaultHighlightOffset();
-
+
private: // Data
-
+
/**
* Pointer to listbox control.
* Own.
*/
CMmGrid* iGrid;
-
+
};
#endif // C_MMGRIDCONTAINER_H
--- a/menufw/menufwui/mmwidgets/inc/mmtemplatelibrary.h Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/menufwui/mmwidgets/inc/mmtemplatelibrary.h Thu Jan 07 12:39:41 2010 +0200
@@ -11,8 +11,8 @@
*
* Contributors:
*
-* Description:
-* Version : %version: MM_24.1.8 % << Don't touch! Updated by Synergy at check-out.
+* Description:
+* Version : %version: MM_24.1.9 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -43,57 +43,57 @@
/**
* Struct used to store template child data
- *
+ *
* @since S60 v5.0
* @ingroup group_mmwidgets
*/
class TTemplateChild
{
-
+
public:
-
+
/**
* Rectangle of subcell according to position in item.
*/
TRect iRectAccordingToParent;
-
+
/**
* Data type represented by the subcell.
*/
TBufC8<64> iData;
-
+
/**
* The LCT template used to calculate the subcell position.
*/
TBufC8<64> iLct;
-
+
/**
* The variety for the lct template.
*/
TInt iVariety;
-
+
/**
* Depicts if the subcell is an image or text.
*/
TBool iIsImage;
-
+
/**
* The font id used for displaying text.
*/
TAknLogicalFontId iFontId;
-
+
/**
* The type of align for the text.
*/
CGraphicsContext::TTextAlign iTextAlign;
-
+
/**
* The additional Id for a subcell element used to differentiate it
- * from others. e.g the backdrop image has a different visual id
+ * from others. e.g the backdrop image has a different visual id
* since it is displayed only in edit mode.
*/
TImageVisualId iImageVisualId;
-
+
/**
* The type of horizontal align for the icon.
*/
@@ -105,7 +105,7 @@
/**
* Used by Multimedia Menu to load template data.
- *
+ *
* @code
* @endcode
* @lib mmwidgets
@@ -116,7 +116,7 @@
{
public:
// Constructors and destructor
-
+
/**
* Destructor.
*/
@@ -126,7 +126,7 @@
* Two-phased constructor.
*/
IMPORT_C static CMmTemplateLibrary* NewL();
-
+
/**
* Two-phased constructor.
*/
@@ -148,210 +148,203 @@
/**
* Gets the size of template item according to highlight and orientation.
- *
+ *
* @since S60 v3.0
* @param aWidgetType The widget type.
- * @param aTemplate The current template for the item.
+ * @param aTemplate The current template for the item.
* @param aLandscapeOrientation Is view in landscape orientation.
* @param aHighlighted Is item highlighted.
* @param aParentRect The bounding rect in which the item is drawn.
- *
+ *
* @return size of item
*/
- TSize GetSize( TMmWidgetType aWidgetType, const TDesC8& aTemplate,
- TBool aLandscapeOrientation = 0, TBool aHighlighted = 0,
+ TSize GetSize( TMmWidgetType aWidgetType, const TDesC8& aTemplate,
+ TBool aLandscapeOrientation = 0, TBool aHighlighted = 0,
TRect aParentRect = TRect() );
-
+
/**
* Gets the size of template.
- *
+ *
* @since S60 v3.0
* @param aItemSize Item size to be set.
* @param aWidgetType The widget type.
- * @param aTemplate The current template for the item.
- * @param aLandscapeOrientation Is view in landscape orientation.
+ * @param aTemplate The current template for the item.
+ * @param aLandscapeOrientation Is view in landscape orientation.
* @param aHighlighted Is item highlighted.
* @param aParentRect The bounding rect in which the item is drawn.
- *
+ *
* @return error code
*/
- TInt GetSize( TSize& aItemSize, TMmWidgetType aWidgetType,
- const TDesC8& aTemplate, TBool aLandscapeOrientation,
+ TInt GetSize( TSize& aItemSize, TMmWidgetType aWidgetType,
+ const TDesC8& aTemplate, TBool aLandscapeOrientation,
TBool aHighlighted , TRect aParentRect = TRect() );
-
+
/**
- * Get array of templates for subcells ( item children ).
- *
+ * Get array of templates for subcells ( item children ).
+ *
* @since S60 v3.0
* @param aWidgetType The widget type.
* @param aArray The array of subcell children to be set.
* @param aTemplate The current template for the item.
* @param aLandscapeOrientation Is view in landscape orientation.
* @param aHighlighted Is item highlighted.
- * @param aIsEditMode Is in edit mode.
- *
+ * @param aIsEditMode Is in edit mode.
+ *
*/
void GetChildrenL( TMmWidgetType aWidgetType,
- RArray< TTemplateChild >& aArray, const TDesC8& aTemplate,
+ RArray< TTemplateChild >& aArray, const TDesC8& aTemplate,
TBool aLandscapeOrientation = 0, TBool aHighlighted = 0, TBool aIsEditMode = 0 );
-
+
/**
* Get the layout size ( Grid ) e.g. 3x4
- *
+ *
* @since S60 v3.0
* @param aWidgetType The widget type.
* @param aTemplate The current template for the item.
* @param aLandscapeOrientation Is view in landscape orientation.
- *
+ *
* @return the size of the layout.
*/
- TSize GetLayoutSizeL( TMmWidgetType aWidgetType, const TDesC8& aTemplate,
+ TSize GetLayoutSizeL( TMmWidgetType aWidgetType, const TDesC8& aTemplate,
TBool aLandscapeOrientation );
-
+
/**
* Get rect of move indicator according to item (as reference position).
- * The rect is relevant to the item in point (0,0).
+ * The rect is relevant to the item in point (0,0).
* e.g for item size 20x360 the rect can be (-5,-5):(365,25).
- *
+ *
* @since S60 v3.0
* @param aWidgetType The widget type.
* @param aTemplate The current template for the item.
- * @param aLandscapeOrientation Is view in landscape orientation.
+ * @param aLandscapeOrientation Is view in landscape orientation.
* @param aHighlighted Is item highlighted.
- *
+ *
* @return rect of move indicator area.
*/
- TRect GetMoveIndicatorRect( TMmWidgetType aWidgetType, const TDesC8& aTemplate,
+ TRect GetMoveIndicatorRect( TMmWidgetType aWidgetType, const TDesC8& aTemplate,
TBool aLandscapeOrientation, TBool aHighlighted );
-
+
/**
- * Get children templates for move indicator.
- *
+ * Get children templates for move indicator.
+ *
* @since S60 v3.0
* @param aWidgetType The widget type.
* @param aArray Array of children templates.
* @param aTemplate The current template for the item.
* @param aLandscapeOrientation Is view in landscape orientation.
* @param aHighlighted Is item highlighted.
- *
+ *
*/
void GetMoveIndicatorChildrenL( TMmWidgetType aWidgetType,
RArray< TTemplateChild >& aArray, const TDesC8& aTemplate, TBool aLandscapeOrientation, TBool aHighlighted );
-
+
/**
* Get size of item for LCT template.
- *
+ *
* @since S60 v3.0
* @param aLCTTemplate The LCT template name.
* @param aVariety The variety for aLCTTemplate.
* @param aWindowLayout The window layout to be used to calculet the size.
* @param aLandscapeOrientation ETrue if view in landscape orientation otherwise EFalse.
- *
+ *
* @return item size
*/
TSize GetLCTSize( const TDesC8& aLCTTemplate, TInt aVariety, TAknWindowLineLayout& aWindowLayout, TBool aLandscapeOrientation );
-
+
/**
* Clean the cache
- *
+ *
* @since S60 v3.0
*/
void CleanAndClearCache( );
/**
- * The template content is loaded. LCT templates have highest priority.
+ * The template content is loaded. LCT templates have highest priority.
* If there is no LCT template, a custom template is loaded.
- *
+ *
* @since S60 v3.0
* @param aTemplate The current template for the item.
* @param aWidgetType The widget type.
* @param aMmTemplateType Type of template (LCT/custom).
- *
+ *
* @return Template content.
*/
HBufC8* GetTemplateContentL( const TDesC8& aTemplate, TMmWidgetType aWidgetType, TMmTemplateType& aMmTemplateType );
-
+
/**
* Sets scrollbar visibility so template library is aware.
- *
+ *
* @since S60 v3.0
* @param aIsScrollbarVisible Is scrollbar visible.
*/
void SetScrollbarVisibilityL( TBool aIsScrollbarVisible );
-
+
/**
* Gets scrollbar visibility.
- *
+ *
* @since S60 v3.0
* @return Is scrollbar visible.
*/
TBool GetScrollbarVisibility();
-
- /**
- * Sets the current zoom so template library can retrieve the appropriate templates.
- *
- * @since S60 v3.0
- * @param aZoom Is The current zoom to be set.
- */
- void SetZoom( TAknUiZoom aZoom = EAknUiZoomAutomatic );
-
+
/**
* Sets the scrollbar width so template library can calculate the width of the item correctly.
- *
+ *
* @since S60 v3.0
* @param aScrollbarWidth The current width of the scrollbar.
*/
void SetScrollbarWidthL( TInt aScrollbarWidth );
-
+
/**
* Gets scrollbar width.
- *
+ *
* @since S60 v3.0
* @return scrollbar width
*/
TInt ScrollbarWidth();
-
+
/**
* Gets the parent rect for given orientation from which templates were calculated.
- *
+ *
* @since S60 v3.0
* @param aLandscapeOrientation The current landscape orientation.
* @return Parent rect for given orientation.
*/
TRect GetParentRect( TBool aLandscapeOrientation );
-
+
private:
/**
* Get the lookup text.
- *
+ *
* @since S60 v3.0
* @param aTemplate The current template for the item.
* @param aWidgetType The widget type.
- * @param aLandscapeOrientation Is view in landscape orientation.
+ * @param aLandscapeOrientation Is view in landscape orientation.
* @param aHighlighted Is item highlighted.
- *
- * @return Lookup text.
+ *
+ * @return Lookup text.
*/
HBufC8* LookupText( const TDesC8& aTemplate, TMmWidgetType aWidgetType,
- TAknUiZoom aZoom, TBool aLandscapeOrientation = EFalse,
- TBool aHighlighted = EFalse );
-
+ TBool aLandscapeOrientation = EFalse,
+ TBool aHighlighted = EFalse );
+
/**
* Get the lookup text for layout size.
- *
+ *
* @since S60 v3.0
* @param aWidgetType The widget type.
* @param aTemplate The current template for the item.
- * @param aLandscapeOrientation Is view in landscape orientation.
- *
+ * @param aLandscapeOrientation Is view in landscape orientation.
+ *
* @return lookup layout text.
*/
- HBufC8* LookupLayoutText( TMmWidgetType aWidgetType, TAknUiZoom aZoom,
- const TDesC8& aTemplate, TBool aLandscapeOrientation );
-
+ HBufC8* LookupLayoutText( TMmWidgetType aWidgetType,
+ const TDesC8& aTemplate,
+ TBool aLandscapeOrientation );
+
/**
* Get the lookup text for move indicator.
- *
+ *
* @since S60 v3.0
* @param aLookupText The lookup text to be used to create the lookup indicator text.
* @return lookup Indicator text.
@@ -360,18 +353,18 @@
/**
* Load the template to cache.
- *
+ *
* @since S60 v3.0
* @param aWidgetType The widget type.
* @param aTemplate The current template for the item.
* @param aLandscapeOrientation The current orientation.
*/
- void LoadTemplateL( TMmWidgetType aWidgetType, const TDesC8& aTemplate,
+ void LoadTemplateL( TMmWidgetType aWidgetType, const TDesC8& aTemplate,
TBool aLandscapeOrientation );
-
+
/**
* Get template file content.
- *
+ *
* @since S60 v3.0
* @param aContent Descriptor to which the file content should be set.
* @param aTemplate The current template for the item.
@@ -382,156 +375,147 @@
void GetTemplateFileContentL (HBufC8*& aContent, const TDesC8& aTemplate,
TMmWidgetType aWidgetType, TMmTemplateType& aMmTemplateType,
TBool aLoadCustomTemplate = EFalse);
-
+
/**
* Process xml element.
- *
+ *
* @since S60 v3.0
* @param aMmTemplateType Type of template (LCT/custom).
* @param aElement Element ( xml ).
* @param aTemplate The current template for the item.
- * @param aLandscapeOrientation Is view in landscape orientation.
+ * @param aLandscapeOrientation Is view in landscape orientation.
* @param aHighlighted Is item highlighted.
- *
+ *
*/
void ProcessElementL (TMmTemplateType aMmTemplateType,
TXmlEngElement aElement, const TDesC8& aTemplate,
- TBool aLandscapeOrientation, TBool aHighlighted);
-
+ TBool aLandscapeOrientation, TBool aHighlighted);
+
/**
* Process the LCT template.
- *
+ *
* @since S60 v3.0
* @param aElement Element (xml).
* @param aTemplate The current template for the item.
- * @param aLandscapeOrientation Is view in landscape orientation.
+ * @param aLandscapeOrientation Is view in landscape orientation.
* @param aHighlighted Is item highlighted.
*/
- void ProcessLCTTemplateElementL( TXmlEngElement aElement,
- const TDesC8& aTemplate,
+ void ProcessLCTTemplateElementL( TXmlEngElement aElement,
+ const TDesC8& aTemplate,
TBool aLandscapeOrientation,
TBool aHighlighted );
/**
* Process the custom template.
- *
+ *
* @since S60 v3.0
* @param aElement Element (xml)
* @param aTemplate The current template for the item.
- * @param aLandscapeOrientation Is view in landscape orientation.
+ * @param aLandscapeOrientation Is view in landscape orientation.
* @param aHighlighted Is item highlighted.
*/
- void ProcessCustomTemplateElementL( TXmlEngElement aElement,
- const TDesC8& aTemplate,
+ void ProcessCustomTemplateElementL( TXmlEngElement aElement,
+ const TDesC8& aTemplate,
TBool aLandscapeOrientation,
TBool aHighlighted );
/**
* Setup LCT template data.
- *
+ *
* @since S60 v3.0
- * @param aChildTemplate Template where the data should be set up.
+ * @param aChildTemplate Template where the data should be set up.
* @param aChildElement Element (xml).
* @param aItemSize Item size.
*/
void SetupLCTTemplateL(TTemplateChild& aChildTemplate, TXmlEngElement& aChildElement, TSize aItemSize );
-
+
/**
- * Setup custom template.
- *
+ * Setup custom template.
+ *
* @since S60 v3.0
- * @param aChildTemplate Template where the data should be set up.
+ * @param aChildTemplate Template where the data should be set up.
* @param aChildElement Element (xml).
*/
void SetupCustomTemplateL(TTemplateChild& aChildTemplate, TXmlEngElement& aChildElement );
-
+
/**
* Set the template visual id.
- *
+ *
* @since S60 v3.0
* @param aChildTemplate Template data.
*/
void SetupTemplateVisualId(TTemplateChild& aChildTemplate );
-
+
/**
* Setup the item children template data for move indicator and cache the data.
- *
+ *
* @since S60 v3.0
* @param aLookupString Lookup string.
* @param aItemSize Item size.
*/
void SetupMoveIndicatorTemplateChildrenL( const TDesC8& aLookupString, TSize aItemSize );
-
+
/**
* Adjusts the item size loaded to template cache according to layout size and orientation.
* This method adjusts the item width so that items occupy the view correctly.
- *
+ *
* @since S60 v3.0
- * @param aSize The size of the item to be adjusted.
- * @param aLayoutSize The layout of the widget e.g 3x4
+ * @param aSize The size of the item to be adjusted.
+ * @param aLayoutSize The layout of the widget e.g 3x4
* @param aLandscapeOrientation The orientation of the template being processed.
*/
void AdjustItemWidth( TSize& aSize, TSize aLayoutSize, TBool aLandscapeOrientation );
/**
* Updates the parent rect according to orientation.
- *
+ *
* @since S60 v3.0
* @param aParentRect The current parent rectangle.
* @param aLandscapeOrientation The current orientation.
*/
void UpdateParentRect( TRect aParentRect, TBool aLandscapeOrientation );
-
+
/**
* Sets the parent rect for given orientation.
- *
+ *
* @since S60 v3.0
* @param aLandscapeOrientation Orientation for which parent rect shoul be set.
* @param aParentRect The parent rect of current orientation.
*/
void SetParentRect( TBool aLandscapeOrientation, TRect aParentRect);
-
+
/**
* Appends the edit mode template (backdrop icon) to the array of template children passed to the item drawer for drawing.
- *
+ *
* @since S60 v3.0
* @param aTemplateArray The template array to which the edit mode template is appended.
* @param aSize The size of the item for which the edit mode template should be calculated.
*/
void AppendEditModeTemplateL( RArray< TTemplateChild >& aTemplateArray, TSize aSize );
-
+
/**
* Adjusts the item size according to layout, LCT item size and orientation.
- *
+ *
* @since S60 v3.0
* @param aItemSize The LCT item size.
* @param aLayoutSize The layout size to be used to calculate item size.
* @param aLandscapeOrientation The orientation for which the template is loaded.
*/
void AdjustItemSize(TSize& aItemSize, TSize aLayoutSize, TBool aLandscapeOrientation );
-
- /**
- * Get the current zoom for displaying templates.
- *
- * @since S60 v3.0
- * @return The current zoom.
- */
- TAknUiZoom Zoom( );
-
+
/**
* Caches the layout size
- *
+ *
* @since S60 v3.0
* @param aLayoutSize The layout size to ba cached.
* @param aTemplate The template for the cached layout size.
* @param aLandscapeOrientation The orientation for which the template is loaded.
- * @return The current zoom.
*/
void CacheLayoutSizeL( TSize aLayoutSize, const TDesC8& aTemplate, TBool aLandscapeOrientation );
-
+
/**
* Adjusts icon's align to layout (left, center, right).
- *
+ *
* @since S60 v5.0
* @param aParentSize The LCT parent item size.
* @param aTemplateChild Template data.
@@ -545,51 +529,46 @@
* Widget type of template being loaded.
*/
TMmWidgetType iWidgetType;
-
+
/**
* Template type which is being loaded (LCT/custom).
*/
TMmTemplateType iMmTemplateType;
-
+
/**
* Template sizes map.
*/
RHashMap< HBufC8*, TSize> iTemplateSizesMap;
-
+
/**
* Item children template map.
*/
RHashMap< HBufC8*, RArray<TTemplateChild> > iTemplateChildrenMap;
-
+
/**
* Move indicator rects map.
*/
RHashMap< HBufC8*, TRect> iMoveIndicatorRectsMap;
-
+
/**
* Parent bounding rect.
*/
TRect iParentRectPortrait;
-
+
/**
* Parent bounding rect.
*/
TRect iParentRectLandscape;
-
+
/**
* Scrollbar is visible.
*/
TBool iIsScrollbarVisible;
-
+
/**
* Scrollbar width.
*/
TInt iScrollbarWidth;
-
- /**
- * Zoom type.
- */
- TAknUiZoom iZoom;
};
#endif // MMTEMPLATELIBRARY_H
--- a/menufw/menufwui/mmwidgets/inc/mmwidgetcontainer.h Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/menufwui/mmwidgets/inc/mmwidgetcontainer.h Thu Jan 07 12:39:41 2010 +0200
@@ -11,8 +11,8 @@
*
* Contributors:
*
-* Description:
-* Version : %version: MM_48.1.33 % << Don't touch! Updated by Synergy at check-out.
+* Description:
+* Version : %version: MM_48.1.35 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -29,7 +29,7 @@
#include <AknsDrawUtils.h>
#include <AknsLayeredBackgroundControlContext.h>
#include <AknsListBoxBackgroundControlContext.h>
-#include <aknlongtapdetector.h>
+#include <aknlongtapdetector.h>
#include "hnsuiteobserver.h"
#include "mmvisibilityobserver.h"
@@ -57,7 +57,7 @@
/**
* Structure used to store cache for widget position.
- *
+ *
* @since S60 v5.0
* @ingroup group_mmwidgets
*/
@@ -69,32 +69,32 @@
* Initializes member variables with sensible values.
*/
TMmWidgetPosition();
-
+
public: // data
/**
* The vertical item offset cache.
*/
TInt iVerticalItemOffset;
-
+
/**
* The top item index cache.
*/
TInt iTopItemIndex;
-
+
/**
* Tells if the cached values are valid.
*/
TBool iValid;
-
+
/**
* The mode (portrait/landscape) for which the cache is valid.
*/
TBool iLandscape;
-
+
/**
* Id from model (not index) of the currently highlighted item.
* It should only be set if the currently highlighted item is
- * visible (fully or partially), otherwise it must remain
+ * visible (fully or partially), otherwise it must remain
* initialized to KErrNotFound.
*/
TInt iHighlightedItemId;
@@ -102,7 +102,7 @@
/**
* Interface for widget containers.
- *
+ *
* @code
* @endcode
* @lib mmwidgets
@@ -110,13 +110,13 @@
* @ingroup group_mmwidgets
*/
-NONSHARABLE_CLASS( CMmWidgetContainer ): public CCoeControl,
+NONSHARABLE_CLASS( CMmWidgetContainer ): public CCoeControl,
public MMmVisibilityObserver,
public MEikListBoxObserver,
- public MAknLongTapDetectorCallBack
+ public MAknLongTapDetectorCallBack
{
public:
-
+
/**
* Creates a new grid container.
*
@@ -125,23 +125,23 @@
* @param aObjectProvider Object provider.
* @return GridContainer.
*/
- IMPORT_C static CMmWidgetContainer* NewGridContainerL( const TRect& aRect,
+ IMPORT_C static CMmWidgetContainer* NewGridContainerL( const TRect& aRect,
MObjectProvider* aObjectProvider, CMmTemplateLibrary* aTemplateLibrary );
-
+
/**
* Creates a new listbox container.
*
* @since S60 v3.0
* @param aRect Parent rectangle.
* @param aObjectProvider Object provider.
- * @param aTemplateLibrary Template library for drawer.
+ * @param aTemplateLibrary Template library for drawer.
* @return ListboxContainer.
*/
- IMPORT_C static CMmWidgetContainer* NewListBoxContainerL( const TRect& aRect,
+ IMPORT_C static CMmWidgetContainer* NewListBoxContainerL( const TRect& aRect,
MObjectProvider* aObjectProvider, CMmTemplateLibrary* aTemplateLibrary );
-
-public: // Highlight related methods
-
+
+public: // Highlight related methods
+
/**
* Sets the default highlight.
*
@@ -149,275 +149,276 @@
* @param aRedraw Is highlight to redraw.
*/
virtual void SetDefaultHighlightL( TBool aRedraw = ETrue ) = 0;
-
+
/**
* Sets the highlight.
- *
+ *
* @since S60 v3.0
* @param aItemIndex Index to set the highlight at.
* @param aRedraw Is highlight to redraw.
*/
IMPORT_C virtual void SetManualHighlightL(TInt aItemIndex, TBool aRedraw = ETrue );
-
+
/**
* Gets the highlight from the widget.
- *
+ *
* @since S60 v3.0
* @return Current Highlight in the widget.
*/
IMPORT_C virtual TInt GetHighlight();
-
+
/**
* Gets the highlight from the widget.
- *
+ *
* @since S60 v3.0
* @return Previous Highlight in the widget.
*/
IMPORT_C virtual TInt GetPreviousHighlight();
-
+
/**
* Set highlight visibility.
- *
+ *
* @since S60 v3.0
- * @param aVisible Visibility status.
+ * @param aVisible Visibility status.
*/
IMPORT_C virtual void SetHighlightVisibilityL( TBool aVisible );
-
+
/**
* Set highlight visibility.
- *
+ *
* @since S60 v3.0
* @return Visibility status.
*/
IMPORT_C virtual TBool IsHighlightVisible();
-
+
/**
* Handle item addition.
- *
+ *
* @since S60 v3.0
*/
IMPORT_C virtual void HandleItemAdditionL();
-
-
+
+
/**
* Handle item removal.
- *
+ *
* @since S60 v3.0
*/
IMPORT_C virtual void HandleItemRemovalL();
-
+
/**
* Handle item removal.
- *
+ *
* @since S60 v3.0
*/
- IMPORT_C CHnSuiteModel* GetSuiteModelL();
-
+ IMPORT_C CHnSuiteModel* GetSuiteModelL();
+
/**
* Retrieve type of widget.
- *
+ *
* @since S60 v3.0
* @return Type of widget.
*/
IMPORT_C virtual THnSuiteWidgetType WidgetType();
-
+
/**
* Removes all LIW objects owned by this object.
- *
+ *
* LIW objects owned by non-LIW objects that are owned by
- * this object are also removed.
+ * this object are also removed.
*/
virtual void RemoveLiwObjects();
-
+
/**
- * Checks if timer is active.
+ * Checks if timer is active.
* Calling this method without parameters will cause to return
* timer activity state globally (without reference to a specific item index - which tells
* if timer is active at all).
- *
+ *
* @param aItemIndex Item index for which to check timer activity. Can be not defined.
* @return ETrue if timer is active which means highlight is visible.
*/
TBool IsTimerActive( TInt aItemIndex = KErrNotFound );
-
+
/**
* Sets the long tap observer.
- *
- * @param aObserver Observer to receive long tap events.
+ *
+ * @param aObserver Observer to receive long tap events.
*/
IMPORT_C virtual void SetLongTapObserver( MMmLongTapObserver* aObserver );
-
+
/**
- * Handles top focus notification. This is called when we want to explicitly inform
- * the container that it is in top focus state (or not).
- * @param aIsTopFocus ETrue if container is in top focus.
+ * Informs the container that long tap event is finished (e.g. because
+ * a command from the context menu has been issued).
+ *
+ * @param aStopTimer ETrue when the highlight timer should be stopped.
*/
- IMPORT_C virtual void HandleTopFocusL( TBool aIsTopFocus = ETrue );
-
+ IMPORT_C virtual void EndLongTapL( TBool aStopTimer = ETrue );
+
/**
* Is called when options menu visibility changes (hides or pops up)
* @param aOptionsMenuVisible ETrue when option menu pops up.
*/
- IMPORT_C virtual void HandleOptionsMenuVisibilityChangeL(
+ IMPORT_C virtual void HandleOptionsMenuVisibilityChangeL(
TBool aOptionsMenuVisible );
-public:
+public:
/**
* Sets suite model.
- *
+ *
* @since S60 v3.0
* @param aModel Suite model.
*/
virtual void SetSuiteModelL( CHnSuiteModel* aModel );
-
+
/**
* Gets Multimedia Menu model.
- *
+ *
* @since S60 v3.0
* @return Model.
*/
virtual CMmListBoxModel* GetMmModel() = 0;
-
+
/**
* Sets widget observer.
- *
+ *
* @since S60 v3.0
* @param aObserver Widget observer.
*/
IMPORT_C virtual void SetObserver( MMmWidgetObserver* aObserver);
-
+
/**
* Gets item rectangle according to item index.
- *
+ *
* @since S60 v3.0
* @param aItemIndex Item index.
* @return Item rectangle.
*/
IMPORT_C TRect GetItemRectL( TInt aItemIndex );
-
+
/**
* Sets empty text visible when model has no items.
- *
+ *
* @since S60 v3.0
* @param aText Text to be shown when view is empty.
*/
virtual void SetEmptyTextL(const TDesC& aText) = 0 ;
-
+
/**
* Sets flag.
- *
+ *
* @since S60 v3.0
* @param Flag Flag.
*/
virtual void SetFlag(TInt Flag);
-
+
/**
* Gets widget.
- *
+ *
* @since S60 v3.0
* @return Widget.
*/
virtual CEikListBox* Widget();
-
+
/**
* Sets background context for item drawer and view.
- *
+ *
* @since S60 v3.0
* @param aBgContext Background context.
*/
virtual void SetItemDrawerAndViewBgContext(
CAknsBasicBackgroundControlContext * aBgContext ) =0;
-
+
/**
* Sets edit mode so UI is aware.
- *
+ *
* @since S60 v3.0
* @param aIsEditMode Is edit mode.
*/
virtual void SetEditModeL( TBool aIsEditMode );
-
+
/**
* Tells if UI is aware of edit mode.
- *
+ *
* @since S60 v5.0
* @return Edit mode status.
*/
virtual TBool IsEditMode() const;
-
+
/**
* Sets up widget layout (needed for grid).
- *
+ *
* @since S60 v3.0
*/
virtual void SetupWidgetLayoutL() =0;
-
+
/**
* Constructor.
*/
CMmWidgetContainer();
-
+
/**
* Destructor.
*/
~CMmWidgetContainer();
-
+
/**
* from CCoeControl.
- *
+ *
* @since S60 v3.0
*/
void SizeChanged();
-
+
/**
* Draws the widget.
- *
+ *
* @since S60 v3.0
* @param aRect Rectangle within the widget shuld be drawn.
*/
void Draw(const TRect& aRect) const;
-
+
/**
* Draws the widget view.
*
* @since S60 v5.0
*/
virtual void DrawView() = 0;
-
+
/**
* Returns type UID pointer that can be used in MopSupplyObject.
- *
+ *
* @since S60 v3.0
- * @param aId Type UID, should be the same that was given as aId.
+ * @param aId Type UID, should be the same that was given as aId.
* parameter of MopSupplyObject.
* @return Type UID pointer.
*/
TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
-
+
/**
* From CCoeControl.
- *
+ *
* @since S60 v3.0
* @param aPointerEvent Pointer event.
*/
void HandlePointerEventL(const TPointerEvent& aPointerEvent);
-
+
/**
* From CCoeControl.
- *
+ *
* @since S60 v5.0
* @param aPointerEvent Pointer event.
*/
void HandlePointerEventsInEditModeL(const TPointerEvent& aPointerEvent,
TBool aAbortAnimations );
-
+
/**
* Set draggable.
- *
+ *
* @since S60 v3.0
* @param aDraggable Is draggable.
*/
void SetDraggableL( TBool aDraggable );
-
+
/**
* Gets draggable status.
* Draggable status determines if the item has
@@ -426,167 +427,130 @@
* is not draggable in the sense of this method
* because the dragged item is not yet drawn.
* It becomes draggable when it start to be drawn
- *
+ *
* @since S60 v3.0
* @return Is draggable.
*/
IMPORT_C TBool IsDraggable();
-
+
/**
* From CCoeControl.
- *
+ *
* @since S60 v3.0
* @return count component controls.
*/
TInt CountComponentControls() const;
-
+
/**
* From CCoeControl.
- *
+ *
* @since S60 v3.0
* @param aIndex index of control.
* @return component control.
*/
CCoeControl* ComponentControl(TInt aIndex) const;
-
+
/**
* From CCoeControl.
- *
+ *
* @since S60 v3.0
* @param aKeyEvent key event.
* @param aType event type.
* @return response to key event.
*/
TKeyResponse OfferKeyEventL(const TKeyEvent &aKeyEvent, TEventCode aType);
-
+
/**
* Zooms item icon.
- *
+ *
* @since S60 v3.0
* @param aItemIndex Item index.
*/
IMPORT_C void ItemIconZoomL( TInt aItemIndex );
-
+
/**
* Handle button up event.
- *
+ *
* @since S60 v3.0
* @param aPointerEvent Pointer event.
*/
- void HandleButtonDownL(const TPointerEvent& aPointerEvent );
-
+ void HandleButtonDownL(const TPointerEvent& aPointerEvent );
+
/**
* Handle button down event.
- *
+ *
* @since S60 v3.0
* @param aPointerEvent Pointer event.
*/
void HandleButtonUpL(const TPointerEvent& aPointerEvent );
-
+
/**
* Overridden to invalidate item drawer cache on skin change and
* dynamic variant switch.
- *
+ *
* @param aType A message UID value.
*/
void HandleResourceChange( TInt aType );
-
+
/**
* Handle dragging of item.
- *
+ *
* @since S60 v3.0
* @param aPointerEvent Pointer event.
* @param aAbortAnimation Should animation be aborted.
*/
void HandleDragL(const TPointerEvent& aPointerEvent, TBool aAbortAnimation );
-
+
/**
* Sets marquee adapter.
- *
+ *
* @since S60 v3.0
* @param aAdapter A marquee adapter.
- */
+ */
void SetMarqueeAdapter( CMmMarqueeAdapter* aAdapter );
-
+
/**
* Sets up item drawer.
- *
+ *
* @since S60 v3.0
*/
void SetupDrawer();
-
+
/**
* Cancels gragging of item.
- *
+ *
* @since S60 v3.0
* @param aAnimate Should dragged item transition be animated.
*/
IMPORT_C void CancelDragL( TBool aAnimate );
-
+
/**
* Animates item shifting.
- *
+ *
* @since S60 v3.0
* @param aHighlight Highlighted item index.
*/
void AnimateShiftL(TInt aHighlight);
-
+
/**
* Gest number of items.
- *
+ *
* @since S60 v3.0
* @return Number of items.
- */
+ */
IMPORT_C TInt NumberOfItems();
-
- /**
- * Retrieve information if flip is open.
- *
- * @since S60 v5.0
- * @return ETrue if flip is open. Other cases returns EFalse.
- */
- TBool FlipOpen();
-
- /**
- * Sets the flip open state.
- *
- * @since S60 v5.0
- * @param aIsFlipOpen Is the flip open.
- */
- IMPORT_C void SetFlipOpenL( TBool aIsFlipOpen );
-
- /**
- * This should be called when flip state was changed
- *
- * @since S60 v5.0
- */
- virtual void FlipStateChangedL();
-
+
/**
* This should be called at the end of edit mode in non-touch
- *
+ *
* @since S60 v5.0
*/
IMPORT_C void StopMovingL();
-
- /**
- * Handle zooming change
- *
- * @since S60 v5.0
- */
- IMPORT_C void HandleZoomChanged( TAknUiZoom aZoom );
-
- /**
- * Set the zoom
- *
- * @since S60 v5.0
- */
- IMPORT_C void SetZoom( TAknUiZoom aZoom );
-
+
/**
* Set the vertical item offset;
* @param aOffset The offset to set to the widget.
- *
+ *
* @since S60 v5.0
*/
virtual void SetVerticalItemOffset( TInt aOffset ) = 0;
@@ -594,7 +558,7 @@
/**
* Gets the current vertical item offset for the widget in the container.
* @since S60 v5.0
- *
+ *
* @return The current vertical item offset.
*/
virtual TInt VerticalItemOffset() const = 0;
@@ -605,7 +569,7 @@
* @since S60 v5.0
*/
IMPORT_C void CacheWidgetPosition();
-
+
/**
* Resets the widget position cache to top of view.
* Both vartical item offset and top index are set to zero
@@ -613,108 +577,108 @@
* @since S60 v5.0
*/
IMPORT_C void ResetWidgetPosition();
-
+
/**
* Restores the cached widget position values in the widget.
* @since S60 v5.0
*/
IMPORT_C void RestoreWidgetPosition();
-
+
/**
* Scrolls to the specified item index so that the item is seen entirely on screen.
* @since S60 v5.0
- *
+ *
* @param aIndex The widget item index to scroll to.
* @return True if any scrolling was done.
*/
IMPORT_C TBool ScrollToItemL( TInt aIndex );
-
+
/**
* Called when the number of items in widget model changed.
* @since S60 v5.0
- *
+ *
* @param aChange Type of change
*/
IMPORT_C void NumberOfItemsChangedL( TItemsChangeType aChange );
-
+
/**
- * Aligns the bottom of view to the last model item bottom edge so that no extra
+ * Aligns the bottom of view to the last model item bottom edge so that no extra
* unused pixels are visible at the bottom of screen.
* @since S60 v5.0
- *
+ *
* @return True if the view was scrolled.
*/
TBool AlignBottomOfViewL( );
-
+
/**
* Calculate numer of pixels required to scroll when aligning bottom of view.
- * @since S60 v5.0
+ * @since S60 v5.0
*/
TInt CalcBottomPixelsToScroll();
-
+
/**
* Sets visibility of a widget.
- *
+ *
* @param aVisible ETrue if widget should be visible, EFalse - otherwise
*/
void MakeVisible(TBool aVisible);
-
+
/**
* Tells if item is visible (fully or partially).
* @param aItemIndex Item index.
* @return ETrue if visible, EFalse otherwise.
*/
virtual TBool ItemIsVisible( TInt aItemIndex ) const;
-
+
/**
* Tells if item is entirely visible.
* @param aIndex The index of the item.
*/
IMPORT_C TBool ItemIsFullyVisible(TInt aIndex);
-
+
/**
* Prepares the container to be set to the garbage collector.
*/
IMPORT_C void PrepareForGarbage();
-
+
/**
* Checks, whether the currently dragged item is a draggable item. i.e. parent folder
* is not a draggable item.
- * @returns True, if dragged item is parent folder
+ * @returns True, if dragged item is parent folder
* or no item is dragged (iDraggedIndex = -1), false otherwise.
*/
TBool IsNoItemDragged();
-
+
/**
* Sets the iHasFocus member variable, which is used to determine
- * if marquee animation can be enabled.
+ * if marquee animation can be enabled.
*/
IMPORT_C void SetHasFocusL( TBool aHasFocus );
-
+
/**
* Sets the iIsFaded member variable, which is used to determine
- * if marquee animation can be enabled.
+ * if marquee animation can be enabled.
*/
IMPORT_C void SetIsFaded( TBool aIsFaded );
-
+
public: // from MMmVisibilityObserver
-
+
/**
- *
+ *
* @since S60 v3.0
*/
IMPORT_C void HandleBackgroundGainedL();
/**
- *
+ *
* @since S60 v3.0
*/
- IMPORT_C void HandleForegroundGainedL();
+ IMPORT_C void HandleForegroundGainedL();
public: // from MEikListBoxObserver
-
+
/**
* Handles list box events.
- *
+ *
* @since S60 v5.0
*/
virtual void HandleListBoxEventL(CEikListBox* aListBox,
@@ -723,117 +687,117 @@
public:
/**
* From MAknLongTapDetectorCallBack. Handles long tap events.
- *
+ *
* @since S60 v5.0
* @param aPenEventLocation Point coordinates relative to container.
* @param aPenEventScreenLocation Point coordinates relative to screen.
*/
- virtual void HandleLongTapEventL( const TPoint& aPenEventLocation,
+ virtual void HandleLongTapEventL( const TPoint& aPenEventLocation,
const TPoint& aPenEventScreenLocation );
protected:
-
+
/**
* Handles additional contruction tasks.
- *
+ *
* @since S60 v3.0
*/
void ConstructL();
-
+
/**
* Sets highlight locally.
* Does not modify the avkon behaviur.
- *
+ *
* @since S60 v3.0
* @param aItemIndex Index of the item.
*/
void SetHighlightL(TInt aItemIndex);
-
+
/**
* Checks whether given point collides with specific item's re-order area.
- *
+ *
* This function gets called during drag-and-drop operations to
* help determine whether item re-ordering is needed.
- *
+ *
* @param aItemIndex index of the item to check
* @param aPoint point coordinates
* @return ETrue if point is located within item re-order area,
- * EFalse otherwise
+ * EFalse otherwise
*/
virtual TBool PointInItemReorderAreaL( TInt aItemIndex, TPoint aPoint );
-
+
/**
* Hides the options menu if it is being displayed.
* This has (probably) the same effect as clicking Cancel (RSK) -
* the menu just disappears.
*/
void HideOptionsMenuIfDisplayed();
-
+
protected:
-
+
/**
- * Validates the widget current item index so that it is consistent with
+ * Validates the widget current item index so that it is consistent with
* the current model.
*/
void ValidateWidgetCurrentItemIndex();
-
+
/**
* Updates current view's scrollbar thumbs.
*/
virtual void UpdateViewScrollBarThumbs();
-
+
/**
* Starts or stops marquee animation based on the current state
* of the container.
*/
void StartOrStopMarquee();
-
+
private:
/**
* Called when the number of items in widget model changed.
* @since S60 v5.0
- *
+ *
* @param aChange Type of change
*/
void HandleNumberOfItemsChangedL( TItemsChangeType aChange );
-
+
/**
* Manages zooming of folder.
- *
+ *
* @since S60 v3.0
* @param aDraggedItemOverIcons Is dragged over icons flag.
*/
void ManageFolderZoomingL( TBool aDraggedItemOverIcons );
-
+
/**
* Cancels gragging of item if relevant( Edit Mode is activated )
- *
+ *
* @since S60 v3.0
*/
void CancelDragL();
-
+
/**
- * Sets the widget highlight back to place if e.g. item was dragged over an item
+ * Sets the widget highlight back to place if e.g. item was dragged over an item
* where it could not be dropped into.
- *
+ *
* @since S60 v3.0
*/
void SetHighlightAfterDrag();
-
+
/**
* Handles key event.
- *
+ *
* @since S60 v3.0
* @param aKeyEvent Key event.
* @param aType Event code.
*/
TKeyResponse HandleKeyEventL(const TKeyEvent &aKeyEvent, TEventCode aType);
-
+
/**
* Handles rocker (select) press.
*/
void HandleRockerPressL();
-
+
/**
* Gets distance between current and previous position.
* @param aPos Current position.
@@ -842,14 +806,14 @@
*/
TInt DeltaSquare( const TPoint aTapPoint,
const TPoint aPos );
-
+
/**
* Checks, whether given item is a folder or root folder.
* @param aItemIndex Item index to check.
* @returns True, if given item is a folder or root folder, false otherwise.
*/
TBool IsFolderL( TInt aItemIndex );
-
+
/**
* Checks, whether given item has IsDeleteLockedL flag set.
* @param aItemIndex Item index to check.
@@ -862,7 +826,7 @@
* @returns Column count in current view.
*/
virtual TInt ColumnsInCurrentView();
-
+
/**
* Gets row count in current view.
* @returns Row count in current view.
@@ -873,32 +837,32 @@
* Scrolls the view move mode non-touch so that move indicators are visible.
*/
void ScrollViewIfNeededL();
-
+
/**
* Scrolls the view in pixels.
* @param aPixels THe number of pixels to scroll. If negative, the view is scrolled down.
*/
void ScrollInPixelsL( TInt aPixels );
-
+
/**
* Sets up the scrolling effect movement type.
* @param aDown True if scrolling is downwards.
*/
void SetupScrollingEffectsL( TBool aDown );
-
+
protected:
-
+
/**
* Own.
*/
CEikListBox* iWidget;
-
+
/**
* Key event observer.
*/
MMmKeyEventObserver* iKeyEventObserver;
-
+
/**
* Drag and drop observer.
*/
@@ -907,124 +871,119 @@
* List box observer.
*/
MEikListBoxObserver* iListBoxObserver;
-
+
/**
* Notifies about time expiration.
*
* Owned by descendant.
*/
CMmHighlightTimer* iTimer;
-
+
/**
* Marquee adapter.
* Own.
*/
CMmMarqueeAdapter* iMarqueeAdapter;
-
+
/**
* Item drawer.
* Not own.
*/
CMmListBoxItemDrawer* iDrawer;
-
+
protected:
-
+
/**
* Current Highlight.
*/
TInt iCurrentHighlight;
-
+
/**
* Has drag occurred.
*/
- TBool iDragOccured;
-
+ TBool iDragOccured;
+
/**
* Processed display elelments for better performance.
*/
CMmPostEvaluationProcessor* iPostProcessor;
-
+
/**
* Set when long tap is in progress (stylus popup displayed over container)
*/
TBool iLongTapInProgress;
-
+
private:
/**
* Background context.
* Own.
- */
+ */
CAknsBasicBackgroundControlContext* iBgContext;
/**
* Last drag point.
- */
+ */
TPoint iLastDragPoint;
-
+
/**
* First tap point.
- */
+ */
TPoint iTapPoint;
-
+
/**
* First tap point.
- */
+ */
TPoint iItemRelativeTapPoint;
-
+
/**
* Last drag highlight.
- */
+ */
TInt iLastDragHighlight;
-
+
/**
* Dragged item index.
- */
+ */
TBool iDraggedIndex;
-
+
/**
* Edit mode status.
- */
+ */
TBool iIsEditMode;
-
+
/**
* Destination of item index.
- */
+ */
TInt iItemIndexDestination;
-
+
/**
* Previous Highlight.
- */
+ */
TInt iPreviousHighlight;
-
- /**
- * Is flip open
- */
- TBool iFlipOpen;
-
+
/**
* The current rect of the widget control.
*/
TRect iWidgetRect;
-
+
/**
* Longpress allowed flag. We only accept long press (EEventKey+iRepeats)
* when there was no highlight visible before EEventKeyDown, otherwise
- * we react only to EEventKeyDown
+ * we react only to EEventKeyDown
*/
TBool iAllowLongPress;
-
+
/**
* Cache for widget position.
*/
TMmWidgetPosition iWidgetPositionCache;
-
+
/**
* ETrue if Matrix menu window is faded.
*/
TBool iIsFaded;
-
+
/**
* ETrue if Matrix menu has focus (i.e. it is not obscured by any popup
* note).
@@ -1035,13 +994,13 @@
* ETrue if in foreground.
*/
TBool iInForeground;
-
+
/**
* Own.
* Detects long tap events.
*/
CAknLongTapDetector* iLongTapDetector;
-
+
/**
* Observer to notify about long tap events.
*/
--- a/menufw/menufwui/mmwidgets/inc/mmwidgetsconstants.h Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/menufwui/mmwidgets/inc/mmwidgetsconstants.h Thu Jan 07 12:39:41 2010 +0200
@@ -12,14 +12,14 @@
* Contributors:
*
* Description: Constants for the matrixmenu
-* Version : %version: 33.1.8 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: 33.1.9 % << Don't touch! Updated by Synergy at check-out.
*
*/
#ifndef MMWIDGETSCONSTANTS_H
#define MMWIDGETSCONSTANTS_H
-
+
#include <e32keys.h>
@@ -32,106 +32,106 @@
* X component of the 4x3 layout.
*/
const TInt K4By3LayoutX = 4;
-
+
/**
* Y component of the 4x3 layout.
*/
const TInt K4By3LayoutY = 3;
-
+
/**
* X component of the 3x4 layout.
*/
-
+
const TInt K3By4LayoutX = 3;
-
+
/**
* Y component of the 3x4 layout.
*/
const TInt K3By4LayoutY = 4;
-
+
/**
* X component of the 4x5 layout.
*/
const TInt K4By5LayoutX = 4;
-
+
/**
* Y component of the 5x4 layout.
*/
const TInt K4By5LayoutY = 5;
-
+
/**
* X component of the 5x4 layout.
*/
const TInt K5By4LayoutX = 5;
-
+
/**
* Y component of the 5x4 layout.
*/
const TInt K5By4LayoutY = 4;
-
+
/**
* Below this value, default highlight in 3x4 grid
* is set up on the first item. Otherwize, on the default
* highlight.
*/
const TInt K3By4Threshold(5);
-
+
/**
* Below this value, default highlight in 4x3 grid
* is set up on the first item. Otherwize, on the default
* highlight.
*/
const TInt K4By3Threshold(6);
-
+
/**
* Below this value, default highlight in 5x4 grid
* is set up on the first item. Otherwize, on the default
* highlight.
*/
const TInt K5By4Threshold(8);
-
+
/**
* Below this value, default highlight in 4x5 grid
* is set up on the first item. Otherwize, on the default
* highlight.
*/
const TInt K4By5Threshold(10);
-
+
/**
* Default highlight in 3x4 grid.
*/
const TInt K3By4DefaultHighlight(4);
-
+
/**
* Default highlight in 4x3 grid.
*/
const TInt K4By3DefaultHighlight(5);
-
+
/**
* Default highlight in 5x4 grid.
*/
const TInt K5By4DefaultHighlight(7);
-
+
/**
* Default highlight in 4x5 grid.
*/
const TInt K4By5DefaultHighlight(8);
-
+
/**
* Number of rows in portrait/non-zoom mode;
*/
const TInt KRowsPortraitZoomNormal(4);
-
+
/**
* Number of columns in landscape/non-zoom mode;
*/
const TInt KColsPortraitZoomNormal(3);
-
+
/**
* Number of rows in portrait/non-zoom mode;
*/
const TInt KRowsLandscapeZoomNormal(3);
-
+
/**
* Number of columns in landscape/non-zoom mode;
*/
@@ -165,67 +165,67 @@
* Threshold for items shift.
*/
const TReal KShiftRatio(0.25);
-
+
/**
* Drag and drop speed limit.
*/
const TInt KDragSpeedIgnoreThreshold(15 * 15);
-
+
/**
* Number of frames to animate.
*/
const TInt KMaximumAnimationFramesCount( 6 );
-
+
/**
* Number of frames to animate.
*/
const TInt KUsualAnimationFramesCount( 3 );
-
+
/**
* Number of frames to animate on non-touch devices.
*/
const TInt KUsualAnimationFramesCountNonTouch( 2 );
-
+
/**
* No animation frames count.
*/
const TInt KNoAnimationFramesCount( 1 );
-
+
/**
* Delay between redrawing frames.
*/
const TInt KAnimationFrameDelay( 40000 );
-
+
/**
* Text alpha during drag.
*/
const TInt KDragTextAlpha( 50 );
-
+
/**
* Focus based scrolling item threshold.
*/
const TReal KFocusScrollingThreshold( 0.55 );
-
+
/**
* Focus based scrolling item threshold for listbox landscape mode.
*/
const TReal KFocusScrollingThresholdListboxLanscape( 1.0 );
-
+
/**
* Value of drag ignore.
*/
const TInt KDragIgnoreRectValue(200);
-
+
/**
* Time between two butto repeat events.
*/
const TInt KDragRepeatRespawn(2);
-
+
/**
* Determines the speed of focus-based scrolling in edit mode.
*/
const TInt KEditModeScrollingDelayFactor = 4000;
- }
+ }
/**
* Templates' related constants.
@@ -237,15 +237,15 @@
* its default scrollbar width.
*/
const TInt KCustomTemplateScrolbarWidth (25);
-
+
const TInt KTemplateChildTextLength (64);
-
+
const TInt KSubCellsCount (6);
-
+
const TInt KItemSubCellsText (300);
-
+
const TInt KMoveIndicatorStartingPos ( 32 );
-
+
}
/**
@@ -263,13 +263,13 @@
EStdKeyNkpAsterisk,
#endif
'0', EStdKeyHash };
-
+
/**
* Number of available scancodes.
*/
const TInt KScanCodeCount = 12;
}
-
+
namespace MmMarqueeConstants
{
const TInt KTextTrimmingThreshold (80);
@@ -282,7 +282,7 @@
* Matrix Template Library panic notice.
*/
_LIT( KMtlPanic, "MTL" );
-
+
_LIT8( KMmTitle8, "mul_title" );
_LIT8( KMmDetail8, "mul_detail" );
_LIT8( KMmIcon8, "mul_icon" );
@@ -290,9 +290,6 @@
_LIT8( KMmTemplate8, "mul_template" );
_LIT8( KGrid8, "grid" );
_LIT8( KListbox8, "listbox" );
-_LIT8( KZoomLarge8, "large_zoom" );
-_LIT8( KZoomNormal8, "normal_zoom" );
-_LIT8( KZoomSmall8, "small_zoom" );
_LIT8( KEmpty8, "empty" );
_LIT8( KOrientation8, "orientation" );
@@ -310,7 +307,6 @@
_LIT8( KImageVisual8, "imagevisual" );
_LIT8( KImagePath8, "imagepath" );
_LIT8( KGridLayout8, "gridlayout" );
-_LIT8( KVarietyZoom8, "variety_zoom" );
_LIT8( KEnabled8, "enabled" );
_LIT8( KRow8, "row" );
_LIT8( KCol8, "col" );
@@ -323,7 +319,7 @@
_LIT8( KLct8, "lct");
_LIT8( KHighlight8, "highlight" );
_LIT8( KNoHighlight8, "nohighlight" );
-_LIT8( KLandscape8, "landscape" );
+_LIT8( KLandscape8, "landscape" );
_LIT8( KMmMoveIndicatorFrame8, "mul_move_indicator_frame" );
_LIT8( KMmMoveIndicatorArrowTop8, "mul_move_indicator_arrow_top" );
@@ -410,7 +406,7 @@
EImageVisualIdSwapMode = 0x00000001,
EImageVisualIdEditMode = 0x00000002
};
-
+
/**
* Defines the type of a template.
*/
--- a/menufw/menufwui/mmwidgets/src/mmdraweranimator.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/menufwui/mmwidgets/src/mmdraweranimator.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -12,7 +12,7 @@
* Contributors:
*
* Description:
-* Version : %version: MM_40 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_41 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -161,7 +161,6 @@
iLastNotedHighlight = highlightedItemIndex;
}
- iDrawer.Widget()->View()->SetDisableRedraw(EFalse);
TInt currentVerticalOffset = static_cast<CMmWidgetContainer*>(
iDrawer.Widget()->Parent() )->VerticalItemOffset();
@@ -191,7 +190,6 @@
}
}
- iDrawer.Widget()->View()->SetDisableRedraw(ETrue);
iLastRedrawTime.HomeTime();
@@ -204,7 +202,6 @@
else
{
Cancel();
- iDrawer.Widget()->View()->SetDisableRedraw( EFalse );
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
if ( iTransTfx && iTransTfxInternal->EffectsDisabled() )
@@ -275,7 +272,6 @@
}
#endif
- iDrawer.Widget()->View()->SetDisableRedraw(ETrue);
iTimer.After(iStatus, TTimeIntervalMicroSeconds32(
MmEffects::KAnimationFrameDelay ) );
SetActive();
--- a/menufw/menufwui/mmwidgets/src/mmgrid.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/menufwui/mmwidgets/src/mmgrid.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -12,7 +12,7 @@
* Contributors:
*
* Description:
-* Version : %version: MM_92 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_94 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -185,7 +185,7 @@
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
-//
+//
void CMmGrid::CreateItemDrawerL()
{
iItemDrawer = iMmDrawer;
@@ -235,7 +235,7 @@
DrawNow();
}
#endif
-
+
}
}
@@ -284,7 +284,7 @@
void CMmGrid::HandlePointerEventInNormalModeL( const TPointerEvent& aPointerEvent )
{
CMmWidgetContainer* parent = static_cast<CMmWidgetContainer*>( Parent() );
- if ( aPointerEvent.iType == TPointerEvent::EButton1Down && !parent->FlipOpen() )
+ if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
{
const TInt KIgnoreRectSize = 40;
TRect ignoreDragRect(aPointerEvent.iPosition,
@@ -317,7 +317,7 @@
View()->ItemDrawer()->SetFlags( CListItemDrawer::EPressedDownState );
CMmWidgetContainer* parent = static_cast<CMmWidgetContainer*>( Parent() );
TBool highlightWasVisible = parent->IsHighlightVisible();
-
+
if( itemUnderPointerIndex == View()->CurrentItemIndex() )
{
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
@@ -339,7 +339,7 @@
#else
View()->DrawItem( itemUnderPointerIndex );
#endif
- }
+ }
else
{
TInt previouslyHighlightedItemIndex = View()->CurrentItemIndex();
@@ -350,7 +350,7 @@
}
}
}
-
+
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
@@ -407,86 +407,87 @@
//
// -----------------------------------------------------------------------------
//
+void CMmGrid::ScrollWithoutRedraw( TInt distanceInPixels )
+ {
+ CAknGridView* view = static_cast<CAknGridView*>( iView );
+ const TInt rowHeight = ItemHeight();
+ const TInt numOfCols = view->NumberOfColsInView();
+ const TInt itemCount = iModel->NumberOfItems();
+ TInt totalNumberOfRows = itemCount / numOfCols;
+ if ( itemCount % numOfCols )
+ {
+ ++totalNumberOfRows;
+ }
+ const TInt topItemRowIndex = TopItemIndex() / numOfCols;
+
+ // desired view position relative to the first item in grid (always positive)
+ TInt desiredViewPosition = rowHeight * topItemRowIndex - VerticalItemOffset();
+
+ desiredViewPosition += distanceInPixels;
+
+ const TInt viewPositionMin = 0;
+ const TInt viewPositionMax =
+ Max( 0, ( totalNumberOfRows * rowHeight ) - view->ViewRect().Height() );
+
+ desiredViewPosition = Min( desiredViewPosition, viewPositionMax );
+ desiredViewPosition = Max( desiredViewPosition, viewPositionMin );
+
+ ASSERT( desiredViewPosition >= 0 );
+
+ TInt newTopItemIndex = ( desiredViewPosition / rowHeight ) * numOfCols;
+ TInt newVerticalOffset = -( desiredViewPosition % rowHeight );
+ SetTopItemIndex( newTopItemIndex );
+ SetVerticalItemOffset( newVerticalOffset );
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
TInt CMmGrid::ScrollIfNeeded( const TPointerEvent& aPointerEvent )
{
CAknGridView* view = static_cast<CAknGridView*>( View() );
TInt nextScrollDelay = 0;
- TBool readyForScrolling = iMmDrawer->GetAnimator()->IsReadyForNewAnimation()
+ TBool readyForScrolling = iMmDrawer->GetAnimator()->IsReadyForNewAnimation()
&& iMmDrawer->GetFloatingItemCount() != 0;
-
+
if ( IsPointerInTopScrollingThreshold( aPointerEvent ) )
{
// scroll up by one row
- TInt newCurrentItemIndex = CurrentItemIndex() - view->NumberOfColsInView();
+ TInt newCurrentItemIndex = CurrentItemIndex() - view->NumberOfColsInView();
if ( newCurrentItemIndex < 0 )
{
newCurrentItemIndex = CurrentItemIndex();
}
- if ( !View()->ItemIsVisible( 0 ) )
- {
- nextScrollDelay = MmEffects::KEditModeScrollingDelayFactor *
- Max( 1, aPointerEvent.iPosition.iY - Rect().iTl.iY );
-
- if ( readyForScrolling )
- {
- TRAP_IGNORE( HandlePhysicsScrollEventL( -iItemHeight ) );
- View()->SetCurrentItemIndex( newCurrentItemIndex );
- }
- }
- else
- {
- if ( readyForScrolling )
- {
- TBool redrawDisabledBefore = View()->RedrawDisabled();
- View()->SetDisableRedraw( EFalse );
- CMmWidgetContainer* parent = static_cast<CMmWidgetContainer*>( Parent() );
- parent->ResetWidgetPosition();
- DrawNow();
- View()->SetDisableRedraw( redrawDisabledBefore );
- }
- }
+ nextScrollDelay = MmEffects::KEditModeScrollingDelayFactor *
+ Max( 1, aPointerEvent.iPosition.iY - Rect().iTl.iY );
+
+ if ( readyForScrolling )
+ {
+ ScrollWithoutRedraw( -iItemHeight );
+ View()->SetCurrentItemIndex( newCurrentItemIndex );
+ }
}
else if ( IsPointerInBottomScrollingThreshold( aPointerEvent) )
{
- // scroll down by one row
- TInt lastItemIndex = iModel->NumberOfItems() - 1;
-
- // maximum top item index that can be set (greater top item index value would
- // cause an empty row at the bottom of the menu)
- TInt maxTopItemIndex = View()->CalcNewTopItemIndexSoItemIsVisible( lastItemIndex );
- TInt currentItemIndex = CurrentItemIndex();
- TInt newCurrentItemIndex = currentItemIndex + view->NumberOfColsInView();
- TInt distanceToScroll( iItemHeight );
- if ( View()->ItemIsVisible( lastItemIndex ) )
+ TInt newCurrentItemIndex = CurrentItemIndex() + view->NumberOfColsInView();
+ if ( newCurrentItemIndex > iModel->NumberOfItems() - 1 )
{
- TPoint lastItemPos( View()->ItemPos( lastItemIndex ) );
- distanceToScroll = iItemHeight - ( Rect().iBr.iY - lastItemPos.iY )
- + Rect().Height() - iViewLayout.iHeight * iItemHeight;
+ newCurrentItemIndex = CurrentItemIndex();
}
-
- if ( newCurrentItemIndex <= lastItemIndex )
+
+ nextScrollDelay = MmEffects::KEditModeScrollingDelayFactor *
+ Max( 1, Rect().iBr.iY - aPointerEvent.iPosition.iY );
+
+ if ( readyForScrolling )
{
- nextScrollDelay = MmEffects::KEditModeScrollingDelayFactor *
- Max( 1, Rect().iBr.iY - aPointerEvent.iPosition.iY );
-
- if ( readyForScrolling )
- {
- TRAP_IGNORE( HandlePhysicsScrollEventL( distanceToScroll ) );
- View()->SetCurrentItemIndex( newCurrentItemIndex );
- }
- }
- else if ( TopItemIndex() < maxTopItemIndex )
- {
- if ( readyForScrolling )
- {
- TRAP_IGNORE( HandlePhysicsScrollEventL( distanceToScroll ) );
- View()->SetCurrentItemIndex( currentItemIndex );
- }
+ ScrollWithoutRedraw( iItemHeight );
+ View()->SetCurrentItemIndex( newCurrentItemIndex );
}
}
-
+
return nextScrollDelay;
}
@@ -687,7 +688,7 @@
{
CAknGrid::HandleViewRectSizeChangeL();
}
- else
+ else
{
// for mirrored layout this function should do
// exactly the same things as CAknGrid::HandleViewRectSizeChangeL
@@ -713,16 +714,16 @@
const TInt numOfCols = view->NumberOfColsInView();
const TInt numOfRows = view->NumberOfRowsInView();
const TInt itemCount = iModel->NumberOfItems();
-
+
ASSERT( numOfCols > 0 );
-
+
TInt lastRow = 0;
if ( itemCount > 0 )
{
lastRow = ( itemCount - 1 ) / numOfCols;
}
TInt maxPossibleTopRow = Max( 0, lastRow - numOfRows + 1 );
-
+
TInt topRow = TopItemIndex() / numOfCols;
if ( !( TopItemIndex() % numOfCols == 0 &&
--- a/menufw/menufwui/mmwidgets/src/mmgridcontainer.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/menufwui/mmwidgets/src/mmgridcontainer.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -11,9 +11,9 @@
*
* Contributors:
*
-* Description:
-* Version : %version: MM_72 % << Don't touch! Updated by Synergy at check-out.
-* Version : %version: MM_72 % << Don't touch! Updated by Synergy at check-out.
+* Description:
+* Version : %version: MM_73 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_73 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -39,9 +39,9 @@
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
-CMmGridContainer* CMmGridContainer::NewLC( const TRect& aRect,
+CMmGridContainer* CMmGridContainer::NewLC( const TRect& aRect,
MObjectProvider* aObjectProvider, CMmTemplateLibrary* aLibrary )
- {
+ {
CMmGridContainer* self = new( ELeave ) CMmGridContainer();
CleanupStack::PushL( self );
self->ConstructL( aRect, aObjectProvider, aLibrary );
@@ -53,9 +53,9 @@
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
-CMmGridContainer* CMmGridContainer::NewL( const TRect& aRect,
+CMmGridContainer* CMmGridContainer::NewL( const TRect& aRect,
MObjectProvider* aObjectProvider, CMmTemplateLibrary* aLibrary )
- {
+ {
CMmGridContainer* self = NewLC( aRect, aObjectProvider, aLibrary);
CleanupStack::Pop( self );
return self;
@@ -71,11 +71,11 @@
}
// -----------------------------------------------------------------------------
-//
+//
// -----------------------------------------------------------------------------
//
CAknGrid* CMmGridContainer::Grid()
- {
+ {
return iGrid;
}
// -----------------------------------------------------------------------------
@@ -84,14 +84,14 @@
// -----------------------------------------------------------------------------
//
CMmGridContainer::~CMmGridContainer()
- {
+ {
delete iGrid;
}
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
-//
+//
THnSuiteWidgetType CMmGridContainer::WidgetType()
{
return EGridWidget;
@@ -100,27 +100,27 @@
// CMmGridContainer::ConstructL()
// 2nd phase constructor
// -----------------------------------------------------------------------------
-//
+//
void CMmGridContainer::ConstructL( const TRect& aRect, MObjectProvider* aObjectProvider,
CMmTemplateLibrary* aTemplateLibrary )
{
CMmWidgetContainer::ConstructL();
-
+
SetMopParent( aObjectProvider );
- CreateWindowL(); // Creates window.
+ CreateWindowL(); // Creates window.
iWidget = CreateGridL(aTemplateLibrary);
iWidget->SetListBoxObserver( this );
SetRect( aRect ); // Sets rectangle of frame.
- ActivateL(); // Activates window. ( Ready to draw )
+ ActivateL(); // Activates window. ( Ready to draw )
SetupDrawer();
- SetHighlightVisibilityL( !AknLayoutUtils::PenEnabled() );
+ SetHighlightVisibilityL( !AknLayoutUtils::PenEnabled() );
iPostProcessor = CMmPostEvaluationProcessor::NewL( *iDrawer );
}
// -----------------------------------------------------------------------------
// CMmGridContainer::CreateGridL()
// Constructs listbox from resource, creates scroll bar and sets empty
-// list background text.
+// list background text.
// -----------------------------------------------------------------------------
//
CMmGrid* CMmGridContainer::CreateGridL( CMmTemplateLibrary* aTemplateLibrary )
@@ -133,7 +133,7 @@
CAknGridView::EScrollFollowsItemsAndLoops );
iGrid->SetSecondaryScrollingType(
CAknGridView::EScrollFollowsGrid );
- iGrid->ScrollBarFrame()->SetScrollBarVisibilityL(
+ iGrid->ScrollBarFrame()->SetScrollBarVisibilityL(
CEikScrollBarFrame::EAuto, CEikScrollBarFrame::EAuto );
iGrid->ScrollBarFrame()->DrawBackground( EFalse, EFalse );
return iGrid;
@@ -142,7 +142,7 @@
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
-//
+//
void CMmGridContainer::SizeChanged()
{
CMmWidgetContainer::SizeChanged();
@@ -171,12 +171,12 @@
CAknGridView::EScrollFollowsItemsAndLoops );
iGrid->SetSecondaryScrollingType(
CAknGridView::EScrollFollowsGrid );
-
+
}
-
+
// In EditMode we allow Avkon to redraw scrollbar background
// to prevent scrollbar flicking.
- // When edit mode is disabled, this redrawing causes performance problems
+ // When edit mode is disabled, this redrawing causes performance problems
// (and disabling it does not produce erroneous side-effects).
if( aIsEditMode )
{
@@ -186,7 +186,7 @@
{
iGrid->ScrollBarFrame()->DrawBackground( EFalse, EFalse );
}
-
+
CMmWidgetContainer::SetEditModeL( aIsEditMode );
}
@@ -196,7 +196,7 @@
//
EXPORT_C void CMmGridContainer::SetEmptyTextL(const TDesC& aText)
{
- iGrid->SetEmptyGridTextL( aText );
+ iGrid->SetEmptyGridTextL( aText );
}
// -----------------------------------------------------------------------------
@@ -204,26 +204,9 @@
// -----------------------------------------------------------------------------
//
EXPORT_C void CMmGridContainer::SetDefaultHighlightL( TBool aRedraw )
- {
- CAknGridView* view = (CAknGridView*) iGrid->View();
-
- if ( view )
- {
- TInt defaultHighlight( 0 );
- TSize layout = TSize( view->NumberOfColsInView(),
- view->NumberOfRowsInView() );
-
- if ( Layout_Meta_Data::IsLandscapeOrientation() || FlipOpen() )
- {
- defaultHighlight = LandscapeOrientationDefaultHighlight( layout );
- }
- else
- {
- defaultHighlight = PortraitOrientationDefaultHighlight( layout );
- }
-
- SetManualHighlightL( defaultHighlight + DefaultHighlightOffset(), aRedraw );
- }
+ {
+ TInt defaultHighlight( 0 );
+ SetManualHighlightL( defaultHighlight + DefaultHighlightOffset(), aRedraw );
}
// -----------------------------------------------------------------------------
@@ -231,79 +214,17 @@
//
// -----------------------------------------------------------------------------
//
-TInt CMmGridContainer::LandscapeOrientationDefaultHighlight( TSize aLayout )
- {
- TInt defaultHighlight( 0 );
-
- if ( aLayout == TSize(MmGrid::K4By3LayoutX, MmGrid::K4By3LayoutY)
- && iGrid->Model()->NumberOfItems() >= MmGrid::K4By3Threshold )
- {
- defaultHighlight = MmGrid::K4By3DefaultHighlight;
- }
- else if ( aLayout == TSize(MmGrid::K5By4LayoutX, MmGrid::K5By4LayoutY)
- && iGrid->Model()->NumberOfItems() >= MmGrid::K5By4Threshold )
- {
- defaultHighlight = MmGrid::K5By4DefaultHighlight;
- }
- // When flip is opened, the phone layout is not changed immediately,
- // so the phone might still be in portrait mode for a couple of secs.
- // However, we have to set the correct default item immediately, and
- // the correct item is the one for landscape mode, even if the phone
- // is still in portrait mode. On variant switch 3x4 layout will be
- // replaced by 4x3 layout, while 4x5 layout will change into 5x4.
- else if ( aLayout == TSize( MmGrid::K3By4LayoutX, MmGrid::K3By4LayoutY )
- && iGrid->Model()->NumberOfItems() >= MmGrid::K4By3Threshold )
- {
- defaultHighlight = MmGrid::K4By3DefaultHighlight;
- }
- else if ( aLayout == TSize( MmGrid::K4By5LayoutX, MmGrid::K4By5LayoutY )
- && iGrid->Model()->NumberOfItems() >= MmGrid::K5By4Threshold )
- {
- defaultHighlight = MmGrid::K5By4DefaultHighlight;
- }
-
- return defaultHighlight;
- }
-
-// -----------------------------------------------------------------------------
-//
-//
-// -----------------------------------------------------------------------------
-//
-TInt CMmGridContainer::PortraitOrientationDefaultHighlight( TSize aLayout )
- {
- TInt defaultHighlight( 0 );
-
- if ( aLayout == TSize(MmGrid::K4By5LayoutX, MmGrid::K4By5LayoutY )
- && iGrid->Model()->NumberOfItems() >= MmGrid::K4By5Threshold )
- {
- defaultHighlight = MmGrid::K4By5DefaultHighlight;
- }
- else if ( aLayout == TSize(MmGrid::K3By4LayoutX, MmGrid::K3By4LayoutY)
- && iGrid->Model()->NumberOfItems() >= MmGrid::K3By4Threshold )
- {
- defaultHighlight = MmGrid::K3By4DefaultHighlight;
- }
-
- return defaultHighlight;
- }
-
-// -----------------------------------------------------------------------------
-//
-//
-// -----------------------------------------------------------------------------
-//
TInt CMmGridContainer::DefaultHighlightOffset()
{
TInt topVisibleItemIndex = iGrid->View()->TopItemIndex();
TInt hiddenPixels = -iGrid->View()->ItemOffsetInPixels();
-
- if ( iGrid->View()->ItemIsPartiallyVisible( topVisibleItemIndex )
+
+ if ( iGrid->View()->ItemIsPartiallyVisible( topVisibleItemIndex )
&& hiddenPixels > iGrid->View()->ItemSize().iHeight / 2 )
{
topVisibleItemIndex += ColumnsInCurrentView();
}
-
+
return topVisibleItemIndex;
}
@@ -357,12 +278,12 @@
// -----------------------------------------------------------------------------
//
void CMmGridContainer::SetHighlightVisibilityL( TBool aVisible )
- {
+ {
CMmWidgetContainer::SetHighlightVisibilityL( aVisible );
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
void CMmGridContainer::HandleItemAdditionL()
@@ -372,12 +293,12 @@
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
void CMmGridContainer::HandleItemRemovalL()
{
-
+
GetMmModel()->HandleSuiteEventL( ESuiteItemsRemoved, GetMmModel()->GetSuiteModel() );
ValidateWidgetCurrentItemIndex();
iDrawer->RemoveFloatingItems();
@@ -385,12 +306,12 @@
{
iDrawer->GetAnimator()->SetNextRedrawToWholeScreen();
}
-
+
CacheWidgetPosition();
iGrid->HandleItemRemovalL();
RestoreWidgetPosition();
CacheWidgetPosition();
-
+
if ( iCurrentHighlight != iGrid->CurrentItemIndex() )
{
iCurrentHighlight = iGrid->CurrentItemIndex();
@@ -409,40 +330,7 @@
}
// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
//
-void CMmGridContainer::FlipStateChangedL()
- {
-// if ( !IsEditMode() )
-// {
-// if ( FlipOpen() )
-// {
-// if ( iTimer )
-// {
-// delete iTimer;
-// iTimer = NULL;
-// }
-// SetHighlightVisibilityL( ETrue );
-// if ( iCurrentHighlight == KErrNotFound )
-// {
-// SetDefaultHighlightL( ETrue );
-// }
-// }
-// else
-// {
-// if ( AknLayoutUtils::PenEnabled() && !iTimer )
-// {
-// iTimer = CMmHighlightTimer::NewL( this );
-// }
-// SetHighlightVisibilityL( EFalse );
-// DrawNow();
-// }
-// }
- }
-
-// ---------------------------------------------------------------------------
-//
// ---------------------------------------------------------------------------
//
TInt CMmGridContainer::ColumnsInCurrentView()
@@ -451,7 +339,7 @@
return view->NumberOfColsInView();
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
TInt CMmGridContainer::RowsInCurrentView()
@@ -461,7 +349,7 @@
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
void CMmGridContainer::DrawView()
@@ -502,7 +390,7 @@
//
TBool CMmGridContainer::ItemIsVisible( TInt aItemIndex ) const
{
- CListBoxView* v = iGrid->View();
+ CListBoxView* v = iGrid->View();
TRect itemRect( v->ItemPos( aItemIndex ), v->ItemSize( aItemIndex ) );
TRect viewRect = v->ViewRect();
TBool isVisible = EFalse;
--- a/menufw/menufwui/mmwidgets/src/mmlctutils.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/menufwui/mmwidgets/src/mmlctutils.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -26,11 +26,11 @@
#include <AknLayoutFont.h>
#include <AknDef.hrh>
-
+
// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
-//
+//
TAknWindowComponentLayout MmLCTUtils::ItemLayout( const TDesC8& aLayout, TInt aVariety )
{
if ( !aLayout.Compare(KListSingleLargeGraphicPane8))
@@ -79,7 +79,7 @@
// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
-//
+//
TAknTextComponentLayout MmLCTUtils::TextLayout( const TDesC8& aLayout, TInt aVariety )
{
if ( aLayout.Compare(KUiaccelAalistSinglePaneT18) == 0 )
@@ -105,7 +105,7 @@
else if ( aLayout.Compare(KlistSingleLargeGraphicPaneT18) == 0 )
{
return AknLayoutScalable_Avkon::list_single_large_graphic_pane_t1(aVariety);
- }
+ }
else if ( aLayout.Compare(KUiaccelAagridCellImagePaneT18) == 0 )
{
return AknLayoutScalable_UiAccel::aagrid_cell_image_pane_t1(aVariety);
@@ -154,7 +154,7 @@
else if ( aLayout.Compare(KUiaccelAalistDoubleGraphicPaneG38) == 0 )
{
return AknLayoutScalable_UiAccel::aalist_double_graphic_pane_g3(aVariety);
- }
+ }
else if ( aLayout.Compare(KUiaccelAalistDoublePaneG18) == 0 )
{
return AknLayoutScalable_UiAccel::aalist_double_pane_g1(aVariety);
@@ -162,7 +162,7 @@
else if ( aLayout.Compare(KUiaccelAalistDoublePaneG28) == 0 )
{
return AknLayoutScalable_UiAccel::aalist_double_pane_g2(aVariety);
- }
+ }
else if ( aLayout.Compare(KlistSingleLargeGraphicPane8) == 0 )
{
return AknLayoutScalable_Avkon::list_single_large_graphic_pane(aVariety, 0,0);
@@ -174,15 +174,15 @@
else if ( aLayout.Compare(KlistSingleLargeGraphicPaneG2Cp28) == 0 )
{
return AknLayoutScalable_Avkon::list_single_large_graphic_pane_g2_cp2(aVariety);
- }
+ }
else if ( aLayout.Compare(KlistSingleLargeGraphicPaneG4Cp28) == 0 )
{
return AknLayoutScalable_Avkon::list_single_large_graphic_pane_g4_cp2(aVariety);
- }
+ }
else if ( aLayout.Compare(KUiaccelAagridCellImagePaneG18) == 0 )
{
return AknLayoutScalable_UiAccel::aagrid_cell_image_pane_g1(aVariety);
- }
+ }
else if ( aLayout.Compare(KUiaccelAagridCellImagePaneG28) == 0 )
{
return AknLayoutScalable_UiAccel::aagrid_cell_image_pane_g2(aVariety);
@@ -251,8 +251,8 @@
{
User::Panic(KMLID, -1);
}
- return TAknWindowComponentLayout();
- }
+ return TAknWindowComponentLayout();
+ }
// ---------------------------------------------------------------------------
//
@@ -278,10 +278,10 @@
//
// ---------------------------------------------------------------------------
//
-void MmLCTUtils::SetupTextSubCellTemplate( TSize aItemSize,
+void MmLCTUtils::SetupTextSubCellTemplate( TSize aItemSize,
TTemplateChild& aSubCellTemplate )
{
- TAknTextComponentLayout textLayout = TextLayout( aSubCellTemplate.iLct, aSubCellTemplate.iVariety);
+ TAknTextComponentLayout textLayout = TextLayout( aSubCellTemplate.iLct, aSubCellTemplate.iVariety);
TAknTextLineLayout textlineLayout = textLayout.LayoutLine();
TAknLayoutText t;
t.LayoutText( aItemSize, textlineLayout );
@@ -295,12 +295,12 @@
//
// ---------------------------------------------------------------------------
//
-void MmLCTUtils::SetupGraphicSubCellTemplate( TSize aItemSize,
+void MmLCTUtils::SetupGraphicSubCellTemplate( TSize aItemSize,
TTemplateChild& aSubCellTemplate )
{
TAknWindowComponentLayout graphicLayout = GraphicLayout (
aSubCellTemplate.iLct, aSubCellTemplate.iVariety);
- TAknLayoutRect r;
+ TAknLayoutRect r;
r.LayoutRect( aItemSize, graphicLayout.LayoutLine() );
aSubCellTemplate.iTextAlign = CGraphicsContext::ECenter ;
aSubCellTemplate.iRectAccordingToParent = r.Rect();
@@ -331,11 +331,6 @@
TInt rows(0);
cols = MmLCTUtils::LCTParameterLimits( aLCTTemplate, aVariety ).LastColumn() + 1;
rows = MmLCTUtils::LCTParameterLimits( aLCTTemplate, aVariety ).LastRow() + 1;
- if ( aLCTTemplate.Compare(KCellAppPane8) == 0 && aVariety == 3 )
- {
- cols = 6;
- rows = 2;
- }
return TSize( cols, rows);
}
--- a/menufw/menufwui/mmwidgets/src/mmtemplatelibrary.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/menufwui/mmwidgets/src/mmtemplatelibrary.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description:
+* Description:
*
*/
@@ -31,7 +31,7 @@
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
TUint32 HBuf16Hash( HBufC8* const & aBuf )
@@ -51,9 +51,9 @@
//
// ---------------------------------------------------------------------------
//:
-CMmTemplateLibrary::CMmTemplateLibrary()
+CMmTemplateLibrary::CMmTemplateLibrary()
: iWidgetType(EWidgetTypeNone),
- iTemplateSizesMap( &HBuf16Hash, &HBuf16Ident ),
+ iTemplateSizesMap( &HBuf16Hash, &HBuf16Ident ),
iTemplateChildrenMap( &HBuf16Hash, &HBuf16Ident ),
iMoveIndicatorRectsMap( &HBuf16Hash, &HBuf16Ident )
{
@@ -76,26 +76,26 @@
THashMapIter<HBufC8*, TSize> iter( iTemplateSizesMap );
while ( HBufC8* const * ptr = iter.NextKey() )
- {
+ {
delete *ptr;
- }
+ }
iTemplateSizesMap.Close();
THashMapIter<HBufC8*, RArray<TTemplateChild> > iter2( iTemplateChildrenMap );
while ( HBufC8* const * ptr = iter2.NextKey() )
- {
+ {
iter2.CurrentValue()->Close();
delete *ptr;
- }
+ }
iTemplateChildrenMap.Close();
-
+
THashMapIter<HBufC8*, TRect> iter4( iMoveIndicatorRectsMap );
while ( HBufC8* const * ptr = iter4.NextKey() )
- {
+ {
delete *ptr;
- }
+ }
iMoveIndicatorRectsMap.Close();
-
+
}
// ---------------------------------------------------------------------------
@@ -120,7 +120,7 @@
self->ConstructL();
return self;
}
-
+
// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
@@ -134,21 +134,21 @@
//
// ---------------------------------------------------------------------------
//
-TSize CMmTemplateLibrary::GetSize( TMmWidgetType aWidgetType, const TDesC8& aTemplate,
+TSize CMmTemplateLibrary::GetSize( TMmWidgetType aWidgetType, const TDesC8& aTemplate,
TBool aLandscapeOrientation, TBool aHighlighted, TRect aParentRect )
{
TSize result;
- GetSize(result, aWidgetType, aTemplate, aLandscapeOrientation,
+ GetSize(result, aWidgetType, aTemplate, aLandscapeOrientation,
aHighlighted, aParentRect );
- return result;
+ return result;
}
// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
//
-TInt CMmTemplateLibrary::GetSize( TSize& aItemSize,
- TMmWidgetType aWidgetType, const TDesC8& aTemplate,
+TInt CMmTemplateLibrary::GetSize( TSize& aItemSize,
+ TMmWidgetType aWidgetType, const TDesC8& aTemplate,
TBool aLandscapeOrientation, TBool aHighlighted, TRect aParentRect )
{
if ( KNullDesC8()== aTemplate || aParentRect == TRect(TPoint(0,0), TPoint(0,0))
@@ -159,9 +159,9 @@
UpdateParentRect( aParentRect, aLandscapeOrientation );
TInt err( KErrNone );
- HBufC8* lookup_string = LookupText( aTemplate, aWidgetType, iZoom,
- aLandscapeOrientation, aHighlighted );
-
+ HBufC8* lookup_string = LookupText( aTemplate, aWidgetType,
+ aLandscapeOrientation, aHighlighted );
+
TSize* itemSize = iTemplateSizesMap.Find( lookup_string );
if ( !itemSize )
{
@@ -181,7 +181,7 @@
iWidgetType = aWidgetType;
TSize layoutSize;
TInt err( KErrNone );
- TRAP( err, layoutSize = GetLayoutSizeL( iWidgetType, aTemplate,
+ TRAP( err, layoutSize = GetLayoutSizeL( iWidgetType, aTemplate,
aLandscapeOrientation ) );
if( err == KErrNone )
{
@@ -190,7 +190,7 @@
aItemSize = *itemSize;
}
delete lookup_string;
-
+
return err;
}
@@ -198,7 +198,7 @@
//
// ---------------------------------------------------------------------------
//
-TSize CMmTemplateLibrary::GetLayoutSizeL( TMmWidgetType aWidgetType, const TDesC8& aTemplate,
+TSize CMmTemplateLibrary::GetLayoutSizeL( TMmWidgetType aWidgetType, const TDesC8& aTemplate,
TBool aLandscapeOrientation )
{
if ( KNullDesC8()== aTemplate )
@@ -210,7 +210,7 @@
{
case EGrid:
{
- HBufC8* lookup_string = LookupLayoutText( aWidgetType, iZoom,
+ HBufC8* lookup_string = LookupLayoutText( aWidgetType,
aTemplate, aLandscapeOrientation );
CleanupStack::PushL( lookup_string );
layoutSize = iTemplateSizesMap.Find( lookup_string );
@@ -223,7 +223,7 @@
}
CleanupStack::PopAndDestroy( lookup_string );
}
-
+
break;
case EListbox:
return TSize( MmListBox::KCols,0 );
@@ -242,10 +242,10 @@
TBool aHighlighted)
{
ASSERT( KNullDesC8() != aTemplate && aTemplate.Compare( KEmpty8 ) );
-
- HBufC8* lookup_string = LookupText(aTemplate, aWidgetType, iZoom,
+
+ HBufC8* lookup_string = LookupText(aTemplate, aWidgetType,
aLandscapeOrientation, aHighlighted );
- HBufC8* lookup_indicator_string = LookupIndicatorText( *lookup_string );
+ HBufC8* lookup_indicator_string = LookupIndicatorText( *lookup_string );
TRect* itemRect = iMoveIndicatorRectsMap.Find( lookup_indicator_string );
if (!itemRect)
@@ -263,7 +263,7 @@
}
}
}
-
+
delete lookup_indicator_string;
delete lookup_string;
return *itemRect;
@@ -279,7 +279,7 @@
{
ASSERT( KNullDesC8() != aTemplate && aTemplate.Compare( KEmpty8 ) );
- HBufC8* lookup_string = LookupText( aTemplate, aWidgetType, iZoom,
+ HBufC8* lookup_string = LookupText( aTemplate, aWidgetType,
aLandscapeOrientation, aHighlighted );
CleanupStack::PushL( lookup_string );
RArray<TTemplateChild>* children = iTemplateChildrenMap.Find( lookup_string );
@@ -289,8 +289,8 @@
children = iTemplateChildrenMap.Find( lookup_string );
if (!children)
{
- User::Panic( KMtlPanic, -1);
- }
+ User::Panic( KMtlPanic, -1);
+ }
}
CleanupStack::PopAndDestroy( lookup_string );
for (TInt i = 0; i < children->Count(); i++)
@@ -311,27 +311,27 @@
TBool aLandscapeOrientation, TBool aHighlighted)
{
ASSERT( KNullDesC8() != aTemplate && aTemplate.Compare( KEmpty8 ) );
-
- HBufC8* lookup_string = LookupText(aTemplate, aWidgetType, iZoom,
+
+ HBufC8* lookup_string = LookupText(aTemplate, aWidgetType,
aLandscapeOrientation, aHighlighted );
CleanupStack::PushL( lookup_string );
- HBufC8* lookup_indicator_string = LookupIndicatorText( *lookup_string );
+ HBufC8* lookup_indicator_string = LookupIndicatorText( *lookup_string );
CleanupStack::PushL( lookup_indicator_string );
-
+
RArray<TTemplateChild>* children = iTemplateChildrenMap.Find( lookup_indicator_string );
if ( !children )
{
TSize itemSize;
- GetSize( itemSize, aWidgetType, aTemplate, aLandscapeOrientation, EFalse, GetParentRect( aLandscapeOrientation ) );
+ GetSize( itemSize, aWidgetType, aTemplate, aLandscapeOrientation, EFalse, GetParentRect( aLandscapeOrientation ) );
SetupMoveIndicatorTemplateChildrenL( *lookup_indicator_string, itemSize );
children = iTemplateChildrenMap.Find( lookup_indicator_string );
if (!children)
User::Panic( KMtlPanic, -1);
}
-
+
CleanupStack::PopAndDestroy( lookup_indicator_string );
CleanupStack::PopAndDestroy( lookup_string );
-
+
for (TInt i = 0; i < children->Count(); i++)
{
aArray.AppendL((*children)[i]);
@@ -342,9 +342,8 @@
//
// ---------------------------------------------------------------------------
//
-HBufC8* CMmTemplateLibrary::LookupText( const TDesC8& aTemplate,
- TMmWidgetType aWidgetType, TAknUiZoom aZoom, TBool aLandscapeOrientation,
- TBool aHighlighted )
+HBufC8* CMmTemplateLibrary::LookupText( const TDesC8& aTemplate,
+ TMmWidgetType aWidgetType, TBool aLandscapeOrientation, TBool aHighlighted )
{
HBufC8* lookup_string = HBufC8::New( MmTemplateContants::KTemplateChildTextLength );
if (lookup_string)
@@ -366,18 +365,6 @@
lookup_string_ptr.Append( KColon8 );
lookup_string_ptr.AppendNum( aHighlighted );
lookup_string_ptr.Append( KColon8 );
- switch ( aZoom )
- {
- case EAknUiZoomLarge :
- lookup_string_ptr.Append( KZoomLarge8 );
- break;
- case EAknUiZoomSmall :
- lookup_string_ptr.Append( KZoomSmall8 );
- break;
- default :
- lookup_string_ptr.Append( KZoomNormal8 );
- break;
- }
}
return lookup_string;
}
@@ -385,9 +372,9 @@
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
-//
+//
HBufC8* CMmTemplateLibrary::LookupLayoutText( TMmWidgetType aWidgetType,
- TAknUiZoom aZoom, const TDesC8& aTemplate, TBool aLandscapeOrientation )
+ const TDesC8& aTemplate, TBool aLandscapeOrientation )
{
HBufC8* lookup_string = HBufC8::New( MmTemplateContants::KTemplateChildTextLength );
if (lookup_string)
@@ -403,18 +390,6 @@
break;
}
lookup_string_ptr.Append( KColon8 );
- switch ( aZoom )
- {
- case EAknUiZoomLarge:
- lookup_string_ptr.Append( KZoomLarge8 );
- break;
- case EAknUiZoomSmall :
- lookup_string_ptr.Append( KZoomSmall8 );
- break;
- default:
- lookup_string_ptr.Append( KZoomNormal8 );
- break;
- }
lookup_string_ptr.Append( KColon8 );
lookup_string_ptr.Append( aTemplate );
lookup_string_ptr.Append( KColon8 );
@@ -426,7 +401,7 @@
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
-//
+//
HBufC8* CMmTemplateLibrary::LookupIndicatorText( const TDesC8& aLookupText )
{
HBufC8* lookup_string = HBufC8::New( MmTemplateContants::KTemplateChildTextLength );
@@ -437,25 +412,25 @@
lookup_string_ptr.Append( KColon8 );
lookup_string_ptr.Append( aLookupText );
}
-
+
return lookup_string;
}
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
-//
-void CMmTemplateLibrary::LoadTemplateL( TMmWidgetType aWidgetType,
+//
+void CMmTemplateLibrary::LoadTemplateL( TMmWidgetType aWidgetType,
const TDesC8& aTemplate, TBool aLandscapeOrientation )
{
iWidgetType = aWidgetType;
- DEBUG(("_Mm_:CMmTemplateLibrary::LoadTemplateL IN"));
+ DEBUG(("_Mm_:CMmTemplateLibrary::LoadTemplateL IN"));
TMmTemplateType mmTemplateType;
HBufC8* content = GetTemplateContentL( aTemplate, aWidgetType, mmTemplateType );
CleanupStack::PushL( content );
RXmlEngDOMImplementation domImpl;
CleanupClosePushL( domImpl );
- RXmlEngDOMParser domParser;
+ RXmlEngDOMParser domParser;
CleanupClosePushL( domParser );
DEBUG(("_Mm_:CMmTemplateLibrary::LoadTemplateL Opening domImpl"));
domImpl.OpenL();
@@ -463,7 +438,7 @@
DEBUG(("_Mm_:CMmTemplateLibrary::LoadTemplateL parsing content..."));
RXmlEngDocument xmlDoc = domParser.ParseL( *content );
CleanupClosePushL( xmlDoc );
-
+
// first orientation
RXmlEngNodeList<TXmlEngElement> orientElements;
CleanupClosePushL( orientElements );
@@ -490,7 +465,7 @@
TXmlEngElement element;
while ( elements.HasNext() )
{
- element = elements.Next();
+ element = elements.Next();
DEBUG(("_Mm_:iMmTemplateType != EMmTemplateMoveIndicator"));
if (element.AttributeValueL(KId8) == KHighlight8)
{
@@ -514,22 +489,22 @@
CleanupStack::PopAndDestroy( &elements );
}
}
-
+
CleanupStack::PopAndDestroy( &orientElements );
CleanupStack::PopAndDestroy( &xmlDoc );
CleanupStack::PopAndDestroy( &domParser );
CleanupStack::PopAndDestroy( &domImpl );
CleanupStack::PopAndDestroy(content);
- DEBUG(("_Mm_:CMmTemplateLibrary::LoadTemplateL OUT"));
+ DEBUG(("_Mm_:CMmTemplateLibrary::LoadTemplateL OUT"));
}
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
-//
-void CMmTemplateLibrary::ProcessElementL(TMmTemplateType aMmTemplateType,
- TXmlEngElement aElement,
- const TDesC8& aTemplate,
+//
+void CMmTemplateLibrary::ProcessElementL(TMmTemplateType aMmTemplateType,
+ TXmlEngElement aElement,
+ const TDesC8& aTemplate,
TBool aLandscapeOrientation,
TBool aHighlighted )
{
@@ -548,8 +523,8 @@
//
// -----------------------------------------------------------------------------
//
-void CMmTemplateLibrary::ProcessLCTTemplateElementL(TXmlEngElement aElement,
- const TDesC8& aTemplate,
+void CMmTemplateLibrary::ProcessLCTTemplateElementL(TXmlEngElement aElement,
+ const TDesC8& aTemplate,
TBool aLandscapeOrientation,
TBool aHighlighted )
{
@@ -565,18 +540,11 @@
if ( !layoutElement.Name().Compare( KLayout8 ) )
{
TPtrC8 lctAtt = layoutElement.AttributeValueL(KLct8);
-
+
// set layout for grid
TInt variety;
- if ( Zoom() == EAknUiZoomLarge && iWidgetType == EGrid)
- {
- HnConvUtils::Str8ToInt(layoutElement.AttributeValueL(KVarietyZoom8), variety);
- }
- else
- {
- HnConvUtils::Str8ToInt(layoutElement.AttributeValueL(KVariety8), variety);
- }
-
+ HnConvUtils::Str8ToInt(layoutElement.AttributeValueL(KVariety8), variety);
+
TSize layoutSize;
if ( iWidgetType == EGrid )
{
@@ -590,12 +558,12 @@
TAknWindowLineLayout layout;
TSize itemSize = GetLCTSize( lctAtt, variety, layout, aLandscapeOrientation );
-
+
AdjustItemSize( itemSize, layoutSize, aLandscapeOrientation );
- HBufC8* lookup_string = LookupText( aTemplate, iWidgetType, iZoom,
+ HBufC8* lookup_string = LookupText( aTemplate, iWidgetType,
aLandscapeOrientation, aHighlighted );
iTemplateSizesMap.InsertL( lookup_string, itemSize );
-
+
// setup children
RArray< TTemplateChild > childrenDefinition;
CleanupClosePushL( childrenDefinition );
@@ -607,20 +575,13 @@
{
childElement = childrenElements.Next();
TPtrC8 name = childElement.Name();
- if ( !name.Compare( KTextVisual8 ) ||
+ if ( !name.Compare( KTextVisual8 ) ||
!name.Compare( KImageVisual8 ) )
- {
+ {
TTemplateChild childTemplate;
childTemplate.iLct = childElement.AttributeValueL(KLct8);
TInt variety;
- if ( Zoom() != EAknUiZoomNormal && iWidgetType == EGrid )
- {
- HnConvUtils::Str8ToInt(childElement.AttributeValueL(KVarietyZoom8), variety);
- }
- else
- {
- HnConvUtils::Str8ToInt(childElement.AttributeValueL(KVariety8), variety);
- }
+ HnConvUtils::Str8ToInt(childElement.AttributeValueL(KVariety8), variety);
childTemplate.iVariety = variety;
TPtrC8 ptr = childElement.AttributeValueL(KHAlign8);
@@ -640,17 +601,17 @@
{
childTemplate.iHAlign = EManualAlignRight;
}
-
+
SetupLCTTemplateL( childTemplate, childElement, itemSize );
childrenDefinition.AppendL( childTemplate );
}
}
CleanupStack::PopAndDestroy( &childrenElements );
// save children defintion in map
- lookup_string = LookupText(aTemplate, iWidgetType, iZoom,
+ lookup_string = LookupText(aTemplate, iWidgetType,
aLandscapeOrientation, aHighlighted );
iTemplateChildrenMap.InsertL(lookup_string, childrenDefinition);
- CleanupStack::Pop( &childrenDefinition );
+ CleanupStack::Pop( &childrenDefinition );
break;
}
}
@@ -661,13 +622,13 @@
//
// -----------------------------------------------------------------------------
//
-void CMmTemplateLibrary::ProcessCustomTemplateElementL(TXmlEngElement aElement,
- const TDesC8& aTemplate,
+void CMmTemplateLibrary::ProcessCustomTemplateElementL(TXmlEngElement aElement,
+ const TDesC8& aTemplate,
TBool aLandscapeOrientation,
TBool aHighlighted )
{
RXmlEngNodeList<TXmlEngElement> layoutElements;
- CleanupClosePushL( layoutElements );
+ CleanupClosePushL( layoutElements );
aElement.GetChildElements( layoutElements );
TXmlEngElement layoutElement;
while ( layoutElements.HasNext() )
@@ -680,27 +641,27 @@
TInt height;
TInt width;
HBufC8* lookup_string;
-
+
HnConvUtils::Str8ToInt(layoutElement.AttributeValueL(KHeight8), height);
- HnConvUtils::Str8ToInt(layoutElement.AttributeValueL(KWidth8), width);
- lookup_string = LookupText( aTemplate, iWidgetType, iZoom,
+ HnConvUtils::Str8ToInt(layoutElement.AttributeValueL(KWidth8), width);
+ lookup_string = LookupText( aTemplate, iWidgetType,
aLandscapeOrientation, aHighlighted );
- itemSize = TSize( width, height );
-
-
- TSize layoutSize = ( aLandscapeOrientation ) ?
- TSize( MmGrid::KColsLandscapeZoomNormal, MmGrid::KRowsLandscapeZoomNormal ):
+ itemSize = TSize( width, height );
+
+
+ TSize layoutSize = ( aLandscapeOrientation ) ?
+ TSize( MmGrid::KColsLandscapeZoomNormal, MmGrid::KRowsLandscapeZoomNormal ):
TSize( MmGrid::KColsPortraitZoomNormal, MmGrid::KRowsPortraitZoomNormal ) ;
layoutSize = ( iWidgetType == EGrid ) ? layoutSize: TSize(MmListBox::KCols,0);
CacheLayoutSizeL( layoutSize, aTemplate, aLandscapeOrientation );
-
+
AdjustItemWidth( itemSize, layoutSize, aLandscapeOrientation );
iTemplateSizesMap.InsertL(lookup_string, itemSize);
// set children
RArray< TTemplateChild > childrenDefinition;
- CleanupClosePushL( childrenDefinition );
-
+ CleanupClosePushL( childrenDefinition );
+
RXmlEngNodeList<TXmlEngElement> childrenElements;
CleanupClosePushL( childrenElements );
layoutElement.GetChildElements( childrenElements );
@@ -709,9 +670,9 @@
{
childElement = childrenElements.Next();
TPtrC8 name = childElement.Name();
- if ( !name.Compare( KTextVisual8 ) ||
+ if ( !name.Compare( KTextVisual8 ) ||
!name.Compare( KImageVisual8 ) )
- {
+ {
TTemplateChild childTemplate;
SetupCustomTemplateL( childTemplate, childElement );
childrenDefinition.AppendL( childTemplate );
@@ -719,7 +680,7 @@
}
CleanupStack::PopAndDestroy( &childrenElements );
// save children defintion in map
- lookup_string = LookupText(aTemplate, iWidgetType, iZoom,
+ lookup_string = LookupText(aTemplate, iWidgetType,
aLandscapeOrientation, aHighlighted );
iTemplateChildrenMap.InsertL(lookup_string, childrenDefinition);
CleanupStack::Pop( &childrenDefinition );
@@ -733,7 +694,7 @@
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
-//
+//
HBufC8* CMmTemplateLibrary::GetTemplateContentL(const TDesC8& aTemplate,
TMmWidgetType aWidgetType, TMmTemplateType& aMmTemplateType)
{
@@ -758,32 +719,32 @@
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
-//
-void CMmTemplateLibrary::GetTemplateFileContentL( HBufC8*& aContent,
- const TDesC8& aTemplate, TMmWidgetType aWidgetType,
+//
+void CMmTemplateLibrary::GetTemplateFileContentL( HBufC8*& aContent,
+ const TDesC8& aTemplate, TMmWidgetType aWidgetType,
TMmTemplateType& aMmTemplateType, TBool aLoadCustomTemplate )
{
- DEBUG(("_Mm_:CMmTemplateLibrary::GetTemplateContentL IN"));
+ DEBUG(("_Mm_:CMmTemplateLibrary::GetTemplateContentL IN"));
TFileName filename;
// create filename egz: akn_logical_template_3.xml
filename.Copy(aTemplate);
filename.Insert(0, KUnderline );
filename.Insert(0, KAkn );
filename.Append( KXmlExt );
-
+
// append path egz: z:\\resource\\grid\\lct\\akn_logical_template_3.xml
-
+
if ( !aLoadCustomTemplate )
{
filename.Insert(0, KBslash );
filename.Insert(0, KLct );
}
- else
+ else
{
filename.Insert(0, KBslash );
filename.Insert(0, KCustom );
}
-
+
switch (aWidgetType)
{
case EGrid:
@@ -795,21 +756,21 @@
filename.Insert(0, KWidgetTypeList );
break;
}
-
- filename.Insert(0, KZResource );
-
+
+ filename.Insert(0, KZResource );
+
DEBUG(("\t_Mm_:tail: %S", &filename));
DEBUG(("_Mm_:CMmTemplateLibrary::GetTemplateContentL OUT"));
-
+
// load LCT Template or if it does not exist then load custom template
aContent = HnUtils::ReadFileLC(filename);
CleanupStack::Pop( aContent );
-
+
if ( aLoadCustomTemplate )
{
aMmTemplateType = ETemplateTypeCustom;
}
- else
+ else
{
aMmTemplateType = ETemplateTypeLCT;
}
@@ -820,10 +781,10 @@
//
// -----------------------------------------------------------------------------
//
-TSize CMmTemplateLibrary::GetLCTSize( const TDesC8& aLCTTemplate, TInt aVariety,
+TSize CMmTemplateLibrary::GetLCTSize( const TDesC8& aLCTTemplate, TInt aVariety,
TAknWindowLineLayout& aWindowLayout, TBool aLandscapeOrientation )
{
- TSize size = MmLCTUtils::GetLCTSize( aLCTTemplate, aVariety,
+ TSize size = MmLCTUtils::GetLCTSize( aLCTTemplate, aVariety,
GetParentRect( aLandscapeOrientation ), aWindowLayout );
return size;
}
@@ -832,13 +793,13 @@
//
// -----------------------------------------------------------------------------
//
-void CMmTemplateLibrary::SetupLCTTemplateL(TTemplateChild& aChildTemplate,
+void CMmTemplateLibrary::SetupLCTTemplateL(TTemplateChild& aChildTemplate,
TXmlEngElement& aChildElement, TSize aItemSize )
{
TPtrC8 name = aChildElement.Name();
aChildTemplate.iData = aChildElement.AttributeValueL(KId8);
SetupTemplateVisualId( aChildTemplate );
-
+
// read attribute name (mm_title, mm_icon)
RXmlEngNodeList<TXmlEngElement> attributeElements;
CleanupClosePushL( attributeElements );
@@ -846,7 +807,7 @@
TXmlEngElement attElement;
while ( attributeElements.HasNext() )
{
- attElement = attributeElements.Next();
+ attElement = attributeElements.Next();
TPtrC8 nameAtt = attElement.AttributeValueL(KName8);
if ( !name.Compare( KTextVisual8 ) &&
!nameAtt.Compare( KText8 ) )
@@ -873,16 +834,16 @@
TPtrC8 name = aChildElement.Name();
TInt positionx; TInt positiony;
TInt height; TInt width;
-
+
HnConvUtils::Str8ToInt(aChildElement.AttributeValueL(KPositionX8), positionx);
- HnConvUtils::Str8ToInt(aChildElement.AttributeValueL(KPositionY8), positiony);
+ HnConvUtils::Str8ToInt(aChildElement.AttributeValueL(KPositionY8), positiony);
HnConvUtils::Str8ToInt(aChildElement.AttributeValueL(KHeight8), height);
HnConvUtils::Str8ToInt(aChildElement.AttributeValueL(KWidth8), width);
aChildTemplate.iRectAccordingToParent = TRect( TPoint(positionx,positiony), TSize(width, height) );
-
+
aChildTemplate.iData = aChildElement.AttributeValueL(KId8);
SetupTemplateVisualId( aChildTemplate );
-
+
// read attribute name (mm_title, mm_icon)
RXmlEngNodeList<TXmlEngElement> attributeElements;
CleanupClosePushL( attributeElements );
@@ -890,7 +851,7 @@
TXmlEngElement attElement;
while ( attributeElements.HasNext() )
{
- attElement = attributeElements.Next();
+ attElement = attributeElements.Next();
TPtrC8 nameAtt = attElement.AttributeValueL(KName8);
if ( !name.Compare( KTextVisual8 ) &&
!nameAtt.Compare( KText8 ) )
@@ -912,7 +873,7 @@
{
aChildTemplate.iFontId = EAknLogicalFontPrimarySmallFont;
}
- else
+ else
{
aChildTemplate.iFontId = EAknLogicalFontSecondaryFont;
}
@@ -925,7 +886,7 @@
aChildTemplate.iTextAlign = static_cast<CGraphicsContext::TTextAlign>(textAlign);
}
}
-
+
CleanupStack::PopAndDestroy( &attributeElements );
}
@@ -939,7 +900,7 @@
{
aChildTemplate.iImageVisualId = EImageVisualIdEditMode;
}
- else
+ else
{
aChildTemplate.iImageVisualId = EImageVisualIdNormalMode;
}
@@ -957,7 +918,7 @@
childTemplate.iIsImage = ETrue;
childTemplate.iFontId = EAknLogicalFontSecondaryFont;
childTemplate.iTextAlign = CGraphicsContext::ELeft;
- childTemplate.iRectAccordingToParent = TRect( TPoint( 0,0 ),
+ childTemplate.iRectAccordingToParent = TRect( TPoint( 0,0 ),
TPoint( aSize.iWidth, aSize.iHeight ) );
childTemplate.iData = TBufC8< MmTemplateContants::KTemplateChildTextLength >( KMmBackdropIcon8 );
SetupTemplateVisualId( childTemplate );
@@ -969,49 +930,49 @@
//
// -----------------------------------------------------------------------------
//
-void CMmTemplateLibrary::SetupMoveIndicatorTemplateChildrenL(
+void CMmTemplateLibrary::SetupMoveIndicatorTemplateChildrenL(
const TDesC8& aLookupString, TSize aItemSize )
{
RArray< TTemplateChild > childrenDefinition;
TTemplateChild childTemplate;
childTemplate.iIsImage = ETrue;
- childTemplate.iImageVisualId = EImageVisualIdNormalMode;
+ childTemplate.iImageVisualId = EImageVisualIdNormalMode;
childTemplate.iFontId = EAknLogicalFontSecondaryFont;
childTemplate.iTextAlign = CGraphicsContext::ELeft;
- TPoint startingPosition = TPoint(
- MmTemplateContants::KMoveIndicatorStartingPos,
+ TPoint startingPosition = TPoint(
+ MmTemplateContants::KMoveIndicatorStartingPos,
MmTemplateContants::KMoveIndicatorStartingPos);
-
+
//setup move_indicator_arrow_left
- childTemplate.iRectAccordingToParent = TRect(TPoint(0,aItemSize.iHeight/2 + startingPosition.iY/2),
- TPoint(startingPosition.iX,
+ childTemplate.iRectAccordingToParent = TRect(TPoint(0,aItemSize.iHeight/2 + startingPosition.iY/2),
+ TPoint(startingPosition.iX,
startingPosition.iY*3/2 + aItemSize.iHeight/2));
- childTemplate.iData = TBufC8< MmTemplateContants::KTemplateChildTextLength>(
+ childTemplate.iData = TBufC8< MmTemplateContants::KTemplateChildTextLength>(
KMmMoveIndicatorArrowLeft8 );
childrenDefinition.AppendL( childTemplate );
-
+
//setup move_indicator_arrow_right
childTemplate.iRectAccordingToParent = TRect(
- TPoint(startingPosition.iX + aItemSize.iWidth , aItemSize.iHeight/2 + startingPosition.iY/2),
- TPoint(startingPosition.iX*2 + aItemSize.iWidth,
+ TPoint(startingPosition.iX + aItemSize.iWidth , aItemSize.iHeight/2 + startingPosition.iY/2),
+ TPoint(startingPosition.iX*2 + aItemSize.iWidth,
startingPosition.iY*3/2 + aItemSize.iHeight/2));
childTemplate.iData = TBufC8< MmTemplateContants::KTemplateChildTextLength>(
KMmMoveIndicatorArrowRight8 );
childrenDefinition.AppendL( childTemplate );
-
+
//setup move_indicator_arrow_top
- childTemplate.iRectAccordingToParent = TRect(TPoint( aItemSize.iWidth/2 + startingPosition.iX/2, 0 ),
+ childTemplate.iRectAccordingToParent = TRect(TPoint( aItemSize.iWidth/2 + startingPosition.iX/2, 0 ),
TPoint(aItemSize.iWidth/2 + startingPosition.iX*3/2, startingPosition.iY));
childTemplate.iData = TBufC8< MmTemplateContants::KTemplateChildTextLength >(
KMmMoveIndicatorArrowTop8 );
childrenDefinition.AppendL( childTemplate );
-
+
//setup move_indicator_arrow_bottom
- childTemplate.iRectAccordingToParent = TRect( TPoint( aItemSize.iWidth/2 + startingPosition.iX/2,
- aItemSize.iHeight + startingPosition.iY + 2 ),
- TPoint(aItemSize.iWidth/2 + startingPosition.iX*3/2,
+ childTemplate.iRectAccordingToParent = TRect( TPoint( aItemSize.iWidth/2 + startingPosition.iX/2,
+ aItemSize.iHeight + startingPosition.iY + 2 ),
+ TPoint(aItemSize.iWidth/2 + startingPosition.iX*3/2,
aItemSize.iHeight + 2 *startingPosition.iY));
- childTemplate.iData = TBufC8< MmTemplateContants::KTemplateChildTextLength>(
+ childTemplate.iData = TBufC8< MmTemplateContants::KTemplateChildTextLength>(
KMmMoveIndicatorArrowBottom8 );
childrenDefinition.AppendL( childTemplate );
@@ -1019,11 +980,11 @@
iTemplateChildrenMap.InsertL(lookup_string, childrenDefinition);
CleanupStack::Pop( lookup_string );
lookup_string = NULL;
-
+
lookup_string = aLookupString.AllocLC();
- TRect rectAccordingToParent = TRect(
- TPoint( -startingPosition.iX, -startingPosition.iY),
- TPoint(2*startingPosition.iX + aItemSize.iWidth ,
+ TRect rectAccordingToParent = TRect(
+ TPoint( -startingPosition.iX, -startingPosition.iY),
+ TPoint(2*startingPosition.iX + aItemSize.iWidth ,
2*startingPosition.iY + aItemSize.iHeight) );
iMoveIndicatorRectsMap.InsertL( lookup_string, rectAccordingToParent );
@@ -1096,7 +1057,7 @@
{
aItemSize.iWidth = ( GetParentRect(aLandscapeOrientation).Width() - iScrollbarWidth ) / aLayoutSize.iWidth;
}
- else
+ else
{
aItemSize.iWidth = GetParentRect(aLandscapeOrientation).Width() / aLayoutSize.iWidth;
}
@@ -1161,36 +1122,10 @@
//
// -----------------------------------------------------------------------------
//
-TAknUiZoom CMmTemplateLibrary::Zoom( )
- {
- return iZoom;
- }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMmTemplateLibrary::SetZoom( TAknUiZoom aZoom )
- {
- if ( (EAknUiZoomLarge == aZoom)
- || (EAknUiZoomSmall == aZoom) )
- {
- iZoom = aZoom;
- }
- else
- {
- iZoom = EAknUiZoomNormal;
- }
- }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
void CMmTemplateLibrary::CacheLayoutSizeL(TSize aLayoutSize,
const TDesC8& aTemplate, TBool aLandscapeOrientation)
{
- HBufC8* lookup_layout_text = LookupLayoutText( iWidgetType, iZoom,
+ HBufC8* lookup_layout_text = LookupLayoutText( iWidgetType,
aTemplate, aLandscapeOrientation );
if ( iTemplateSizesMap.Find( lookup_layout_text ) )
--- a/menufw/menufwui/mmwidgets/src/mmwidgetcontainer.cpp Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/menufwui/mmwidgets/src/mmwidgetcontainer.cpp Thu Jan 07 12:39:41 2010 +0200
@@ -12,7 +12,7 @@
* Contributors:
*
* Description:
-* Version : %version: MM_71.1.17.1.42 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_71.1.17.1.44 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -21,7 +21,7 @@
#include <e32math.h>
#include <AknsDrawUtils.h>
#include <layoutmetadata.cdl.h>
-#include <aknlongtapdetector.h>
+#include <aknlongtapdetector.h>
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
#include <aknlistloadertfx.h>
@@ -223,7 +223,7 @@
{
static_cast<CMmListBoxItemDrawer*>( iDrawer )->InvalidateCache();
}
-
+
CCoeControl::HandleResourceChange( aType );
}
@@ -344,9 +344,9 @@
{
iDrawer->AnimateDragItemTransitionL();
}
-
+
SetHighlightAfterDrag();
-
+
iDraggedIndex = -1;
iDrawer->SetDraggedIndexL( iDraggedIndex, TPoint(0,0) );
SetDraggableL( EFalse );
@@ -587,12 +587,12 @@
{
iMarqueeAdapter->StopMarqueeDrawing();
}
-
+
TInt index = KErrNotFound;
TBool itemExists = iWidget->View()->XYPosToItemIndex( aPointerEvent.iPosition, index );
CCoeControl::HandlePointerEventL(aPointerEvent);
-
+
if ( aPointerEvent.iType == TPointerEvent::EButton1Down
&& itemExists )
{
@@ -621,7 +621,7 @@
}
TInt lastTopItemIndex = Widget()->TopItemIndex();
-
+
TBool abortAnimation = lastTopItemIndex != Widget()->TopItemIndex();
if (abortAnimation)
@@ -633,7 +633,7 @@
{
HandlePointerEventsInEditModeL(aPointerEvent, abortAnimation);
}
-
+
if ( iLongTapDetector )
{
TPointerEvent longTapPointerEvent = aPointerEvent;
@@ -642,8 +642,8 @@
longTapPointerEvent.iType = TPointerEvent::EDrag;
}
iLongTapDetector->PointerEventL( longTapPointerEvent );
- }
-
+ }
+
}
// -----------------------------------------------------------------------------
@@ -664,7 +664,7 @@
//
void CMmWidgetContainer::SetDraggableL( TBool aDraggable )
{
-
+
iDrawer = STATIC_CAST(CMmListBoxItemDrawer*, iWidget->View()->ItemDrawer());
iDrawer->SetDraggableL( aDraggable );
}
@@ -860,9 +860,9 @@
{
HideOptionsMenuIfDisplayed();
}
-
+
CHnSuiteModel* suiteModel = GetMmModel()->GetSuiteModel();
-
+
if (suiteModel)
{
suiteModel->SetSuiteHighlightL( iCurrentHighlight );
@@ -959,7 +959,7 @@
if (!AknLayoutUtils::PenEnabled() && iIsEditMode )
{
- if ((GetHighlight() + ColumnsInCurrentView() > NumberOfItems() - 1)
+ if ((GetHighlight() + ColumnsInCurrentView() > NumberOfItems() - 1)
&& aKeyEvent.iScanCode == EStdKeyDownArrow)
// the second condition is needed to block moving item down when there is no item below the moved item.
{
@@ -974,7 +974,7 @@
static_cast<CMmListBoxItemDrawer*>(iDrawer)->SetHighlightShown( ETrue );
SetHighlightL( iWidget->CurrentItemIndex() );
ScrollViewIfNeededL(); //only edit mode non-touch
-
+
if ( prevIndex != GetHighlight()
&& KErrNotFound != prevIndex )
{
@@ -1104,7 +1104,7 @@
//
TInt CMmWidgetContainer::RowsInCurrentView()
{
- //should be overridden by deriving classes
+ //should be overridden by deriving classes
CListBoxView *view = ((CListBoxView*) Widget()->View());
return view->NumberOfItemsThatFitInRect( Rect());//Widget()->View()->ViewRect());
}
@@ -1200,14 +1200,14 @@
}
else if ( iAllowLongPress && aType == EEventKey && aKeyEvent.iRepeats > 0 &&
( aKeyEvent.iScanCode == EStdKeyDevice3
- || aKeyEvent.iScanCode == EStdKeyEnter
+ || aKeyEvent.iScanCode == EStdKeyEnter
|| aKeyEvent.iScanCode == EStdKeyNkpEnter ) )
{
HandleRockerPressL();
resp = EKeyWasConsumed;
iAllowLongPress = EFalse;
}
-
+
return resp;
}
@@ -1243,7 +1243,7 @@
}
iWidget->MakeVisible(ETrue);
- Widget()->View()->ItemDrawer()->ClearFlags(
+ Widget()->View()->ItemDrawer()->ClearFlags(
CListItemDrawer::EPressedDownState );
iPostProcessor->StartAt( iWidget->BottomItemIndex() + 1 );
}
@@ -1376,37 +1376,6 @@
//
// ---------------------------------------------------------------------------
//
-TBool CMmWidgetContainer::FlipOpen()
- {
- return iFlipOpen;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CMmWidgetContainer::SetFlipOpenL( TBool aIsFlipOpen )
- {
- if ( aIsFlipOpen != iFlipOpen )
- {
- iFlipOpen = aIsFlipOpen;
- FlipStateChangedL();
- }
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CMmWidgetContainer::FlipStateChangedL()
- {
-// default do nothing
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
EXPORT_C void CMmWidgetContainer::StopMovingL()
{
if ( !AknLayoutUtils::PenEnabled() && iDragAndDropObserver )
@@ -1426,26 +1395,26 @@
return;
}
- TBool needToScrollUp =
+ TBool needToScrollUp =
GetHighlight() - iWidget->TopItemIndex() < ColumnsInCurrentView()
&& iWidget->TopItemIndex() != 0;
-
+
TBool needToScrollDown =
iWidget->BottomItemIndex() - GetHighlight() < ColumnsInCurrentView()
- && iWidget->BottomItemIndex() / ColumnsInCurrentView()
+ && iWidget->BottomItemIndex() / ColumnsInCurrentView()
!= ( NumberOfItems() - 1 ) / ColumnsInCurrentView();
-
+
if ( WidgetType() == EGridWidget )
{
// TODO: temporary - invisible partial items in MCL grid :/
- needToScrollDown =
+ needToScrollDown =
iWidget->BottomItemIndex() - ColumnsInCurrentView() - GetHighlight() < ColumnsInCurrentView()
&& ( iWidget->BottomItemIndex() / ColumnsInCurrentView() ) - 1
!= ( NumberOfItems() - 1 ) / ColumnsInCurrentView()
&& iWidget->BottomItemIndex() - iWidget->TopItemIndex()
> ColumnsInCurrentView() * RowsInCurrentView();
}
-
+
if ( needToScrollUp )
{
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
@@ -1468,7 +1437,7 @@
}
else if ( needToScrollDown )
{
-
+
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
MAknListBoxTfxInternal *transApi = CAknListLoader::TfxApiInternal( iDrawer->Gc() );
if ( transApi )
@@ -1486,7 +1455,7 @@
transApi->Draw( Rect() );
}
#endif
-
+
UpdateViewScrollBarThumbs();
}
}
@@ -1497,7 +1466,7 @@
//
void CMmWidgetContainer::UpdateViewScrollBarThumbs()
{
-
+
}
//----------------------------------------------------------------------------
@@ -1510,7 +1479,7 @@
{
TBool marqueeShouldBeEnabled = iHasFocus && iInForeground
&& !iIsFaded && !IsEditMode();
-
+
// logical Ex-OR
if ( !!marqueeShouldBeEnabled != !!iMarqueeAdapter->IsMarqueeEnabled() )
{
@@ -1524,38 +1493,6 @@
}
}
-//----------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CMmWidgetContainer::HandleZoomChanged( TAknUiZoom aZoom )
- {
- SetZoom( aZoom );
- if( WidgetType() == EGridWidget )
- {
- CMmGrid* grid = static_cast<CMmGrid*>( iWidget );
- grid->SetupLayout();
- }
- Widget()->DrawDeferred();
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CMmWidgetContainer::SetZoom( TAknUiZoom aZoom )
- {
- CMmTemplateLibrary * templateLibrary =
- static_cast<CMmListBoxItemDrawer*> (
- Widget()->View()->ItemDrawer() )->TemplateLibrary();
-
- if ( WidgetType() == EGridWidget && EAknUiZoomSmall == aZoom )
- {
- aZoom = EAknUiZoomNormal;
- }
- templateLibrary->SetZoom( aZoom );
- }
-
// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
@@ -1563,13 +1500,13 @@
void CMmWidgetContainer::SetHighlightAfterDrag()
{
if ( AknLayoutUtils::PenEnabled() &&
- iDraggedIndex != KErrNotFound &&
+ iDraggedIndex != KErrNotFound &&
iDraggedIndex != Widget()->CurrentItemIndex()
&& iDraggedIndex < NumberOfItems() )
{
TBool isFolder(EFalse);
CHnSuiteModel* model = GetMmModel()->GetSuiteModel();
- CHnItemModel* onItemModel = model->GetItemModel(
+ CHnItemModel* onItemModel = model->GetItemModel(
model->IdByIndex( Widget()->CurrentItemIndex() ));
if (onItemModel)
{
@@ -1589,7 +1526,7 @@
//
void CMmWidgetContainer::ValidateWidgetCurrentItemIndex()
{
- if (Widget()->CurrentItemIndex() >= GetMmModel()->NumberOfItems()
+ if (Widget()->CurrentItemIndex() >= GetMmModel()->NumberOfItems()
|| Widget()->CurrentItemIndex() == KErrNotFound )
{
iCurrentHighlight = GetMmModel()->NumberOfItems();
@@ -1615,7 +1552,7 @@
iWidgetPositionCache.iLandscape
= Layout_Meta_Data::IsLandscapeOrientation();
iWidgetPositionCache.iHighlightedItemId = KErrNotFound;
-
+
TInt highlightedItemIndex = Widget()->CurrentItemIndex();
CHnSuiteModel* suiteModel = GetMmModel()->GetSuiteModel();
if ( suiteModel && highlightedItemIndex != KErrNotFound
@@ -1625,7 +1562,7 @@
iWidgetPositionCache.iHighlightedItemId =
suiteModel->IdByIndex( highlightedItemIndex );
}
-
+
iWidgetPositionCache.iValid = ETrue;
}
@@ -1654,7 +1591,7 @@
Widget()->View()->SetTopItemIndex(iWidgetPositionCache.iTopItemIndex);
SetVerticalItemOffset(iWidgetPositionCache.iVerticalItemOffset);
TRAP_IGNORE( AlignBottomOfViewL() );
-
+
// Important: If an item that was previously highlighted and visible is
// still highlighted and yet somehow is not visible after the position
// has been restored, fix the problem by scrolling the view until that
@@ -1677,7 +1614,7 @@
{
TRAP_IGNORE( ScrollToItemL(Widget()->CurrentItemIndex()) );
}
-
+
iWidgetPositionCache.iValid = EFalse;
}
}
@@ -1728,9 +1665,9 @@
{
CacheWidgetPosition();
Widget()->View()->SetDisableRedraw( ETrue );
-
+
HandleNumberOfItemsChangedL( aChange );
-
+
Widget()->View()->SetDisableRedraw( EFalse );
RestoreWidgetPosition();
}
@@ -1769,7 +1706,7 @@
{
TInt scrollConsumed( EFalse );
TInt pixelsToScroll( 0 );
-
+
if ( NumberOfItems() > 0 )
{
pixelsToScroll = CalcBottomPixelsToScroll();
@@ -1796,7 +1733,7 @@
TInt lastItemBottomY = Widget()->View()->ItemPos(lastItemIndex).iY
+ Widget()->ItemHeight();
TInt pixelsToScroll( 0 );
-
+
if ( Widget()->ScrollBarFrame()->VerticalScrollBar()->IsVisible() )
{
pixelsToScroll = Min( 0, lastItemBottomY - viewHeight );
@@ -1805,7 +1742,7 @@
{
pixelsToScroll = Widget()->View()->ItemPos( firstItemIndex ).iY;
}
-
+
return pixelsToScroll;
}
@@ -1836,7 +1773,7 @@
void CMmWidgetContainer::ScrollInPixelsL(TInt aPixels)
{
SetupScrollingEffectsL( aPixels > 0 );
-
+
if ( AknLayoutUtils::PenEnabled() )
{
Widget()->HandlePhysicsScrollEventL(aPixels);
@@ -1846,8 +1783,8 @@
// non-touch avkon doesn't seem to support scrolling by given
// amount of pixels
TInt delta = aPixels / Widget()->View()->ItemHeight();
-
- Widget()->View()->VScrollTo( Widget()->TopItemIndex() +
+
+ Widget()->View()->VScrollTo( Widget()->TopItemIndex() +
delta * ColumnsInCurrentView() );
}
}
@@ -1864,7 +1801,7 @@
scrollConsumed = AlignBottomOfViewL();
if ( !scrollConsumed && Widget()->View()->ItemIsPartiallyVisible(aIndex))
{
-// the case when the item is partially visible at top or
+// the case when the item is partially visible at top or
// bottom of screen. Th e view is scrolled the offset to
// make the item entirely visible.
TInt offsetBottom = Widget()->View()->ItemPos(aIndex).iY
@@ -1878,7 +1815,7 @@
ScrollInPixelsL( offset );
scrollConsumed = ETrue;
}
-
+
}
else if (!Widget()->View()->ItemIsVisible(aIndex))
{
@@ -1918,7 +1855,7 @@
EXPORT_C void CMmWidgetContainer::PrepareForGarbage()
{
// This is called when the suite model is destoyed and the container is set to be destroyed
-// by the garbage collector. There should be no redraws done to the widget in this period
+// by the garbage collector. There should be no redraws done to the widget in this period
// because this will cause the screen to be redrawn only containing the balnk background.
// Before garbage cleanup an asynchronous redraw event may intend to redraw the widget.
// SetDisableRedraw() prevents redrawing. Animator is also prepared for garbage so there is
@@ -1948,7 +1885,7 @@
//
// -----------------------------------------------------------------------------
//
-void CMmWidgetContainer::HandleLongTapEventL( const TPoint& aPenEventLocation,
+void CMmWidgetContainer::HandleLongTapEventL( const TPoint& aPenEventLocation,
const TPoint& aPenEventScreenLocation )
{
TInt index( KErrNotFound );
@@ -1977,7 +1914,7 @@
//
// -----------------------------------------------------------------------------
//
-EXPORT_C void CMmWidgetContainer::HandleTopFocusL( TBool aStopTimer )
+EXPORT_C void CMmWidgetContainer::EndLongTapL( TBool aStopTimer )
{
if ( iLongTapInProgress )
{
@@ -1991,7 +1928,7 @@
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
void CMmWidgetContainer::HandleListBoxEventL( CEikListBox* aListBox,
@@ -2035,7 +1972,7 @@
break;
}
}
-
+
// handle different behaviour in edit mode and normal mode
if ( !IsEditMode() )
{
@@ -2043,14 +1980,14 @@
{
case MEikListBoxObserver::EEventFlickStarted:
{
- static_cast<CMmListBoxItemDrawer*>(
+ static_cast<CMmListBoxItemDrawer*>(
Widget()->View()->ItemDrawer() )->
EnableCachedDataUse( ETrue );
break;
}
case MEikListBoxObserver::EEventFlickStopped:
{
- static_cast<CMmListBoxItemDrawer*>(
+ static_cast<CMmListBoxItemDrawer*>(
Widget()->View()->ItemDrawer() )->
EnableCachedDataUse( EFalse );
DrawView();
@@ -2058,32 +1995,32 @@
}
}
}
- else
+ else
{
switch ( aEventType )
{
case MEikListBoxObserver::EEventFlickStopped:
{
- // this fixes some problems with messed edit mode
+ // this fixes some problems with messed edit mode
// caused by kinetic scrolling
iDrawer->GetAnimator()->SetNextRedrawToWholeScreen();
break;
}
}
}
-
+
if ( iListBoxObserver && !iLongTapInProgress )
{
iListBoxObserver->HandleListBoxEventL( aListBox, aEventType );
}
-
+
}
// ---------------------------------------------------------------------------
-//
+//
// ---------------------------------------------------------------------------
//
-EXPORT_C void CMmWidgetContainer::HandleOptionsMenuVisibilityChangeL(
+EXPORT_C void CMmWidgetContainer::HandleOptionsMenuVisibilityChangeL(
TBool aOptionsMenuVisible )
{
if ( IsTimerActive() )
--- a/menufw/menusuites/foldersuite/data/matrixmenudata.xml Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/menusuites/foldersuite/data/matrixmenudata.xml Thu Jan 07 12:39:41 2010 +0200
@@ -228,6 +228,11 @@
icon_skin_minor_id=""
icon_skin_major_id=""
param="logs:dialed"/>
+ <!-- Photos Suite launcher -->
+ <menu:application uid="0x200104E4"/>
+ <!-- Video Suite launcher -->
+ <menu:application uid="0x200211FA"/>
+
</menu:folder>
</menu:folder>
</menu:data>
--- a/menufw/menusuites/foldersuite/group/bld.inf Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/menusuites/foldersuite/group/bld.inf Thu Jan 07 12:39:41 2010 +0200
@@ -21,56 +21,34 @@
DEFAULT
PRJ_EXPORTS
-// exports for HW
-// touch
-../data/suite.xml /epoc32/data/z/private/101F4CD2/import/suites/foldersuite_touch/suite.xml
-../data/items_touch.xml /epoc32/data/z/private/101F4CD2/import/suites/foldersuite_touch/items.xml
-// non-touch
-../data/suite.xml /epoc32/data/z/private/101F4CD2/import/suites/foldersuite_nontouch/suite.xml
-../data/items_nontouch.xml /epoc32/data/z/private/101F4CD2/import/suites/foldersuite_nontouch/items.xml
-
-// exports for emulator
+// exports for HW & emulator
// touch
-../data/suite.xml /epoc32/release/winscw/udeb/z/private/101F4CD2/import/suites/foldersuite_touch/suite.xml
-../data/suite.xml /epoc32/release/winscw/urel/z/private/101F4CD2/import/suites/foldersuite_touch/suite.xml
-../data/items_touch.xml /epoc32/release/winscw/udeb/z/private/101F4CD2/import/suites/foldersuite_touch/items.xml
-../data/items_touch.xml /epoc32/release/winscw/urel/z/private/101F4CD2/import/suites/foldersuite_touch/items.xml
+../data/suite.xml z:/private/101F4CD2/import/suites/foldersuite_touch/suite.xml
+../data/items_touch.xml z:/private/101F4CD2/import/suites/foldersuite_touch/items.xml
// non-touch
-../data/suite.xml /epoc32/release/winscw/udeb/z/private/101F4CD2/import/suites/foldersuite_nontouch/suite.xml
-../data/suite.xml /epoc32/release/winscw/urel/z/private/101F4CD2/import/suites/foldersuite_nontouch/suite.xml
-../data/items_nontouch.xml /epoc32/release/winscw/udeb/z/private/101F4CD2/import/suites/foldersuite_nontouch/items.xml
-../data/items_nontouch.xml /epoc32/release/winscw/urel/z/private/101F4CD2/import/suites/foldersuite_nontouch/items.xml
+../data/suite.xml z:/private/101F4CD2/import/suites/foldersuite_nontouch/suite.xml
+../data/items_nontouch.xml z:/private/101F4CD2/import/suites/foldersuite_nontouch/items.xml
+
// default
-../data/suite.xml /epoc32/release/winscw/udeb/z/private/101F4CD2/import/suites/foldersuite/suite.xml
-../data/suite.xml /epoc32/release/winscw/urel/z/private/101F4CD2/import/suites/foldersuite/suite.xml
+../data/suite.xml z:/private/101F4CD2/import/suites/foldersuite/suite.xml
#ifdef __PEN_SUPPORT
-../data/items_touch.xml /epoc32/release/winscw/udeb/z/private/101F4CD2/import/suites/foldersuite/items.xml
-../data/items_touch.xml /epoc32/release/winscw/urel/z/private/101F4CD2/import/suites/foldersuite/items.xml
+../data/items_touch.xml z:/private/101F4CD2/import/suites/foldersuite/items.xml
#else
-../data/items_nontouch.xml /epoc32/release/winscw/udeb/z/private/101F4CD2/import/suites/foldersuite/items.xml
-../data/items_nontouch.xml /epoc32/release/winscw/urel/z/private/101F4CD2/import/suites/foldersuite/items.xml
+../data/items_nontouch.xml z:/private/101F4CD2/import/suites/foldersuite/items.xml
#endif
../loc/matrixmenudata.loc APP_LAYER_LOC_EXPORT_PATH(matrixmenudata.loc)
// MCS root folder configuration
#ifdef _MATRIX_MENU_INCLUDE_TEST_CONTENT
-../data/matrixmenudatatestcontent.xml /epoc32/RELEASE/winscw/udeb/Z/private/200113DD/content/matrixmenudata.xml
-../data/matrixmenudatatestcontent.xml /epoc32/RELEASE/winscw/urel/Z/private/200113DD/content/matrixmenudata.xml
-../data/matrixmenudatatestcontent.xml /epoc32/data/Z/private/200113DD/content/matrixmenudata.xml
+../data/matrixmenudatatestcontent.xml Z:/private/200113DD/content/matrixmenudata.xml
#else
-../data/matrixmenudata.xml /epoc32/RELEASE/winscw/udeb/Z/private/200113DD/content/matrixmenudata.xml
-../data/matrixmenudata.xml /epoc32/RELEASE/winscw/urel/Z/private/200113DD/content/matrixmenudata.xml
-../data/matrixmenudata.xml /epoc32/data/Z/private/200113DD/content/matrixmenudata.xml
+../data/matrixmenudata.xml Z:/private/200113DD/content/matrixmenudata.xml
#endif
-../data/matrixmenudata.dtd /epoc32/RELEASE/winscw/udeb/Z/private/200113DD/content/01/matrixmenudata.dtd
-../data/matrixmenudata.dtd /epoc32/RELEASE/winscw/urel/Z/private/200113DD/content/01/matrixmenudata.dtd
-../data/matrixmenudata.dtd /epoc32/data/Z/private/200113DD/content/01/matrixmenudata.dtd
+../data/matrixmenudata.dtd Z:/private/200113DD/content/01/matrixmenudata.dtd
-#ifdef SBSV2
./copyheaderfile.xml /epoc32/tools/makefile_templates/general/copyheaderfile.xml
./copyheaderfile.flm /epoc32/tools/makefile_templates/general/copyheaderfile.flm
./copyheaderfile.meta /epoc32/tools/makefile_templates/general/copyheaderfile.meta
-#endif
PRJ_MMPFILES
foldersuite.mmp
--- a/menufw/menusuites/group/bld.inf Thu Dec 17 08:40:49 2009 +0200
+++ b/menufw/menusuites/group/bld.inf Thu Jan 07 12:39:41 2010 +0200
@@ -27,9 +27,7 @@
../rom/menusuites.iby CORE_APP_LAYER_IBY_EXPORT_PATH(menusuites.iby)
../rom/menusuites_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(menusuites_resources.iby)
-../data/mmenuschema.xsd /epoc32/release/winscw/udeb/z/private/101F4CD2/import/suites/mmenuschema.xsd
-../data/mmenuschema.xsd /epoc32/release/winscw/urel/z/private/101F4CD2/import/suites/mmenuschema.xsd
-../data/mmenuschema.xsd /epoc32/data/z/private/101F4CD2/import/suites/mmenuschema.xsd
+../data/mmenuschema.xsd z:/private/101F4CD2/import/suites/mmenuschema.xsd
PRJ_MMPFILES
#ifndef SBSV2
--- a/systemDefinition.xml Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE SystemDefinition SYSTEM "systemDefinition.dtd"[
-
- <!ENTITY layer_real_source_path "\sf\app\homescreen">
- <!ENTITY layer_name "homescreen">
-
- <!ENTITY layer_file SYSTEM "systemDefinitionLayer.xml">
- <!ENTITY targetDefinition_file SYSTEM "/epoc32/tools/systemDefinition/targetDefinition.xml">
- <!ENTITY defaultbuild_file SYSTEM "/epoc32/tools/systemDefinition/default_build.xml">
- <!ENTITY defaultclean_file SYSTEM "/epoc32/tools/systemDefinition/default_clean.xml">
-]>
-
-<SystemDefinition name="SystemDefinition" schema="1.4.0">
- <systemModel>
-&layer_file;
- </systemModel>
- <build>
-&targetDefinition_file;
-
- <configuration name="build" description="build layer" filter="">
- <layerRef layerName="&layer_name;"/>
-
-&defaultbuild_file;
- </configuration>
-
- <configuration name="clean" description="clean layer" filter="">
- <layerRef layerName="&layer_name;"/>
-
-&defaultclean_file;
- </configuration>
-
- </build>
-</SystemDefinition>
--- a/systemDefinitionLayer.xml Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-<layer name="homescreen">
- <module name="group_homescreen">
- <component name="group_homescreen">
- <unit unitID="homescreen" mrp="" bldFile="&layer_real_source_path;\group" name="homescreen" />
- </component>
- </module>
-</layer>
--- a/widgetmanager/data/20026F53.rss Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: widget manager plugin registry resource
-*
-*/
-
-#include "registryinfov2.rh"
-
-// Declares info for two implementations
-RESOURCE REGISTRY_INFO theInfo
- {
- resource_format_version = RESOURCE_FORMAT_VERSION_2;
- dll_uid = 0x20026F53;
- interfaces =
- {
- INTERFACE_INFO
- {
- // UID of interface that is implemented
- interface_uid = 0x20026F51;
- implementations =
- {
- IMPLEMENTATION_INFO
- {
- implementation_uid = 0x20026F53;
- version_no = 1;
- display_name = "Widget Manager";
- default_data = "WmContentControlUI";
- opaque_data = "WmContentControlUI";
- }
- };
- }
- };
- }
--- a/widgetmanager/data/widgetmanagerview.loc Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,154 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Localisation file of Widget Manager
-*
-*/
-
-
-
-// TITLES OF EACH VIEW
-
-// d: Title of Application
-// d:
-// d:
-// l: title_pane_t2/opt12
-// w:
-// r: TB9.2
-#define qtn_wm_title_text "Widget Catalog"
-
-
-
-// OPTIONS-MENU MENUITEMS
-
-// d: Add-menuitem in Options-menu
-// d:
-// d:
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-//
-#define qtn_options_wm_add "Add To Homescreen"
-
-// d: Launch-menuitem in Options-menu
-// d:
-// d:
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-//
-#define qtn_options_wm_launch_widget "Launch"
-
-// d: Search-menuitem in Options-menu
-// d:
-// d:
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-//
-#define qtn_options_wm_search "Search"
-
-// d: Uninstall-menuitem in Options-menu
-// d:
-// d:
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-//
-#define qtn_options_wm_uninstall "Uninstall"
-
-// d: Open-menuitem in Options-menu
-// d:
-// d:
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-//
-#define qtn_options_wm_open "Open"
-
-// d: Sort alphabetically-menuitem in Options-menu
-// d:
-// d:
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-//
-#define qtn_options_wm_sort_alpha "Sort alphabetically"
-
-// d: Details-menuitem in Options-menu
-// d:
-// d:
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-//
-#define qtn_options_wm_show_details "Details"
-
-
-
-// MISC
-
-// d: Text displayed on OVI Store button
-// d:
-// d:
-// l: wgtman_btn_pane_t1
-// w:
-// r: TB9.2
-//
-#define qtn_wm_ovi_store_title "Ovi Store"
-
-// d: Info popup to indicate that an item can not be added to home screen
-// d: because current view is full
-// d:
-// l: popup_note_window
-// w:
-// r: TB9.2
-//
-#define qtn_hs_add_widget_no_space_note "Not enough space to add new widget to active page. Remove some content first"
-
-// d: Info popup to indicate that an item can not be added to home screen
-// d: because maximum instance count of current widget would be exceeded
-// d:
-// l: popup_note_window
-// w:
-// r: TB9.2
-//
-#define qtn_hs_add_widget_max_count_note "Unable to add. Home screen does not allow more instances of this widget"
-
-// d: widget details dialog left softkey for adding widget to home screen
-// d: Note: widgets dialog is not necessarily full screen width, which may affect
-// d: string max length!
-// l: control_pane_t1/opt7
-// w:
-// r: TB9.2
-//
-#define qtn_wm_details_add_to_hs "Add"
-
-// d: widget details dialog - no description
-// d:
-// d:
-// l: listrow_wgtman_pane_t2
-// w:
-// r: TB9.2
-//
-#define qtn_wm_details_no_description "No description available"
-
-// d: widget uninstall not allowed
-// d:
-// d:
-// l: popup_note_window
-// w:
-// r: TB9.2
-//
-#define qtn_wm_uninst_not_allowed "%U can not be uninstalled "
-
--- a/widgetmanager/data/widgetmanagerview.rss Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,235 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*
-*/
-
-// INCLUDES
-#include <eikon.rh>
-#include <avkon.rsg>
-#include <avkon.rh>
-#include <avkon.loc>
-#include <appinfo.rh>
-#include <avkon.mbg>
-
-#include "widgetmanager.hrh"
-#include "widgetmanagerview.loc"
-
-// RESOURCE IDENTIFIER
-NAME WIGZ // 4 letter ID
-
-RESOURCE RSS_SIGNATURE
- {
- }
-
-// ----------------------------------------------------
-// MAIN VIEW AND ITS PARTS
-// ----------------------------------------------------
-
-RESOURCE AVKON_VIEW r_wm_main_container_view
- {
- cba = R_AVKON_SOFTKEYS_OPTIONS_BACK__SELECT;
- menubar = r_wm_main_container_options_menu;
- toolbar = 0;
- }
-
-RESOURCE TITLE_PANE r_wm_main_container_title_resource
- {
- txt = qtn_wm_title_text;
- }
-
-// ----------------------------------------------------
-// MENU
-// ----------------------------------------------------
-
-RESOURCE MENU_BAR r_wm_main_container_options_menu
- {
- titles =
- {
- MENU_TITLE
- {
- menu_pane = r_wm_main_container_menu_pane;
- }
- };
- }
-
-RESOURCE MENU_PANE r_wm_main_container_menu_pane
- {
- items =
- {
- MENU_ITEM
- {
- command = EWmMainContainerViewOpenPortalMenuItemCommand;
- txt = qtn_options_wm_open;
- flags = EEikMenuItemAction;
- },
- MENU_ITEM
- {
- command = EWmMainContainerViewAddMenuItemCommand;
- txt = qtn_options_wm_add;
- flags = EEikMenuItemAction;
- },
- MENU_ITEM
- {
- command = EWmMainContainerViewWiddetDetailsMenuItemCommand;
- txt = qtn_options_wm_show_details;
- flags = EEikMenuItemSpecific;
- },
- MENU_ITEM
- {
- command = EWmMainContainerViewLaunchMenuItemCommand;
- txt = qtn_options_wm_launch_widget;
- flags = EEikMenuItemSpecific;
- },
- MENU_ITEM
- {
- command = EWmMainContainerViewSearchMenuItemCommand;
- txt = qtn_options_wm_search;
- },
- MENU_ITEM
- {
- command = EWmMainContainerViewSortAlphaMenuItemCommand;
- txt = qtn_options_wm_sort_alpha;
- },
- MENU_ITEM
- {
- command = EWmMainContainerViewUninstallMenuItemCommand;
- txt = qtn_options_wm_uninstall;
- flags = EEikMenuItemSpecific;
- },
- MENU_ITEM
- {
- command = EWmMainContainerViewHelpMenuItemCommand;
- txt = qtn_options_help;
- },
- MENU_ITEM
- {
- command = EWmMainContainerViewBackMenuItemCommand;
- txt = qtn_options_exit;
- }
- };
- }
-
-// ----------------------------------------------------
-// OVI STORE BUTTON
-// ----------------------------------------------------
-
-RESOURCE AVKON_BUTTON r_wm_portal_button
- {
- flags = 0;
- states =
- {
- AVKON_BUTTON_STATE
- {
- flags = 0;
- txt = qtn_wm_ovi_store_title;
- bmpfile = AVKON_BITMAP_FILE;
- bmpid = EMbmAvkonQgn_graf_wml_wait_globe_04;
- bmpmask = EMbmAvkonQgn_graf_wml_wait_globe_04_mask;
- press_bmpid = EMbmAvkonQgn_graf_wml_wait_globe_04;
- press_bmpmask = EMbmAvkonQgn_graf_wml_wait_globe_04_mask;
- }
- };
- }
-
-RESOURCE TBUF r_qtn_wm_go_to_ovi_store
- {
- buf = qtn_wm_ovi_store_title;
- }
-
-// ----------------------------------------------------
-// MISCELLANEOUS INFO MESSAGES
-// ----------------------------------------------------
-
-RESOURCE TBUF r_qtn_hs_add_widget_no_space_note
- {
- buf = qtn_hs_add_widget_no_space_note;
- }
-
-RESOURCE TBUF r_qtn_hs_add_widget_max_count_note
- {
- buf = qtn_hs_add_widget_max_count_note;
- }
-
-RESOURCE TBUF r_qtn_wm_details_no_description
- {
- buf = qtn_wm_details_no_description;
- }
-
-RESOURCE TBUF r_qtn_wm_uninst_not_allowed
- {
- buf = qtn_wm_uninst_not_allowed;
- }
-
-// ----------------------------------------------------
-// Wm Details dialog
-// ----------------------------------------------------
-
-STRUCT WMDLGCONTROL
- {
- STRUCT control;
- }
-
-RESOURCE DIALOG r_wm_details_add_dialog
- {
- flags = EEikDialogFlagNoDrag |
- EEikDialogFlagCbaButtons |
- EEikDialogFlagWait |
- EEikDialogFlagNoTitleBar;
- buttons = r_wm_details_add_close_cba;
- }
-
-RESOURCE CBA r_wm_details_add_close_cba
- {
- buttons =
- {
- CBA_BUTTON // add
- {
- id = ECbaAddToHs;
- txt = qtn_wm_details_add_to_hs;
- },
- CBA_BUTTON // close
- {
- id = EAknSoftkeyClose;
- txt = text_softkey_close;
- }
- };
- }
-
-RESOURCE DIALOG r_wm_details_only_dialog
- {
- flags = EEikDialogFlagNoDrag |
- EEikDialogFlagCbaButtons |
- EEikDialogFlagWait |
- EEikDialogFlagNoTitleBar;
- buttons = r_wm_details_empty_close_cba;
- }
-
-RESOURCE CBA r_wm_details_empty_close_cba
- {
- buttons =
- {
- CBA_BUTTON // empty
- {
- id = 0;
- txt = text_softkey_empty;
- },
- CBA_BUTTON // close
- {
- id = EAknSoftkeyClose;
- txt = text_softkey_close;
- }
- };
- }
--- a/widgetmanager/gfx/add_widget_button.svg Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="50px"
- height="36px" viewBox="0 0 50 36" enable-background="new 0 0 50 36" xml:space="preserve">
-<g id="Layer_2">
-</g>
-<g id="Layer_1">
- <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="24.9995" y1="0" x2="24.9995" y2="36.0005">
- <stop offset="0" style="stop-color:#79CD19"/>
- <stop offset="1" style="stop-color:#4A9826"/>
- </linearGradient>
- <path fill="url(#SVGID_1_)" d="M50,31c0,2.762-2.239,5-5,5H5c-2.762,0-5-2.238-5-5V5c0-2.761,2.238-5,5-5h40c2.761,0,5,2.239,5,5
- V31z"/>
- <polygon fill="#E6E6E6" points="16.515,21.084 22.015,21.084 22.015,26.585 22.015,27.586 23.015,27.586 27.015,27.586
- 28.016,27.586 28.016,26.585 28.016,21.084 33.515,21.084 34.516,21.084 34.516,20.083 34.516,16.083 34.516,15.082 33.515,15.082
- 28.016,15.082 28.016,9.583 28.016,8.582 27.015,8.582 23.015,8.582 22.015,8.582 22.015,9.583 22.015,15.082 16.515,15.082
- 15.515,15.082 15.515,16.083 15.515,20.082 15.515,21.084 "/>
- <path opacity="0.5" fill="#FFFFFF" d="M2.033,33.656C1.398,32.947,1.001,32.023,1.001,31V5c0-2.205,1.795-4,4-4h40
- c1.15,0,2.182,0.496,2.912,1.276l0.708-0.708C47.711,0.606,46.43,0,45.001,0h-40c-2.762,0-5,2.238-5,5v26
- c0,1.301,0.509,2.475,1.323,3.365L2.033,33.656z"/>
- <path opacity="0.2" d="M50.001,31V5c0-1.333-0.529-2.536-1.379-3.433l-0.709,0.708c0.67,0.716,1.088,1.669,1.088,2.724v26
- c0,2.205-1.795,4-4,4h-40c-1.182,0-2.235-0.525-2.968-1.344l-0.709,0.709C2.238,35.363,3.541,36,5.001,36h40
- C47.763,36,50.001,33.762,50.001,31z"/>
- <polygon opacity="0.3" points="22.034,27.578 22.056,27.578 23.058,26.576 23.034,26.576 23.034,20.093 22.034,21.094
- 22.034,26.577 "/>
- <polygon fill="#FFFFFF" points="15.507,21.08 15.507,21.084 16.507,21.084 22.005,21.085 22.005,21.103 23.007,20.102
- 23.007,20.085 16.507,20.084 16.507,20.08 "/>
- <polygon opacity="0.3" points="16.495,20.08 16.495,16.086 22.995,16.086 22.995,9.586 26.994,9.586 26.994,9.613 27.995,8.612
- 27.995,8.584 26.993,8.584 22.995,8.584 21.993,8.584 21.993,9.585 21.993,15.084 16.495,15.084 15.495,15.084 15.495,16.085
- 15.495,20.084 15.495,21.08 "/>
- <polygon fill="#FFFFFF" points="28.016,8.596 27.015,9.597 27.015,16.069 27.028,16.069 28.029,15.068 28.016,15.068 28.016,9.568
- "/>
- <polygon fill="#FFFFFF" points="23.034,27.584 27.033,27.584 28.035,27.584 28.035,26.583 28.035,21.082 33.533,21.082
- 34.535,21.082 34.535,20.081 34.535,16.082 34.535,15.088 33.534,16.088 33.534,20.082 27.034,20.082 27.034,26.582 23.058,26.582
- 22.056,27.584 "/>
- <polygon opacity="0.3" points="33.524,16.091 34.525,15.09 34.525,15.084 33.523,15.084 28.039,15.084 27.038,16.085
- 33.524,16.085 "/>
-</g>
-</svg>
--- a/widgetmanager/gfx/qgn_menu_hswidget.svg Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="88" height="88" viewBox="0 0 88 88">
-<rect fill="none" height="88" width="88"/>
-<linearGradient id="SVGID_1" gradientUnits="userSpaceOnUse" x1="22.43" y1="2.92" x2="66.99" y2="90.66">
-<stop stop-color="#A2C2DD" offset="0.1"/>
-<stop stop-color="#6C83BB" offset="0.71"/>
-<stop stop-color="#003D6D" offset="0.99"/>
-</linearGradient>
-<path d="M63.987,81.355c-0.18,0-0.364-0.024-0.543-0.076l-19.092-5.262c-1.259-0.341-2.284-1.793-2.328-3.306 l-0.002-0.068l-3.806,1.339c-0.217,0.066-0.435,0.104-0.656,0.104c-0.18,0-0.362-0.024-0.541-0.072l-19.458-5.141 c-1.282-0.332-2.325-1.772-2.374-3.276L14.623,47.38c-0.034-1.117,0.516-2.05,1.403-2.376L24.09,42l0.016-0.006l0.078-0.027 c0.071-0.023,0.145-0.042,0.221-0.056l0.186-0.027l0.186-0.008c0.056,0,0.11,0.002,0.167,0.008l0.083,0.006l0.023,0.002l0.075,0.012 l0.026,0.004l0.133,0.026l18.117,4.305l7.348-2.809l0.018-0.01l0.08-0.027c0.071-0.021,0.144-0.041,0.22-0.058l0.178-0.027 l0.021-0.002l0.054-0.002l0.114-0.004c0.053,0,0.107,0.002,0.163,0.006l0.095,0.01l0.132,0.019l0.025,0.006l0.088,0.019 l19.093,4.656l0.174,0.049c0.016,0.002,0.064,0.021,0.114,0.041c0.007,0.003,0.051,0.019,0.091,0.037l0.012,0.007l0.069,0.031 l0.01,0.004l0.066,0.033l0.011,0.008l0.109,0.06l0.013,0.009l0.105,0.065l0.143,0.102c0.029,0.021,0.077,0.06,0.121,0.097 c0.016,0.011,0.059,0.05,0.103,0.089l0.067,0.064l0.008,0.008l0.063,0.064c0.035,0.032,0.069,0.069,0.102,0.106 c0.043,0.048,0.087,0.102,0.134,0.157c0.067,0.087,0.128,0.174,0.188,0.264c0.149,0.228,0.276,0.473,0.378,0.733 c0.036,0.093,0.068,0.186,0.098,0.28c0.022,0.064,0.043,0.141,0.062,0.223l0.037,0.157l0.028,0.161l0.023,0.165l0.001,0.019 l0.018,0.188v0.004l0.004,0.109l0.721,24.573v0.01v0.081v0.104l-0.009,0.167l-0.008,0.097l-0.003,0.026l-0.023,0.17l-0.001,0.01 l-0.015,0.072l-0.023,0.104c-0.002,0.021-0.016,0.074-0.032,0.128c-0.003,0.019-0.019,0.068-0.037,0.122l-0.041,0.113l-0.052,0.126 l-0.075,0.15c-0.038,0.072-0.069,0.124-0.101,0.173c-0.049,0.072-0.096,0.135-0.144,0.194c-0.229,0.274-0.504,0.471-0.82,0.586 l-8.078,2.896C64.424,81.318,64.207,81.355,63.987,81.355L63.987,81.355z M58.611,43.634c-0.601,0-1.218-0.075-1.832-0.217 c-5.321-1.234-9.814-7.423-10.013-13.797c-0.141-4.509,1.896-8.199,5.223-9.546l-0.002-0.002l2.504-1.065l3.104-1.345l0.01,0.022 l2.047-0.873c0.127-0.054,0.246-0.097,0.369-0.141c0.265-0.095,0.553-0.175,0.854-0.241c0.219-0.047,0.438-0.083,0.665-0.114 c0.206-0.022,0.403-0.039,0.604-0.047c0.098-0.004,0.201-0.006,0.308-0.006l0.239,0.004c0.174,0.002,0.352,0.012,0.53,0.033 c0.157,0.014,0.32,0.035,0.485,0.064l0.334,0.054l0.012,0.004l0.07,0.017l0.102,0.022c0.118,0.025,0.264,0.06,0.414,0.097 c0.188,0.056,0.323,0.097,0.461,0.14c0.15,0.048,0.3,0.104,0.454,0.163c0.139,0.054,0.286,0.114,0.434,0.18 c0.141,0.062,0.288,0.128,0.435,0.204c0.136,0.066,0.283,0.145,0.431,0.229c0.137,0.075,0.282,0.161,0.424,0.248 c0.156,0.097,0.306,0.194,0.452,0.297c0.155,0.107,0.314,0.219,0.466,0.338c0.149,0.111,0.311,0.242,0.467,0.372 c0.171,0.145,0.339,0.295,0.504,0.45c0.189,0.173,0.369,0.357,0.551,0.545c0.219,0.227,0.429,0.462,0.634,0.706 c0.295,0.357,0.571,0.72,0.822,1.083c0.672,0.966,1.243,2.026,1.701,3.151c0.167,0.409,0.317,0.821,0.446,1.228 c0.097,0.301,0.186,0.606,0.264,0.918c0.068,0.258,0.13,0.52,0.184,0.784c0.05,0.239,0.093,0.47,0.13,0.708 c0.034,0.212,0.065,0.429,0.089,0.642c0.026,0.198,0.048,0.407,0.064,0.617c0.015,0.196,0.026,0.392,0.036,0.588l0.003,0.093 l0.004,0.099c0.004,0.122,0.005,0.25,0.005,0.377c0.003,0.182-0.001,0.363-0.005,0.542c-0.008,0.188-0.017,0.365-0.028,0.539 c-0.013,0.171-0.027,0.349-0.047,0.52c-0.018,0.167-0.039,0.339-0.063,0.506c-0.026,0.173-0.055,0.34-0.086,0.505 c-0.031,0.167-0.066,0.336-0.105,0.503c-0.041,0.18-0.085,0.349-0.134,0.516c-0.047,0.169-0.098,0.336-0.153,0.501 c-0.063,0.186-0.127,0.365-0.195,0.539c-0.074,0.188-0.151,0.372-0.233,0.549c-0.094,0.202-0.19,0.394-0.293,0.58 c-0.12,0.221-0.246,0.429-0.382,0.633c-0.169,0.262-0.359,0.52-0.56,0.757c-0.825,0.995-1.824,1.725-2.967,2.169l-7.654,3.1 C60.378,43.473,59.507,43.634,58.611,43.634L58.611,43.634z M34.343,41.839l-0.335-0.295l-6.913-6.135l-6.556,2.821l-1.133,0.487 l0.135-1.226l1.031-9.319l-5.811-8.063l-0.534-0.743l0.843-0.343l8.076-3.258l0.141-0.06l0.153,0.006l0.738,0.025l1.7-4.282 l0.11-0.281l0.276-0.122l8.075-3.37l0.681-0.285l0.265,0.689l3.722,9.641l7.714,3.151l0.97,0.396l-0.719,0.762l-5.304,5.608 l1.602,10.104l0.091,0.569l-0.539,0.21l-8.031,3.135c-0.025,0.01-0.052,0.022-0.08,0.031L34.343,41.839L34.343,41.839z" fill="url(#SVGID_1)"/>
-<linearGradient id="SVGID_2" gradientUnits="userSpaceOnUse" x1="30.21" y1="45.14" x2="40.63" y2="66.61">
-<stop stop-color="#43910A" offset="0"/>
-<stop stop-color="#17594C" offset="1"/>
-</linearGradient>
-<path d="M46.985,68.733l-0.567-18.834c-0.001-0.011-0.001-0.023-0.001-0.035 c-0.002-0.037-0.005-0.072-0.008-0.109c-0.002-0.037-0.007-0.076-0.011-0.114c-0.005-0.039-0.011-0.08-0.017-0.119 c-0.008-0.043-0.016-0.087-0.024-0.132c-0.01-0.048-0.022-0.098-0.035-0.145c-0.013-0.06-0.03-0.116-0.048-0.174 c-0.025-0.078-0.053-0.154-0.083-0.229c-0.086-0.213-0.191-0.415-0.315-0.599c-0.049-0.072-0.1-0.141-0.151-0.204 c-0.039-0.048-0.077-0.093-0.117-0.137c-0.033-0.035-0.066-0.07-0.102-0.104c-0.031-0.029-0.063-0.059-0.093-0.085 c-0.029-0.024-0.059-0.052-0.087-0.074c-0.027-0.022-0.056-0.044-0.085-0.064c-0.025-0.021-0.054-0.039-0.08-0.058 c-0.026-0.017-0.052-0.033-0.08-0.05c-0.025-0.017-0.053-0.03-0.078-0.043c-0.026-0.017-0.053-0.029-0.078-0.041 c-0.026-0.013-0.052-0.025-0.08-0.037c-0.026-0.011-0.052-0.021-0.079-0.031c-0.026-0.011-0.054-0.019-0.081-0.026 c-0.028-0.009-0.055-0.017-0.083-0.025c-0.008-0.002-0.016-0.004-0.024-0.006l-19.464-4.625c-0.021-0.004-0.042-0.008-0.063-0.012 c-0.029-0.006-0.059-0.011-0.087-0.015c-0.031-0.004-0.063-0.006-0.093-0.01c-0.033,0-0.065-0.002-0.098-0.002 c-0.035,0-0.07,0.002-0.103,0.004c-0.041,0.004-0.08,0.008-0.119,0.017c-0.051,0.008-0.101,0.021-0.15,0.037 c-0.021,0.006-0.042,0.012-0.063,0.021l-8.076,2.997c0.021-0.007,21.914,27.567,21.714,27.637l8.076-2.843 c0.2-0.072,0.375-0.196,0.52-0.365c0.035-0.042,0.068-0.085,0.1-0.133c0.024-0.035,0.047-0.072,0.067-0.109 c0.019-0.035,0.036-0.065,0.053-0.103c0.016-0.031,0.029-0.064,0.043-0.098c0.012-0.03,0.024-0.063,0.034-0.097 c0.011-0.031,0.021-0.06,0.029-0.091c0.008-0.029,0.017-0.062,0.023-0.093c0.008-0.029,0.014-0.06,0.02-0.091 c0.007-0.031,0.011-0.062,0.016-0.093c0.006-0.031,0.009-0.063,0.012-0.093c0.004-0.031,0.007-0.064,0.009-0.098 c0.001-0.03,0.004-0.062,0.006-0.097c0-0.033,0.001-0.065,0.001-0.101C46.986,68.78,46.985,68.758,46.985,68.733z" fill="url(#SVGID_2)"/>
-<linearGradient id="SVGID_3" gradientUnits="userSpaceOnUse" x1="12.64" y1="42.63" x2="43.4" y2="77.87">
-<stop stop-color="#DCE8E4" offset="0"/>
-<stop stop-color="#43910A" offset="1"/>
-</linearGradient>
-<path d="M36.509,50.295c0.978,0.239,1.801,1.416,1.838,2.625l0.566,18.676 c0.037,1.215-0.726,1.989-1.704,1.725L17.746,68.18c-0.979-0.253-1.801-1.421-1.839-2.605L15.34,47.356 c-0.037-1.18,0.725-1.952,1.704-1.723L36.509,50.295z" fill="url(#SVGID_3)"/>
-<linearGradient id="SVGID_4" gradientUnits="userSpaceOnUse" x1="56.73" y1="46.62" x2="69.4" y2="74.83">
-<stop stop-color="#BBE0FF" offset="0"/>
-<stop stop-color="#A2C2DD" offset="0.35"/>
-<stop stop-color="#6C83BB" offset="0.7"/>
-<stop stop-color="#003D6D" offset="1"/>
-</linearGradient>
-<path d="M73.378,75.945L72.66,51.374c-0.001-0.012-0.002-0.024-0.002-0.034 c-0.003-0.037-0.005-0.075-0.007-0.112c-0.004-0.037-0.006-0.076-0.012-0.115c-0.005-0.039-0.01-0.08-0.016-0.119 c-0.008-0.044-0.016-0.089-0.024-0.133c-0.01-0.049-0.021-0.099-0.032-0.146c-0.015-0.06-0.031-0.117-0.049-0.175 c-0.023-0.076-0.052-0.155-0.081-0.231c-0.083-0.215-0.188-0.415-0.31-0.601c-0.048-0.072-0.098-0.143-0.149-0.208 c-0.037-0.048-0.074-0.091-0.113-0.135c-0.033-0.037-0.065-0.072-0.101-0.107c-0.029-0.028-0.061-0.058-0.09-0.086 c-0.028-0.025-0.057-0.05-0.086-0.072c-0.026-0.022-0.054-0.046-0.081-0.064c-0.027-0.021-0.053-0.041-0.081-0.06 c-0.025-0.017-0.052-0.033-0.077-0.05c-0.026-0.015-0.052-0.03-0.077-0.045c-0.026-0.015-0.051-0.027-0.078-0.042 c-0.024-0.01-0.05-0.024-0.076-0.034c-0.025-0.013-0.052-0.023-0.078-0.033c-0.025-0.011-0.052-0.019-0.078-0.027 c-0.027-0.008-0.055-0.017-0.082-0.024c-0.007,0-0.016-0.004-0.023-0.004l-19.092-4.654c-0.021-0.006-0.042-0.01-0.063-0.014 c-0.028-0.006-0.058-0.01-0.085-0.015c-0.03-0.004-0.062-0.006-0.091-0.008c-0.032-0.002-0.064-0.004-0.097-0.004 c-0.033,0-0.067,0.002-0.102,0.004c-0.038,0.004-0.078,0.01-0.115,0.017c-0.05,0.01-0.099,0.023-0.146,0.037 c-0.022,0.006-0.042,0.015-0.062,0.023l-8.076,3.089c0.02-0.01,21.658,33.316,21.463,33.387l8.075-2.894 c0.196-0.072,0.368-0.196,0.51-0.365c0.034-0.041,0.067-0.087,0.098-0.132c0.023-0.037,0.046-0.074,0.066-0.111 c0.019-0.035,0.035-0.068,0.052-0.104c0.015-0.033,0.027-0.063,0.041-0.099c0.013-0.031,0.023-0.063,0.035-0.095 c0.01-0.031,0.019-0.063,0.027-0.094c0.008-0.03,0.016-0.062,0.024-0.093c0.006-0.03,0.013-0.062,0.019-0.093 c0.005-0.028,0.01-0.06,0.015-0.093c0.005-0.03,0.008-0.062,0.012-0.095c0.005-0.031,0.007-0.062,0.009-0.095 s0.004-0.064,0.004-0.097c0.002-0.035,0.002-0.068,0.002-0.104C73.38,75.99,73.38,75.968,73.378,75.945z" fill="url(#SVGID_4)"/>
-<linearGradient id="SVGID_5" gradientUnits="userSpaceOnUse" x1="40.88" y1="44.88" x2="68.29" y2="84.97">
-<stop stop-color="#FFFFFF" offset="0.15"/>
-<stop stop-color="#A2C2DD" offset="1"/>
-</linearGradient>
-<path d="M62.786,51.841c0.959,0.241,1.766,1.426,1.802,2.646l0.721,24.368 c0.036,1.227-0.712,2.002-1.672,1.733l-19.093-5.26c-0.959-0.262-1.766-1.442-1.802-2.639l-0.72-23.798 c-0.036-1.19,0.711-1.973,1.671-1.739L62.786,51.841z" fill="url(#SVGID_5)"/>
-<linearGradient id="SVGID_6" gradientUnits="userSpaceOnUse" x1="15.34" y1="18.21" x2="25.43" y2="18.21">
-<stop stop-color="#E6EEF4" offset="0"/>
-<stop stop-color="#2F8E9A" offset="0.44"/>
-<stop stop-color="#003D6D" offset="0.94"/>
-</linearGradient>
-<polygon fill="url(#SVGID_6)" points="25.43,16.5 23.414,16.43 15.339,19.69 23.255,19.994 24.069,19.664 "/>
-<linearGradient id="SVGID_7" gradientUnits="userSpaceOnUse" x1="29.92" y1="9.81" x2="35.32" y2="20.62">
-<stop stop-color="#E6EEF4" offset="0"/>
-<stop stop-color="#2F8E9A" offset="0.44"/>
-<stop stop-color="#003D6D" offset="0.94"/>
-</linearGradient>
-<path d="M38.449,18.279l-3.833-9.932l-8.075,3.368l3.833,9.862C33.074,20.479,35.749,19.387,38.449,18.279z" fill="url(#SVGID_7)"/>
-<linearGradient id="SVGID_8" gradientUnits="userSpaceOnUse" x1="42.72" y1="24.82" x2="34.38" y2="18.51">
-<stop stop-color="#E6EEF4" offset="0"/>
-<stop stop-color="#2F8E9A" offset="0.44"/>
-<stop stop-color="#003D6D" offset="0.94"/>
-</linearGradient>
-<path d="M46.449,21.543l-8-3.264l-8.075,3.297l8,3.269C38.396,24.823,44.091,22.563,46.449,21.543z" fill="url(#SVGID_8)"/>
-<linearGradient id="SVGID_9" gradientUnits="userSpaceOnUse" x1="42.18" y1="23.58" x2="28.57" y2="37.19">
-<stop stop-color="#E6EEF4" offset="0"/>
-<stop stop-color="#2F8E9A" offset="0.44"/>
-<stop stop-color="#003D6D" offset="0.94"/>
-</linearGradient>
-<polygon fill="url(#SVGID_9)" points="40.904,27.41 46.449,21.543 38.375,24.845 32.829,30.642 "/>
-<linearGradient id="SVGID_10" gradientUnits="userSpaceOnUse" x1="39.13" y1="39.57" x2="35.59" y2="26.33">
-<stop stop-color="#E6EEF4" offset="0"/>
-<stop stop-color="#2F8E9A" offset="0.44"/>
-<stop stop-color="#003D6D" offset="0.94"/>
-</linearGradient>
-<path d="M32.829,30.642l1.658,10.369l8.075-3.149L40.904,27.41C40.904,27.41,32.862,30.627,32.829,30.642z" fill="url(#SVGID_10)"/>
-<linearGradient id="SVGID_11" gradientUnits="userSpaceOnUse" x1="18.97" y1="15.63" x2="37.23" y2="43.12">
-<stop stop-color="#D6E6EC" offset="0"/>
-<stop stop-color="#298595" offset="1"/>
-</linearGradient>
-<polygon fill="url(#SVGID_11)" points="26.546,11.715 30.379,21.577 38.379,24.845 32.833,30.642 34.491,41.011 27.23,34.569 20.255,37.571 21.316,27.978 15.343,19.69 23.259,19.994 "/>
-<linearGradient id="SVGID_12" gradientUnits="userSpaceOnUse" x1="52.27" y1="29.75" x2="73.38" y2="29.75">
-<stop stop-color="#E6EEF4" offset="0"/>
-<stop stop-color="#9646AC" offset="0.44"/>
-<stop stop-color="#3D013F" offset="0.94"/>
-</linearGradient>
-<path d="M73.374,30.359c-0.002-0.06-0.004-0.122-0.007-0.182c-0.008-0.188-0.021-0.375-0.034-0.562 c-0.017-0.198-0.036-0.394-0.061-0.59c-0.024-0.205-0.054-0.409-0.085-0.613c-0.036-0.225-0.079-0.45-0.124-0.672 c-0.053-0.254-0.11-0.504-0.176-0.751c-0.075-0.297-0.16-0.592-0.254-0.883c-0.127-0.396-0.269-0.789-0.426-1.172l0,0 c-0.438-1.077-0.986-2.092-1.627-3.015c-0.249-0.357-0.511-0.702-0.783-1.028c-0.194-0.231-0.395-0.456-0.6-0.671 c-0.17-0.177-0.344-0.351-0.523-0.518c-0.156-0.145-0.317-0.289-0.478-0.425c-0.146-0.122-0.296-0.241-0.444-0.353 c-0.141-0.109-0.287-0.214-0.433-0.313c-0.137-0.095-0.275-0.188-0.42-0.274c-0.132-0.083-0.269-0.165-0.404-0.239 c-0.133-0.077-0.269-0.146-0.404-0.215c-0.134-0.068-0.267-0.13-0.402-0.188c-0.134-0.06-0.269-0.116-0.402-0.167 c-0.137-0.054-0.272-0.101-0.408-0.146c-0.139-0.043-0.275-0.084-0.415-0.126c-0.143-0.037-0.283-0.07-0.426-0.101 c-0.04-0.01-0.081-0.016-0.122-0.029c-0.105-0.019-0.215-0.035-0.32-0.054c-0.149-0.022-0.299-0.043-0.449-0.058 c-0.16-0.017-0.317-0.027-0.477-0.029c-0.167-0.006-0.334-0.006-0.501,0.002c-0.18,0.006-0.361,0.021-0.534,0.042 c-0.208,0.027-0.409,0.062-0.606,0.101c-0.261,0.058-0.521,0.13-0.769,0.219l-0.006,0.002c-0.108,0.037-0.216,0.078-0.322,0.122 l-7.664,3.263c0.107-0.045,0.217-0.087,0.326-0.122l5.287-2.292l-5.287,2.292c0.253-0.084,0.508-0.157,0.77-0.214 c0.201-0.042,0.401-0.074,0.605-0.099c0.178-0.019,7.981,21.822,6.952,22.212l7.663-3.104c1.03-0.398,1.936-1.067,2.678-1.958 c0.181-0.217,0.352-0.45,0.513-0.696c0.123-0.186,0.239-0.379,0.349-0.582c0.096-0.171,0.185-0.351,0.271-0.533 c0.076-0.167,0.149-0.338,0.218-0.512c0.065-0.163,0.125-0.33,0.183-0.501c0.052-0.155,0.099-0.312,0.145-0.472 c0.044-0.159,0.086-0.32,0.124-0.481c0.036-0.155,0.069-0.314,0.1-0.475c0.03-0.157,0.056-0.316,0.08-0.479 c0.024-0.157,0.044-0.32,0.062-0.48c0.018-0.163,0.032-0.326,0.043-0.493c0.013-0.165,0.021-0.334,0.025-0.501 c0.006-0.173,0.008-0.349,0.008-0.526C73.379,30.601,73.378,30.481,73.374,30.359z" fill="url(#SVGID_12)"/>
-<linearGradient id="SVGID_13" gradientUnits="userSpaceOnUse" x1="47.62" y1="18.01" x2="65.31" y2="44.62">
-<stop stop-color="#DEDEED" offset="0"/>
-<stop stop-color="#9646AC" offset="1"/>
-</linearGradient>
-<path d="M56.257,20.407c5.032,1.021,9.268,6.917,9.457,13.153c0.188,6.243-3.738,10.339-8.771,9.16 c-5.035-1.168-9.27-7.037-9.46-13.122C47.294,23.521,51.222,19.399,56.257,20.407z" fill="url(#SVGID_13)"/>
-</svg>
\ No newline at end of file
--- a/widgetmanager/group/bld.inf Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Widget manager build information
-*
-*/
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-../rom/widgetmanager.iby CORE_APP_LAYER_IBY_EXPORT_PATH(widgetmanager.iby)
-../rom/widgetmanager_resources.iby CORE_APP_LAYER_IBY_EXPORT_PATH(widgetmanager_resources.iby)
-
-../sis/widgetmanager_stub.sis /epoc32/data/z/system/install/widgetmanager_stub.sis
-
-PRJ_EXTENSIONS
-START EXTENSION s60/mifconv
-OPTION TARGETFILE widgetmanager.mif
-OPTION HEADERFILE widgetmanager.mbg
-OPTION SOURCEDIR ../gfx
-OPTION SOURCEFILE wmicons.txt
-END
-
-PRJ_MMPFILES
-
-widgetmanager.mmp
-
--- a/widgetmanager/group/widgetmanager.mmp Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Widget manager project definition file
-*
-*/
-
-#include <data_caging_paths.hrh>
-#include <platform_paths.hrh>
-
-TARGET widgetmanager.dll
-TARGETTYPE PLUGIN
-
-// ECom Dll recognition UID followed by the unique UID for this dll
-UID 0x10009D8D 0x20026F53
-
-VENDORID VID_DEFAULT
-SECUREID 0x20026F53
-
-// SIS installation + IAD support
-VERSION 1.1
-paged
-
-CAPABILITY CAP_ECOM_PLUGIN
-
-SOURCEPATH ../src
-SOURCE wmpluginproxy.cpp
-SOURCE wmplugin.cpp
-SOURCE wmresourceloader.cpp
-SOURCE wmmaincontainer.cpp
-SOURCE wmmaincontainerview.cpp
-SOURCE wmwidgetdata.cpp
-SOURCE wmlistbox.cpp
-SOURCE wmimageconverter.cpp
-SOURCE wmpersistentwidgetorder.cpp
-SOURCE wmeffectmanager.cpp
-SOURCE wmiconfileprovider.cpp
-SOURCE wmdetailsdlg.cpp
-SOURCE wmwidgetloaderao.cpp
-
-SOURCEPATH ../data
-START RESOURCE 20026F53.rss
-TARGETPATH ECOM_RESOURCE_DIR
-TARGET widgetmanager.rsc
-END //RESOURCE
-
-SOURCEPATH ../data
-START RESOURCE widgetmanagerview.rss
-HEADER
-TARGETPATH RESOURCE_FILES_DIR
-LANGUAGE_IDS
-END //RESOURCE
-
-USERINCLUDE .
-USERINCLUDE ../inc
-USERINCLUDE ../data
-
-APP_LAYER_SYSTEMINCLUDE
-SYSTEMINCLUDE /epoc32/include/ecom
-
-
-LIBRARY euser.lib
-LIBRARY cone.lib
-LIBRARY avkon.lib
-LIBRARY eikcore.lib
-LIBRARY estor.lib
-LIBRARY eikcoctl.lib
-LIBRARY eikctl.lib
-LIBRARY eikdlg.lib
-
-LIBRARY efsrv.lib // RFs
-LIBRARY bafl.lib // BaflUtils
-LIBRARY apgrfx.lib // RApaLsSession
-LIBRARY commonengine.lib // StringLoader
-
-LIBRARY aknicon.lib // AknIconUtility
-LIBRARY imageconversion.lib // CImageDecoder
-LIBRARY bitmaptransforms.lib // CBitmapScaler
-LIBRARY fbscli.lib // CFbsBitmap
-LIBRARY bitgdi.lib // CFbsBitmapDevice
-LIBRARY gdi.lib // CFont
-LIBRARY egul.lib // TextUtils
-LIBRARY ecom.lib // ECom fw
-LIBRARY aknskins.lib // AknsDrawUtils
-LIBRARY aknskinsrv.lib // AknsDrawUtils
-LIBRARY aknswallpaperutils.lib // AknsDrawUtils
-LIBRARY hscontentcontrol.lib // CHsContentControlUi
-LIBRARY apparc.lib // CApaCommandLine
-LIBRARY aknlayout.lib // avkon layout
-LIBRARY aknlayout2scalable.lib // scalable avkon layout
-LIBRARY swinstcli.lib // widget uninstall
-LIBRARY hscontentinfo.lib // CHsContentInfo
-LIBRARY platformenv.lib // DriveInfo::GetDefaultDrive
-LIBRARY svgengine.lib // CSvgEngineInterfaceImpl
-LIBRARY gfxtrans.lib // effect manager
-LIBRARY ws32.lib //WindowSession
-LIBRARY widgetregistryclient.lib // WidgetRegistryClient
-LIBRARY hlplch.lib // HlpLauncher
-LIBRARY sysutil.lib // diskspace
-LIBRARY featmgr.lib // FeatureManager
-LIBRARY etext.lib
-
-
-// End of file
--- a/widgetmanager/group/wmicons.txt Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
--c32,8 qgn_menu_hswidget
--c32,8 add_widget_button
-
--- a/widgetmanager/inc/widgetmanager.hrh Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Declares resource ids for widgetmanager application.
-*
-*/
-
-
-/** WidgetManger viev uid */
-enum TWidgetManagerViewUids
- {
- EWmMainContainerViewId = 0x20026F53
- };
-
-/** MainContainer View Commands */
-enum TWmMainContainerViewCommands
- {
- EWmMainContainerViewAddMenuItemCommand = 0x6000,
- EWmMainContainerViewLaunchMenuItemCommand,
- EWmMainContainerViewSearchMenuItemCommand,
- EWmMainContainerViewSortAlphaMenuItemCommand,
- EWmMainContainerViewUninstallMenuItemCommand,
- EWmMainContainerViewHelpMenuItemCommand,
- EWmMainContainerViewOpenPortalMenuItemCommand,
- EWmMainContainerViewBackMenuItemCommand,
- EWmMainContainerViewWiddetDetailsMenuItemCommand
- };
-
-enum TWmMenuCmdIDs
- {
- ECbaAddToHs = 1
- };
-
\ No newline at end of file
--- a/widgetmanager/inc/widgetmanager.pan Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Declares panic codes for widgetmanager app.
-*
-*/
-
-#ifndef WIDGETMANAGER_PAN_H
-#define WIDGETMANAGER_PAN_H
-
-/** WidgetManager application panic codes */
-enum TWidgetManagerPanics
- {
- EWidgetManagerUi = 1
- // add further panics here
- };
-
-inline void Panic(TWidgetManagerPanics aReason)
- {
- _LIT(applicationName,"WidgetManager");
- User::Panic(applicationName, aReason);
- }
-
-#endif // WIDGETMANAGER_PAN_H
--- a/widgetmanager/inc/wmcommon.h Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-
-#ifndef WMCOMMON_H
-#define WMCOMMON_H
-
-//includes
-#include <e32base.h>
-
-// widgetmanager UID
-const TUid KUidWidgetManager = { 0x200255FF };
-
-// HsContentInfo types
-_LIT8( KContentWidget, "widget" );
-_LIT8( KContentTemplate, "template" );
-
-// UI related const
-const TInt KWidgetHeight = 90;
-
-// UI component ID's
-enum TWmUiControlIds
- {
- EOviPortal = 0x1,
- ELastPortal,
- EWidgetsList,
- EFindBox,
- EMaximumWidgets = 0xC8
- };
-
-#endif //WMCOMMON_H
--- a/widgetmanager/inc/wmdetailsdlg.h Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Declares widget details dialog for WidgetManager
-*
-*/
-
-#ifndef ___WMDETAILSDLG_H__
-#define ___WMDETAILSDLG_H__
-
-// INCLUDES
-#include <e32base.h>
-#include <AknDialog.h>
-
-// FORWARD DECLARATIONS
-class CEikRichTextEditor;
-class CAknsBasicBackgroundControlContext;
-
-// CLASS DECLARATIONS
-/**
- * CWmDetailsDlg
- */
-NONSHARABLE_CLASS( CWmDetailsDlg ): public CAknDialog
- {
-public:
-
- /**
- * Two-phased constructor.
- */
- static CWmDetailsDlg* NewL(
- const TDesC& aName,
- const TDesC& aDescription,
- TBool aCanBeAdded,
- const CFbsBitmap* aLogoBmp,
- const CFbsBitmap* aLogoMask,
- CAknsBasicBackgroundControlContext* aBgContext );
-
- /** Destructor. */
- ~CWmDetailsDlg();
-
-public: // New functions
- /** From CAknDialog Initializes the dialog and calls
- CAknDialog's ExecuteLD() */
- TInt ExecuteLD();
-
-private: // Functions from base classes
-
-
- /** From CEikDialog Initializes dialog before layout*/
- void PreLayoutDynInitL();
-
- /** From CEikDialog Handles button events and looks
- if the dialog can be closed */
- TBool OkToExitL(TInt aButtonId);
-
- /** From CCoeControl Handles key events */
- TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,TEventCode aType );
-
- /** From CEikDialog Called by framework when dialog is activated */
- void ActivateL();
-
- /** From CAknDialog called to provide access to the contorols */
- TTypeUid::Ptr MopSupplyObject( TTypeUid aId );
-
- /** From CAknDialog */
- void SetSizeAndPosition( const TSize& aSize );
-
- /** From CCoeControl */
- void SizeChanged();
-
- /** From CCoeControl */
- TInt CountComponentControls() const;
- CCoeControl* ComponentControl(TInt aIndex) const;
- void Draw( const TRect& aRect ) const;
-
- /** Desired rect for dialog */
- TRect WmDetailsDialogRect();
-
- /** Insert and format content */
- void InsertAndFormatContentL();
-
-private:
-
- /** Constructor for performing 1st stage construction */
- CWmDetailsDlg( TBool aCanBeAdded );
-
- /** 2nd phase constructor */
- void ConstructL(
- const TDesC& aName,
- const TDesC& aDescription,
- const CFbsBitmap* aLogoBmp,
- const CFbsBitmap* aLogoMask,
- CAknsBasicBackgroundControlContext* aBgContext );
-
-private:
-
- /**
- * Background context (not owned)
- */
- CAknsBasicBackgroundControlContext* iBgContext;
-
- /**
- * Richtext editor
- */
- CEikRichTextEditor* iRtEditor;
-
- /**
- * Name of widget
- */
- HBufC* iName;
-
- /**
- * Description of widget
- */
- HBufC* iDescription;
-
- /**
- * Logo image
- */
- CFbsBitmap* iLogoBmp;
-
- /**
- * Logo mask
- */
- CFbsBitmap* iLogoMask;
-
- /**
- * ETrue if widget can be added to HS
- */
- TBool iCanBeAdded;
-
- };
-
-#endif ___WMDETAILSDLG_H__
-
-// End of File
--- a/widgetmanager/inc/wmeffectmanager.h Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* CImageConverter declaration
-*
-*/
-
-#ifndef WMEFFECTMANAGER_H
-#define WMEFFECTMANAGER_H
-
-// INCLUDES
-#include <e32base.h>
-
-class CCoeEnv;
-// CONSTANTS
-// Effects
-const TInt KAppStartCommonDefaultStyle = 3;
-const TInt KAppExitCommonDefaultStyle = 5;
-
-/**
- * Struct which holds needed info of effect.
- */
-NONSHARABLE_STRUCT( TWmEffect )
- {
- TInt iState;
- TInt iType;
- TInt iId;
- };
-
-/**
- * Effect manager.
- * Handles starting and ending effects.
- *
- * @since S60 v5.0
- */
-NONSHARABLE_CLASS( CWmEffectManager ) : public CBase
- {
-public:
- /**
- * Two-phased constructor.
- * @return new instance of CWmEffectManager.
- */
- static CWmEffectManager* NewL( CCoeEnv& aCoeEnv );
-
- /**
- * Destructor.
- */
- ~CWmEffectManager();
-
-public:
- /**
- * Begin handling of fullscreen effect.
- * @param aId effect id
- */
- void BeginFullscreenEffectL( TInt aId );
-
- /**
- * When UiRendered is called effect is ended and will be drawn
- */
- void UiRendered();
-
-private:
- /**
- * C++ default constructor.
- */
- CWmEffectManager( CCoeEnv& aCoeEnv );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL();
-
-private:
- /**
- * Starts fullscreen effect.
- * @param aEffect effect data
- */
- void DoBeginFullscreenEffect( TWmEffect& aEffect );
-
- /**
- * Removes and destroys effect from effect list.
- * @param aEffect effect data
- */
- void RemoveEffect( TWmEffect* aEffect );
-
-private: // data
- /**
- * List of started effects.
- */
- RPointerArray<TWmEffect> iEffects;
-
- /**
- * COE env
- */
- CCoeEnv& iCoeEnv;
- };
-
-#endif // WMEFFECTMANAGER_H
-
-// End of file
--- a/widgetmanager/inc/wmiconfileprovider.h Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* CWmIconFileProvider declaration
-*
-*/
-
-#ifndef WMICONFILEPROVIDER_H_
-#define WMICONFILEPROVIDER_H_
-
-// INCLUDES
-#include <f32file.h>
-#include <AknIconUtils.h>
-
-// CLASS DECLARATIONS
-
-/**
-* CWmIconFileProvider
-*/
-NONSHARABLE_CLASS( CWmIconFileProvider ) : public CBase,
- public MAknIconFileProvider
- {
-public:
- /**
- * Two-phased constructor.
- *
- * @param aFs A handle to a file server session.
- * @return New instance of CWmIconFileProvider.
- */
- static CWmIconFileProvider* NewL( RFs& aFs );
-
- /**
- * Destructor.
- */
- ~CWmIconFileProvider();
-
- /**
- * @return icon file name.
- */
- inline const TDesC& IconFileName();
-
- /**
- * Setter for icon file name.
- */
- void SetIconFile( const TDesC& aFileName );
-
-
-private:
- //from MAknIconFileProvider
-
- /**
- * Returns an open file handle to the icon file.
- * This method should leave if an icon file with specified type does
- * not exist. That may be the case e.g. with MBM file,
- * if there are no bitmap icons.
- *
- * Note! RFs::ShareProtected must be called to the RFs instance used
- * for opening the file.
- *
- * @param aFile Icon file should be opened in this file handle, which
- * is an empty file handle, when the AknIcon framework calls this method.
- * The AknIcon framework takes care of closing the file handle after
- * having used it.
- * @param aType Icon file type.
- */
- void RetrieveIconFileHandleL( RFile& aFile, const TIconFileType aType );
-
- /**
- * With this method, AknIcon framework informs that it does not use
- * this MAknIconFileProvider instance any more. After this call,
- * it is ok to delete the object. This can be implemented simply
- * e.g. by deleting self in this callback.
- * Normally, this callback is invoked when the icon in question
- * is deleted.
- * Note, however, that if the same MAknIconFileProvider instance is
- * supplied in multiple CreateIcon calls, then it must be accessible
- * by AknIcon framework until it has signalled a matching amount
- * of these callbacks.
- */
- void Finished();
-
-private:
- /**
- * Constructor
- *
- * @param aFs A handle to a file server session.
- */
- CWmIconFileProvider( RFs& aFs );
-
- /** 2nd phase constructor */
- void ConstructL();
-
-private: // data
-
- /** the file session */
- RFs& iFs;
-
- /** A buffer that can contain the name of a file. */
- TFileName iFileName;
-
- /** used for file session */
- RFile iFile;
- };
-
-#include "wmiconfileprovider.inl"
-#endif // WMICONFILEPROVIDER_H_
--- a/widgetmanager/inc/wmiconfileprovider.inl Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* CWmIconFileProvider declaration
-*
-*/
-
-
-
-#ifndef WMICONFILEPROVIDER_INL_
-#define WMICONFILEPROVIDER_INL_
-
-
- /**
- * description
- *
- * @return description
- */
- inline const TDesC& CWmIconFileProvider::IconFileName()
- { return iFileName; }
-
-#endif /* WMICONFILEPROVIDER_INL_ */
--- a/widgetmanager/inc/wmimageconverter.h Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,239 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* CWmImageConverter declaration
-*
-*/
-
-#ifndef WMIMAGECONVERTER_H
-#define WMIMAGECONVERTER_H
-
-//includes
-#include <e32std.h>
-#include <e32base.h>
-#include <f32file.h>
-
-// Forward declarations
-class CFbsBitmap;
-class CBitmapScaler;
-class CImageDecoder;
-class TAknsItemID;
-class CWmUnitTest;
-class CWmIconFileProvider;
-
-// Class declaration
-/**
- * MConverterObserver
- * To notify when image is converted
- */
-NONSHARABLE_CLASS( MConverterObserver )
- {
- public:
- virtual void NotifyCompletion( TInt aError ) = 0;
- };
-
-// Class declaration
-/**
- * CWmImageConverter
- * Image converter
- */
-NONSHARABLE_CLASS ( CWmImageConverter ) : public CActive
- {
- /** states for this converter */
- enum TState
- {
- EIdle = 0,
- EDecoding,
- EScalingBitmap,
- EScalingMask
- };
-
-public: //contructors/destructors
- /**
- * Two-phased constructor.
- * @param aObserver observer
- */
- static CWmImageConverter* NewL( MConverterObserver* aObserver );
-
- /** Destructor */
- ~CWmImageConverter();
-
-public: // interface methods
-
- /**
- * Parses icon string and prepares logo image.
- *
- * @param aWidth wanted widht
- * @param aHeight wanted height
- * @param aIconStr str containing logo icon
- * Supported values:
- * - skin(<major id> <minor id>):mif(<path> <bitmapid> <maskid>)
- * - mif(<path> <bitmapid> <maskid>)
- * - uid(<application uid>)
- * - <file name>.<png/svg>
- */
- void HandleIconStringL( TInt aWidth, TInt aHeight, const TDesC& aIconStr );
-
- /**
- * Returns converted bitmap. Caller takes ownership
- *
- * @return CFbsBitmap
- */
- CFbsBitmap* Bitmap();
-
- /**
- * Returns converted mask. Caller takes ownership
- *
- * @return CFbsBitmap
- */
- CFbsBitmap* Mask();
-
- /**
- * sets the size for decoding
- * @param aSize the logo size
- */
- inline void SetLogoSize( const TSize& aSize );
-
- /** supported image conversion methods */
- enum TConversionMethod
- {
- EUnrecognized, // we could not recognise the icon string
- EUidIcon, // App.UID-coded icon
- ESvgIcon, // Icon from SVG-file
- ESkinIcon, // Icon from SKIN id
- EMifIcon, // Icon from MIF file, known graphic index
- ESkinAndMifIcon, // Icon from SKIN and MIF combination
- EImageIcon, // Icon from image file (jpeg or png)
- };
-
- /**
- * The type of currently converted image.
- * This method can be used to check if correct conversion was used.
- * @return conversion method used for current image
- */
- TConversionMethod ConversionMethod();
-
-protected: // implementation of CActive
- /**
- * Implements cancellation of an outstanding request.
- *
- * @see CActive::DoCancel
- */
- void DoCancel();
-
- /**
- * Handles an active object's request completion event.
- *
- * @see CActive::RunL
- */
- void RunL();
-
- /**
- * RunError
- *
- * @see CActive::RunError
- */
- TInt RunError(TInt aError);
-
-private:
- CWmImageConverter();
- void ConstructL( MConverterObserver* aObserver );
-
-private:
-
- inline TState EngineState();
- void ScaleBitmap( TInt aWidth, TInt aHeight );
- void ScaleMask( TInt aWidth, TInt aHeight );
- void CreateIconFromUidL( const TUid& aUid );
- void CreateIconFromSvgL( const TDesC& aFileName );
- void CreateIconFromOtherL( const TDesC& aFileName );
- void CreateSkinOrMifIconL(
- const TAknsItemID& aItemId, TInt aBitmapId,
- TInt aMaskId, const TDesC& aFileName );
- // resolvers
- TBool ResolveUid( const TDesC& aPath, TUid& aUid );
- TBool ResolveSkinId( const TDesC& aPath, TAknsItemID& aItemId );
- TBool ResolveMifId( const TDesC& aPath, TInt& aBitmapId,
- TInt& aMaskId, TDes& aFileName );
- TBool ResolveSkinIdAndMifId( const TDesC& aPath, TAknsItemID& aItemId,
- TInt& aBitmapId, TInt& aMaskId, TDes& aFileName );
- TBool EndsWith( const TDesC& aString, const TDesC& aPattern );
-
-private:
- /**
- * Converter observer (not owned)
- */
- MConverterObserver* iObserver;
-
- /**
- * decoded image
- */
- CFbsBitmap* iBitmap;
-
- /**
- * decoded image mask
- */
- CFbsBitmap* iMask;
-
- /**
- * Icon file provider
- */
- CWmIconFileProvider* iIconFileProvider;
-
- /**
- * decoder from ICL API
- */
- CImageDecoder* iImageDecoder;
-
- /**
- * bitmap scaler
- */
- CBitmapScaler* iScaler;
-
- /**
- * internal state
- */
- TState iState;
-
- /**
- * File name to convert
- */
- TFileName iFilename;
-
- /**
- * size to convert
- */
- TSize iSize;
-
- /**
- * is scaling needed
- */
- TBool iScaleNeeded;
-
- /**
- * File handle
- */
- RFs iFs;
-
- /**
- * Conversion method for current image
- */
- TConversionMethod iConversionMethod;
-
- };
-
-#include "wmimageconverter.inl"
-#endif // #ifndef WMIMAGECONVERTER_H
-
-// end of file
--- a/widgetmanager/inc/wmimageconverter.inl Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* CWmImageConverter inline function definitions
-*
-*/
-#ifndef IMAGECONVERTER_INL_
-#define IMAGECONVERTER_INL_
-
-// ---------------------------------------------------------------------------
-// Sets logo size
-// ---------------------------------------------------------------------------
-//
-inline void CWmImageConverter::SetLogoSize( const TSize& aSize )
- {
- iSize = aSize;
- };
-
-// ---------------------------------------------------------------------------
-// Returns engine state
-// ---------------------------------------------------------------------------
-//
-inline CWmImageConverter::TState CWmImageConverter::EngineState()
- {
- return iState;
- };
-
-#endif /* IMAGECONVERTER_INL_ */
--- a/widgetmanager/inc/wmlistbox.h Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,422 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Declares widget listbox for WidgetManager
-*
-*/
-
-#ifndef ___WMLISTBOX_H__
-#define ___WMLISTBOX_H__
-
-// INCLUDES
-#include <eiklbi.h>
-#include <eiktxlbx.h>
-#include <eiktxlbm.h>
-#include <eikfrlb.h>
-#include <eiktxlbm.h>
-#include <aknlists.h>
-
-#include <touchfeedback.h>
-#include <touchlogicalfeedback.h>
-#include <aknlongtapdetector.h>
-#include "wmwidgetdataobserver.h"
-#include "wmwidgetdata.h"
-
-// FORWARD DECLARATIONS
-class CWmListBox;
-class CWmPlugin;
-class CListBoxView;
-class CFormattedCellListBoxData;
-class CAknLongTapDetector;
-class CWmListModel;
-class CWmWidgetData;
-class CAknStylusPopUpMenu;
-class MEikMenuObserver;
-
-// CLASS DECLARATIONS
-
-/**
- * CWmListItemDrawer
- */
-NONSHARABLE_CLASS( CWmListItemDrawer ): public CFormattedCellListBoxItemDrawer
- {
-public:
- /** Two-phased constructor. */
- static CWmListItemDrawer* NewL(
- CWmPlugin& aWmPlugin,
- MTextListBoxModel* aTextListBoxModel,
- const CFont* aFont,
- CFormattedCellListBoxData* aFormattedCellData,
- CWmListBox* aListBox );
-
- /** Destructor. */
- ~CWmListItemDrawer();
-
- /** Default logo image. */
- const CFbsBitmap* DefaultLogoImage();
- /** Default logo mask. */
- const CFbsBitmap* DefaultLogoMask();
-
-public:
-
- /**
- * from CFormattedCellListBoxItemDrawer:
- * draws a single list box item
- */
- void DrawItem(
- TInt aItemIndex, TPoint aItemRectPos,
- TBool aItemIsSelected, TBool aItemIsCurrent,
- TBool aViewIsEmphasized, TBool aViewIsDimmed ) const;
-
-private:
- /** Constructor for performing 1st stage construction */
- CWmListItemDrawer(
- CWmPlugin& aWmPlugin,
- MTextListBoxModel* aTextListBoxModel,
- const CFont* aFont,
- CFormattedCellListBoxData* aFormattedCellData,
- CWmListBox* aListBox );
-
- /** 2nd phase constructor */
- void ConstructL();
-
- /**
- * re-calculates all rects, sizes and resizes bitmaps, that are
- * stored as members. Called from DrawItem if it is found that the
- * draw area size has changed from previous, resulting all stored
- * rectangles and bitmaps to invalidate.
- * @param aSize requested size of the item being drawn.
- */
- void CalculateRectangles( const TSize& aSize);
-
- /**
- * Draws a frame rectangle for an item.
- * @param aOutterRect outter rectangle.
- * @param aInnerRect inner rectangle.
- * @param aID Skin item id.
- */
- void DrawFrame(
- const TRect& aOutterRect,
- const TRect& aInnerRect,
- const TAknsItemID& aID,
- const TAknsItemID& aCenterID ) const;
-
- /**
- * Draws a rectangle for an item.
- * @param aActualItemRect the rectangular area to be drawn.
- */
- void DrawItemRect( const TRect& aActualItemRect ) const;
-
-private: // data members
-
- /**
- * the plugin root (not owned)
- */
- CWmPlugin& iWmPlugin;
-
- /**
- * pointer to the list box data (not owned)
- */
- CFormattedCellListBoxData* iCellData;
-
- /**
- * pointer to the listbox (not owned)
- */
- CWmListBox* iListBox;
-
- /**
- * current font used in drawing (not owned)
- */
- const CFont* iFont;
-
- /**
- * item size used in calculating all the rects and bitmaps
- */
- TSize iCurrentSize;
-
- /**
- * logo area (relative to item upper left corner)
- */
- TRect iRelativeLogoRect;
-
- /**
- * add button area (relative to item upper left corner)
- */
- TRect iRelativeAddButtonRect;
-
- /**
- * title area (relative to item upper left corner)
- */
- TRect iRelativeTitleRect;
-
- /**
- * add-button bitmap
- */
- CFbsBitmap* iAddWidgetBtnImage;
-
- /**
- * add-button mask
- */
- CFbsBitmap* iAddWidgetBtnMask;
-
- /**
- * default logo (when widget does not have one) bitmap
- */
- CFbsBitmap* iDefaultLogoImage;
-
- /**
- * default logo (when widget does not have one) mask
- */
- CFbsBitmap* iDefaultLogoImageMask;
-
- };
-
-
-
-// CLASS DECLARATIONS
-/**
- * CWmListBox
- */
-NONSHARABLE_CLASS( CWmListBox ): public CAknDouble2LargeStyleListBox,
- public MWmWidgetDataObserver
- {
-public:
-
- /**
- * Two-phased constructor.
- */
- static CWmListBox* NewL(
- CWmPlugin& aWmPlugin,
- const TRect& aRect,
- const CCoeControl* aParent,
- TInt aFlags = 0 );
-
- /** Destructor. */
- ~CWmListBox();
-
-public: // API for manipulating list content
-
- /** Default Logo. */
- const CFbsBitmap* DefaultLogo();
- /** Default Logo mask. */
- const CFbsBitmap* DefaultMask();
-
- /**
- * Findbox visibility
- *
- * @param aVisibility sets find pane visibility
- */
- inline void SetFindPaneIsVisible( TBool aVisibility );
-
- /**
- * Currently selected item index
- *
- * @return return currently selected item
- */
- TInt CurrentListBoxItemIndex();
-
- /**
- * real index for listbox item if findbox is active
- *
- * @return return index from original list for currently selected item
- */
- TInt RealIndex( TInt aIndex );
-
- /**
- * number of items in the widget data array (also items on the list)
- *
- * @return count of widget data array
- */
- inline TInt WidgetDataCount();
-
- /**
- * currently selected item
- * @return the selected item, or NULL if nothing selected
- */
- CWmWidgetData* WidgetData();
-
- /**
- * gets an item by index
- *
- * @param aItemIndex index for item to return
- */
- CWmWidgetData& WidgetData( TInt aItemIndex );
-
- /**
- * gets the constant widget data array
- */
- inline const RWidgetDataValues& WidgetDataArray();
-
- /**
- * inserts widget data to the model. Takes ownership of the object.
- * The widget data will appear to correct location in natural order:
- * - in previously saved position, if it has been viewed before
- * (widget data must have a pointer to persistent widget order)
- * - in case this is a new widget, it will appear topmost
- * - in case there is no persistent widgets order or it is empty,
- * the widget is added in alphabetical order
- *
- * NOTE: caller must call HandleItemAdditionL() for the listbox after
- * adding all widget datas to update the listbox correctly!
- *
- * @param aWidget Data data to add
- */
- void AddWidgetDataL( CWmWidgetData* aWidgetData );
-
- /**
- * removes widget data from given index in the model
- * The method reorganises the list model and size.
- * Drawing is still needed to update the appearance.
- *
- * @param aItemIndex index to remove
- * */
- void RemoveWidgetData( TInt aItemIndex/*, TBool aRedraw = ETrue*/ );
-
- /**
- * requests to redraw item in given index position
- *
- * @param aItemIndex index to redraw
- */
- void RedrawItem( TInt aItemIndex );
-
- /** sort order of widgets in the list */
- enum TSortOrder
- {
- /** sort list as it was on last run */
- EStoredOrder,
- /** sort alphabetically */
- EAlphabetical,
- /** show latest installed first */
- ELatestFirst
- };
-
- /**
- * sets the list sort order
- *
- * @param aOrder sort order
- */
- void SetSortOrderL( TSortOrder aOrder );
-
- /**
- * Responds to layout switched.
- */
- void HandleLayoutChanged();
-
- /**
- * State of pointer down event
- *
- * @return ETrue if pointer is down
- */
- inline TBool PressedDown();
-
- /**
- * Returns size of logo
- *
- * @return Size of logo rect
- */
- TSize LogoSize();
-
-private: // from CEikTextListBox
- /**
- * Creates the item drawer.
- *
- * @see CEikTextListBox::CreateItemDrawerL
- */
- void CreateItemDrawerL();
-
-protected: // from base class CCoeControl
-
- /**
- * Sets the control's extent, specifying a rectangle.
- *
- * @see CCoeControl::SizeChanged
- */
- void SizeChanged();
-
-private: // from base class CCoeControl
-
- /*
- * Draws the control.
- *
- * @see CCoeControl::Draw
- */
- void Draw( const TRect& aRect ) const;
-
- /**
- * Handles pointer events.
- *
- * @see CCoeControl::HandlePointerEventL
- */
- void HandlePointerEventL( const TPointerEvent& aPointerEvent );
-
-private:
- /** Constructor for performing 1st stage construction */
- CWmListBox( CWmPlugin& aWmPlugin );
-
- /** 2nd phase constructor */
- void ConstructL(
- const TRect& aRect,
- const CCoeControl* aParent,
- TInt aFlags );
-
-
-protected: // from MWmWidgetDataObserver
-
- /**
- * widget needs redrawing
- *
- * @param aWidgetData item to redraw
- */
- void HandleWidgetDataChanged( CWmWidgetData* aWidgetData );
-
-private: // own methods
-
- /**
- * linear order for sorting, depending on the sort type being used
- */
- TLinearOrder<CWmWidgetData> SortOrder( TSortOrder aOrder );
-
-private:
-
- /**
- * the plugin root (not owned)
- */
- CWmPlugin& iWmPlugin;
-
- /**
- * array of widget data objects (the list model)
- */
- RWidgetDataValues iWidgetDatas;
-
- /**
- * the currently active item ADD button's rectangle, for push recognition
- */
- TRect iButtonRect;
-
- /**
- * state of list box find pane
- */
- TBool iFindPaneIsVisible;
-
- /**
- * state of pointer pressed down and hold
- */
- TBool iPressedDown;
-
- };
-#include "wmlistbox.inl"
-
-#endif ___WMLISTBOX_H__
-
-// End of File
--- a/widgetmanager/inc/wmlistbox.inl Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Inline function definitions for CWmListBox
-*
-*/
-
-#ifndef WMLISTBOX_INL_
-#define WMLISTBOX_INL_
-
-/**
- * Findbox visibility
- *
- * @param aVisibility sets find pane visibility
- */
- inline void CWmListBox::SetFindPaneIsVisible( TBool aVisibility )
- { iFindPaneIsVisible = aVisibility; }
-
- /**
- * number of items in the widget data array (also items on the list)
- *
- * @return count of widget data array
- */
- inline TInt CWmListBox::WidgetDataCount()
- { return iWidgetDatas.Count(); }
-
- /**
- * gets the constant widget data array
- */
- inline const RWidgetDataValues& CWmListBox::WidgetDataArray()
- { return iWidgetDatas; }
-
-/**
- * State of pointer down event
- *
- * @return ETrue if pointer is down
- */
- inline TBool CWmListBox::PressedDown()
- { return iPressedDown; }
-
-
-#endif /* WMLISTBOX_INL_ */
--- a/widgetmanager/inc/wmmaincontainer.h Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,398 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Declares main container control for Widget Manager application.
-*
-*/
-
-#ifndef WMMAINCONTAINER_H
-#define WMMAINCONTAINER_H
-
-#include <e32base.h>
-#include <e32cmn.h>
-#include <f32file.h>
-#include <coecobs.h>
-#include <coecntrl.h>
-#include <AknsUtils.h>
-#include <gulicon.h>
-#include <eiklbo.h> // MEikListBoxObserver
-
-// FORWARD DECLARATIONS
-class CWmPlugin;
-class CWmListBox;
-class CAknsBasicBackgroundControlContext;
-class CAknViewAppUi;
-class CAknSearchField;
-class CAknButton;
-class CCoeControl;
-class CAknSearchField;
-class CWmWidgetLoaderAo;
-
-/**
- * Container class for WmMainContainer
- *
- * @class CWmMainContainer WmMainContainer.h
- */
-NONSHARABLE_CLASS( CWmMainContainer ) : public CCoeControl,
- public MEikListBoxObserver,
- public MCoeControlObserver
- {
-public: // constructors and destructor
-
- /*
- * Two-phased constructor.
- *
- * @param aRect container rect
- * @param aParent control base class
- * @param aCommandObserver observers respond to user commands
- * @param aWmPlugin wm plugin
- */
- static CWmMainContainer* NewL(
- const TRect& aRect,
- const CCoeControl* aParent,
- MEikCommandObserver* aCommandObserver,
- CWmPlugin& aWmPlugin );
-
- /*
- * Two-phased constructor.
- *
- * @param aRect container rect
- * @param aParent control base class
- * @param aCommandObserver observers respond to user commands
- * @param aWmPlugin wm plugin
- */
- static CWmMainContainer* NewLC(
- const TRect& aRect,
- const CCoeControl* aParent,
- MEikCommandObserver* aCommandObserver,
- CWmPlugin& aWmPlugin );
-
- /** Destructor */
- virtual ~CWmMainContainer();
-
-private:
- CWmMainContainer( CWmPlugin& aWmPlugin );
-
- void ConstructL(
- const TRect& aRect,
- const CCoeControl* aParent,
- MEikCommandObserver* aCommandObserver );
-
-public: // new functions
-
- /**
- * @return true, if portal button is currently selected
- */
- TBool PortalSelected();
-
- /**
- * @return true, if a widget in list is currently selected
- */
- TBool WidgetSelected();
-
- /**
- * @return true, ADD command is possible
- */
- TBool CanDoAdd();
-
- /**
- * @return true, if UNINSTALL command is possible
- */
- TBool CanDoUninstall();
-
- /**
- * @return true, if LAUNCH command is possible
- */
- TBool CanDoLaunch();
-
- /**
- * @return true, if FIND command is possible
- */
- TBool CanDoFind();
-
- /**
- * @return true, if SORT command is possible
- */
- TBool CanDoSort();
-
- /**
- * @return true, if DETAILS command is possible
- */
- TBool CanDoDetails();
-
- /**
- * @return true, if HELP command is possible
- */
- TBool CanDoHelp();
-
- /**
- * executes widget details dialog launch
- */
- void LaunchDetailsDialogL();
-
- /**
- * executes widget addition to home screen
- */
- void AddWidgetToHomeScreenL();
-
- /**
- * executes widget launch
- */
- void LaunchWidgetL();
-
- /**
- * executes findbox activation
- */
- void ActivateFindPaneL();
-
- /**
- * executes findbox deactivation
- */
- void DeactivateFindPaneL();
-
- /**
- * sorts the widget list in alphabetical order
- */
- void SortListAlphabeticallyL();
-
- /**
- * executes widget uninstall
- */
- void UninstallWidgetL();
-
- /**
- * opens OVI portal
- */
- void OpenOviPortalL();
-
- /**
- * Selection key (middle soft key)
- */
- void SelectL();
-
- /**
- * Show widget manager help
- */
- void ShowHelpL();
-
- /**
- * handles situation when widget list has changed.
- * in practice reloads the widget list from the widgets API
- * and redraws the screen.
- */
- void HandleWidgetListChanged();
-
-public:
-
- /**
- * Handles key events.
- *
- * @see CCoeControl::OfferKeyEventL
- */
- TKeyResponse OfferKeyEventL(
- const TKeyEvent& aKeyEvent,
- TEventCode aType );
-
- /**
- * Handles a change to the control's resources
- *
- * @see CCoeControl::HandleResourceChange
- */
- void HandleResourceChange( TInt aType );
-
- /**
- * Handles pointer events.
- *
- * @see CCoeControl::HandlePointerEventL
- */
- void HandlePointerEventL( const TPointerEvent& aPointerEvent );
-
- /**
- * returns whether adding of widget was sucessful or not
- */
- TInt ExitStatus();
-
- /**
- * Sets the exit status to denote the failure or sucess of adding
- * widget to homescreen
- */
- void SetExitStatus( TInt aExitStatus );
-
- /**
- * Moves focus to the OVI button
- */
- void SetFocusToOviButton();
-
- /**
- * Moves focus to the widgets list, alternatively also setting the currently
- * selected item.
- * @param aIndex the item in widgets list to highlight during setting focus.
- * By default the previously selected item will be highlighted.
- */
- void SetFocusToWidgetList( TInt aIndex = KErrUnknown );
-
- /*
- * Tells if user inputs should be handeled or not. If ret is EFalse wm
- * can ignore user inputs. This is becouse closing view is async and user
- * might give some inputs before view is closed.
- */
- TBool ClosingDown();
-
- /*
- * To set iClosingDown. See above.
- */
- void SetClosingDown( TBool aClosingDown );
-
-protected: // from base class CCoeControl
-
- /**
- * Sets the control's extent, specifying a rectangle.
- *
- * @see CCoeControl::SizeChanged
- */
- void SizeChanged();
-
-private: // from base class CCoeControl
-
- /*
- * Draws the control.
- *
- * @see CCoeControl::Draw
- */
- void Draw( const TRect& aRect ) const;
-
- /**
- * Suppy Mop object for control context
- * @param TTypeUid aId
- */
- TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
-
-private: // from MEikListBoxObserver
-
- /**
- * List box observer interface.
- *
- * @see MEikListBoxObserver::HandleListBoxEventL
- */
- void HandleListBoxEventL(
- CEikListBox* aListBox,
- TListBoxEvent aEventType);
-
-private: // from MCoeControlObserver
-
- /**
- * Control observer interface
- *
- * @see MCoeControlObserver::HandleControlEventL
- */
- void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
-
-private: // New functions
-
- void AddControlL( CCoeControl* aControl, TInt aControlId );
- void InitializeControlsL( const TRect& aRect );
- void LayoutControlsL();
- void StartLoadingWidgetsL();
- void RemoveCtrlsFromStack();
- TKeyResponse MoveFocusByKeys(
- const TKeyEvent& aKeyEvent,
- TEventCode aType );
- void UpdateFocusMode();
- CCoeControl* FindChildControlByPoint( const TPoint& aPoint );
- void HandleFindSizeChanged();
-
-private:
-
- /**
- * the plugin root
- */
- CWmPlugin& iWmPlugin;
-
- /**
- * parent control
- */
- const CCoeControl* iParent;
-
- /**
- * the widgets list
- */
- CWmListBox* iWidgetsList;
-
- /**
- * search filed
- */
- CAknSearchField* iFindbox;
-
- /**
- * search filed visibility switch
- */
- TBool iFindPaneIsVisible;
-
- /**
- * background
- */
- CAknsBasicBackgroundControlContext* iBgContext;
-
- /**
- * Ovi portal
- */
- CAknButton* iOviPortal;
-
- /** GUI layout modes */
- enum TWmLayout
- {
- EPortrait,
- ELandscape,
- ELandscapeMirrored
- };
-
- /**
- * current widget manager container layout
- */
- TWmLayout iLayout;
-
- /** focus modes */
- enum TWmFocusMode
- {
- ENowhere,
- EOvi,
- EList,
- EFind
- };
-
- /**
- * current widget manager focus mode
- */
- TWmFocusMode iFocusMode;
-
- /**
- * exit variable to denote sucess or failure of adding widget to hs
- */
- TInt iExitStatus;
-
- /**
- * AO for loading widgets into the list UI
- */
- CWmWidgetLoaderAo* iWidgetLoader;
-
- /**
- * If this is set to ETrue it means wmview is closing and all user inputs
- * should be ignored.
- */
- TBool iClosingDown;
- };
-
-#endif // WMMAINCONTAINER_H
-
-// End of File
--- a/widgetmanager/inc/wmmaincontainerview.h Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Declares main container view for Widget Manager application.
-*
-*/
-
-#ifndef WMMAINCONTAINERVIEW_H
-#define WMMAINCONTAINERVIEW_H
-
-#include <aknview.h>
-
-
-class CWmMainContainer;
-class CWmPlugin;
-
-/**
- * Avkon view class for WmMainContainerView. It is register with the view server
- * by the AppUi. It owns the container control.
- * @class CWmMainContainerView WmMainContainerView.h
- */
-NONSHARABLE_CLASS( CWmMainContainerView ) : public CAknView
- {
-
-public: // constructors and destructor
- /**
- * Two-phased constructor.
- *
- * @param aWmPlugin wm plugin
- */
- static CWmMainContainerView* NewL( CWmPlugin& aWmPlugin );
-
- /**
- * Two-phased constructor.
- *
- * @param aWmPlugin wm plugin
- */
- static CWmMainContainerView* NewLC( CWmPlugin& aWmPlugin );
-
- /** Destructor */
- virtual ~CWmMainContainerView();
-
-
-public: // from base class CAknView
- /**
- * Returns views id, intended for overriding by sub classes.
- *
- * @see CAknView::Id
- */
- TUid Id() const;
-
- /**
- * Command handling function intended for overriding by sub classes.
- *
- * @see CAknView::HandleCommandL
- */
- void HandleCommandL( TInt aCommand );
-
-public:
- /**
- * Creates CWmMainContainer
- */
- CWmMainContainer* CreateContainerL();
-
-private:
- CWmMainContainerView( CWmPlugin& aWmPlugin );
- void ConstructL();
-
-protected: // from base class CAknView
- /**
- * Avkon view architecture system.
- *
- * @see CAknView::DoActivateL
- */
- void DoActivateL(
- const TVwsViewId& aPrevViewId,
- TUid aCustomMessageId,
- const TDesC8& aCustomMessage );
-
- /**
- * View deactivation function intended for overriding by sub classes.
- *
- * @see CAknView::DoActivateL
- */
- void DoDeactivate();
-
- /**
- * Event handler for status pane size changes.
- *
- * @see CAknView::HandleStatusPaneSizeChange
- */
- void HandleStatusPaneSizeChange();
-
-protected: // From MEikMenuObserver
- /*
- * Menu observer interface.
- *
- * @see MEikMenuObserver::DynInitMenuPaneL
- */
- void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane);
-
-private:
-
- /** menu commands */
- TBool HandleOpenMenuItemSelectedL();
- TBool HandleAddMenuItemSelectedL();
- TBool HandleLaunchMenuItemSelectedL();
- TBool HandleSearchMenuItemSelectedL();
- TBool HandleSortAlphaMenuItemSelectedL();
- TBool HandleUninstallMenuItemSelectedL();
- TBool HandleHelpMenuItemSelectedL();
- TBool HandleDetailsMenuItemSelectedL();
- TBool HandleDeactivateFindPaneL();
- /** setup status pane */
- void SetupStatusPaneL();
-
-private:
- /**
- * the container
- */
- CWmMainContainer* iWmMainContainer;
-
- /**
- * the plugin root (not owned)
- */
- CWmPlugin& iWmPlugin;
-
- };
-
-#endif // WMMAINCONTAINERVIEW_H
--- a/widgetmanager/inc/wmpersistentwidgetorder.h Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Defines an ordered list of widget id's with persistence capability
-*
-*/
-
-#ifndef WMPERSISTENTWIDGETORDER_H
-#define WMPERSISTENTWIDGETORDER_H
-
-// INCLUDES
-#include <e32base.h>
-#include "wmwidgetdata.h"
-
-// FORWARD DECLARATIONS
-class RFs;
-
-// CLASS DECLARATION
-/**
- * CWmPersistentWidgetOrder
- * This class is an ordered list of widget identifiers. The list can be
- * serialised and extract from stream and persisted. The list can be used
- * in sorting a pointer array of CWmWidgetData.
- */
-NONSHARABLE_CLASS( CWmPersistentWidgetOrder ) : public CBase
- {
-
-public: // Constructors and destructor
- /**
- * static constructor.
- */
- static CWmPersistentWidgetOrder* NewL( RFs& aFs );
-
- /** Destructor. */
- ~CWmPersistentWidgetOrder();
-
-private: // private construction
-
- /**
- * constructor
- */
- CWmPersistentWidgetOrder( RFs& aFs );
-
- /**
- * 2nd phase constructor
- */
- void ConstructL();
-
-
-public: // API
-
- /**
- * Loads the persistent widget list from storage.
- * This is typically done once after construction.
- */
- void LoadL();
-
- /**
- * Stores a sorted array of WmWidgetData types as the persistent list.
- * The instance can now be used to sort widget data.
- *
- * @param aArray the array of widget daya types
- */
- void StoreL( const RWidgetDataValues& aArray );
-
- /**
- * Retrieves an index of given widget data object within the list.
- * This index can be used to sort and organise.
- *
- * @param aWidgetData data to seek index of in the sorted order
- * @return the index found, or KErrNotFound if widget is new
- */
- TInt IndexOf( const CWmWidgetData& aWidgetData ) const;
-
- /**
- * checks if the persistent widget order is empty. In this case it does
- * not make any sense to use the object to sort anything.
- * Note that before loading the object is always empty.
- */
- TBool IsEmpty() const;
-
-protected:
-
- /**
- * Cleans up the array
- */
- void CleanupArray();
-
- /**
- * build the storage file path and name. The storage file will be located
- * in host process private directory.
- * @param aPathBuf a buffer to receive the complete file path
- */
- void GetStoreFileNameL( TDes& aPathBuf );
-
- /**
- * Unique tag of a widget
- */
- class Tag
- {
- public:
- /** constructs a tag from parameters */
- Tag( TInt32 aUid, HBufC16* aPublisherId );
-
- /** compares a tag agains a widget data */
- TBool Matches( const CWmWidgetData& aWidgetData ) const;
-
- /** widget uid */
- TInt32 iUid;
-
- /** widget publisher id */
- HBufC16* iPublisherId;
- };
-
-private: // data members
-
- /** the file session */
- RFs& iFs;
-
- /** array of widget tags for sorting */
- RArray<Tag> iTagArray;
-
- };
-
-
-#endif // WMPERSISTENTWIDGETORDER_H
--- a/widgetmanager/inc/wmplugin.h Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,162 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* widget manager plugin declaration
-*
-*/
-
-#ifndef __WMPLUGIN_
-#define __WMPLUGIN_
-
-// INCLUDES
-#include <e32base.h>
-#include <vwsdef.h>
-
-#include <hscontentcontrolui.h>
-#include <hscontentcontroller.h>
-#include <hscontentinfo.h>
-
-class CAknViewAppUi;
-class CWmResourceLoader;
-class CWmMainContainerView;
-class CWmMainContainer;
-class CWmEffectManager;
-
-/**
- * CWmPlugin
- */
-NONSHARABLE_CLASS( CWmPlugin ) : public CHsContentControlUi
- {
-public:
-
- /**
- * Two-phased constructor.
- */
- static CWmPlugin* NewL();
-
- /** Destructor */
- ~CWmPlugin();
-
-public: // From MHsContentControlUi
-
- /**
- * shows the widget manager UI
- *
- * @see MHsContentControlUi::Activate
- */
- void Activate();
-
- /**
- * Notifies widget list changes
- *
- * @see MHsContentControlUi::NotifyWidgetListChanged
- */
- void NotifyWidgetListChanged();
-
-public: // plugin services
-
- /**
- * whether widget manager UI is showing
- *
- * @return return ETrue if wm UI is showed
- */
- TBool IsActive();
-
- /**
- * hides widget manager UI
- */
- void Deactivate();
-
- /**
- * main view activated. Sets the previous view ID and main container
- *
- * @param aPreviousViewId
- * @param aWmMainContainer
- */
- void MainViewActivated(
- const TVwsViewId& aPreviousViewId,
- CWmMainContainer* aWmMainContainer );
-
- /**
- * main view was deactivated
- */
- void MainViewDeactivated();
-
- /**
- * the CAknViewAppUi reference
- *
- * @return returns CAknViewAppUi
- */
- inline CAknViewAppUi& ViewAppUi();
-
- /**
- * the resource loader
- *
- * @return returns CWmResourceLoader
- */
- inline CWmResourceLoader& ResourceLoader();
-
- /**
- * the content controller ref
- *
- * @return returns MHsContentController
- */
- inline MHsContentController& ContentController();
-
- /**
- * the shared file server reference
- */
- inline RFs& FileServer();
-
-private: // Construction
- CWmPlugin();
- void ConstructL();
-
-private: // data members
-
- /**
- * the host application view app UI (not owned)
- */
- CAknViewAppUi* iViewAppUi;
-
- /**
- * main container (not owned)
- */
- CWmMainContainer* iWmMainContainer;
-
- /**
- * resource loader
- */
- CWmResourceLoader* iResourceLoader;
-
- /**
- * previous view ID (shown when main view closed)
- */
- TVwsViewId iPreviousViewUid;
-
- /**
- * Takes care of fancy UI effects
- */
- CWmEffectManager* iEffectManager;
-
- /**
- * The file server session
- */
- RFs* iFs;
-
- };
-
-#include "wmplugin.inl"
-#endif // __WMPLUGIN_
-
--- a/widgetmanager/inc/wmplugin.inl Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* widget manager plugin inline defintions
-*
-*/
-
-#ifndef WMPLUGIN_INL_
-#define WMPLUGIN_INL_
-
- /**
- * the CAknViewAppUi reference
- *
- * @return returns CAknViewAppUi
- */
- inline CAknViewAppUi& CWmPlugin::ViewAppUi()
- { return *iViewAppUi; }
-
- /**
- * the resource loader
- *
- * @return returns CWmResourceLoader
- */
- inline CWmResourceLoader& CWmPlugin::ResourceLoader()
- { return *iResourceLoader; }
-
- /**
- * the content controller ref
- *
- * @return returns MHsContentController
- */
- inline MHsContentController& CWmPlugin::ContentController()
- { return *iHsContentController; }
-
- /**
- * the shared file server reference
- */
- inline RFs& CWmPlugin::FileServer()
- { return *iFs; }
-
-
-
-#endif /* WMPLUGIN_INL_ */
--- a/widgetmanager/inc/wmresourceloader.h Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* loads widget manager resources and icons
-*
-*/
-
-
-#ifndef WMRESOURCELOADER_H_
-#define WMRESOURCELOADER_H_
-
-// INCLUDE FILES
-#include <e32base.h>
-
-// FORWARD DECLARATIONS
-class CAknStylusPopUpMenu;
-class CEikonEnv;
-class CAknButton;
-class CAknInformationNote;
-
-/**
- * CWmResourceLoader
- */
-NONSHARABLE_CLASS( CWmResourceLoader ) : public CBase
- {
-
-public: // construction/destruction
- /**
- * static constructor
- *
- * @param aCoeEnv Control environment.
- */
- static CWmResourceLoader* NewL(
- CEikonEnv& aEnv );
-
- /** destructor */
- ~CWmResourceLoader();
-
-public: // services
-
- /**
- * Loads a button from the widgetmanager resource file
- * using CAknButton::ConstructFromResourceL
- *
- * @param aResource handle to the empty button instance
- * @param aResourceId ID of the resource to use in loading
- */
- void LoadButtonL(
- CAknButton& aResource,
- TInt aResourceId );
-
- /**
- * shows a simple info popup with OK button
- * @param aResourceId the resource id of string to be shown
- * @param aString additional string to be replaced into %U
- */
- void InfoPopupL( TInt aResourceId, const TDesC& aString );
-
- /**
- * shows a standard error popup
- * @param aErrorCode a system-wide standard error code
- */
- void ErrorPopup( TInt aErrorCode );
-
- /** icon file path */
- const TDesC& IconFilePath();
-
- /** default no description text */
- const TDesC& NoDescriptionText();
-
-private: // internal methods
-
- /** constructor */
- CWmResourceLoader(
- CEikonEnv& aEnv );
-
- /** 2nd phase constructor */
- void ConstructL();
-
- /** load the resource */
- void LoadResourcesL();
-
- /** free resources */
- void UnloadResources();
-
- /** find icon file path */
- void DetermineIconFilePath();
-
-private: // members
-
- /**
- * the environment
- */
- CEikonEnv& iEnv;
-
- /**
- * name of this DLL
- */
- TFileName iDllName;
-
- /**
- * resource file offset
- */
- TInt iResourceFileOffset;
-
- /**
- * ICON file
- */
- TFileName iMifFile;
-
- /**
- * info note dialog
- */
- CAknInformationNote *iNote;
-
- /**
- * Default description text
- */
- HBufC* iDescription;
- };
-
-#endif // WMRESOURCELOADER_H_
--- a/widgetmanager/inc/wmwidgetdata.h Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,252 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* CWmWidgetData declaration
-*
-*/
-
-
-#ifndef WMWIDGETDATA_H
-#define WMWIDGETDATA_H
-
-// INCLUDES
-#include <e32std.h>
-#include <e32base.h>
-#include <f32file.h>
-#include <bamdesca.h>
-#include <hscontentinfo.h>
-
-#include "wmimageconverter.h"
-
-// FORWARD DECLARATIONS
-class CDictionaryFileStore;
-class MWmWidgetDataObserver;
-class CFbsBitmap;
-class CHsContentInfo;
-class CWmPersistentWidgetOrder;
-class RWidgetRegistryClientSession;
-
-// CLASS DECLARATION
-/**
- * CWmWidgetData is a representation of a widget in CWmListBox. it
- * stores all data required for drawing the item in a list box, and
- * handling the list item.
- */
-NONSHARABLE_CLASS( CWmWidgetData )
- : public CBase
- , public MConverterObserver
- {
-
-public: // types
-
- /** widget type */
- enum TWidgetType
- {
- EUnknown,
- ENative,
- ECps // wrt widgets included in this category
- };
-
-public: // construction
- /**
- * Two-phased constructor.
- * @param aHsContentInfo
- * @param aRegistryClientSession
- */
- static CWmWidgetData* NewL(
- CHsContentInfo& aHsContentInfo,
- RWidgetRegistryClientSession* aRegistryClientSession );
-
- /**
- * Two-phased constructor.
- * @param aHsContentInfo
- * @param aRegistryClientSession
- */
- static CWmWidgetData* NewLC(
- CHsContentInfo& aHsContentInfo,
- RWidgetRegistryClientSession* aRegistryClientSession );
-
- /** Destructor. */
- ~CWmWidgetData();
-
-private: // private construction
- /** Constructor for performing 1st stage construction */
- CWmWidgetData();
-
- /** 2nd phase constructor */
- void ConstructL(
- CHsContentInfo& aHsContentInfo,
- RWidgetRegistryClientSession* aRegistryClientSession );
-
-public: // external handles
-
- /**
- * sets an observer for callbacks
- *
- * @param aObserver notifications when changes occur in widget data
- */
- void SetObserver( MWmWidgetDataObserver* aObserver );
-
- /**
- * persistent widget order handle, which is used in comparing
- */
- void SetPersistentWidgetOrder(
- const CWmPersistentWidgetOrder* aPersistentWidgetOrder );
-
- /**
- * set logo rect size
- */
- void SetLogoSize( const TSize& aSize );
-
- /**
- * Init logo re-creation
- */
- void ReCreateLogo( const TSize& aSize );
-
-public: // comparing / sorting
- /** whether this object represents the same widget as aContentInfo */
- TBool EqualsTo( CHsContentInfo& aContentInfo );
-
- /** comparator function for sort by name (compare two names)*/
- static TInt CompareByName(
- const CWmWidgetData& aDataOne,
- const CWmWidgetData& aDataTwo );
-
- /**
- * comparator function for sorting by stored order
- **/
- static TInt CompareByPersistentWidgetOrder(
- const CWmWidgetData& aDataOne,
- const CWmWidgetData& aDataTwo );
-
-public: // methods to read the content
-
- /** the HsContent info */
- inline CHsContentInfo& HsContentInfo();
-
- /** the HsContent info */
- inline const CHsContentInfo& HsContentInfo() const;
-
- /** widget name */
- inline const TDesC& Name() const;
-
- /** widget description */
- inline const TDesC& Description() const;
-
- /** widget uid */
- inline TUid Uid() const;
-
- /** cps widget publisher id */
- inline const TDesC& PublisherId() const;
-
- /** cps widget publisher uid */
- TUid PublisherUid();
-
- /** widget type */
- inline TWidgetType WidgetType() const;
-
- /** running install animation index */
- inline TInt InstallAnimationIndex() const;
-
- /** the logo bitmap */
- inline const CFbsBitmap* LogoImage();
-
- /** the logo bitmap */
- inline const CFbsBitmap* LogoImageMask();
-
- /** whether the widget data is valid or not */
- inline TBool IsValid();
-
- /** sets the widget data validity */
- inline void SetValid( TBool aValid );
-
-protected: // from MConverterObserver
-
- /** image conversin completed */
- void NotifyCompletion( TInt aError );
-
-private: // new functions
-
- /** fetches publisher uid from widget registry*/
- void FetchPublisherUidL(
- RWidgetRegistryClientSession* aRegistryClientSession );
-
- /** Converts uid to TUid from TDesC8 */
- TUid UidFromString( const TDesC8& aUidString ) const;
-
- /** Logo icon string handling */
- static TInt HandleAsyncIconString( TAny* aPtr );
- void HandleIconStringL( const TDesC& aIconStr );
- void FireDataChanged();
-
-private: // data members
-
- /* instance of the CIdle class for async iconStr handling*/
- CIdle* iIdle;
-
- /* the image converter utility */
- CWmImageConverter* iImageConverter;
-
- /* observes this widget representation (NOT OWNED) */
- MWmWidgetDataObserver* iObserver;
-
- /* rotating animation index */
- TInt iInstallAnimationIndex;
-
- /** the widget logo bitmap */
- CFbsBitmap* iLogoImage;
-
- /** the widget logo mask */
- CFbsBitmap* iLogoImageMask;
-
- /** The CHsContentInfo that corresponds to this list row */
- CHsContentInfo* iHsContentInfo;
-
- /** type oif the widget */
- TWidgetType iWidgetType;
-
- /** persistent order of widgets (used in sorting) */
- const CWmPersistentWidgetOrder* iPersistentWidgetOrder;
-
- /** wrt widget publisher uid */
- TUid iPublisherUid;
-
- /** size of logo rect in list item */
- TSize iLogoSize;
-
- /** validity of the widget - used during list refresh */
- TBool iValid;
-
- };
-
-
-/**
- * Pointer array of widget data objects.
- * Also acts as an adapter to a descriptor array, providing the
- * widget names as descriptor array elements.
- */
-NONSHARABLE_CLASS( RWidgetDataValues ) : public RPointerArray<CWmWidgetData>,
- public MDesCArray
- {
- protected: // from MDesCArray
- /** returns number of items in the pointer array */
- inline TInt MdcaCount() const;
-
- /** returns the pointed widget name */
- inline TPtrC16 MdcaPoint(TInt aIndex) const;
-
- };
-
-#include "wmwidgetdata.inl"
-#endif // WMWIDGETDATA_H
--- a/widgetmanager/inc/wmwidgetdata.inl Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* CWmWidgetData , RWidgetDataValues inline function definitions
-*
-*/
-
-#ifndef WMWIDGETDATA_INL_
-#define WMWIDGETDATA_INL_
-
- /** the HsContent info */
- inline CHsContentInfo& CWmWidgetData::HsContentInfo()
- { return *iHsContentInfo; }
-
- /** the HsContent info */
- inline const CHsContentInfo& CWmWidgetData::HsContentInfo() const
- { return *iHsContentInfo; }
-
- /** widget name */
- inline const TDesC& CWmWidgetData::Name() const
- { return iHsContentInfo->Name(); }
-
- /** widget description */
- inline const TDesC& CWmWidgetData::Description() const
- { return iHsContentInfo->Description(); }
-
- /** widget uid */
- inline TUid CWmWidgetData::Uid() const
- { return UidFromString( iHsContentInfo->Uid() ); };
-
- /** cps widget publisher id */
- inline const TDesC& CWmWidgetData::PublisherId() const
- { return iHsContentInfo->PublisherId(); }
-
- /** widget type */
- inline CWmWidgetData::TWidgetType CWmWidgetData::WidgetType() const
- { return iWidgetType; }
-
- /** running install animation index */
- inline TInt CWmWidgetData::InstallAnimationIndex() const
- { return iInstallAnimationIndex; }
-
- /** the logo bitmap */
- inline const CFbsBitmap* CWmWidgetData::LogoImage()
- { return iLogoImage; }
-
- /** the logo bitmap */
- inline const CFbsBitmap* CWmWidgetData::LogoImageMask()
- { return iLogoImageMask; }
-
- /** whether the widget data is valid or not */
- inline TBool CWmWidgetData::IsValid()
- { return iValid; }
-
- /** sets the widget data validity */
- inline void CWmWidgetData::SetValid( TBool aValid )
- { iValid = aValid; }
-
-
- //From RWidgetDataValues
-
- /** returns number of items in the pointer array */
- inline TInt RWidgetDataValues::MdcaCount() const
- {
- return Count();
- }
- /** returns the pointed widget name */
- inline TPtrC16 RWidgetDataValues::MdcaPoint(TInt aIndex) const
- {
- const TPtrC16 ptr( (*this)[aIndex]->Name() );
- return ptr;
- }
-
-#endif /* WMWIDGETDATA_INL_ */
--- a/widgetmanager/inc/wmwidgetdataobserver.h Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Observer for changes in the widget data
-*
-*/
-
-
-#ifndef WMWIDGETDATAOBSERVER_H
-#define WMWIDGETDATAOBSERVER_H
-
-// INCLUDES
-#include <e32std.h>
-
-// Forward declarations
-class CWmWidgetData;
-
-// CLASS DECLARATION
-
-/**
- * Observer class for receiving notifications
- * when changes occur in widget data
- */
-NONSHARABLE_CLASS( MWmWidgetDataObserver )
- {
- public:
- /**
- * A single widget data has changed.
- * @param aWidgetData pointer to the data where change
- * has occurred
- */
- virtual void HandleWidgetDataChanged(
- CWmWidgetData* aWidgetData ) = 0;
-
- };
-
-#endif // WMWIDGETDATAOBSERVER_H
--- a/widgetmanager/inc/wmwidgetloaderao.h Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,125 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* CWmIconFileProvider declaration
-*
-*/
-
-#ifndef WMWIDGETLOADERAO_H_
-#define WMWIDGETLOADERAO_H_
-
-// INCLUDES
-#include <e32base.h>
-
-// FORWARD DECLARATIONS
-class CWmPlugin;
-class CWmListBox;
-class CHsContentInfo;
-class CWmWidgetData;
-class CWmPersistentWidgetOrder;
-class RWidgetRegistryClientSession;
-
-// CLASS DECLARATIONS
-
-/**
- * CWmWidgetLoaderAo
- */
-NONSHARABLE_CLASS( CWmWidgetLoaderAo ) : public CAsyncOneShot
- {
-
-public:
- /**
- * Static constructor
- */
- static CWmWidgetLoaderAo* NewL(
- CWmPlugin& aWmPlugin,
- CWmListBox& aTargetList );
-
- /**
- * Destructor.
- */
- ~CWmWidgetLoaderAo();
-
- /**
- * Starts the load process by activating the AO
- */
- void StartLoading();
-
-private:
-
- /**
- * Constructor
- */
- CWmWidgetLoaderAo(
- CWmPlugin& aWmPlugin,
- CWmListBox& aTargetList );
-
- /**
- * 2nd phase constructor
- */
- void ConstructL();
-
-protected: // from CActive
-
- /**
- * AO body
- */
- void RunL();
-
- /**
- * AO error handler
- */
- TInt RunError( TInt aError );
-
-private:
-
- /**
- * loads widgets into the listbox
- */
- void DoLoadWidgetsL();
-
- /**
- * finds a widget data entry from iWidgetsList that matches
- * given content info. returns a pointer to the data found,
- * or NULL if not found
- */
- CWmWidgetData* FindWidgetData( CHsContentInfo& aContentInfo );
-
- /**
- * adds a widget data entry to iWidgetsList
- */
- void AddWidgetDataL( CHsContentInfo& aContentInfo );
-
- /**
- * cleanup resources allocated runing one single run
- */
- void Cleanup();
-
-private: // data
-
- /** reference to the widget manager root */
- CWmPlugin& iWmPlugin;
-
- /** target where widgets are to be loaded */
- CWmListBox& iWidgetsList;
-
- /** widget registry */
- RWidgetRegistryClientSession* iWidgetRegistry;
-
- /** persistent widget order */
- CWmPersistentWidgetOrder* iWidgetOrder;
-
- };
-
-#endif // WMWIDGETLOADERAO_H_
--- a/widgetmanager/rom/widgetmanager.iby Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* widgetmanager binaries
-*/
-
-#ifndef WIDGETMANAGER_IBY
-#define WIDGETMANAGER_IBY
-
-// widgetmanager plugin
-ECOM_PLUGIN( widgetmanager.dll, widgetmanager.rsc )
-
-// widgetmanager icons
-data=DATAZ_\resource\apps\widgetmanager.mif \resource\apps\widgetmanager.mif
-
-// widgetmanager stub sis
-data=ZSYSTEM\install\widgetmanager_stub.sis system\install\widgetmanager_stub.sis
-
-#endif // WIDGETMANAGER_IBY
-
--- a/widgetmanager/rom/widgetmanager_resources.iby Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* widgetmanager resource binaries
-*/
-
-#ifndef WIDGETMANAGER_RESOURCES_IBY
-#define WIDGETMANAGER_RESOURCES_IBY
-
-// widgetmanager resources
-data=DATAZ_\resource\widgetmanagerview.rsc \resource\widgetmanagerview.rsc
-
-#endif // WIDGETMANAGER_RESOURCES_IBY
-
--- a/widgetmanager/sis/Create_update_sisx.bat Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-rem
-rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-rem All rights reserved.
-rem This component and the accompanying materials are made available
-rem under the terms of "Eclipse Public License v1.0"
-rem which accompanies this distribution, and is available
-rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-rem
-rem Initial Contributors:
-rem Nokia Corporation - initial contribution.
-rem
-rem Contributors:
-rem
-rem Description:
-rem
-
-rem Change dll versions for IAD update
-call elftran.exe -version 1.2 \epoc32\release\armv5\urel\widgetmanager.dll
-call elftran.exe -version 1.2 \epoc32\release\armv5\udeb\widgetmanager.dll
-
-rem Create wm sis&sisx files
-makesis widgetmanager_udeb.pkg
-signsis widgetmanager_udeb.SIS widgetmanager_udeb.SISX Nokia_RnDCert_02.der Nokia_RnDCert_02.key
-makesis widgetmanager_urel.pkg
-signsis widgetmanager_urel.SIS widgetmanager_urel.SISX Nokia_RnDCert_02.der Nokia_RnDCert_02.key
-
-rem Create wm stubsis file
-makesis -s widgetmanager_stub.pkg
\ No newline at end of file
Binary file widgetmanager/sis/Nokia_RnDCert_02.der has changed
--- a/widgetmanager/sis/Nokia_RnDCert_02.key Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIICXQIBAAKBgQC/TDP7KKIaf5+uW4OD2iVZuUMC2a+SeQTjf6srlKcOm+CpPNXn
-uLNm/8fdEnyOIuRXPRKmqhs1n0JkxEGHynELWMTuKXbQx9SRAGUXzyneGn+IJNnO
-vOKHWgKCouX2hfI8rtkdqJpqmO460gGsMgw+lsbeyWyW9lnfLxq+ZC7sqQIDAQAB
-AoGBALmUWZE8GBaQ3P4u9WUCSd3DJkkrmXIFSULSZeH/chlwCwDjbbhArHothVzo
-REE3hEFFlERvHbplZ+mNouzy7boduvgUzbksGrbGMLJ2qO1GzWWVwV+GzOWKd3ss
-/98Gwoy5R8pjnkqUE2wP1iJFw0FjvUTKcYv/z6t3LLJ0CsoBAkEA+c7ixvsviQ3J
-s0INytCKU2bf8fqFQJi1VI82ukxNsujGTQ9upVSjuvqPvWyDvvTdrUBHqO+3qPut
-sEh01Q8aiQJBAMQKDJPVRu4ud3mwUfEavzL5EjqwG1k9VCNGYsT4FwtrHcxu1oP/
-pk6M3rIZukqomoEEnHWPMwhrK3fhBqi0OSECQQDr40VXege4FnH5OI2Hj4afHMyp
-VdQQXGMWFyopnzXblFz0lXb43cTCIiorR9XcMqNFHybLypkWE5o+lRzlt55pAkBQ
-P/zeF5Sts//cpL0mgdh7OVKpC6ZmZaCnwAx2rUhhuDu+kDDoYCLoTOps5fNI1LRK
-1GRoC3LMo3Jr5IYhUYWBAkBpCpN6k4JU/mszq98EojHerQNxk8sPqvQKUzTutohT
-1gLX9yepGayB/TtT2EEJDkWOlnTy/dvN6W3vzbJYz97x
------END RSA PRIVATE KEY-----
--- a/widgetmanager/sis/backup_registration.xml Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-<?xml version="1.0" standalone="yes"?>
-<backup_registration>
- <system_backup/>
- <restore requires_reboot = "no"/>
-</backup_registration>
--- a/widgetmanager/sis/widgetmanager_stub.pkg Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-;
-; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-; All rights reserved.
-; This component and the accompanying materials are made available
-; under the terms of "Eclipse Public License v1.0"
-; which accompanies this distribution, and is available
-; at the URL "http://www.eclipse.org/legal/epl-v10.html".
-;
-; Initial Contributors:
-; Nokia Corporation - initial contribution.
-;
-; Contributors:
-;
-; Description: widgetmanager_stub.pkg
-;
-
-;Language - standard language definitions
-&EN
-
-; standard SIS file header
-#{"Widget Manager"},(0x20026F53),1,0,0,TYPE=SA
-
-;Localized Vendor name
-%{"Nokia"}
-
-;Unique Vendor name
-:"Nokia"
-
Binary file widgetmanager/sis/widgetmanager_stub.sis has changed
--- a/widgetmanager/sis/widgetmanager_udeb.pkg Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-;
-; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-; All rights reserved.
-; This component and the accompanying materials are made available
-; under the terms of "Eclipse Public License v1.0"
-; which accompanies this distribution, and is available
-; at the URL "http://www.eclipse.org/legal/epl-v10.html".
-;
-; Initial Contributors:
-; Nokia Corporation - initial contribution.
-;
-; Contributors:
-;
-; Description: widgetmanager.pkg
-;
-
-;Language - standard language definitions
-&EN
-
-; standard SIS file header
-#{"Widget Manager"},(0x20026F53),1,2,2,TYPE=SA,RU
-
-;Localised Vendor name
-%{"Nokia"}
-
-;Unique Vendor name
-:"Nokia"
-
-;Supports Series 60 v 5.0
-[0x1028315F], 0, 0, 0, {"S60ProductID"}
-
-;We need to force update to be installed to c-drive
-;becouse we are part of the homescreen. If update was installed to memcard
-;homescreen will be closed when memcard is removed.
-
-; widgetmanager plugin and plugin resource
-"\epoc32\release\armv5\udeb\widgetmanager.dll" -"C:\sys\bin\widgetmanager.dll"
-"\epoc32\data\z\resource\plugins\widgetmanager.rsc" -"C:\resource\plugins\widgetmanager.rsc"
-
-; widgetmanager resource file
-"\epoc32\data\z\resource\widgetmanagerview.rsc" -"C:\resource\widgetmanagerview.rsc"
-
-; widgetmanager icons
-"\epoc32\data\z\resource\apps\widgetmanager.mif" -"C:\resource\apps\widgetmanager.mif"
-
--- a/widgetmanager/sis/widgetmanager_urel.pkg Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-;
-; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-; All rights reserved.
-; This component and the accompanying materials are made available
-; under the terms of "Eclipse Public License v1.0"
-; which accompanies this distribution, and is available
-; at the URL "http://www.eclipse.org/legal/epl-v10.html".
-;
-; Initial Contributors:
-; Nokia Corporation - initial contribution.
-;
-; Contributors:
-;
-; Description: widgetmanager.pkg
-;
-
-;Language - standard language definitions
-&EN
-
-; standard SIS file header
-#{"Widget Manager"},(0x20026F53),1,2,2,TYPE=SA,RU
-
-;Localised Vendor name
-%{"Nokia"}
-
-;Unique Vendor name
-:"Nokia"
-
-;Supports Series 60 v 5.0
-[0x1028315F], 0, 0, 0, {"S60ProductID"}
-
-;We need to force update to be installed to c-drive
-;becouse we are part of the homescreen. If update was installed to memcard
-;homescreen will be closed when memcard is removed.
-
-; widgetmanager plugin and plugin resource
-"\epoc32\release\armv5\urel\widgetmanager.dll" -"C:\sys\bin\widgetmanager.dll"
-"\epoc32\data\z\resource\plugins\widgetmanager.rsc" -"C:\resource\plugins\widgetmanager.rsc"
-
-; widgetmanager resource file
-"\epoc32\data\z\resource\widgetmanagerview.rsc" -"C:\resource\widgetmanagerview.rsc"
-
-; widgetmanager icons
-"\epoc32\data\z\resource\apps\widgetmanager.mif" -"C:\resource\apps\widgetmanager.mif"
-
--- a/widgetmanager/src/wmdetailsdlg.cpp Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,525 +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:
-* Implementation of the widget details dlg for WidgetManager
-*
-*/
-
-// INCLUDE FILES
-#include <gdi.h>
-#include <eikrted.h> // for CRichTextEditor
-#include <txtrich.h> // for CRichText
-#include <AknUtils.h> // for AknUtils
-#include <AknsUtils.h> // MAknsSkinInstance
-#include <AknsDrawUtils.h> // AknsDrawUtils
-#include <applayout.cdl.h> //layout
-#include <layoutmetadata.cdl.h>
-#include <aknlayoutscalable_avkon.cdl.h>
-#include <aknlayoutscalable_apps.cdl.h>
-#include <AknsBasicBackgroundControlContext.h>
-
-#include <widgetmanagerview.rsg>
-#include "widgetmanager.hrh"
-#include "wmdetailsdlg.h"
-
-
-// CONSTANTS
-
-
-// MEMBER FUNCTIONS
-
-// ---------------------------------------------------------
-// FullScreenRect
-// rectangle representing the screen
-// ---------------------------------------------------------
-//
-TRect FullScreenRect()
- {
- TRect screen;
- CCoeEnv* env = CCoeEnv::Static();
- if ( env )
- {
- CWsScreenDevice* screenDevice = env->ScreenDevice();
- if ( screenDevice )
- screen.SetRect( TPoint(0,0), screenDevice->SizeInPixels() );
- }
- return screen;
- }
-
-// ---------------------------------------------------------
-// CWmDetailsDlg::NewL
-// ---------------------------------------------------------
-//
-CWmDetailsDlg* CWmDetailsDlg::NewL(
- const TDesC& aName,
- const TDesC& aDescription,
- TBool aCanBeAdded,
- const CFbsBitmap* aLogoBmp,
- const CFbsBitmap* aLogoMask,
- CAknsBasicBackgroundControlContext* aBgContext )
- {
- CWmDetailsDlg* self = new ( ELeave ) CWmDetailsDlg( aCanBeAdded );
- CleanupStack::PushL( self );
- self->ConstructL( aName, aDescription, aLogoBmp, aLogoMask, aBgContext );
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------
-// CWmDetailsDlg::CWmDetailsDlg
-// ---------------------------------------------------------
-//
-CWmDetailsDlg::CWmDetailsDlg( TBool aCanBeAdded )
- : CAknDialog(),
- iCanBeAdded( aCanBeAdded )
- {
- iBorder = TGulBorder::ERaisedControl;
- }
-
-// ---------------------------------------------------------
-// CWmDetailsDlg::~CWmDetailsDlg
-// ---------------------------------------------------------
-//
-CWmDetailsDlg::~CWmDetailsDlg()
- {
- iEikonEnv->RemoveFromStack( iRtEditor );
- iEikonEnv->RemoveFromStack( this );
- delete iRtEditor;
- delete iName;
- delete iDescription;
- delete iLogoBmp;
- delete iLogoMask;
- }
-
-// -----------------------------------------------------------------------------
-// CWmDetailsDlg::ExecuteLD
-// -----------------------------------------------------------------------------
-//
-TInt CWmDetailsDlg::ExecuteLD()
- {
- if ( iCanBeAdded )
- {
- return CAknDialog::ExecuteLD( R_WM_DETAILS_ADD_DIALOG );
- }
- else
- {
- return CAknDialog::ExecuteLD( R_WM_DETAILS_ONLY_DIALOG );
- }
- }
-
-// ---------------------------------------------------------
-// CWmDetailsDlg::ConstructL
-// ---------------------------------------------------------
-//
-void CWmDetailsDlg::ConstructL(
- const TDesC& aName,
- const TDesC& aDescription,
- const CFbsBitmap* aLogoBmp,
- const CFbsBitmap* aLogoMask,
- CAknsBasicBackgroundControlContext* aBgContext )
- {
- if ( !aLogoBmp )
- {
- User::Leave( KErrArgument );
- }
-
- CAknDialog::ConstructL( R_AVKON_DIALOG_EMPTY_MENUBAR );
-
- iBgContext = aBgContext;
- iName = aName.AllocL();
- iDescription = aDescription.AllocL();
-
- // create bitmap and duplicate handle
- iLogoBmp = new ( ELeave ) CFbsBitmap;
- TSize newSize = TSize( aLogoBmp->SizeInPixels().iWidth ,
- aLogoBmp->SizeInPixels().iHeight );
- User::LeaveIfError( iLogoBmp->Create( newSize, aLogoBmp->DisplayMode() ) );
- User::LeaveIfError( iLogoBmp->Duplicate( aLogoBmp->Handle() ) );
-
- if ( aLogoMask )
- {
- iLogoMask = new ( ELeave ) CFbsBitmap;
- newSize = TSize( aLogoMask->SizeInPixels().iWidth ,
- aLogoMask->SizeInPixels().iHeight );
- User::LeaveIfError( iLogoMask->Create( newSize, aLogoMask->DisplayMode() ) );
- User::LeaveIfError( iLogoMask->Duplicate( aLogoMask->Handle() ) );
- }
-
- iEikonEnv->AddWindowShadow( static_cast<CCoeControl*>(this) );
- }
-
-// -----------------------------------------------------------------------------
-// CWmDetailsDlg::OkToExitL
-// -----------------------------------------------------------------------------
-//
-TBool CWmDetailsDlg::OkToExitL( TInt aButtonId )
- {
- if ( aButtonId == ECbaAddToHs ||
- aButtonId == EAknSoftkeyClose )
- {
- // Close dlg
- return ETrue;
- }
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CWmDetailsDlg::PreLayoutDynInitL
-// -----------------------------------------------------------------------------
-//
-void CWmDetailsDlg::PreLayoutDynInitL()
- {
- iRtEditor = new(ELeave) CEikRichTextEditor();
- iRtEditor->ConstructL( this,
- 0,
- 0,
- CEikEdwin::EReadOnly |
- CEikEdwin::ENoAutoSelection |
- CEikEdwin::EAvkonDisableCursor |
- CEikEdwin::EDisplayOnly );
- iRtEditor->SetContainerWindowL(*this);
- iRtEditor->SetAknEditorFlags(
- EAknEditorFlagEnableScrollBars |
- EEikEdwinAvkonDisableCursor |
- EEikEdwinDisplayOnly |
- EEikEdwinReadOnly );
-
- iRtEditor->SetSkinBackgroundControlContextL( iBgContext );
-
- CEikScrollBarFrame* scrollBarFrame = iRtEditor->CreateScrollBarFrameL();
- scrollBarFrame->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff,
- CEikScrollBarFrame::EOff );
-
- InsertAndFormatContentL();
- iRtEditor->UpdateScrollBarsL();
- }
-
-//------------------------------------------------------------------------------
-// CWmDetailsDlg::InsertAndFormatContentL
-//------------------------------------------------------------------------------
-//
-void CWmDetailsDlg::InsertAndFormatContentL()
- {
- CRichText* richText = iRtEditor->RichText();
- const TInt KMinTxtLength = 100;
-
- richText->Reset();
- if ( iDescription->Des().Length() <= KMinTxtLength )
- {
- richText->InsertL( richText->DocumentLength(),
- CEditableText::ELineBreak );
- }
- richText->InsertL( richText->DocumentLength(), *iDescription );
-
- // change the color of the text according to the skin color
- TRgb color = KRgbBlack;
- MAknsSkinInstance* skin = AknsUtils::SkinInstance();
- AknsUtils::GetCachedColor(skin, color, KAknsIIDQsnTextColors,
- EAknsCIQsnTextColorsCG6 );
-
- // Format text
- iRtEditor->SetSelectionL( 0, richText->DocumentLength() );
-
- // Get a logical font to base my font on:
- const CFont* logicalFont = AknLayoutUtils::FontFromId(EAknLogicalFontPrimarySmallFont);
- // Extract font information
- TFontSpec fontspec = logicalFont->FontSpecInTwips();
- TCharFormat charFormat(fontspec.iTypeface.iName, fontspec.iHeight);
- TCharFormatMask charFormatMask;
- CParaFormat paraFormat;
- TParaFormatMask paraFormatMask;
- paraFormat.iHorizontalAlignment = CParaFormat::EJustifiedAlign;
- charFormat.iFontPresentation.iTextColor = color;
- paraFormatMask.SetAttrib(EAttAlignment);
- charFormatMask.SetAttrib(EAttFontTypeface);
- charFormatMask.SetAttrib(EAttFontHeight);
- charFormatMask.SetAttrib(EAttColor);
- iRtEditor->ApplyParaFormatL(¶Format, paraFormatMask);
- iRtEditor->ApplyCharFormatL(charFormat, charFormatMask);
- iRtEditor->ClearSelectionL();
- }
-
-//------------------------------------------------------------------------------
-// CWmDetailsDlg::CountComponentControls
-//------------------------------------------------------------------------------
-//
-TInt CWmDetailsDlg::CountComponentControls() const
- {
- return iRtEditor ? 1 : 0;
- }
-
-//------------------------------------------------------------------------------
-// CWmDetailsDlg::ComponentControl
-//------------------------------------------------------------------------------
-//
-CCoeControl* CWmDetailsDlg::ComponentControl(TInt aIndex) const
- {
- switch (aIndex)
- {
- case 0:
- return iRtEditor;
- default:
- return NULL;
- }
- }
-
-//------------------------------------------------------------------------------
-// CWmDetailsDlg::ActivateL
-//------------------------------------------------------------------------------
-//
-void CWmDetailsDlg::ActivateL()
- {
- CAknDialog::ActivateL();
- iEikonEnv->EikAppUi()->AddToStackL( this, ECoeStackPriorityDialog );
- iEikonEnv->EikAppUi()->AddToStackL( iRtEditor );
- iRtEditor->SetFocus( ETrue );
- }
-
-// -----------------------------------------------------------------------------
-// CWmDetailsDlg::WmDetailsDialogRect
-// -----------------------------------------------------------------------------
-//
-TRect CWmDetailsDlg::WmDetailsDialogRect()
- {
- TRect mainPane, dlgRect;
- TPoint topLeft;
- TInt desiredW, desiredH;
- AknLayoutUtils::LayoutMetricsRect(
- AknLayoutUtils::EApplicationWindow, mainPane );
-
- if ( Layout_Meta_Data::IsLandscapeOrientation() )
- {
- desiredW = ( mainPane.Width() - (mainPane.Width()/4) );
- desiredH = ( mainPane.Height() - (mainPane.Height()/5) );
- topLeft.iX = ( ( mainPane.Width() - desiredW ) /2);
- topLeft.iY = ( ( mainPane.Height() - desiredH ) /2);
- dlgRect.SetRect( topLeft, TSize( desiredW, desiredH ) );
- }
- else
- {
- desiredH = ( mainPane.Height() - (mainPane.Height()/4) );
- desiredW = ( mainPane.Width() - (mainPane.Width()/5) );
- topLeft.iX = ( ( mainPane.Width() - desiredW ) /2);
- topLeft.iY = ( ( mainPane.Height() - desiredH ) /2);
- dlgRect.SetRect( topLeft, TSize( desiredW, desiredH ) );
- }
- return dlgRect;
- }
-
-// -----------------------------------------------------------------------------
-// CWmDetailsDlg::SetSizeAndPosition
-// -----------------------------------------------------------------------------
-//
-void CWmDetailsDlg::SetSizeAndPosition( const TSize& /*aSize*/ )
- {
- SetRect( WmDetailsDialogRect() );
- }
-
-// -----------------------------------------------------------------------------
-// CWmDetailsDlg::SizeChanged
-// -----------------------------------------------------------------------------
-//
-void CWmDetailsDlg::SizeChanged()
- {
- CAknDialog::SizeChanged();
- TRect rect = Rect();
- if ( iBgContext ) { iBgContext->SetRect( FullScreenRect() ); }
- if ( iRtEditor )
- {
- const TInt offSet = 5;
- TRect cbaRect;
- AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EControlPane, cbaRect );
-
- TInt logoH = iLogoBmp->SizeInPixels().iHeight;
-
- TInt height, width;
- if ( Layout_Meta_Data::IsLandscapeOrientation() )
- {
- height = ( (rect.Height() - logoH) - (cbaRect.Height() * 2) - offSet );
- }
- else
- {
- height = ( (rect.Height() - logoH) - (cbaRect.Height() * 1.5) - offSet );
- }
-
- width = ( rect.Width() - (CEikScrollBar::DefaultScrollBarBreadth() * 4 ) - offSet );
- TPoint point = TPoint( rect.iTl.iX + offSet, rect.iTl.iY + logoH + offSet );
- TSize size = TSize( width, height );
- iRtEditor->SetRect( TRect( point, size ) );
- TRAP_IGNORE(
- iRtEditor->SetSkinBackgroundControlContextL( iBgContext );
- InsertAndFormatContentL(); );
- }
- }
-
-// ----------------------------------------------------------------------------
-// CWmDetailsDlg::SupplyMopObject
-// ----------------------------------------------------------------------------
-//
-TTypeUid::Ptr CWmDetailsDlg::MopSupplyObject( TTypeUid aId )
- {
- if ( aId.iUid == MAknsControlContext::ETypeId )
- {
- return MAknsControlContext::SupplyMopObject( aId, iBgContext );
- }
- return CAknDialog::MopSupplyObject( aId );
- }
-
-// ----------------------------------------------------------------------------
-// CWmDetailsDlg::OfferKeyEventL
-// ----------------------------------------------------------------------------
-//
-TKeyResponse CWmDetailsDlg::OfferKeyEventL( const TKeyEvent& aKeyEvent,TEventCode aType )
- {
- if (aType == EEventKey)
- {
- switch (aKeyEvent.iCode)
- {
- case EKeyEscape:
- {
- // framework calls this when dialog must shut down
- return CAknDialog::OfferKeyEventL( aKeyEvent, aType );
- }
- case EKeyDownArrow:
- {
- if ( iRtEditor )
- {
- iRtEditor->MoveCursorL(TCursorPosition::EFPageDown, EFalse);
- return EKeyWasConsumed;
- }
- }
- case EKeyUpArrow:
- {
- if ( iRtEditor )
- {
- iRtEditor->MoveCursorL(TCursorPosition::EFPageUp, EFalse);
- return EKeyWasConsumed;
- }
- }
- default:
- {
- if ( iRtEditor )
- {
- return iRtEditor->OfferKeyEventL( aKeyEvent, aType );
- }
- break;
- }
- }
- }
- return CAknDialog::OfferKeyEventL( aKeyEvent, aType);
- }
-
-// -----------------------------------------------------------------------------
-// CWmDetailsDlg::Draw
-// -----------------------------------------------------------------------------
-//
-void CWmDetailsDlg::Draw( const TRect& /*aRect*/ ) const
- {
- CWindowGc& gc = SystemGc();
- TRect rect = Rect();
- TRect innerRect( rect );
- TRgb color = KRgbBlack;
- const TInt offSet = 5;
-
- MAknsSkinInstance* skin = AknsUtils::SkinInstance();
- MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
-
- // draw background
- if ( !AknsDrawUtils::Background( skin, cc, this, gc, innerRect ) )
- {
- gc.SetPenStyle( CGraphicsContext::ENullPen );
- gc.SetBrushStyle( CGraphicsContext::ENullBrush );
- gc.SetBrushColor( AKN_LAF_COLOR( 0 ) );
- gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
- gc.DrawRect( innerRect );
- gc.SetBrushStyle( CGraphicsContext::ENullBrush );
- }
-
- // to fix scrollbar background issue in richtext editor
- if ( iRtEditor )
- {
- MAknsControlContext* ccRte = AknsDrawUtils::ControlContext( iRtEditor );
- AknsDrawUtils::Background( skin, ccRte, iRtEditor, gc, iRtEditor->Rect() );
- }
-
- // draw logo
- TRect bmpRect( TPoint(0,0), TSize( iLogoBmp->SizeInPixels() ) );
- TPoint point = TPoint( innerRect.iTl.iX + offSet,
- innerRect.iTl.iY + offSet );
-
- if ( iLogoBmp && iLogoMask )
- {
- gc.BitBltMasked( point, iLogoBmp,
- bmpRect, iLogoMask, ETrue );
- }
- else
- {
- gc.BitBlt( point, iLogoBmp, bmpRect );
- }
-
- // draw name
- point.iX += (bmpRect.Width() + offSet);
-
- AknsUtils::GetCachedColor(
- skin, color,
- KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6 );
-
- // DRAW TEXT
- const CFont* font = AknLayoutUtils::FontFromId( EAknLogicalFontPrimaryFont );
- gc.UseFont( font );
- gc.SetPenColor( color );
- gc.SetPenStyle( CGraphicsContext::ESolidPen );
- point.iY += (bmpRect.Height() - (font->HeightInPixels() /2 ) );
- CGraphicsContext::TDrawTextParam param;
-
- HBufC* buf = iName->Des().Alloc();
- if ( buf )
- {
- TPtr bufPtr = buf->Des();
- TextUtils::ClipToFit( bufPtr, *font, (innerRect.Width() - point.iX ) );
- gc.DrawText( bufPtr ,point, param );
- delete buf;
- }
- else
- {
- gc.DrawText( *iName ,point, param );
- }
-
- gc.DiscardFont();
-
- // draw the rounded rectangle as border
- const TInt KFrameRoundRadius = 3;
- 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 );
- }
-
-// End of File
-
--- a/widgetmanager/src/wmeffectmanager.cpp Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,157 +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: Effect manager.
-*
-*/
-
-
-// SYSTEM INCLUDE FILES
-#include <eikapp.h>
-#include <aknappui.h>
-#include <gfxtranseffect/gfxtranseffect.h> // For transition effects
-#include <akntranseffect.h> // For transition effects
-
-// INCLUDE FILES
-#include "wmeffectmanager.h"
-
-// CONSTANTS
-const TInt KEffectTypeFullscreen = 1;
-
-const TInt KWaitForLayout = 1;
-const TInt KEffectStarted = 2;
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// C++ default constructor.
-// -----------------------------------------------------------------------------
-//
-CWmEffectManager::CWmEffectManager( CCoeEnv& aCoeEnv ): iCoeEnv (aCoeEnv)
- {
- }
-
-// -----------------------------------------------------------------------------
-// Symbian 2nd phase constructor.
-// -----------------------------------------------------------------------------
-//
-void CWmEffectManager::ConstructL()
- {
- }
-
-// -----------------------------------------------------------------------------
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CWmEffectManager* CWmEffectManager::NewL( CCoeEnv& aCoeEnv )
- {
- CWmEffectManager* self = new (ELeave) CWmEffectManager( aCoeEnv );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CWmEffectManager::~CWmEffectManager()
- {
- GfxTransEffect::AbortFullScreen();
- iEffects.ResetAndDestroy();
- }
-
-// -----------------------------------------------------------------------------
-// CWmEffectManager::BeginFullscreenEffectL
-// -----------------------------------------------------------------------------
-//
-void CWmEffectManager::BeginFullscreenEffectL( TInt aId )
- {
- TWmEffect* effect = new (ELeave) TWmEffect;
- CleanupStack::PushL( effect );
- effect->iId = aId;
- effect->iType = KEffectTypeFullscreen;
- effect->iState = KWaitForLayout;
- iEffects.Append( effect );
-
- CleanupStack::Pop( effect );
-
- DoBeginFullscreenEffect( *effect );
- }
-
-// -----------------------------------------------------------------------------
-// CWmEffectManager::UiRendered
-// -----------------------------------------------------------------------------
-//
-void CWmEffectManager::UiRendered()
- {
- for ( TInt i = 0; i < iEffects.Count(); )
- {
- TWmEffect* effect = iEffects[i];
- if ( effect && effect->iState == KEffectStarted )
- {
- GfxTransEffect::EndFullScreen();
- RemoveEffect( effect );
- }
- else
- {
- // RemoveEffect() will remove from iEffects array and
- // thats why we need to have conter in else
- i++;
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CWmEffectManager::DoBeginFullscreenEffect
-// -----------------------------------------------------------------------------
-//
-void CWmEffectManager::DoBeginFullscreenEffect( TWmEffect& aEffect )
- {
- if ( iCoeEnv.WsSession().GetFocusWindowGroup() !=
- iCoeEnv.RootWin().Identifier() )
- {
- // Window group is not focused
- RemoveEffect( &aEffect );
- return;
- }
-
- const TInt flags( AknTransEffect::TParameter::EActivateExplicitCancel );
- const TUid targetAppUid( iAvkonAppUi->Application()->AppDllUid() );
-
- // Set effect begin point
- GfxTransEffect::BeginFullScreen( aEffect.iId , iAvkonAppUi->ClientRect(),
- AknTransEffect::EParameterType, AknTransEffect::GfxTransParam(
- targetAppUid, flags ) );
-
- aEffect.iState = KEffectStarted;
- }
-
-// -----------------------------------------------------------------------------
-// CXnEffectManager::RemoveEffect
-// -----------------------------------------------------------------------------
-//
-void CWmEffectManager::RemoveEffect( TWmEffect* aEffect )
- {
- TInt index = iEffects.Find( aEffect );
- if ( index != KErrNotFound )
- {
- TWmEffect* temp = iEffects[index];
- iEffects.Remove( index );
- delete temp;
- }
- }
-
-// End fo file
-
--- a/widgetmanager/src/wmiconfileprovider.cpp Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* CWmIconFileProvider implementation.
-*
-*/
-
-#include "wmcommon.h"
-#include "wmiconfileprovider.h"
-
-// ---------------------------------------------------------------------------
-// CWmIconFileProvider::CWmIconFileProvider
-// ---------------------------------------------------------------------------
-//
-CWmIconFileProvider::CWmIconFileProvider( RFs& aFs )
- :iFs( aFs )
- {
- }
-
-// ---------------------------------------------------------------------------
-// CWmIconFileProvider::~CWmIconFileProvider
-// ---------------------------------------------------------------------------
-//
-CWmIconFileProvider::~CWmIconFileProvider()
- {
- }
-
-// ---------------------------------------------------------------------------
-// CWmIconFileProvider::SetIconFile
-// ---------------------------------------------------------------------------
-//
-void CWmIconFileProvider::SetIconFile( const TDesC& aFileName )
- {
- iFileName.Copy( aFileName );
- }
-
-// ---------------------------------------------------------------------------
-// CWmIconFileProvider::NewL
-// ---------------------------------------------------------------------------
-//
-CWmIconFileProvider* CWmIconFileProvider::NewL( RFs& aFs )
- {
- CWmIconFileProvider* self = new (ELeave) CWmIconFileProvider( aFs );
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(); // self
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CWmIconFileProvider::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CWmIconFileProvider::ConstructL()
- {
- }
-
-// ---------------------------------------------------------------------------
-// CWmIconFileProvider::RetrieveIconFileHandleL
-// ---------------------------------------------------------------------------
-//
-void CWmIconFileProvider::RetrieveIconFileHandleL(
- RFile& aFile,
- const TIconFileType /*aType*/ )
- {
- User::LeaveIfError( aFile.Open( iFs, iFileName, EFileShareAny ) );
- }
-
-// ---------------------------------------------------------------------------
-// CWmIconFileProvider::Finished
-// ---------------------------------------------------------------------------
-//
-void CWmIconFileProvider::Finished()
- {
- }
-
-// end of file
-
--- a/widgetmanager/src/wmimageconverter.cpp Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,874 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* CWmImageConverter implementation
-*
-*/
-
-#include <fbs.h>
-#include <eikdef.h>
-#include <eikenv.h>
-#include <bautils.h>
-#include <imageconversion.h>
-#include <bitmaptransforms.h>
-#include <AknIconUtils.h>
-#include <AknsSkinInstance.h>
-#include <AknsUtils.h>
-#include <avkon.mbg>
-#include <apgcli.h>
-#include <SVGEngineInterfaceImpl.h>
-#include <WidgetRegistryConstants.h> // KWidgetUidLowerBound, KWidgetUidUpperBound
-
-#include "wmiconfileprovider.h"
-#include "wmimageconverter.h"
-
-_LIT( KSkin, "skin" );
-_LIT( KMif, "mif" );
-_LIT( KUid, "uid" );
-_LIT( KColon, ":" );
-_LIT( KSvgExt, ".svg" );
-_LIT( KHexPrefix, "0x" );
-const TUint KLeftParenthesis = '(';
-
-// ---------------------------------------------------------
-// CWmImageConverter::NewL
-// ---------------------------------------------------------
-//
-CWmImageConverter* CWmImageConverter::NewL( MConverterObserver* aObserver )
- {
- CWmImageConverter* self =
- new(ELeave) CWmImageConverter();
- CleanupStack::PushL( self );
- self->ConstructL( aObserver );
- CleanupStack::Pop(self);
- return self;
- }
-
-// ---------------------------------------------------------
-// CWmImageConverter::CWmImageConverter
-// ---------------------------------------------------------
-//
-CWmImageConverter::CWmImageConverter()
- : CActive( EPriorityStandard )
- {
- iState = EIdle;
- iBitmap = NULL;
- iMask = NULL;
- iObserver = NULL;
- iConversionMethod = EUnrecognized;
- CActiveScheduler::Add( this );
- }
-
-// ---------------------------------------------------------
-// CWmImageConverter::ConstructL
-// ---------------------------------------------------------
-//
-void CWmImageConverter::ConstructL( MConverterObserver* aObserver )
- {
- User::LeaveIfError( iFs.Connect() );
- iFs.ShareProtected();
- iIconFileProvider = CWmIconFileProvider::NewL( iFs );
- iScaler = CBitmapScaler::NewL();
- iObserver = aObserver;
- }
-
-// ---------------------------------------------------------
-// CWmImageConverter::~CWmImageConverter
-// ---------------------------------------------------------
-//
-CWmImageConverter::~CWmImageConverter()
- {
- Cancel();
- delete iImageDecoder;
- iFs.Close();
- if (iBitmap)
- {
- delete iBitmap;
- iBitmap = NULL;
- }
- if (iMask)
- {
- delete iMask;
- iMask = NULL;
- }
- delete iScaler;
- delete iIconFileProvider;
- }
-
-// ---------------------------------------------------------
-// CWmImageConverter::HandleIconStringL
-// ---------------------------------------------------------
-//
-void CWmImageConverter::HandleIconStringL(
- TInt aWidth, TInt aHeight,
- const TDesC& aIconStr )
- {
- if ( aIconStr.Length() )
- {
- TAknsItemID skinItemId;
- skinItemId.iMajor = 0;
- skinItemId.iMinor = 0;
- TInt bitmapId( KErrNotFound );
- TInt maskId( KErrNotFound );
- TUid appUid;
- iFilename = KNullDesC;
- iScaleNeeded = EFalse;
- iSize.SetSize( aWidth, aHeight );
-
- if ( ResolveSkinIdAndMifId(
- aIconStr, skinItemId, bitmapId, maskId, iFilename ) )
- {
- if ( bitmapId >= 0 && skinItemId.iMajor > 0 )
- iConversionMethod = ESkinAndMifIcon;
- else if ( bitmapId >= 0 )
- iConversionMethod = EMifIcon;
- else
- iConversionMethod = ESkinIcon;
- CreateSkinOrMifIconL(
- skinItemId, bitmapId, maskId, iFilename );
- }
- else if ( ResolveUid( aIconStr, appUid ) )
- {
- iConversionMethod = EUidIcon;
- CreateIconFromUidL( appUid );
- }
- else if ( EndsWith( aIconStr, KSvgExt ) )
- {
- // filename_with_full_path.svg
- iConversionMethod = ESvgIcon;
- CreateIconFromSvgL( aIconStr );
- }
- else if ( BaflUtils::FileExists( iFs, aIconStr ) )
- {
- // filename_with_full_path.png/jpg
- iConversionMethod = EImageIcon;
- CreateIconFromOtherL( aIconStr );
- }
- else
- {
- iConversionMethod = EUnrecognized;
- User::Leave( KErrArgument );
- }
- }
- }
-
-// ---------------------------------------------------------
-// CWmImageConverter::CreateIconFromUidL
-// ---------------------------------------------------------
-//
-void CWmImageConverter::CreateIconFromUidL( const TUid& aUid )
- {
- CFbsBitmap* bitmap = NULL;
- CFbsBitmap* mask = NULL;
-
- if ( aUid.iUid >= KWidgetUidLowerBound &&
- aUid.iUid < KWidgetUidUpperBound )
- {
- // AknsUtils::CreateAppIconLC panics incase of WRT
-
- RApaLsSession lsSession;
- User::LeaveIfError( lsSession.Connect() );
- CleanupClosePushL( lsSession );
-
- CArrayFixFlat<TSize>* sizeArray = new (ELeave) CArrayFixFlat<TSize>(3);
- CleanupStack::PushL( sizeArray );
- User::LeaveIfError( lsSession.GetAppIconSizes( aUid, *sizeArray ) );
- TInt sizeCount = sizeArray->Count();
- TSize size;
- if ( sizeCount > 0 )
- {
- for( TInt i=0; i < sizeArray->Count(); i++ )
- {
- size = (*sizeArray)[i];
- if ( size == iSize )
- {
- break;
- }
- }
- }
- CApaMaskedBitmap* maskedBmp = CApaMaskedBitmap::NewLC();
- User::LeaveIfError( lsSession.GetAppIcon( aUid, size, *maskedBmp ) );
- iBitmap = static_cast<CFbsBitmap*>( maskedBmp ); // ownership transfered
-
- iMask = new ( ELeave ) CFbsBitmap;
- User::LeaveIfError( iMask->Create(
- maskedBmp->Mask()->SizeInPixels(),
- maskedBmp->Mask()->DisplayMode() ) );
- // duplicate mask, origional is owned by maskedBmp
- iMask->Duplicate( maskedBmp->Mask()->Handle() );
- CleanupStack::Pop( maskedBmp );
- maskedBmp = NULL;
- CleanupStack::PopAndDestroy(sizeArray);
- CleanupStack::PopAndDestroy( &lsSession );
-
- // scale or notify
- if ( size == iSize )
- {
- iObserver->NotifyCompletion( KErrNone );
- }
- else
- {
- iScaleNeeded = ETrue;
- ScaleBitmap( iSize.iWidth, iSize.iHeight );
- }
- }
- else if ( aUid.iUid != KNullUid.iUid )
- {
- MAknsSkinInstance* skin = AknsUtils::SkinInstance();
- TInt err( KErrNone );
- TRAP( err,
- {
- AknsUtils::CreateAppIconLC( skin, aUid,
- EAknsAppIconTypeContext, bitmap, mask );
- CleanupStack::Pop( 2 ); // for trap
- }
- );
-
- if( KErrNone != err )
- {
- // If icon is not created, try to create default application icon
- AknsUtils::CreateIconLC( skin,
- KAknsIIDQgnMenuUnknownLst, bitmap, mask,
- AknIconUtils::AvkonIconFileName(),
- EMbmAvkonQgn_menu_unknown_lst,
- EMbmAvkonQgn_menu_unknown_lst_mask );
- CleanupStack::Pop( 2 ); // for trap
- }
-
- iBitmap = bitmap;
- iMask = mask;
-
- err = AknIconUtils::SetSize( iBitmap , iSize, EAspectRatioNotPreserved );
- if ( KErrNone == err )
- {
- err = AknIconUtils::SetSize( iMask , iSize, EAspectRatioNotPreserved );
- }
-
- // notify observer
- iObserver->NotifyCompletion( err );
- }
- else
- {
- User::Leave( KErrArgument );
- }
- }
-
-// ---------------------------------------------------------
-// CWmImageConverter::CreateIconFromSvgL
-// ---------------------------------------------------------
-//
-void CWmImageConverter::CreateIconFromSvgL( const TDesC& aFileName )
- {
- TInt domHandle;
- CFbsBitmap* dummyBitmap = new ( ELeave ) CFbsBitmap;
- CleanupStack::PushL( dummyBitmap );
-
- dummyBitmap->Create( TSize( 0, 0 ), EGray2 );
- TFontSpec fontSpec;
- CSvgEngineInterfaceImpl* svgEngine =
- CSvgEngineInterfaceImpl::NewL( dummyBitmap, NULL, fontSpec );
- CleanupStack::PushL( svgEngine );
-
- svgEngine->SetBackgroundColor( 0 );
- svgEngine->SetDRMMode( EFalse );
-
- User::LeaveIfError( svgEngine->PrepareDom(
- aFileName, domHandle )->SystemErrorCode() );
-
- iBitmap = new ( ELeave ) CFbsBitmap;
-
- User::LeaveIfError( iBitmap->Create( iSize, EColor16M ) );
-
- iMask = new ( ELeave ) CFbsBitmap;
- User::LeaveIfError( iMask->Create( iSize, EGray256 ) );
-
- svgEngine->UseDom( domHandle, iBitmap, iMask );
- svgEngine->SetPreserveAspectRatio( NULL, ESvgPreserveAspectRatio_XmidYmid,
- ESvgMeetOrSlice_Meet, ETrue );
- svgEngine->SetSvgDimensionToFrameBuffer(
- iSize.iWidth, iSize.iHeight );
-
- svgEngine->Start();
-
- if ( iBitmap->SizeInPixels() != iSize ||
- svgEngine->ContentDimensions() != iSize )
- {
- iScaleNeeded = ETrue;
- ScaleBitmap( iSize.iWidth, iSize.iHeight );
- }
- else
- {
- // notify observer
- iObserver->NotifyCompletion( KErrNone );
- }
-
- svgEngine->UseDom( domHandle, NULL, NULL );
- svgEngine->DeleteDom( domHandle );
-
- CleanupStack::PopAndDestroy( 2, dummyBitmap ); // dummyBitmap, svgEngine
- }
-
-// ---------------------------------------------------------
-// CWmImageConverter::CreateIconFromOtherL
-// ---------------------------------------------------------
-//
-void CWmImageConverter::CreateIconFromOtherL( const TDesC& aFileName )
- {
- if ( IsActive() || iState != EIdle )
- {
- User::Leave( KErrNotReady );
- }
-
- if ( iImageDecoder ) delete iImageDecoder; iImageDecoder = NULL;
- if (iBitmap) {delete iBitmap; iBitmap = NULL;}
- if (iMask) {delete iMask; iMask = NULL;}
-
- iFilename.Copy( aFileName );
-
- // create the decoder
- iImageDecoder = CImageDecoder::FileNewL( iFs, iFilename );
-
- TSize size = iImageDecoder->FrameInfo().iOverallSizeInPixels;
-
- // create the destination bitmap
- iBitmap = new (ELeave) CFbsBitmap();
- iBitmap->Create( size,
- iImageDecoder->FrameInfo().iFrameDisplayMode );
-
- iMask = new (ELeave) CFbsBitmap();
- iMask->Create( size, EGray256 );
-
- if ( size != iSize )
- {
- iScaleNeeded = ETrue;
- }
- // start conversion to bitmap
- iState = EDecoding;
- iImageDecoder->Convert( &iStatus, *iBitmap, *iMask );
- SetActive();
- }
-
-// ---------------------------------------------------------
-// CWmImageConverter::DoCancel
-// ---------------------------------------------------------
-//
-void CWmImageConverter::DoCancel()
- {
- if( iState == EDecoding )
- {
- iImageDecoder->Cancel();
- if ( iObserver )
- {
- iObserver->NotifyCompletion( KErrCancel );
- }
- }
- else if( iState == EScalingBitmap ||
- iState == EScalingMask )
- {
- iScaler->Cancel();
- if ( iObserver )
- {
- iObserver->NotifyCompletion( KErrCancel );
- }
- }
- else
- {
- // State is EIdle, do nothing
- }
- iState = EIdle;
- iScaleNeeded = EFalse;
- }
-
-// ---------------------------------------------------------
-// CWmImageConverter::RunL
-// ---------------------------------------------------------
-//
-void CWmImageConverter::RunL()
- {
- switch( iState )
- {
- case EDecoding:
- {
- if( iStatus.Int() == KErrNone )
- {
- if ( iScaleNeeded )
- {
- ScaleBitmap( iSize.iWidth, iSize.iHeight );
- }
- else
- {
- iState = EIdle;
- if ( iObserver )
- {
- iObserver->NotifyCompletion( KErrNone );
- }
- }
- break;
- }
- else if( iStatus.Int() == KErrUnderflow )
- {
- iImageDecoder->ContinueConvert( &iStatus );
- SetActive();
- break;
- }
- else if ( iStatus.Int() == KErrCorrupt )
- {
- iState = EIdle;
- iScaleNeeded = EFalse;
- if ( iBitmap )
- {
- delete iBitmap;
- iBitmap = NULL;
- }
- if ( iMask )
- {
- delete iMask;
- iMask = NULL;
- }
- if ( iObserver )
- {
- iObserver->NotifyCompletion( KErrCorrupt );
- }
- break;
- }
- else
- {
- // Unknown error
- iState = EIdle;
- iScaleNeeded = EFalse;
- if ( iBitmap )
- {
- delete iBitmap;
- iBitmap = NULL;
- }
- if ( iMask )
- {
- delete iMask;
- iMask = NULL;
- }
- if ( iObserver )
- {
- iObserver->NotifyCompletion( iStatus.Int() );
- }
- break;
- }
- }
- case EScalingBitmap:
- {
- if( iStatus.Int() == KErrNone && iMask )
- {
- ScaleMask( iSize.iWidth, iSize.iHeight );
- }
- else
- {
- iState = EIdle;
- iScaleNeeded = EFalse;
- if ( iObserver )
- {
- iObserver->NotifyCompletion( iStatus.Int() );
- }
- }
- break;
- }
- case EScalingMask:
- {
- iState = EIdle;
- iScaleNeeded = EFalse;
- if ( iObserver )
- {
- iObserver->NotifyCompletion( iStatus.Int() );
- }
- break;
- }
- default:
- break;
- }
- }
-
-// ---------------------------------------------------------
-// CWmImageConverter::RunError
-// ---------------------------------------------------------
-//
-TInt CWmImageConverter::RunError(TInt /*aError*/)
- {
- // Our RunL does not contain any method calls that would leave, so this method
- // should never be called.
- iScaleNeeded = EFalse;
- return KErrNone;
- }
-
-// ---------------------------------------------------------
-// CWmImageConverter::ScaleBitmap
-// ---------------------------------------------------------
-//
-void CWmImageConverter::ScaleBitmap( TInt aWidth, TInt aHeight )
- {
- if ( !IsActive() &&
- iBitmap &&
- ( iState == EDecoding || iState == EIdle ) )
- {
- // the maintain aspect ratio is by default set to true
- iScaler->Scale( &iStatus, *iBitmap, TSize( aWidth,aHeight ), EFalse );
- iState = EScalingBitmap;
- SetActive();
- }
- }
-
-// ---------------------------------------------------------
-// CWmImageConverter::ScaleMask
-// ---------------------------------------------------------
-//
-void CWmImageConverter::ScaleMask( TInt aWidth, TInt aHeight )
- {
- if ( !IsActive() &&
- iState == EScalingBitmap &&
- iMask )
- {
- // the maintain aspect ratio is by default set to true
- iScaler->Scale( &iStatus, *iMask, TSize(aWidth,aHeight), EFalse );
- iState = EScalingMask;
- SetActive();
- }
- }
-
-// ---------------------------------------------------------
-// CWmImageConverter::Bitmap
-// ---------------------------------------------------------
-//
-CFbsBitmap* CWmImageConverter::Bitmap()
- {
- CFbsBitmap* bitmap = NULL;
- if (iState == EIdle &&
- iBitmap )
- {
- bitmap = iBitmap; // ownership taken
- iBitmap = NULL;
- }
- return bitmap;
- }
-
-// ---------------------------------------------------------
-// CWmImageConverter::Mask
-// ---------------------------------------------------------
-//
-CFbsBitmap* CWmImageConverter::Mask()
- {
- CFbsBitmap* mask = NULL;
- if (iState == EIdle &&
- iMask )
- {
- mask = iMask; // ownership taken
- iMask = NULL;
- }
- return mask;
- }
-
-// ---------------------------------------------------------
-// CWmImageConverter::EndsWith
-// ---------------------------------------------------------
-//
-TBool CWmImageConverter::EndsWith( const TDesC& aString,
- const TDesC& aPattern )
- {
- return ( aString.Right( aPattern.Length() ) == aPattern );
- }
-
-// ---------------------------------------------------------------------------
-// CWmImageConverter::ResolveUid
-// ---------------------------------------------------------------------------
-//
-TBool CWmImageConverter::ResolveUid(
- const TDesC& aPath, TUid& aUid )
- {
- // Syntax: uid(0x12345678)
- TInt error = KErrNotFound;
- TInt pos = aPath.FindF( KUid );
- if( pos == 0 )
- {
- // Skip skin token
- pos += KUid().Length();
-
- // Initialize lexer
- TLex lex( aPath.Mid( pos ) );
-
- // Check left parenthesis
- if ( lex.Get() == KLeftParenthesis )
- {
- lex.SkipSpaceAndMark();
- lex.SkipCharacters();
-
- TPtrC mtoken = lex.MarkedToken();
- pos = mtoken.FindF( KHexPrefix );
- if ( pos == 0 )
- {
- TLex lex( mtoken.Mid( KHexPrefix().Length() ) );
- TUint id = 0;
- error = lex.Val( id, EHex );
- aUid = TUid::Uid( (TInt)id );
- }
- else
- {
- TInt id( 0 );
- error = lex.Val( id );
- aUid.iUid = id;
- }
- }
- }
-
- return (error == KErrNone );
- }
-
-// ---------------------------------------------------------------------------
-// CWmImageConverter::ResolveSkinId
-// ---------------------------------------------------------------------------
-//
-TBool CWmImageConverter::ResolveSkinId(
- const TDesC& aPath, TAknsItemID& aItemId )
- {
- // Syntax: skin(major minor)
- TInt error = KErrNotFound;
- TInt pos = aPath.FindF( KSkin );
- if( pos == 0 )
- {
- // Skip skin token
- pos += KSkin().Length();
-
- // Initialize lexer
- TLex lex( aPath.Mid( pos ) );
-
- lex.SkipSpaceAndMark();
- // Check left parenthesis
- if ( lex.Get() == KLeftParenthesis )
- {
- pos++;
- TLex lex( aPath.Mid( pos ) );
- lex.SkipSpaceAndMark();
-
- TPtrC mtoken = lex.MarkedToken();
- pos = mtoken.FindF( KHexPrefix );
- if ( pos == 0 )
- {
- TUint majorId( 0 );
- TUint minorId( 0 );
- lex.Assign( mtoken.Mid( KHexPrefix().Length() ) );
- error = lex.Val( majorId, EHex );
- lex.SkipSpace();
- lex.SkipAndMark( KHexPrefix().Length() );
- error |= lex.Val( minorId, EHex );
- aItemId.Set( majorId, minorId );
- }
- else
- {
- TInt majorId(0);
- TInt minorId(0);
- error = lex.Val( majorId );
- lex.SkipSpace();
- error |= lex.Val( minorId );
- aItemId.Set( majorId, minorId );
- }
- }
- }
-
- return (error == KErrNone );
- }
-
-// ---------------------------------------------------------------------------
-// CWmImageConverter::ResolveMifId
-// ---------------------------------------------------------------------------
-//
-TBool CWmImageConverter::ResolveMifId(
- const TDesC& aPath, TInt& aBitmapId,
- TInt& aMaskId, TDes& aFileName )
- {
- // Syntax: mif(filename bimapId maskId)
- TInt error = KErrNotFound;
- TInt pos = aPath.FindF( KMif );
- if( pos == 0 )
- {
- // Skip mif token
- pos += KMif().Length();
- // Initialize lexer
- TLex lex( aPath.Mid( pos ) );
-
- // Check left parenthesis
- if ( lex.Get() == KLeftParenthesis )
- {
- lex.SkipSpaceAndMark();
- lex.SkipCharacters();
- // Resolve MifFile name
- aFileName.Copy(lex.MarkedToken());
- if( aFileName.Length()!= 0)
- {
- // Resolve bitmap id
- lex.SkipSpace();
- error = lex.Val( aBitmapId );
-
- // Resolve mask id
- // dont return error if it is not found, that is ok
- lex.SkipSpace();
- lex.Val( aMaskId );
- }
- else
- {
- error = KErrNotFound;
- }
- }
- }
- return (error == KErrNone );
- }
-
-// ---------------------------------------------------------------------------
-// CWmImageConverter::ResolveSkinIdAndMifId
-// ---------------------------------------------------------------------------
-//
-TBool CWmImageConverter::ResolveSkinIdAndMifId(
- const TDesC& aPath, TAknsItemID& aItemId,
- TInt& aBitmapId, TInt& aMaskId, TDes& aFileName )
- {
- // Syntax: skin(major minor):mif(filename bimapId maskId)
- TBool result = ResolveSkinId( aPath, aItemId );
- if ( result )
- {
- TInt pos = aPath.FindF( KColon );
- if ( pos != KErrNotFound )
- {
- TPtrC ptr = aPath.Mid( pos+1 );
- result = ResolveMifId( ptr, aBitmapId, aMaskId, aFileName );
- }
- }
- else
- {
- result = ResolveMifId( aPath, aBitmapId, aMaskId, aFileName );
- }
- return result;
- }
-
-// ---------------------------------------------------------------------------
-// CWmImageConverter::CreateSkinOrMifIconL
-// ---------------------------------------------------------------------------
-//
-void CWmImageConverter::CreateSkinOrMifIconL(
- const TAknsItemID& aItemId, TInt aBitmapId,
- TInt aMaskId, const TDesC& aFileName )
- {
- iIconFileProvider->SetIconFile( aFileName );
-
- CFbsBitmap* bitmap = NULL;
- CFbsBitmap* mask = NULL;
-
- // Load from skin
- MAknsSkinInstance* skin = AknsUtils::SkinInstance();
- if ( skin && aItemId.iMajor != 0 && aItemId.iMinor != 0 )
- {
- TInt err( KErrNone );
- CAknsMaskedBitmapItemData* itemData = NULL;
- TRAP( err, itemData =
- static_cast<CAknsMaskedBitmapItemData*>(
- skin->CreateUncachedItemDataL( aItemId, EAknsITMaskedBitmap ) ); );
- if( itemData && KErrNone == err )
- {
- CleanupStack::PushL( itemData );
- // Detach bitmaps
- bitmap = itemData->Bitmap();
- itemData->SetBitmap( NULL );
- mask = itemData->Mask();
- itemData->SetMask( NULL );
- CleanupStack::PopAndDestroy( itemData );
- }
- else
- {
- // look in imagetable
- CAknsImageTableItemData* iconData = NULL;
- TRAP( err, iconData = static_cast<CAknsImageTableItemData*>(
- skin->CreateUncachedItemDataL( aItemId, EAknsITImageTable ) ); );
- if( iconData && KErrNone == err )
- {
- CleanupStack::PushL( iconData );
- if( iconData->NumberOfImages() )
- {
- TAknsItemID iconIId;
- iconIId.Set( iconData->ImageIID(0) );
- TRAP( err, AknsUtils::CreateIconL(
- skin, iconIId, bitmap, mask, KNullDesC, -1, -1 ); );
- }
- CleanupStack::PopAndDestroy( iconData );
- }
- }
-
- if ( KErrNone == err && bitmap )
- {
- TInt err = AknIconUtils::SetSize( bitmap , iSize, EAspectRatioNotPreserved );
- if ( KErrNone == err )
- {
- if ( mask )
- {
- err = AknIconUtils::SetSize( mask , iSize, EAspectRatioNotPreserved );
- }
- iBitmap = bitmap;
- iMask = mask;
- // notify observer
- iObserver->NotifyCompletion( KErrNone );
- return;
- }
- else
- {
- if ( bitmap ) { delete bitmap; bitmap = NULL; }
- if ( mask ){ delete mask; mask = NULL; }
- }
- }
- }
-
- if( aBitmapId != KErrNotFound && !bitmap &&
- aFileName.Length() && BaflUtils::FileExists( iFs, aFileName ) )
- {
- if ( aMaskId != KErrNotFound )
- {
- // Create icon from Mif filename , bitmap id and mask id
- AknIconUtils::CreateIconL(
- bitmap, mask, *iIconFileProvider, aBitmapId, aMaskId );
- }
- else
- {
- bitmap = AknIconUtils::CreateIconL( *iIconFileProvider, aBitmapId );
- }
- }
- else
- {
- User::Leave( KErrArgument );
- }
-
- iBitmap = bitmap;
- iMask = mask;
-
- TInt err = AknIconUtils::SetSize( iBitmap , iSize, EAspectRatioNotPreserved );
- if ( KErrNone == err )
- {
- err = AknIconUtils::SetSize( iMask , iSize, EAspectRatioNotPreserved );
- }
-
- // notify observer
- iObserver->NotifyCompletion( err );
- }
-
-// ---------------------------------------------------------------------------
-// CWmImageConverter::ConversionMethod()
-// ---------------------------------------------------------------------------
-//
-CWmImageConverter::TConversionMethod CWmImageConverter::ConversionMethod()
- {
- return iConversionMethod;
- }
-
-// End of file
-
--- a/widgetmanager/src/wmlistbox.cpp Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,678 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Implementation of the widget listbox for WidgetManager
-*
-*/
-
-// INCLUDE FILES
-#include <coemain.h>
-#include <StringLoader.h>
-#include <aknstyluspopupmenu.h>
-#include <AknsDrawUtils.h>
-#include <AknsFrameBackgroundControlContext.h>
-#include <AknsListBoxBackgroundControlContext.h>
-
-#include <widgetmanagerview.rsg>
-#include <widgetmanager.mbg>
-#include "wmcommon.h"
-#include "wmplugin.h"
-#include "wmresourceloader.h"
-#include "wmlistbox.h"
-#include "wmwidgetdata.h"
-
-// CONSTANTS
-const TInt KFrameRoundRadius = 4;
-const TInt KFocusFrameWidth = 2;
-const TInt KLeftMarginBig = 5;
-const TInt KRightMargin = 1;
-const TInt KTopTextMargin = 2;
-const TInt KRightTextMargin = 3;
-const TInt KRightMarginBig = 5;
-const TInt KTopMargin = 1;
-const TInt KTopMarginBig = 5;
-const TInt KBottomMargin = 1;
-const TInt KBottomMarginBig = 5;
-const TInt KLogoWidth = 55;
-const TInt KLogoHeight = 55;
-
-// MEMBER FUNCTIONS
-
-// ---------------------------------------------------------
-// CWmListItemDrawer::NewL
-// ---------------------------------------------------------
-//
-CWmListItemDrawer* CWmListItemDrawer::NewL(
- CWmPlugin& aWmPlugin,
- MTextListBoxModel* aTextListBoxModel,
- const CFont* aFont,
- CFormattedCellListBoxData* aFormattedCellData,
- CWmListBox* aListBox )
- {
- CWmListItemDrawer* self = new ( ELeave ) CWmListItemDrawer(
- aWmPlugin,
- aTextListBoxModel,
- aFont,
- aFormattedCellData,
- aListBox );
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-// ---------------------------------------------------------
-// CWmListItemDrawer::CWmListItemDrawer
-// ---------------------------------------------------------
-//
-CWmListItemDrawer::CWmListItemDrawer(
- CWmPlugin& aWmPlugin,
- MTextListBoxModel* aTextListBoxModel,
- const CFont* aFont,
- CFormattedCellListBoxData* aFormattedCellData,
- CWmListBox* aListBox )
- : CFormattedCellListBoxItemDrawer( aTextListBoxModel,aFont,aFormattedCellData ),
- iWmPlugin( aWmPlugin )
- {
- iCellData = aFormattedCellData;
- iListBox = aListBox;
- iFont = aFont;
- }
-
-// ---------------------------------------------------------
-// CWmListItemDrawer::ConstructL
-// ---------------------------------------------------------
-//
-void CWmListItemDrawer::ConstructL()
- {
- SetSkinEnabledL( ETrue );
-
- AknsUtils::CreateIconL(
- AknsUtils::SkinInstance(),
- KAknsIIDQgnMenuHswidget,
- iDefaultLogoImage,
- iDefaultLogoImageMask,
- iWmPlugin.ResourceLoader().IconFilePath(),
- EMbmWidgetmanagerQgn_menu_hswidget,
- EMbmWidgetmanagerQgn_menu_hswidget_mask
- );
-
- AknsUtils::CreateIconL(
- AknsUtils::SkinInstance(),
- KAknsIIDQgnIndiWmAdd,
- iAddWidgetBtnImage,
- iAddWidgetBtnMask,
- iWmPlugin.ResourceLoader().IconFilePath(),
- EMbmWidgetmanagerAdd_widget_button,
- EMbmWidgetmanagerAdd_widget_button_mask
- );
- }
-
-// ---------------------------------------------------------
-// CWmListItemDrawer::~CWmListItemDrawer
-// ---------------------------------------------------------
-//
-CWmListItemDrawer::~CWmListItemDrawer()
- {
- iCellData = NULL;
- iListBox = NULL;
-
- // dispose icons
- delete iDefaultLogoImage;
- delete iDefaultLogoImageMask;
- delete iAddWidgetBtnImage;
- delete iAddWidgetBtnMask;
- }
-
-// ---------------------------------------------------------
-// CWmListItemDrawer::CalculateRectangles
-// ---------------------------------------------------------
-//
-void CWmListItemDrawer::CalculateRectangles( const TSize& aSize )
- {
- iCurrentSize = aSize;
-
- // LOGO RECT
- TSize logoSize = iListBox->LogoSize();
- TInt val = ( aSize.iHeight - KBottomMarginBig * 4 );
- TSize newSize( val, val );
- if ( logoSize != newSize ||
- logoSize.iHeight >= aSize.iHeight )
- {
- logoSize = newSize;
- }
- iRelativeLogoRect.SetRect(
- TPoint( KLeftMarginBig, KTopMarginBig ),
- TSize( logoSize ) );
-
- // ADD BUTTON RECT
- TInt btnWidth = ( aSize.iWidth / 7 );
- TInt btnHeight = ( aSize.iHeight / 3 );
- TPoint btnLocation(
- ( aSize.iWidth - KRightMarginBig - btnWidth ),
- ( aSize.iHeight / 2 - btnHeight / 2 ) );
- iRelativeAddButtonRect.SetRect( btnLocation, TSize( btnWidth, btnHeight ) );
-
- // TEXT RECT
- iRelativeTitleRect.SetRect(
- KLeftMarginBig + logoSize.iWidth + KRightMarginBig,
- KTopMargin,
- aSize.iWidth - KRightMargin - btnWidth - KRightMargin,
- aSize.iHeight - KBottomMargin - KBottomMargin );
-
- // RESIZE BITMAPS
- AknIconUtils::SetSize(
- iDefaultLogoImage, iRelativeLogoRect.Size(), EAspectRatioNotPreserved );
- AknIconUtils::SetSize(
- iDefaultLogoImageMask, iRelativeLogoRect.Size(), EAspectRatioNotPreserved );
- AknIconUtils::SetSize(
- iAddWidgetBtnImage, iRelativeAddButtonRect.Size(), EAspectRatioNotPreserved );
- AknIconUtils::SetSize(
- iAddWidgetBtnMask, iRelativeAddButtonRect.Size(), EAspectRatioNotPreserved );
- }
-
-// ---------------------------------------------------------
-// CWmListItemDrawer::DrawFrame
-// ---------------------------------------------------------
-//
-void CWmListItemDrawer::DrawFrame(
- const TRect& aOutterRect,
- const TRect& aInnerRect,
- const TAknsItemID& aID,
- const TAknsItemID& aCenterID ) const
- {
- CWindowGc& gc = *Gc();
- MAknsSkinInstance* skin = AknsUtils::SkinInstance();
- AknsDrawUtils::DrawFrame( skin, gc, aOutterRect, aInnerRect,
- aID, aCenterID );
- }
-
-// ---------------------------------------------------------
-// CWmListItemDrawer::DrawItemRect
-// ---------------------------------------------------------
-//
-void CWmListItemDrawer::DrawItemRect(
- const TRect& aActualItemRect ) const
- {
- CWindowGc& gc = *Gc();
- MAknsSkinInstance* skin = AknsUtils::SkinInstance();
- MAknsControlContext *cc = AknsDrawUtils::ControlContext( iListBox );
- AknsDrawUtils::Background( skin, cc, iListBox, gc, aActualItemRect );
- }
-
-// ---------------------------------------------------------
-// CWmListItemDrawer::DrawItem
-// ---------------------------------------------------------
-//
-void CWmListItemDrawer::DrawItem( TInt aItemIndex, TPoint aItemRectPos,
- TBool /*aItemIsSelected*/, TBool /*aItemIsCurrent*/,
- TBool /*aViewIsEmphasized*/, TBool /*aViewIsDimmed*/ ) const
- {
- TInt w = ItemWidthInPixels( aItemIndex );
- TInt h = iListBox->ItemHeight();
- CWmWidgetData& wData = iListBox->WidgetData( aItemIndex );
- if ( iCurrentSize != TSize(w,h) )
- {
- // re-calculate all rects
- // note: members are manipulated here, although this method is const!
- const_cast<CWmListItemDrawer&>(*this).CalculateRectangles( TSize(w,h) );
- wData.SetLogoSize( iRelativeLogoRect.Size() );
- }
-
- TInt selectedIndex = iListBox->CurrentItemIndex();
- TBool isInFocus = ( selectedIndex == aItemIndex );
- TBool listFocused = iListBox->IsFocused();
- TRect itemRect = TRect( aItemRectPos, TSize( w, h ) );
- TRect fullRect = TRect( aItemRectPos,
- TSize( iListBox->Rect().Width(), h ) );
-
- DrawItemRect( fullRect );
-
- TRect logoRect( iRelativeLogoRect );
- logoRect.Move( aItemRectPos );
- TRect addBtnRect( iRelativeAddButtonRect );
- addBtnRect.Move( aItemRectPos );
- TRect textRect( iRelativeTitleRect );
- textRect.Move( aItemRectPos );
-
- if ( isInFocus && listFocused )
- {
- TRect innerRect( itemRect );
- const TInt highlightOffset = 5;
- innerRect.Shrink( highlightOffset, highlightOffset );
- DrawFrame( itemRect, innerRect,
- iListBox->PressedDown() ?
- KAknsIIDQsnFrListPressed : KAknsIIDQsnFrList,
- KAknsIIDQsnFrListCenter );
- }
-
- // Get graphics context which is used for drawing.
- CWindowGc& gc = *Gc();
- MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-
- // DRAW LOGO
- CFbsBitmap* bitmap = const_cast<CFbsBitmap*>(wData.LogoImage());
- CFbsBitmap* mask = const_cast<CFbsBitmap*>(wData.LogoImageMask());
- if ( !bitmap )
- {
- TRect bmpRect( TPoint(0,0), TSize( iDefaultLogoImage->SizeInPixels() ) );
- gc.BitBltMasked( logoRect.iTl, iDefaultLogoImage,
- bmpRect, iDefaultLogoImageMask, ETrue );
- }
- else
- {
- TRect bmpRect( TPoint(0,0), TSize( bitmap->SizeInPixels() ) );
- if ( bitmap && mask )
- {
- gc.BitBltMasked( logoRect.iTl, bitmap,
- bmpRect, mask, ETrue );
- }
- else
- {
- gc.BitBlt( logoRect.iTl, bitmap, bmpRect );
- }
- }
-
- TRgb textColor;
- TAknsQsnTextColorsIndex index = ( isInFocus && listFocused )?
- EAknsCIQsnTextColorsCG10 : EAknsCIQsnTextColorsCG6;
-
- AknsUtils::GetCachedColor(
- skin, textColor, KAknsIIDQsnTextColors, index );
-
- // DRAW TEXT
- gc.UseFont( iFont );
- gc.SetPenColor( textColor );
- gc.SetPenSize( TSize(2,2) );
-
- gc.DrawText( wData.Name(), textRect,
- ( KTopTextMargin + iFont->FontMaxHeight() ),
- CGraphicsContext::ELeft, KRightTextMargin );
-
- if ( wData.HsContentInfo().CanBeAdded() )
- {
- // DRAW ADD BUTTON
- gc.BitBltMasked( addBtnRect.iTl, iAddWidgetBtnImage,
- TRect( TPoint(0,0), iAddWidgetBtnImage->SizeInPixels() ),
- iAddWidgetBtnMask, ETrue );
-
- // DRAW BUTTON FOCUS
- if ( isInFocus && listFocused )
- {
- // draw focused frame around button if item is selected
- gc.SetPenStyle( CGraphicsContext::ESolidPen );
- gc.SetPenSize( TSize( KFocusFrameWidth, KFocusFrameWidth ) );
- //Draw the rounded rectangle
- gc.DrawRoundRect( addBtnRect, TSize( KFrameRoundRadius, KFrameRoundRadius ) );
- gc.SetBrushStyle( CGraphicsContext::ENullBrush );
- gc.SetPenStyle( CGraphicsContext::ENullPen );
- }
- }
-
- gc.SetPenSize(TSize(1,1));
-
- // DRAW DESCRIPTION TEXT
- HBufC* buf = wData.Description().Alloc();
- if ( buf )
- {
- TPtr bufPtr = buf->Des();
- bufPtr.Copy( wData.Description() );
- TextUtils::ClipToFit( bufPtr, *iFont, textRect.Width() );
- gc.DrawText( bufPtr, textRect,
- ( iFont->HeightInPixels() + textRect.Height()/2 ),
- CGraphicsContext::ELeft, KRightTextMargin );
- delete buf;
- }
-
- gc.DiscardFont();
- }
-
-// ---------------------------------------------------------
-// CWmListItemDrawer::DefaultLogoImage()
-// ---------------------------------------------------------
-//
-const CFbsBitmap* CWmListItemDrawer::DefaultLogoImage()
- {
- return iDefaultLogoImage;
- }
-
-// ---------------------------------------------------------
-// CWmListItemDrawer::DefaultLogoMask()
-// ---------------------------------------------------------
-//
-const CFbsBitmap* CWmListItemDrawer::DefaultLogoMask()
- {
- return iDefaultLogoImageMask;
- }
-
-// ---------------------------------------------------------
-// CWmListBox::NewL
-// ---------------------------------------------------------
-//
-CWmListBox* CWmListBox::NewL(
- CWmPlugin& aWmPlugin,
- const TRect& aRect,
- const CCoeControl* aParent,
- TInt aFlags )
- {
- CWmListBox* self = new ( ELeave ) CWmListBox( aWmPlugin);
- CleanupStack::PushL( self );
- self->ConstructL( aRect, aParent, aFlags );
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------
-// CWmListBox::CWmListBox
-// ---------------------------------------------------------
-//
-CWmListBox::CWmListBox( CWmPlugin& aWmPlugin ):
- CAknDouble2LargeStyleListBox(),
- iWmPlugin( aWmPlugin )
- {
- iFindPaneIsVisible = EFalse;
- iPressedDown = EFalse;
- }
-
-// ---------------------------------------------------------
-// CWmListBox::~CWmListBox
-// ---------------------------------------------------------
-//
-CWmListBox::~CWmListBox()
- {
- iWidgetDatas.ResetAndDestroy();
- }
-
-// ---------------------------------------------------------
-// CWmListBox::ConstructL
-// ---------------------------------------------------------
-//
-void CWmListBox::ConstructL(
- const TRect& aRect,
- const CCoeControl* aParent,
- TInt aFlags )
- {
- CEikFormattedCellListBox::ConstructL( aParent, aFlags );
- SetContainerWindowL( *aParent );
-
- // set model point to the widgets array
- Model()->SetItemTextArray( &iWidgetDatas );
- Model()->SetOwnershipType( ELbmDoesNotOwnItemArray );
-
- SetRect( aRect );
- }
-
-// ---------------------------------------------------------
-// CWmListBox::WidgetData
-// ---------------------------------------------------------
-//
-CWmWidgetData* CWmListBox::WidgetData()
- {
- TInt index = CurrentListBoxItemIndex();
- return (index>=0 ? iWidgetDatas[index] : NULL);
- }
-
-// ---------------------------------------------------------
-// CWmListBox::WidgetData
-// ---------------------------------------------------------
-//
-CWmWidgetData& CWmListBox::WidgetData( TInt aItemIndex )
- {
- return *iWidgetDatas[ RealIndex( aItemIndex ) ];
- }
-
-// ---------------------------------------------------------
-// CWmListBox::AddWidgetDataL
-// ---------------------------------------------------------
-//
-void CWmListBox::AddWidgetDataL( CWmWidgetData* aWidgetData )
- {
- aWidgetData->SetObserver( this );
- aWidgetData->SetLogoSize( LogoSize() );
- iWidgetDatas.InsertInOrderAllowRepeatsL( aWidgetData,
- SortOrder(EStoredOrder) );
- }
-
-// ---------------------------------------------------------
-// CWmListBox::RemoveWidgetData
-// ---------------------------------------------------------
-//
-void CWmListBox::RemoveWidgetData( TInt aItemIndex )
- {
- TInt realIndex = RealIndex( aItemIndex );
- TBool current = ( aItemIndex == CurrentItemIndex() );
- // remove widget data
- CWmWidgetData* data = iWidgetDatas[realIndex];
- iWidgetDatas.Remove( realIndex );
- delete data;
-
- // reorganise
- TRAP_IGNORE(
- AknListBoxUtils::HandleItemRemovalAndPositionHighlightL(
- this, realIndex, current ) );
- }
-
-// ---------------------------------------------------------
-// CWmListBox::RedrawItem
-// ---------------------------------------------------------
-//
-void CWmListBox::RedrawItem( TInt aItemIndex )
- {
- View()->DrawItem( aItemIndex );
- }
-
-// ---------------------------------------------------------
-// CWmListBox::SetSortOrderL
-// ---------------------------------------------------------
-//
-void CWmListBox::SetSortOrderL( TSortOrder aOrder )
- {
- // now sort the existing data
- iWidgetDatas.Sort( SortOrder( aOrder ) );
- DrawNow();
- }
-
-// ---------------------------------------------------------
-// CWmListBox::CreateItemDrawerL
-// ---------------------------------------------------------
-//
-void CWmListBox::CreateItemDrawerL()
- {
- CFormattedCellListBoxData* cellData = CFormattedCellListBoxData::NewL();
- CleanupStack::PushL( cellData );
- iItemDrawer = CWmListItemDrawer::NewL(
- iWmPlugin,
- Model(),
- iEikonEnv->DenseFont(),
- cellData,
- this );
- CleanupStack::Pop(); // cellData
- }
-
-// ---------------------------------------------------------
-// CWmListBox::HandleLayoutChanged
-// ---------------------------------------------------------
-//
-void CWmListBox::HandleLayoutChanged()
- {
- TSize ls = LogoSize();
- for ( TInt i=0; i<iWidgetDatas.Count(); i++)
- {
- iWidgetDatas[i]->ReCreateLogo( ls );
- }
- }
-
-// ---------------------------------------------------------
-// CWmListBox::HandleWidgetDataChanged
-// ---------------------------------------------------------
-//
-void CWmListBox::HandleWidgetDataChanged( CWmWidgetData* aWidgetData )
- {
- if ( !iFindPaneIsVisible )
- {
- // spontaneous change in the model. Cause table to redraw
- TInt index = iWidgetDatas.Find( aWidgetData );
- if ( index >= 0 )
- {
- // redraw item.
- RedrawItem( RealIndex( index ) );
- }
- }
- }
-
-// ---------------------------------------------------------
-// CWmListBox::SortOrder
-// ---------------------------------------------------------
-//
-TLinearOrder<CWmWidgetData> CWmListBox::SortOrder( TSortOrder aOrder )
- {
- if ( aOrder == EStoredOrder )
- {
- return TLinearOrder<CWmWidgetData>(
- CWmWidgetData::CompareByPersistentWidgetOrder );
- }
- else
- {
- return TLinearOrder<CWmWidgetData>(
- CWmWidgetData::CompareByName );
- }
- }
-
-// ---------------------------------------------------------
-// CWmListBox::CurrentListBoxItemIndex
-// ---------------------------------------------------------
-//
-TInt CWmListBox::CurrentListBoxItemIndex()
- {
- TInt index( KErrNotFound );
- if ( Model()->NumberOfItems() > 0 )
- {
- index = CurrentItemIndex();
- }
- return RealIndex( index );
- }
-
-// ---------------------------------------------------------
-// CWmListBox::RealIndex
-// ---------------------------------------------------------
-//
-TInt CWmListBox::RealIndex( TInt aIndex )
- {
- TInt realIndex = aIndex;
- if ( iFindPaneIsVisible && aIndex >= 0 )
- {
- realIndex = static_cast<CAknFilteredTextListBoxModel*>(Model())->Filter()
- ->FilteredItemIndex( aIndex );
- }
- return realIndex;
- }
-
-// ---------------------------------------------------------
-// CWmListBox::SizeChanged
-// ---------------------------------------------------------
-//
-void CWmListBox::SizeChanged()
- {
- CAknsListBoxBackgroundControlContext* context =
- static_cast<CAknsListBoxBackgroundControlContext*>(
- ItemDrawer()->FormattedCellData()->
- SkinBackgroundContext() );
- if ( context ) context->SetRect( Rect() );
- CAknDouble2LargeStyleListBox::SizeChanged();
- }
-
-// ---------------------------------------------------------
-// CWmListBox::Draw
-// ---------------------------------------------------------
-//
-void CWmListBox::Draw( const TRect& aRect ) const
- {
- CWindowGc& gc = SystemGc();
- MAknsSkinInstance* skin = AknsUtils::SkinInstance();
- MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
- AknsDrawUtils::Background( skin, cc, this, gc, Rect() );
- CAknDouble2LargeStyleListBox::Draw( aRect );
- }
-
-// ---------------------------------------------------------
-// CWmListBox::HandlePointerEventL
-// ---------------------------------------------------------
-//
-void CWmListBox::HandlePointerEventL( const TPointerEvent& aPointerEvent )
- {
- // Check if pointer is down ( needed for drawing correct hightlight frame )
- if ( Rect().Contains( aPointerEvent.iPosition ) )
- {
- if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
- {
- iPressedDown = ETrue;
- RedrawItem( CurrentListBoxItemIndex() );
- }
- else if( aPointerEvent.iType == TPointerEvent::EButton1Up )
- {
- iPressedDown = EFalse;
- RedrawItem( CurrentListBoxItemIndex() );
- }
- }
-
- CAknDouble2LargeStyleListBox::HandlePointerEventL( aPointerEvent );
- }
-
-// ---------------------------------------------------------
-// CWmListBox::LogoSize
-// ---------------------------------------------------------
-//
-TSize CWmListBox::LogoSize()
- {
- TSize size( KLogoWidth,KLogoHeight );
- TInt val = ( ItemHeight() - KBottomMarginBig * 4 );
- if ( val > 0 )
- {
- size.SetSize( val, val );
- }
- return size;
- }
-
-// ---------------------------------------------------------
-// CWmListBox::DefaultLogo
-// ---------------------------------------------------------
-//
-const CFbsBitmap* CWmListBox::DefaultLogo()
- {
- CWmListItemDrawer* itemDrawer =
- static_cast <CWmListItemDrawer*>( iItemDrawer );
- if ( itemDrawer )
- {
- return itemDrawer->DefaultLogoImage();
- }
- return NULL;
- }
-
-// ---------------------------------------------------------
-// CWmListBox::DefaultMask
-// ---------------------------------------------------------
-//
-const CFbsBitmap* CWmListBox::DefaultMask()
- {
- CWmListItemDrawer* itemDrawer =
- static_cast <CWmListItemDrawer*>( iItemDrawer );
- if ( itemDrawer )
- {
- return itemDrawer->DefaultLogoMask();
- }
- return NULL;
- }
-
-// End of File
-
--- a/widgetmanager/src/wmmaincontainer.cpp Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1323 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Implementation of the container control for WidgetManager application.
-*
-*/
-
-// INCLUDE FILES
-#include <aknViewAppUi.h>
-#include <eikappui.h>
-#include <widgetmanagerview.rsg>
-#include <coemain.h>
-#include <eikenv.h>
-#include <barsread.h>
-#include <AknUtils.h>
-#include <barsread.h>
-#include <StringLoader.h>
-#include <eikenv.h>
-#include <AknIconArray.h>
-#include <aknstyluspopupmenu.h>
-#include <avkon.loc>
-#include <aknlayout.cdl.h>
-#include <layoutmetadata.cdl.h>
-#include <aknlayoutscalable_avkon.cdl.h>
-#include <AknsSkinInstance.h>
-#include <apgicnfl.h>
-#include <AknIconUtils.h>
-#include <AknsDrawUtils.h>
-#include <aknenv.h>
-#include <aknlists.h>
-#include <eikclbd.h>
-#include <aknsfld.h>
-#include <AknLayout.lag>
-#include <aknlayoutscalable_avkon.cdl.h>
-#include <AknsBasicBackgroundControlContext.h>
-#include <apgcli.h>
-#include <widgetmanager.mbg>
-#include <avkon.rsg>
-#include <coecobs.h>
-#include <coecntrl.h>
-#include <SWInstApi.h> //installer
-#include <WidgetRegistryClient.h> // widgetreqistry
-#include <aknbutton.h> // CAknButton
-#include <SchemeHandler.h> // for starting the OVI client
-#include <featmgr.h> // FeatureManager
-#include <hlplch.h> // HlpLauncher
-#include <csxhelp/hmsc.hlp.hrh>
-#include <aisystemuids.hrh>
-
-#include "wmcommon.h"
-#include "wmplugin.h"
-#include "wmmaincontainer.h"
-#include "wmmaincontainerview.h"
-#include "wmresourceloader.h"
-#include "widgetmanager.hrh"
-#include "wmlistbox.h"
-#include "wmpersistentwidgetorder.h"
-#include "wmdetailsdlg.h"
-#include "wmwidgetloaderao.h"
-
-// CONSTANTS
-const TInt KTextLimit = 40; // Text-limit for find-field
-const TInt KMinWidgets = 1; // minimum number of widgets to show findpane
-_LIT8( KWrtMime, "application/x-nokia-widget");
-
-// ---------------------------------------------------------
-// CWmMainContainer::CWmMainContainer()
-// ---------------------------------------------------------
-//
-CWmMainContainer::CWmMainContainer( CWmPlugin& aWmPlugin )
- :iWmPlugin( aWmPlugin )
- {
- iWidgetsList = NULL;
- iFindbox = NULL;
- iFindPaneIsVisible = EFalse;
- iBgContext = NULL;
- iFocusMode = ENowhere;
- iClosingDown = EFalse;
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::~CWmMainContainer()
-// ---------------------------------------------------------
-//
-CWmMainContainer::~CWmMainContainer()
- {
- RemoveCtrlsFromStack();
- Components().ResetAndDestroy();
- delete iWidgetLoader;
- iWidgetsList = NULL;
- iOviPortal = NULL;
- iFindbox = NULL;
- delete iBgContext;
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::NewL
-// ---------------------------------------------------------
-//
-CWmMainContainer* CWmMainContainer::NewL(
- const TRect& aRect,
- const CCoeControl* aParent,
- MEikCommandObserver* aCommandObserver,
- CWmPlugin& aWmPlugin )
- {
- CWmMainContainer* self = CWmMainContainer::NewLC(
- aRect,
- aParent,
- aCommandObserver,
- aWmPlugin );
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::NewLC
-// ---------------------------------------------------------
-//
-CWmMainContainer* CWmMainContainer::NewLC(
- const TRect& aRect,
- const CCoeControl* aParent,
- MEikCommandObserver* aCommandObserver,
- CWmPlugin& aWmPlugin )
- {
- CWmMainContainer* self = new ( ELeave ) CWmMainContainer( aWmPlugin );
- CleanupStack::PushL( self );
- self->ConstructL( aRect, aParent, aCommandObserver );
- return self;
- }
-
-// ---------------------------------------------------------
-// ScreenRect
-// rectangle representing the screen
-// ---------------------------------------------------------
-//
-TRect ScreenRect()
- {
- TRect screen;
- CCoeEnv* env = CCoeEnv::Static();
- if ( env )
- {
- CWsScreenDevice* screenDevice = env->ScreenDevice();
- if ( screenDevice )
- screen.SetRect( TPoint(0,0), screenDevice->SizeInPixels() );
- }
- return screen;
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::ConstructL
-// ---------------------------------------------------------
-//
-void CWmMainContainer::ConstructL(
- const TRect& aRect,
- const CCoeControl* aParent,
- MEikCommandObserver* /*aCommandObserver*/ )
- {
- // Initialize control array
- InitComponentArrayL();
- Components().SetControlsOwnedExternally( ETrue );
-
- // create the UI
- if ( aParent == NULL )
- {
- CreateWindowL();
- iParent = this;
- }
- else
- {
- SetContainerWindowL( *aParent );
- iParent = aParent;
- }
-
- // background context
- iBgContext = CAknsBasicBackgroundControlContext::NewL(
- KAknsIIDQsnBgScreen, ScreenRect() , ETrue);
-
- // set up controls
- InitializeControlsL( aRect );
-
- // set size and activate
- SetRect( aRect );
- if ( !aParent )
- {
- ActivateL();
- }
-
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::SizeChanged
-// ---------------------------------------------------------
-//
-void CWmMainContainer::SizeChanged()
- {
- CCoeControl::SizeChanged();
- iBgContext->SetRect( ScreenRect() );
- TRAP_IGNORE( LayoutControlsL() );
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::LayoutControlsL
-// ---------------------------------------------------------
-//
-void CWmMainContainer::LayoutControlsL()
- {
- TRect rect = Rect();
- TBool landscape = ( rect.Width() > rect.Height() );
-
- // calculate layout (different in landscape and portrait)
- TRect oviButtonRect;
- TRect widgetsListRect;
- if ( landscape )
- {
- iLayout = ELandscape;
- const TInt KOffset = 2;
- TInt oviButtonWidth = rect.Width() / 6;
- widgetsListRect.SetRect(
- TPoint( 0, 0 ),
- TPoint( rect.Width() - oviButtonWidth - KOffset, rect.Height() ) );
- oviButtonRect.SetRect(
- TPoint( rect.Width() - oviButtonWidth, KOffset ),
- TPoint( rect.Width() - KOffset, rect.Height() - KOffset ) );
- }
- else
- {
- iLayout = EPortrait;
- const TInt KOffset = 2;
- TInt oviButtonHeight = rect.Height() / 8;
- oviButtonRect.SetRect(
- TPoint( KOffset, KOffset ),
- TPoint( rect.Width() - KOffset, oviButtonHeight ) );
- widgetsListRect.SetRect(
- TPoint( 0, oviButtonHeight + KOffset ),
- TPoint( rect.Width(), rect.Height() ) );
- }
-
- // Apply layout to child controls
- iOviPortal->SetRect( oviButtonRect );
- iOviPortal->SetHighlightRect( oviButtonRect );
- iWidgetsList->SetRect( widgetsListRect );
- if( iFindbox && iFindPaneIsVisible )
- {
- // resizes listbox/searchfield
- HandleFindSizeChanged();
- }
-
- // change OVI portal button style
- if ( landscape )
- {
- // vertical style button
- iOviPortal->State()->SetTextL( KNullDesC() );
- TInt iconDimension = oviButtonRect.Width() * 2 / 3;
- iOviPortal->SetIconSize( TSize( iconDimension, iconDimension ) );
- iOviPortal->SetTextVerticalAlignment(
- CAknButton::ECenter );
- iOviPortal->SetTextAndIconAlignment(
- CAknButton::EIconOverText );
- }
- else
- {
- // horizontal style button
- HBufC* oviText = StringLoader::LoadLC( R_QTN_WM_GO_TO_OVI_STORE );
- iOviPortal->State()->SetTextL( *oviText );
- CleanupStack::PopAndDestroy( oviText );
- TInt iconDimension = oviButtonRect.Height() * 2 / 3;
- iOviPortal->SetIconSize( TSize( iconDimension, iconDimension ) );
- iOviPortal->SetTextHorizontalAlignment(
- CGraphicsContext::ECenter );
- iOviPortal->SetTextAndIconAlignment(
- CAknButton::EIconBeforeText );
- }
-
- DrawDeferred();
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::OfferKeyEventL
-// ---------------------------------------------------------
-//
-TKeyResponse CWmMainContainer::OfferKeyEventL(
- const TKeyEvent& aKeyEvent,
- TEventCode aType )
- {
- TKeyResponse keyResponse( EKeyWasNotConsumed );
-
- if ( iFindbox )
- {
- // open search field with alpha digit numbers
- if ( aType == EEventKeyDown && !iFindPaneIsVisible &&
- aKeyEvent.iScanCode < EStdKeyF1 &&
- TChar(aKeyEvent.iScanCode).IsAlphaDigit() )
- {
- ActivateFindPaneL();
-
- if ( iFindPaneIsVisible )
- {
- return EKeyWasConsumed;
- }
- }
-
- if ( iFindPaneIsVisible )
- {
- // deactive the FindPane when Back has been pressed
- if ( aType == EEventKeyDown &&
- aKeyEvent.iScanCode == EStdKeyBackspace )
- {
- TBuf<KTextLimit> searchText;
- iFindbox->GetSearchText( searchText );
- if ( searchText == KNullDesC )
- {
- DeactivateFindPaneL();
- return EKeyWasConsumed;
- }
- }
-
- // Cancel-selected need to unfocus findbox
- // to receive event in ProcessCommand
- if ( aType == EEventKeyDown
- && aKeyEvent.iScanCode == EStdKeyDevice1 )
- {
- iFindbox->SetFocus( EFalse );
- UpdateFocusMode();
- return EKeyWasConsumed;
- }
-
- if ( aKeyEvent.iScanCode == EStdKeyNo ||
- aKeyEvent.iCode == EKeyNo )
- {
- DeactivateFindPaneL();
- return EKeyWasConsumed;
- }
-
- // find items with all event codes (that's the reason why there is EEventKey instead of aType)
- TBool needsRefresh( EFalse );
- keyResponse = AknFind::HandleFindOfferKeyEventL(
- aKeyEvent, EEventKey, this,
- iWidgetsList, iFindbox, ETrue, needsRefresh );
- if ( needsRefresh )
- {
- DrawNow();
- }
- }
- }
-
- // check special cases for movement between controls
- if ( keyResponse == EKeyWasNotConsumed && !iFindPaneIsVisible )
- {
- keyResponse = MoveFocusByKeys( aKeyEvent, aType );
- }
-
- // pass key event except backpace or delete key event to widgets list if focused
- if ( keyResponse == EKeyWasNotConsumed && iWidgetsList->IsFocused() )
- {
- if ( (aType == EEventKey) && (aKeyEvent.iCode == EKeyBackspace || aKeyEvent.iCode == EKeyDelete))
- {
- if( CanDoUninstall() )
- {
- UninstallWidgetL();
- }
- else
- {
- CWmWidgetData* data = iWidgetsList->WidgetData();
- if( data != NULL )
- iWmPlugin.ResourceLoader().InfoPopupL(
- R_QTN_WM_UNINST_NOT_ALLOWED, data->Name() );
- }
- }
- else
- {
- //passing to listbox handler
- keyResponse = iWidgetsList->OfferKeyEventL(
- aKeyEvent, aType );
- }
- }
-
- // pass key event to OVI portal if focused
- if ( keyResponse == EKeyWasNotConsumed && iOviPortal->IsFocused() )
- {
- keyResponse = iOviPortal->OfferKeyEventL(
- aKeyEvent, aType );
- }
-
- if ( keyResponse == EKeyWasConsumed )
- DrawDeferred();
-
- // Do not let UI framework forward the keys to child controls as
- // we have already done that.
- return EKeyWasConsumed;
- }
-
-
-// ---------------------------------------------------------
-// CWmMainContainer::MoveFocusByKeys
-// ---------------------------------------------------------
-//
-TKeyResponse CWmMainContainer::MoveFocusByKeys(
- const TKeyEvent& aKeyEvent,
- TEventCode aType )
- {
- TKeyResponse keyResponse( EKeyWasNotConsumed );
-
- if ( iWidgetsList->IsFocused() )
- {
- // ------------------------------------
- // focus is in the WIDGETS LIST
- // ------------------------------------
- if ( iLayout == EPortrait &&
- aKeyEvent.iScanCode == EStdKeyUpArrow &&
- iWidgetsList->CurrentItemIndex() == 0 )
- {
- // widget list top -> up -> ovi button (portrait)
- if ( aType == EEventKey )
- SetFocusToOviButton();
- keyResponse = EKeyWasConsumed;
- }
- else if ( iLayout == EPortrait &&
- aKeyEvent.iScanCode == EStdKeyDownArrow &&
- iWidgetsList->CurrentItemIndex() ==
- iWidgetsList->Model()->NumberOfItems() - 1 )
- {
- // widget list bottom -> down -> ovi button (portrait)
- if ( aType == EEventKey )
- SetFocusToOviButton();
- keyResponse = EKeyWasConsumed;
- }
- else if ( iLayout == ELandscape &&
- aKeyEvent.iScanCode == EStdKeyRightArrow )
- {
- // widget list -> right -> ovi button (landscape)
- if ( aType == EEventKey )
- SetFocusToOviButton();
- keyResponse = EKeyWasConsumed;
- }
- else if ( iLayout == ELandscapeMirrored &&
- aKeyEvent.iScanCode == EStdKeyLeftArrow )
- {
- // widget list -> left -> ovi button (landscape mirrored)
- if ( aType == EEventKey )
- SetFocusToOviButton();
- keyResponse = EKeyWasConsumed;
- }
- }
- else if ( iOviPortal->IsFocused() )
- {
- // ------------------------------------
- // focus is in the OVI PORTAL BUTTON
- // ------------------------------------
- if ( iLayout == EPortrait &&
- aKeyEvent.iScanCode == EStdKeyDownArrow )
- {
- // ovi button -> down -> widget list top (portrait)
- if ( aType == EEventKey )
- SetFocusToWidgetList( 0 );
- keyResponse = EKeyWasConsumed;
- }
- else if ( iLayout == EPortrait &&
- aKeyEvent.iScanCode == EStdKeyUpArrow )
- {
- // obi button -> up -> widget list bottom (portrait)
- if ( aType == EEventKey )
- SetFocusToWidgetList( iWidgetsList->Model()->NumberOfItems()-1 );
- keyResponse = EKeyWasConsumed;
- }
- else if ( iLayout == ELandscape &&
- aKeyEvent.iScanCode == EStdKeyLeftArrow )
- {
- // ovi button -> left -> widget list (landscape)
- if ( aType == EEventKey )
- SetFocusToWidgetList();
- keyResponse = EKeyWasConsumed;
- }
- else if ( iLayout == ELandscapeMirrored &&
- aKeyEvent.iScanCode == EStdKeyRightArrow )
- {
- // ovi button -> right -> widget list (landscape mirrored)
- if ( aType == EEventKey )
- SetFocusToWidgetList();
- keyResponse = EKeyWasConsumed;
- }
- }
- else
- {
- // ------------------------------------
- // focus is NOWHERE
- // ------------------------------------
- if ( aKeyEvent.iScanCode == EStdKeyUpArrow ||
- aKeyEvent.iScanCode == EStdKeyDownArrow ||
- aKeyEvent.iScanCode == EStdKeyLeftArrow ||
- aKeyEvent.iScanCode == EStdKeyRightArrow )
- {
- // no focus -> key hit -> focus list
- if ( aType == EEventKey )
- SetFocusToWidgetList();
- keyResponse = EKeyWasConsumed;
- }
- }
-
- return keyResponse;
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::SetFocusToOviButton
-// ---------------------------------------------------------
-//
-void CWmMainContainer::SetFocusToOviButton()
- {
- iWidgetsList->SetFocus(EFalse);
- iOviPortal->SetFocus(ETrue);
- DrawDeferred();
- UpdateFocusMode();
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::SetFocusToWidgetList
-// ---------------------------------------------------------
-//
-void CWmMainContainer::SetFocusToWidgetList( TInt aIndex )
- {
- iOviPortal->SetFocus(EFalse);
- iWidgetsList->SetFocus(ETrue);
- if ( aIndex >= 0 && aIndex < iWidgetsList->Model()->NumberOfItems() )
- {
- iWidgetsList->SetCurrentItemIndex( aIndex );
- }
- DrawDeferred();
- UpdateFocusMode();
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::UpdateFocusMode
-// ---------------------------------------------------------
-//
-void CWmMainContainer::UpdateFocusMode()
- {
- if ( iOviPortal->IsFocused() )
- {
- // OVI BUTTON is focused
- iFocusMode = EOvi;
- }
- else if( ( iFindPaneIsVisible ) &&
- ( iFindbox->IsFocused() || iWidgetsList->IsFocused() ) )
- {
- // FIND MODE
- iFocusMode = EFind;
- }
- else if ( iWidgetsList->IsFocused() )
- {
- // WIDGETS LIST is focused
- iFocusMode = EList;
- }
- else
- {
- // NO focus
- iFocusMode = ENowhere;
- }
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::FindChildControlByPoint
-// ---------------------------------------------------------
-//
-CCoeControl* CWmMainContainer::FindChildControlByPoint(
- const TPoint& aPoint )
- {
- CCoeControl* theControl = NULL;
- CCoeControlArray::TCursor cursor = Components().Begin();
- CCoeControl* c;
- while((c=cursor.Control<CCoeControl>()) != NULL )
- {
- if(c->IsVisible())
- {
- if ( c->Rect().Contains( aPoint ) ) theControl = c;
- }
- cursor.Next();
- }
- return theControl;
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::HandlePointerEventL
-// ---------------------------------------------------------
-//
-void CWmMainContainer::HandlePointerEventL( const TPointerEvent& aPointerEvent )
- {
- if ( !iClosingDown )
- {
-
- if (aPointerEvent.iType == TPointerEvent::EButton1Down)
- {
- // Check if user clicked a child control
- CCoeControl* control = FindChildControlByPoint( aPointerEvent.iPosition );
- if ( control && !control->IsFocused() )
- {
- // Set focus to the control that was clicked
- control->SetFocus( ETrue );
- // remove focus from ALL other child controls.
- CCoeControlArray::TCursor cursor = Components().Begin();
- CCoeControl* c;
- while ((c=cursor.Control<CCoeControl>()) != NULL )
- {
- if ( c != control && c->IsFocused() ) c->SetFocus( EFalse );
- cursor.Next();
- }
- // update focus mode accordingly
- UpdateFocusMode();
- // repaint
- DrawDeferred();
- }
- }
-
- CCoeControl::HandlePointerEventL( aPointerEvent );
- }
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::InitializeControlsL
-// ---------------------------------------------------------
-//
-void CWmMainContainer::InitializeControlsL( const TRect& /*aRect*/ )
- {
- // Create OVI STORE button
- iOviPortal = CAknButton::NewL();
- iWmPlugin.ResourceLoader().LoadButtonL( *iOviPortal,
- R_WM_PORTAL_BUTTON );
- iOviPortal->SetMopParent( this );
- iOviPortal->SetFocusing( ETrue );
- AddControlL( iOviPortal, EOviPortal );
- iOviPortal->SetContainerWindowL( *this );
- // ToDo : replace 3-10 IID with real one when available (wk46)
- iOviPortal->SetFrameAndCenterIds(
- KAknsIIDQgnHomeWmButton,
- KAknsIIDQgnHomeWmButtonCenter,
- KAknsIIDDefault,
- KAknsIIDDefault,
- KAknsIIDDefault,
- KAknsIIDDefault,
- KAknsIIDDefault,
- KAknsIIDDefault,
- KAknsIIDDefault,
- KAknsIIDDefault );
- iOviPortal->ActivateL();
- iOviPortal->SetObserver( this );
-
- // Create widget list box
- iWidgetsList = CWmListBox::NewL(
- iWmPlugin,
- TRect(),
- iParent );
- iWidgetsList->SetMopParent( this );
- AddControlL( iWidgetsList, EWidgetsList );
- iWidgetsList->ActivateL();
- iWidgetsList->SetListBoxObserver( this );
-
- // Create scroll bar.
- iWidgetsList->CreateScrollBarFrameL( ETrue );
- iWidgetsList->ScrollBarFrame()->SetScrollBarVisibilityL(
- CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto );
- iWidgetsList->UpdateScrollBarsL();
-
- // search field
- iFindbox = CAknSearchField::NewL( *this,
- CAknSearchField::EAdaptiveSearch,
- 0, KTextLimit );
- AddControlL( iFindbox, EFindBox );
-
- UpdateFocusMode();
- StartLoadingWidgetsL();
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::HandleWidgetListChanged
-// ---------------------------------------------------------
-//
-void CWmMainContainer::HandleWidgetListChanged()
- {
- TRAP_IGNORE( StartLoadingWidgetsL(); );
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::StartLoadingWidgetsL
-// ---------------------------------------------------------
-//
-void CWmMainContainer::StartLoadingWidgetsL()
- {
- if ( !iWidgetLoader )
- {
- // create the widget loader AO
- iWidgetLoader = CWmWidgetLoaderAo::NewL( iWmPlugin, *iWidgetsList );
- }
- iWidgetLoader->StartLoading();
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::HandleResourceChange
-// ---------------------------------------------------------
-//
-void CWmMainContainer::HandleResourceChange( TInt aType )
- {
- CCoeControl::HandleResourceChange( aType );
-
- if ( KEikDynamicLayoutVariantSwitch == aType )
- {
- TRect rect;
- AknLayoutUtils::LayoutMetricsRect(
- AknLayoutUtils::EMainPane, rect );
- SetRect( rect );
-
- // notify widgetlist
- iWidgetsList->HandleLayoutChanged();
- }
- }
-
-
-// ---------------------------------------------------------
-// CWmMainContainer::MopSupplyObject
-// ---------------------------------------------------------
-//
-TTypeUid::Ptr CWmMainContainer::MopSupplyObject( TTypeUid aId )
- {
- if ( aId.iUid == MAknsControlContext::ETypeId )
- {
- return MAknsControlContext::SupplyMopObject(
- aId, iBgContext );
- }
- return CCoeControl::MopSupplyObject( aId );
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::Draw
-// ---------------------------------------------------------
-//
-void CWmMainContainer::Draw( const TRect& /*aRect*/ ) const
- {
- CWindowGc& gc = SystemGc();
- MAknsSkinInstance* skin = AknsUtils::SkinInstance();
- MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
- AknsDrawUtils::Background( skin, cc, this, gc, Rect() );
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::AddControlL
-// ---------------------------------------------------------
-//
-void CWmMainContainer::AddControlL(
- CCoeControl* aControl,
- TInt aControlId )
- {
- Components().AppendLC( aControl, aControlId ); // Ownership transfered
- CleanupStack::Pop(aControl);
- iWmPlugin.ViewAppUi().AddToStackL( aControl );
- aControl->MakeVisible( ETrue );
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::PortalSelected
-// ---------------------------------------------------------
-//
-TBool CWmMainContainer::PortalSelected()
- {
- return ( iFocusMode == EOvi );
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::WidgetSelected
-// ---------------------------------------------------------
-//
-TBool CWmMainContainer::WidgetSelected()
- {
- return ( iFocusMode == EList ) || ( iFocusMode == EFind );
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::CanDoAdd
-// ---------------------------------------------------------
-//
-TBool CWmMainContainer::CanDoAdd()
- {
- TBool retVal = EFalse;
- CWmWidgetData* data = iWidgetsList->WidgetData();
- if ( WidgetSelected() && data )
- {
- if ( data->HsContentInfo().CanBeAdded() )
- retVal = ETrue;
- }
- return retVal;
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::CanDoUninstall
-// ---------------------------------------------------------
-//
-TBool CWmMainContainer::CanDoUninstall()
- {
- TBool retVal( EFalse );
- CWmWidgetData* data = iWidgetsList->WidgetData();
- if ( WidgetSelected() && data )
- {
- if ( data->WidgetType() == CWmWidgetData::ECps &&
- data->PublisherUid() != KNullUid )
- {
- retVal = ETrue;
- }
- }
- return retVal;
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::CanDoLaunch
-// ---------------------------------------------------------
-//
-TBool CWmMainContainer::CanDoLaunch()
- {
- TBool retVal(EFalse);
- if ( WidgetSelected() )
- {
- CWmWidgetData* data = iWidgetsList->WidgetData();
- if ( data->WidgetType() == CWmWidgetData::ECps &&
- data->PublisherUid() != KNullUid )
- {
- retVal = ETrue;
- }
- }
- return retVal;
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::CanDoFind
-// ---------------------------------------------------------
-//
-TBool CWmMainContainer::CanDoFind()
- {
- TBool canDo( !iFindPaneIsVisible );
- if ( canDo )
- {
- canDo = ( iFocusMode == EList || iFocusMode == ENowhere );
- }
- return canDo;
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::CanDoSort
-// ---------------------------------------------------------
-//
-TBool CWmMainContainer::CanDoSort()
- {
- return !iFindPaneIsVisible;
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::CanDoDetails
-// ---------------------------------------------------------
-//
-TBool CWmMainContainer::CanDoDetails()
- {
- return WidgetSelected();
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::CanDoHelp
-// ---------------------------------------------------------
-//
-TBool CWmMainContainer::CanDoHelp()
- {
- return FeatureManager::FeatureSupported( KFeatureIdHelp );
- }
-
-// ---------------------------------------------------------------------------
-// CWmMainContainer::AddWidgetToHomeScreenL
-// ---------------------------------------------------------------------------
-//
-void CWmMainContainer::AddWidgetToHomeScreenL()
- {
- CWmWidgetData* data = iWidgetsList->WidgetData();
- if ( data )
- {
- if ( iFindbox && iFindPaneIsVisible )
- {
- DeactivateFindPaneL();
- }
-
- SetExitStatus( iWmPlugin.ContentController().AddWidgetL(
- data->HsContentInfo() ) );
-
- iWmPlugin.Deactivate();
- }
-
- }
-
-// ---------------------------------------------------------------------------
-// CWmMainContainer::SetExitStatus
-// ---------------------------------------------------------------------------
-//
-void CWmMainContainer::SetExitStatus( TInt aExitStatus )
- {
- iExitStatus = aExitStatus;
- }
-
-// ---------------------------------------------------------------------------
-// CWmMainContainer::ExitStatus
-// ---------------------------------------------------------------------------
-//
-TInt CWmMainContainer::ExitStatus( )
- {
- return iExitStatus;
- }
-
-// ---------------------------------------------------------------------------
-// CWmMainContainer::LaunchWidgetL
-// ---------------------------------------------------------------------------
-//
-void CWmMainContainer::LaunchWidgetL()
- {
- if ( CanDoLaunch() )
- {
- CWmWidgetData* data = iWidgetsList->WidgetData();
-
- HBufC* param = KNullDesC().AllocLC(); // launch params
-
- RApaLsSession appArc;
- User::LeaveIfError( appArc.Connect() ); // connect to AppArc server
- CleanupClosePushL( appArc );
- TThreadId id;
- User::LeaveIfError( appArc.StartDocument(
- *param, data->PublisherUid(), id ) );
-
- CleanupStack::PopAndDestroy( &appArc );
- CleanupStack::PopAndDestroy( param );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CWmMainContainer::ActivateFindPaneL
-// ---------------------------------------------------------------------------
-//
-void CWmMainContainer::ActivateFindPaneL()
- {
- if ( iFindbox && !iFindPaneIsVisible &&
- iWidgetsList->Model()->NumberOfItems() > KMinWidgets )
- {
- // enable filtering
- CAknFilteredTextListBoxModel* m =
- static_cast <CAknFilteredTextListBoxModel*> ( iWidgetsList->Model() );
- if ( m )
- {
- m->CreateFilterL( iWidgetsList, iFindbox );
- if ( m->Filter() )
- {
- m->Filter()->SetParentControl( this );
- }
- }
-
- iFindbox->ActivateL();
- iFindbox->ResetL();
- iFindbox->SetSearchTextL( KNullDesC );
- iFindbox->SetSkinEnabledL( ETrue );
-
- iFindPaneIsVisible = ETrue;
- iFindbox->MakeVisible( ETrue );
-
- // layout listbox and findbox
- LayoutControlsL();
-
- iFindbox->SetFocus( ETrue );
- iWidgetsList->SetFindPaneIsVisible( ETrue );
-
- // set soft key set
- CEikButtonGroupContainer* cbaGroup =
- CEikButtonGroupContainer::Current();
- cbaGroup->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_CANCEL__SELECT );
- cbaGroup->DrawNow();
-
- UpdateFocusMode();
- }
- }
-
-// ---------------------------------------------------------------------------
-// CWmMainContainer::DeactivateFindPaneL
-// ---------------------------------------------------------------------------
-//
-void CWmMainContainer::DeactivateFindPaneL()
- {
- if( iFindbox && iFindPaneIsVisible )
- {
- // notify search field we're shutting down
- TKeyEvent keyEvent = { EKeyNo, EStdKeyNo, 0, 0 };
- iFindbox->OfferKeyEventL( keyEvent, EEventKey );
-
- // reset findbox
- iFindbox->ResetL();
-
- // reset filter
- CAknFilteredTextListBoxModel* m =
- static_cast <CAknFilteredTextListBoxModel*> ( iWidgetsList->Model() );
- if ( m && m->Filter() )
- {
- m->Filter()->ResetFilteringL();
- m->RemoveFilter();
- }
-
- iFindbox->MakeVisible( EFalse );
- iFindbox->SetFocus( EFalse );
- iFindPaneIsVisible = EFalse;
- iWidgetsList->SetFindPaneIsVisible( EFalse );
-
- LayoutControlsL();
- iWidgetsList->SetFocus( ETrue );
-
- // set soft key set
- CEikButtonGroupContainer* cbaGroup =
- CEikButtonGroupContainer::Current();
- cbaGroup->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_BACK__SELECT );
- cbaGroup->DrawNow();
-
- UpdateFocusMode();
- DrawNow();
- }
- }
-
-// ---------------------------------------------------------------------------
-// CWmMainContainer::SortListAlphabeticallyL
-// ---------------------------------------------------------------------------
-//
-void CWmMainContainer::SortListAlphabeticallyL()
- {
- if ( iWidgetsList )
- {
- iWidgetsList->SetSortOrderL( CWmListBox::EAlphabetical );
-
- //store changed list order
- CWmPersistentWidgetOrder* widgetOrder =
- CWmPersistentWidgetOrder::NewL( iWmPlugin.FileServer() );
- CleanupStack::PushL( widgetOrder );
- widgetOrder->StoreL( iWidgetsList->WidgetDataArray() );
- CleanupStack::PopAndDestroy( widgetOrder );
-
- }
- }
-
-// ---------------------------------------------------------------------------
-// CWmMainContainer::UninstallWidgetL
-// ---------------------------------------------------------------------------
-//
-void CWmMainContainer::UninstallWidgetL()
- {
- if ( CanDoUninstall() )
- {
- CWmWidgetData* data = iWidgetsList->WidgetData();
-
- SwiUI::RSWInstLauncher installer;
- User::LeaveIfError( installer.Connect() );
-
- installer.Uninstall( data->PublisherUid(), KWrtMime );
- installer.Close();
- }
- }
-
-// ---------------------------------------------------------------------------
-// CWmMainContainer::OpenOviPortalL
-// ---------------------------------------------------------------------------
-//
-void CWmMainContainer::OpenOviPortalL()
- {
- _LIT( KParam, "{\"Parameters\": {\"cmd\": \"channel\", \"id\": \"tag:mosh.nokia.com,2009-04:atom/2.0/channels/10\" }}" );
- _LIT( KHtmlFile, "C:\\private\\102829a0\\com.nokia.ovi.juniper.WRTClient\\Juniper\\Main.html" );
- _LIT( KFileName, "securewidgetui.exe" );
- _LIT( KUrl, "4 https://store.ovi.com/applications/");
-
- RApaLsSession appArcSession;
- User::LeaveIfError( appArcSession.Connect() );
- CleanupClosePushL( appArcSession );
-
- HBufC* param = HBufC::NewLC( KParam().Length() );
- param->Des().Copy(KParam);
-
- TThreadId id;
- CApaCommandLine* cmdLine = CApaCommandLine::NewLC();
- cmdLine->SetCommandL( EApaCommandOpen );
- cmdLine->SetExecutableNameL( KFileName );
- cmdLine->SetDocumentNameL( KHtmlFile );
- HBufC8* buf8 = HBufC8::NewLC( param->Des().Length() );
- buf8->Des().Copy( *param );
- cmdLine->SetOpaqueDataL( *buf8 );
- cmdLine->SetTailEndL( *buf8 );
-
- TInt err = appArcSession.StartApp( *cmdLine, id );
- if ( err == KErrNone )
- {
- _LIT( KSchemeTemplate, "ecwrtservices:command=launch&app=com.nokia.ovi.juniper.WRTClient&commandLine=");
- const TInt KSecureWidgetWebAppSchemeHandlerUid = 0x102829B2;
-
- // Create scheme url to launch the widget
- HBufC* schemeUrl = HBufC::NewLC( KSchemeTemplate().Length() +
- param->Des().Length() );
-
- schemeUrl->Des().Copy( KSchemeTemplate );
- schemeUrl->Des().Append( *param );
-
- // Initialize scheme handler plugin
- TUid dtorId;
- CSchemeHandler* schemeHandler = reinterpret_cast<CSchemeHandler*>(
- REComSession::CreateImplementationL(
- TUid::Uid( KSecureWidgetWebAppSchemeHandlerUid ),
- dtorId, schemeUrl ) );
- CleanupStack::PushL( schemeHandler );
-
- // Handle the scheme url
- schemeHandler->HandleUrlEmbeddedL();
-
- CleanupStack::PopAndDestroy( schemeHandler );
- REComSession::FinalClose();
- CleanupStack::PopAndDestroy( schemeUrl );
- }
- else
- {
- // Ovi store not found start browser
- const TUid KOSSBrowserUidValue = { 0x10008D39 };
- HBufC* param = HBufC::NewLC( KUrl().Length() );
- param->Des().Copy( KUrl );
- 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( !appArcSession.Handle() )
- {
- User::LeaveIfError( appArcSession.Connect() );
- }
- TThreadId thread;
- User::LeaveIfError(appArcSession.StartDocument(*param, KOSSBrowserUidValue, thread));
- appArcSession.Close();
- }
- CleanupStack::PopAndDestroy( param );
- }
-
- CleanupStack::PopAndDestroy( buf8 );
- CleanupStack::PopAndDestroy( cmdLine );
- CleanupStack::PopAndDestroy( param );
- CleanupStack::PopAndDestroy( &appArcSession );
-
- // unfocus OVI button
- iOviPortal->SetFocus( EFalse );
- iOviPortal->DrawDeferred();
- UpdateFocusMode();
- }
-
-// ---------------------------------------------------------------------------
-// CWmMainContainer::SelectL
-// ---------------------------------------------------------------------------
-//
-void CWmMainContainer::SelectL()
- {
- if ( WidgetSelected() )
- AddWidgetToHomeScreenL();
- else if ( PortalSelected() )
- OpenOviPortalL();
- else
- SetFocusToWidgetList();
- }
-
-// ---------------------------------------------------------------------------
-// CWmMainContainer::ShowHelpL
-// ---------------------------------------------------------------------------
-//
-void CWmMainContainer::ShowHelpL()
- {
- TUid fwUid = TUid::Uid( AI_UID3_AIFW_COMMON );
- // retrieve resolve host application help context
- CArrayFix<TCoeHelpContext>* helpContext =
- iEikonEnv->EikAppUi()->AppHelpContextL();
-
- // add the widget manager entry into the help context
- CleanupStack::PushL( helpContext );
- helpContext->InsertL( 0, TCoeHelpContext(
- fwUid, KWM_HLP_WIDGET_COLLECTION ) );
- CleanupStack::Pop( helpContext );
-
- // launch help
- HlpLauncher::LaunchHelpApplicationL(
- iEikonEnv->WsSession(),
- helpContext );
- helpContext = 0; // HlpLauncher takes ownership of helpContext
- }
-
-// ---------------------------------------------------------------------------
-// CWmMainContainer::RemoveCtrlsFromStack
-// ---------------------------------------------------------------------------
-//
-void CWmMainContainer::RemoveCtrlsFromStack()
- {
- for ( TInt i=0; i < CountComponentControls(); i++ )
- {
- CCoeControl* ctl = ComponentControl( i ) ;
- if ( ctl )
- {
- iWmPlugin.ViewAppUi().RemoveFromStack( ctl );
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-// CWmMainContainer::HandleListBoxEventL
-// ---------------------------------------------------------------------------
-//
-void CWmMainContainer::HandleListBoxEventL(
- CEikListBox* /*aListBox*/, TListBoxEvent aEventType )
- {
- if ( !iClosingDown && ( aEventType == EEventEnterKeyPressed ||
- aEventType == EEventItemSingleClicked ) )
- {
- AddWidgetToHomeScreenL();
- }
- }
-
-// ---------------------------------------------------------------------------
-// CWmMainContainer::HandleControlEventL
-// ---------------------------------------------------------------------------
-//
-void CWmMainContainer::HandleControlEventL(
- CCoeControl* aControl, TCoeEvent aEventType )
- {
- if ( !iClosingDown && aControl == iOviPortal && aEventType == EEventStateChanged )
- {
- OpenOviPortalL();
- }
- }
-
-// ----------------------------------------------------
-// CWmMainContainer::LaunchDetailsDialogL
-// ----------------------------------------------------
-//
-void CWmMainContainer::LaunchDetailsDialogL()
- {
- CWmWidgetData* data = iWidgetsList->WidgetData();
- if ( data )
- {
- const CFbsBitmap* logo = ( data->LogoImage() ) ?
- data->LogoImage() : iWidgetsList->DefaultLogo();
- const CFbsBitmap* mask = ( data->LogoImageMask() ) ?
- data->LogoImageMask() : iWidgetsList->DefaultMask();
-
- TPtrC description = ( data->Description().Length() > 0 ) ?
- data->Description() : iWmPlugin.ResourceLoader().NoDescriptionText();
- CWmDetailsDlg* dlg = CWmDetailsDlg::NewL(
- data->Name(), description,
- data->HsContentInfo().CanBeAdded(),
- logo, mask, iBgContext );
-
- if ( dlg && dlg->ExecuteLD() == ECbaAddToHs )
- {
- AddWidgetToHomeScreenL();
- }
- }
- }
-
-// ----------------------------------------------------
-// CWmMainContainer::SetClosingDown
-// ----------------------------------------------------
-//
-void CWmMainContainer::SetClosingDown( TBool aClosingDown )
- {
- iClosingDown = aClosingDown;
- }
-
-// ----------------------------------------------------
-// CWmMainContainer::ClosingDown
-// ----------------------------------------------------
-//
-TBool CWmMainContainer::ClosingDown()
- {
- return iClosingDown;
- }
-
-// ----------------------------------------------------
-// CWmMainContainer::HandleFindSizeChanged
-// ----------------------------------------------------
-//
-void CWmMainContainer::HandleFindSizeChanged()
- {
- TAknWindowLineLayout findPane =
- AknLayoutScalable_Avkon::find_pane().LayoutLine();
-
- TAknWindowLineLayout listPane;
-
- TRect listRect = iWidgetsList->Rect();
- listPane.il = listRect.iTl.iX;
- listPane.it = listRect.iTl.iY;
- listPane.ib = 0;
- listPane.iH = TUint16( listRect.Height() - ( findPane.iH - 1 ) );
- listPane.iW = listRect.Width();
- listPane.ir = ELayoutEmpty;
- findPane.iW = listPane.iW;
-
- TRect rect = Rect();
- AknLayoutUtils::LayoutControl( iFindbox, rect, findPane );
- AknLayoutUtils::LayoutControl( iWidgetsList, rect, listPane );
-
- iWidgetsList->DrawNow();
- }
-
-
-// End of File
-
--- a/widgetmanager/src/wmmaincontainerview.cpp Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,436 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Implementation of the main container view for WidgetManager application.
-*
-*/
-
-// INCLUDES
-#include <aknViewAppUi.h>
-#include <eikmenub.h>
-#include <avkon.hrh>
-#include <akncontext.h>
-#include <akntitle.h>
-#include <StringLoader.h>
-#include <barsread.h>
-#include <eikbtgpc.h>
-#include <widgetmanagerview.rsg>
-#include <hscontentcontroller.h>
-
-#include "wmplugin.h"
-#include "widgetmanager.hrh"
-#include "wmmaincontainerview.h"
-#include "wmresourceloader.h"
-#include "wmmaincontainer.h"
-#include <avkon.rsg>
-
-
-// ---------------------------------------------------------
-// CWmMainContainerView::CWmMainContainerView()
-// ---------------------------------------------------------
-//
-CWmMainContainerView::CWmMainContainerView(
- CWmPlugin& aWmPlugin ):
- iWmPlugin( aWmPlugin )
- {
- iWmMainContainer = NULL;
- }
-
-// ---------------------------------------------------------
-// CWmMainContainerView::~CWmMainContainerView()
-// ---------------------------------------------------------
-//
-CWmMainContainerView::~CWmMainContainerView()
- {
- if ( iWmMainContainer != NULL )
- {
- AppUi()->RemoveFromViewStack( *this, iWmMainContainer );
- delete iWmMainContainer;
- iWmMainContainer = NULL;
- }
- }
-
-// ---------------------------------------------------------
-// CWmMainContainerView::NewL
-// ---------------------------------------------------------
-//
-CWmMainContainerView* CWmMainContainerView::NewL(
- CWmPlugin& aWmPlugin )
- {
- CWmMainContainerView* self = CWmMainContainerView::NewLC(
- aWmPlugin );
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------
-// CWmMainContainerView::NewLC
-// ---------------------------------------------------------
-//
-CWmMainContainerView* CWmMainContainerView::NewLC(
- CWmPlugin& aWmPlugin )
- {
- CWmMainContainerView* self =
- new ( ELeave ) CWmMainContainerView( aWmPlugin );
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-// ---------------------------------------------------------
-// CWmMainContainerView::ConstructL
-// ---------------------------------------------------------
-//
-void CWmMainContainerView::ConstructL()
- {
- BaseConstructL( R_WM_MAIN_CONTAINER_VIEW );
- }
-
-// ---------------------------------------------------------
-// CWmMainContainerView::Id
-// ---------------------------------------------------------
-//
-TUid CWmMainContainerView::Id() const
- {
- return TUid::Uid( EWmMainContainerViewId );
- }
-
-// ---------------------------------------------------------
-// CWmMainContainerView::HandleCommandL
-// ---------------------------------------------------------
-//
-void CWmMainContainerView::HandleCommandL( TInt aCommand )
- {
- if ( !iWmMainContainer->ClosingDown() )
- {
- switch ( aCommand )
- {
- case EWmMainContainerViewOpenPortalMenuItemCommand:
- HandleOpenMenuItemSelectedL();
- break;
- case EWmMainContainerViewAddMenuItemCommand:
- HandleAddMenuItemSelectedL();
- break;
- case EWmMainContainerViewLaunchMenuItemCommand:
- HandleLaunchMenuItemSelectedL();
- break;
- case EWmMainContainerViewSearchMenuItemCommand: // flow through
- case EAknSoftkeySearch:
- HandleSearchMenuItemSelectedL();
- break;
- case EWmMainContainerViewSortAlphaMenuItemCommand:
- HandleSortAlphaMenuItemSelectedL();
- break;
- case EWmMainContainerViewUninstallMenuItemCommand:
- HandleUninstallMenuItemSelectedL();
- break;
- case EWmMainContainerViewHelpMenuItemCommand:
- HandleHelpMenuItemSelectedL();
- break;
- case EWmMainContainerViewBackMenuItemCommand: // flow through
- case EAknSoftkeyBack:
- iWmPlugin.Deactivate();
- break;
- case EWmMainContainerViewWiddetDetailsMenuItemCommand:
- HandleDetailsMenuItemSelectedL();
- break;
- case EAknSoftkeySelect:
- if ( iWmMainContainer )
- iWmMainContainer->SelectL();
- break;
- case EAknSoftkeyCancel: // flow through
- case EEikCmdCanceled:
- {
- HandleDeactivateFindPaneL();
- break;
- }
- default:
- break;
- }
- }
- }
-
-// ---------------------------------------------------------
-// CWmMainContainerView::DoActivateL
-// ---------------------------------------------------------
-//
-void CWmMainContainerView::DoActivateL(
- const TVwsViewId& aPrevViewId,
- TUid /*aCustomMessageId*/,
- const TDesC8& /*aCustomMessage*/ )
- {
- if ( iWmMainContainer == NULL )
- {
- iWmMainContainer = CreateContainerL();
- iWmMainContainer->SetClosingDown( EFalse );
- iWmMainContainer->SetMopParent( this );
- AppUi()->AddToStackL( *this, iWmMainContainer );
- }
-
- SetupStatusPaneL();
-
- iWmMainContainer->SetExitStatus( KErrNone );
- iWmPlugin.MainViewActivated( aPrevViewId, iWmMainContainer );
- StatusPane()->SwitchLayoutL(
- R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT );
- StatusPane()->ApplyCurrentSettingsL();
- StatusPane()->DrawNow();
- CEikButtonGroupContainer* bgc( Cba() );
-
- CEikCba* cba = static_cast< CEikCba* >( bgc->ButtonGroup() );
- if ( cba )
- {
-
- bgc->SetBoundingRect( TRect() );
- cba->DrawNow();
- }
- }
-
-// ---------------------------------------------------------
-// CWmMainContainerView::DoDeactivate
-// ---------------------------------------------------------
-//
-void CWmMainContainerView::DoDeactivate()
- {
- TInt exitStatus = KErrNone;
- if ( iWmMainContainer != NULL )
- {
- exitStatus = iWmMainContainer->ExitStatus();
- AppUi()->RemoveFromViewStack( *this, iWmMainContainer );
- delete iWmMainContainer;
- iWmMainContainer = NULL;
- }
-
- // display error, if such exists
- if ( exitStatus == KHsErrorViewFull ||
- exitStatus == KHsErrorDoesNotFit )
- {
- TRAP_IGNORE( iWmPlugin.ResourceLoader().InfoPopupL(
- R_QTN_HS_ADD_WIDGET_NO_SPACE_NOTE, KNullDesC ) );
- }
- else if ( exitStatus == KHsErrorMaxInstanceCountExceeded )
- {
- TRAP_IGNORE( iWmPlugin.ResourceLoader().InfoPopupL(
- R_QTN_HS_ADD_WIDGET_MAX_COUNT_NOTE, KNullDesC ) );
- }
- else if ( exitStatus != KErrNone )
- {
- iWmPlugin.ResourceLoader().ErrorPopup( exitStatus );
- }
-
- 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() );
- }
- }
-
- }
-
-// ---------------------------------------------------------
-// CWmMainContainerView::SetupStatusPaneL
-// ---------------------------------------------------------
-//
-void CWmMainContainerView::SetupStatusPaneL()
- {
- // setup the title pane
- TUid titlePaneUid = TUid::Uid( EEikStatusPaneUidTitle );
- CEikStatusPaneBase::TPaneCapabilities subPaneTitle =
- StatusPane()->PaneCapabilities( titlePaneUid );
- if ( subPaneTitle.IsPresent() && subPaneTitle.IsAppOwned() )
- {
- CAknTitlePane* title = static_cast< CAknTitlePane* >(
- StatusPane()->ControlL( titlePaneUid ) );
- if ( title )
- {
- TResourceReader reader;
- iEikonEnv->CreateResourceReaderLC(
- reader, R_WM_MAIN_CONTAINER_TITLE_RESOURCE );
- title->SetFromResourceL( reader );
- title->DrawDeferred();
- CleanupStack::PopAndDestroy(); // reader internal state
- }
- }
- }
-
-// ---------------------------------------------------------
-// CWmMainContainerView::CreateContainerL
-// ---------------------------------------------------------
-//
-CWmMainContainer* CWmMainContainerView::CreateContainerL()
- {
- return CWmMainContainer::NewL( ClientRect(), NULL, this, iWmPlugin );
- }
-
-// ---------------------------------------------------------
-// CWmMainContainerView::DynInitMenuPaneL
-// ---------------------------------------------------------
-//
-void CWmMainContainerView::DynInitMenuPaneL(
- TInt aResourceId, CEikMenuPane* aMenuPane )
- {
- if ( aResourceId == R_WM_MAIN_CONTAINER_MENU_PANE &&
- iWmMainContainer )
- {
- aMenuPane->SetItemDimmed( EWmMainContainerViewAddMenuItemCommand,
- !iWmMainContainer->CanDoAdd() );
- aMenuPane->SetItemDimmed( EWmMainContainerViewWiddetDetailsMenuItemCommand,
- !iWmMainContainer->CanDoDetails() );
- aMenuPane->SetItemDimmed( EWmMainContainerViewLaunchMenuItemCommand,
- !iWmMainContainer->CanDoLaunch() );
- aMenuPane->SetItemDimmed( EWmMainContainerViewSearchMenuItemCommand,
- !iWmMainContainer->CanDoFind() );
- aMenuPane->SetItemDimmed( EWmMainContainerViewSortAlphaMenuItemCommand,
- !iWmMainContainer->CanDoSort() );
- aMenuPane->SetItemDimmed( EWmMainContainerViewHelpMenuItemCommand,
- !iWmMainContainer->CanDoHelp() );
- aMenuPane->SetItemDimmed( EWmMainContainerViewUninstallMenuItemCommand,
- !iWmMainContainer->CanDoUninstall() );
- if ( !iWmMainContainer->PortalSelected() )
- aMenuPane->DeleteMenuItem( EWmMainContainerViewOpenPortalMenuItemCommand );
- if ( !iWmMainContainer->WidgetSelected() )
- aMenuPane->DeleteMenuItem( EWmMainContainerViewAddMenuItemCommand );
- }
- }
-
-// ---------------------------------------------------------
-// CWmMainContainerView::HandleOpenMenuItemSelectedL
-// ---------------------------------------------------------
-//
-TBool CWmMainContainerView::HandleOpenMenuItemSelectedL()
- {
- if ( iWmMainContainer && iWmMainContainer->PortalSelected() )
- {
- iWmMainContainer->OpenOviPortalL();
- }
- return ETrue;
- }
-
-// ---------------------------------------------------------
-// CWmMainContainerView::HandleDetailsMenuItemSelectedL
-// ---------------------------------------------------------
-//
-TBool CWmMainContainerView::HandleDetailsMenuItemSelectedL()
- {
- if ( iWmMainContainer && iWmMainContainer->WidgetSelected() )
- {
- iWmMainContainer->LaunchDetailsDialogL();
- }
- return ETrue;
- }
-
-// ---------------------------------------------------------
-// CWmMainContainerView::HandleAddMenuItemSelectedL
-// ---------------------------------------------------------
-//
-TBool CWmMainContainerView::HandleAddMenuItemSelectedL()
- {
- if ( iWmMainContainer && iWmMainContainer->WidgetSelected() )
- {
- iWmMainContainer->AddWidgetToHomeScreenL();
- }
- return ETrue;
- }
-
-// ---------------------------------------------------------
-// CWmMainContainerView::HandleLaunchMenuItemSelectedL
-// ---------------------------------------------------------
-//
-TBool CWmMainContainerView::HandleLaunchMenuItemSelectedL()
- {
- if ( iWmMainContainer && iWmMainContainer->WidgetSelected() )
- {
- iWmMainContainer->LaunchWidgetL();
- }
- return ETrue;
- }
-
-// ---------------------------------------------------------
-// CWmMainContainerView::HandleSearchMenuItemSelectedL
-// ---------------------------------------------------------
-//
-TBool CWmMainContainerView::HandleSearchMenuItemSelectedL()
- {
- if ( iWmMainContainer )
- {
- iWmMainContainer->ActivateFindPaneL();
- }
- return ETrue;
- }
-
-// ---------------------------------------------------------
-// CWmMainContainerView::HandleSortAlphaMenuItemSelectedL
-// ---------------------------------------------------------
-//
-TBool CWmMainContainerView::HandleSortAlphaMenuItemSelectedL()
- {
- if ( iWmMainContainer )
- {
- iWmMainContainer->SortListAlphabeticallyL();
- }
- return ETrue;
- }
-
-// ---------------------------------------------------------
-// CWmMainContainerView::HandleUninstallMenuItemSelectedL
-// ---------------------------------------------------------
-//
-TBool CWmMainContainerView::HandleUninstallMenuItemSelectedL()
- {
- if ( iWmMainContainer )
- {
- iWmMainContainer->UninstallWidgetL();
- }
- return ETrue;
- }
-
-// ---------------------------------------------------------
-// CWmMainContainerView::HandleHelpMenuItemSelectedL
-// ---------------------------------------------------------
-//
-TBool CWmMainContainerView::HandleHelpMenuItemSelectedL()
- {
- iWmMainContainer->ShowHelpL();
- return ETrue;
- }
-
-// ---------------------------------------------------------
-// CWmMainContainerView::HandleDeactivateFindPaneL
-// ---------------------------------------------------------
-//
-TBool CWmMainContainerView::HandleDeactivateFindPaneL()
- {
- if ( iWmMainContainer )
- {
- iWmMainContainer->DeactivateFindPaneL();
- }
- return ETrue;
- }
-
-// End of file
--- a/widgetmanager/src/wmpersistentwidgetorder.cpp Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,244 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Defines an ordered list of widget id's with persistence capability
-*
-*/
-
-// INCLUDES
-#include <s32file.h> // RFile
-#include <s32std.h> // streams
-#include <driveinfo.h>
-#include <sysutil.h>
-
-#include "wmwidgetdata.h"
-#include "wmpersistentwidgetorder.h"
-
-// CONSTANTS
-_LIT( KStoreFileName, "wmlistorder.dat" );
-
-
-// ---------------------------------------------------------
-// CWmPersistentWidgetOrder::NewL
-// ---------------------------------------------------------
-//
-CWmPersistentWidgetOrder* CWmPersistentWidgetOrder::NewL( RFs& aFs )
- {
- CWmPersistentWidgetOrder* self =
- new (ELeave) CWmPersistentWidgetOrder( aFs );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------
-// CWmPersistentWidgetOrder::CWmPersistentWidgetOrder
-// ---------------------------------------------------------
-//
-CWmPersistentWidgetOrder::CWmPersistentWidgetOrder( RFs& aFs )
- : iFs( aFs )
- {
- }
-
-// ---------------------------------------------------------
-// CWmPersistentWidgetOrder::ConstructL
-// ---------------------------------------------------------
-//
-void CWmPersistentWidgetOrder::ConstructL()
- {
- }
-
-// ---------------------------------------------------------
-// CWmPersistentWidgetOrder::~CWmPersistentWidgetOrder
-// ---------------------------------------------------------
-//
-CWmPersistentWidgetOrder::~CWmPersistentWidgetOrder()
- {
- CleanupArray();
- }
-
-// ---------------------------------------------------------
-// CWmPersistentWidgetOrder::LoadL
-// ---------------------------------------------------------
-//
-void CWmPersistentWidgetOrder::LoadL()
- {
- // 1. empty the in-mempory storage
- CleanupArray();
- // 2. create stream for reading data from a file
- TFileName storeFileName;
- GetStoreFileNameL( storeFileName );
- CPermanentFileStore* fileStore = NULL;
- fileStore = CPermanentFileStore::OpenL(
- iFs, storeFileName, EFileRead );
- CleanupStack::PushL( fileStore );
- RStoreReadStream reader;
- reader.OpenLC( *fileStore, fileStore->Root() );
- // 3. read all contents from the stream
- TInt arrayCount = reader.ReadInt32L();
- while( iTagArray.Count() < arrayCount )
- {
- TInt32 uid = reader.ReadInt32L();
- TInt32 publisherIdLen = reader.ReadInt32L();
- HBufC16* publisherId = HBufC16::NewLC(publisherIdLen);
- TPtr16 publisherIdPtr = publisherId->Des();
- reader.ReadL( publisherIdPtr, publisherIdLen );
- iTagArray.AppendL( Tag( uid, publisherId ) );
- CleanupStack::Pop( publisherId );
- }
- // 4. cleanup
- CleanupStack::PopAndDestroy( &reader );
- CleanupStack::PopAndDestroy( fileStore );
- }
-
-// ---------------------------------------------------------
-// CWmPersistentWidgetOrder::StoreL
-// ---------------------------------------------------------
-//
-void CWmPersistentWidgetOrder::StoreL( const RWidgetDataValues& aArray )
- {
- // 1. empty the in-mempory storage
- CleanupArray();
- // 2. serialize the widget array tags to a local array
- for( TInt i=0; i<aArray.Count(); ++i )
- {
- TInt32 uid = aArray[i]->Uid().iUid;
- HBufC16* publisherId = aArray[i]->HsContentInfo().PublisherId().AllocLC();
- iTagArray.AppendL( Tag( uid, publisherId ) );
- CleanupStack::Pop( publisherId );
- }
- // 3. create stream for storing the data to a file
- TFileName storeFileName;
- GetStoreFileNameL( storeFileName );
- CPermanentFileStore* fileStore = CPermanentFileStore::ReplaceLC(
- iFs, storeFileName, EFileWrite );
- fileStore->SetTypeL(KPermanentFileStoreLayoutUid);
- RStoreWriteStream writer;
- TStreamId id = writer.CreateLC( *fileStore );
- // 4. write all content to the stream
- writer.WriteInt32L( iTagArray.Count() );
- for( TInt i=0; i<iTagArray.Count(); ++i )
- {
- writer.WriteInt32L( iTagArray[i].iUid );
- writer.WriteInt32L( iTagArray[i].iPublisherId->Length() );
- writer.WriteL( *iTagArray[i].iPublisherId,
- iTagArray[i].iPublisherId->Length() );
- }
- // 5. check available space and commit the stream
- TInt streamsize = writer.Sink()->SizeL();
- TBool noSpace = SysUtil::DiskSpaceBelowCriticalLevelL( &iFs, streamsize,
- EDriveC );
- if( noSpace )
- {
- //do nothing
- }
- else // there is enough free space
- {
- writer.CommitL();
- fileStore->SetRootL(id);
- fileStore->CommitL();
- }
-
- // 6. cleanup
- CleanupStack::PopAndDestroy( &writer );
- CleanupStack::PopAndDestroy( fileStore );
- }
-
-// ---------------------------------------------------------
-// CWmPersistentWidgetOrder::CleanupArray
-// ---------------------------------------------------------
-//
-void CWmPersistentWidgetOrder::CleanupArray()
- {
- for( TInt i=0; i<iTagArray.Count(); ++i )
- {
- delete iTagArray[i].iPublisherId;
- iTagArray[i].iPublisherId = 0;
- }
- iTagArray.Close();
- }
-
-// ---------------------------------------------------------
-// CWmPersistentWidgetOrder::GetStoreFileNameL
-// ---------------------------------------------------------
-//
-void CWmPersistentWidgetOrder::GetStoreFileNameL(
- TDes& aPathBuf )
- {
- // get default drive for phone memory
- TInt driveNum = EDriveC;
- User::LeaveIfError( DriveInfo::GetDefaultDrive(
- DriveInfo::EDefaultPhoneMemory, driveNum ) );
- // make sure the directory exists
- iFs.CreatePrivatePath( driveNum ); // ignore errors
- // build the store path
- TChar driveLetter;
- User::LeaveIfError( iFs.DriveToChar( driveNum, driveLetter ) );
- aPathBuf.Append( driveLetter );
- aPathBuf.Append( _L(":") );
- TFileName privatePath;
- User::LeaveIfError( iFs.PrivatePath( privatePath ) );
- aPathBuf.Append( privatePath );
- aPathBuf.Append( KStoreFileName );
- }
-
-// ---------------------------------------------------------
-// CWmPersistentWidgetOrder::IndexOf
-// ---------------------------------------------------------
-//
-TInt CWmPersistentWidgetOrder::IndexOf( const CWmWidgetData& aWidgetData ) const
- {
- TInt found = KErrNotFound;
- for( TInt i=0; i<iTagArray.Count() && found<0; ++i )
- {
- if ( iTagArray[i].Matches( aWidgetData ) )
- found = i;
- }
- return found;
- }
-
-// ---------------------------------------------------------
-// CWmPersistentWidgetOrder::IsEmpty
-// ---------------------------------------------------------
-//
-TBool CWmPersistentWidgetOrder::IsEmpty() const
- {
- return iTagArray.Count() == 0;
- }
-
-// ---------------------------------------------------------
-// CWmPersistentWidgetOrder::Tag::Tag
-// ---------------------------------------------------------
-//
-CWmPersistentWidgetOrder::Tag::Tag(
- TInt32 aUid, HBufC16* aPublisherId )
- {
- iUid = aUid;
- iPublisherId = aPublisherId;
- }
-
-// ---------------------------------------------------------
-// CWmPersistentWidgetOrder::Tag::Matches
-// ---------------------------------------------------------
-//
-TBool CWmPersistentWidgetOrder::Tag::Matches(
- const CWmWidgetData& aWidgetData ) const
- {
- return ( aWidgetData.Uid().iUid == iUid &&
- aWidgetData.HsContentInfo().PublisherId() == *iPublisherId );
- }
-
-
-// end of file
--- a/widgetmanager/src/wmplugin.cpp Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,177 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* widget manager plugin implementation
-*
-*/
-
-// INCLUDE FILES
-#include <bautils.h>
-#include <coemain.h>
-#include <aknViewAppUi.h>
-
-#include "wmcommon.h"
-#include "widgetmanager.hrh"
-#include "wmmaincontainer.h"
-#include "wmmaincontainerview.h"
-#include "wmresourceloader.h"
-#include "wmplugin.h"
-#include "wmeffectmanager.h"
-
-// ---------------------------------------------------------
-// CWmPlugin::NewL
-// ---------------------------------------------------------
-//
-CWmPlugin* CWmPlugin::NewL()
- {
- CWmPlugin* self=new(ELeave) CWmPlugin();
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-// ---------------------------------------------------------
-// CWmPlugin::~CWmPlugin
-// ---------------------------------------------------------
-//
-CWmPlugin::~CWmPlugin()
- {
- if ( iViewAppUi )
- {
- Deactivate();
- iViewAppUi->RemoveView( TUid::Uid( EWmMainContainerViewId ) );
- }
- iWmMainContainer = NULL;
- delete iResourceLoader;
- delete iEffectManager;
- }
-
-// ---------------------------------------------------------
-// CWmPlugin::CWmPlugin
-// ---------------------------------------------------------
-//
-CWmPlugin::CWmPlugin()
- {
- iPreviousViewUid.iViewUid = KNullUid;
- }
-
-// ---------------------------------------------------------
-// CWmPlugin::ConstructL
-// ---------------------------------------------------------
-//
-void CWmPlugin::ConstructL()
- {
- iWmMainContainer = NULL;
-
- // store static view app ui
- CEikonEnv* eikonEnv = CEikonEnv::Static();
- if ( !eikonEnv ) User::Leave( KErrUnknown );
- iViewAppUi = (CAknViewAppUi*)eikonEnv->EikAppUi();
- if ( !iViewAppUi ) User::Leave( KErrUnknown );
-
- // create resource loader
- iFs = &eikonEnv->FsSession();
- iResourceLoader = CWmResourceLoader::NewL( *eikonEnv );
- iEffectManager = CWmEffectManager::NewL( *eikonEnv );
-
- // main view
- CWmMainContainerView* mainView =
- CWmMainContainerView::NewL( *this );
- CleanupStack::PushL( mainView );
- iViewAppUi->AddViewL( mainView );
- CleanupStack::Pop( mainView );
- }
-
-// ---------------------------------------------------------
-// CWmPlugin::Activate
-// ---------------------------------------------------------
-//
-void CWmPlugin::Activate()
- {
- if ( !IsActive() && iHsContentController )
- {
- TRAP_IGNORE(
- iEffectManager->BeginFullscreenEffectL(
- KAppStartCommonDefaultStyle );
- iViewAppUi->ActivateLocalViewL(
- TUid::Uid( EWmMainContainerViewId ) );
- );
- }
- }
-
-// ---------------------------------------------------------
-// CWmPlugin::IsActive
-// ---------------------------------------------------------
-//
-TBool CWmPlugin::IsActive()
- {
- return ( iPreviousViewUid.iViewUid != KNullUid );
- }
-
-// ---------------------------------------------------------
-// CWmPlugin::Deactivate
-// ---------------------------------------------------------
-//
-void CWmPlugin::Deactivate()
- {
- if ( IsActive() )
- {
- iWmMainContainer->SetClosingDown( ETrue );
- TRAP_IGNORE(
- iEffectManager->BeginFullscreenEffectL(
- KAppExitCommonDefaultStyle );
- iViewAppUi->ActivateLocalViewL(
- iPreviousViewUid.iViewUid );
- );
- }
- }
-
-// ---------------------------------------------------------
-// CWmPlugin::MainViewActivated
-// ---------------------------------------------------------
-//
-void CWmPlugin::MainViewActivated(
- const TVwsViewId& aViewId,
- CWmMainContainer* aWmMainContainer )
- {
- iPreviousViewUid = aViewId;
- iWmMainContainer = aWmMainContainer;
- iEffectManager->UiRendered();
- }
-
-// ---------------------------------------------------------
-// CWmPlugin::MainViewDeactivated
-// ---------------------------------------------------------
-//
-void CWmPlugin::MainViewDeactivated()
- {
- iPreviousViewUid.iViewUid = KNullUid;
- iWmMainContainer = NULL;
- iEffectManager->UiRendered();
- }
-
-// ---------------------------------------------------------
-// CWmPlugin::NotifyWidgetListChanged
-// ---------------------------------------------------------
-//
-void CWmPlugin::NotifyWidgetListChanged()
- {
- if ( iWmMainContainer )
- {
- iWmMainContainer->HandleWidgetListChanged();
- }
- }
-
-// End of file
--- a/widgetmanager/src/wmpluginproxy.cpp Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* widget manager plugin proxy
-*
-*/
-
-#include <e32std.h>
-#include <implementationproxy.h>
-
-#include "wmplugin.h"
-
-// Map the interface implementation UIDs to implementation factory functions
-const TImplementationProxy ImplementationTable[] =
- {
- IMPLEMENTATION_PROXY_ENTRY( 0x20026F53, CWmPlugin::NewL )
- };
-
-
-// Exported proxy for instantiation method resolution.
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(
- TInt& aTableCount)
- {
- aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
- return ImplementationTable;
- }
--- a/widgetmanager/src/wmresourceloader.cpp Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,199 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* loads widget manager resources and icons
-*
-*/
-
-// INCLUDE FILES
-#include <eikenv.h>
-#include <eikappui.h>
-#include <aknapp.h>
-#include <bautils.h>
-#include <gdi.h>
-#include <aknbutton.h>
-#include <AknIconUtils.h>
-#include <StringLoader.h>
-#include <aknnotewrappers.h>
-#include <widgetmanagerview.rsg>
-
-#include "wmresourceloader.h"
-
-// CONSTANTS
-_LIT( KRelativeMifPath, "\\resource\\apps\\widgetmanager.mif" );
-_LIT( KRelativeResourcePathWithWildcard, "\\resource\\widgetmanagerview.r*" );
-_LIT( KRelativeResourcePath, "\\resource\\widgetmanagerview.rsc" );
-
-
-// ---------------------------------------------------------
-// CWmResourceLoader::NewL
-// ---------------------------------------------------------
-//
-CWmResourceLoader* CWmResourceLoader::NewL(
- CEikonEnv& aEnv )
- {
- CWmResourceLoader* self = new (ELeave) CWmResourceLoader( aEnv );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------
-// CWmResourceLoader::CWmResourceLoader
-// ---------------------------------------------------------
-//
-CWmResourceLoader::CWmResourceLoader( CEikonEnv& aEnv )
- : iEnv( aEnv )
- {
- }
-
-// ---------------------------------------------------------
-// CWmResourceLoader::~CWmResourceLoader
-// ---------------------------------------------------------
-//
-CWmResourceLoader::~CWmResourceLoader()
- {
- UnloadResources();
- delete iNote;
- delete iDescription;
- }
-
-// ---------------------------------------------------------
-// CWmResourceLoader::ConstructL
-// ---------------------------------------------------------
-//
-void CWmResourceLoader::ConstructL()
- {
- Dll::FileName( iDllName );
-
- LoadResourcesL();
- DetermineIconFilePath();
-
- iDescription = StringLoader::LoadL(
- R_QTN_WM_DETAILS_NO_DESCRIPTION, &iEnv );
- }
-
-// ---------------------------------------------------------
-// CWmResourceLoader::LoadResourcesL
-// ---------------------------------------------------------
-//
-void CWmResourceLoader::LoadResourcesL()
- {
- TFileName resourceFile;
- RFs& fs = iEnv.FsSession();
- resourceFile.Copy( iDllName.Left(2) );
- resourceFile.Append( KRelativeResourcePathWithWildcard );
- BaflUtils::NearestLanguageFile( fs, resourceFile );
- if ( !BaflUtils::FileExists( fs, resourceFile ) )
- {
- resourceFile.Copy( iDllName.Left(2) );
- resourceFile.Append( KRelativeResourcePath );
- BaflUtils::NearestLanguageFile( fs, resourceFile );
- }
- iResourceFileOffset = iEnv.AddResourceFileL( resourceFile );
- }
-
-// ---------------------------------------------------------
-// CWmResourceLoader::UnloadResources
-// ---------------------------------------------------------
-//
-void CWmResourceLoader::UnloadResources()
- {
- if ( iResourceFileOffset )
- {
- iEnv.DeleteResourceFile( iResourceFileOffset );
- }
- }
-
-// ---------------------------------------------------------
-// CWmResourceLoader::DetermineIconFilePath
-// ---------------------------------------------------------
-//
-void CWmResourceLoader::DetermineIconFilePath()
- {
- iMifFile.Copy( iDllName.Left(2) );
- iMifFile.Append( KRelativeMifPath );
- }
-
-// ---------------------------------------------------------
-// CWmResourceLoader::IconFilePath
-// ---------------------------------------------------------
-//
-const TDesC& CWmResourceLoader::IconFilePath()
- {
- return iMifFile;
- }
-
-// ---------------------------------------------------------
-// CWmResourceLoader::LoadButtonL
-// ---------------------------------------------------------
-void CWmResourceLoader::LoadButtonL(
- CAknButton& aResource,
- TInt aResourceId )
- {
- TResourceReader reader;
- iEnv.CreateResourceReaderLC( reader, aResourceId );
- aResource.ConstructFromResourceL( reader );
- CleanupStack::PopAndDestroy(); // reader
- }
-
-// ---------------------------------------------------------
-// LoadStringLC
-// loads a string from resource. If an additional string is
-// given (the length is greater than zero) uses a different
-// StringLoader method to load.
-// ---------------------------------------------------------
-//
-HBufC* LoadStringLC( TInt aResourceId, const TDesC& aString, CEikonEnv* aEnv )
- {
- if ( aString.Length() > 0 )
- return StringLoader::LoadLC( aResourceId, aString, aEnv );
- else
- return StringLoader::LoadLC( aResourceId, aEnv );
- }
-
-// ---------------------------------------------------------
-// CWmResourceLoader::InfoPopupL
-// ---------------------------------------------------------
-//
-void CWmResourceLoader::InfoPopupL( TInt aResourceId, const TDesC& aString )
- {
- HBufC* infoMsg = LoadStringLC( aResourceId, aString, &iEnv );
- iNote = new (ELeave) CAknInformationNote( &iNote );
- iNote->SetTimeout( CAknNoteDialog::ELongTimeout );
- iNote->ExecuteLD( *infoMsg );
- CleanupStack::PopAndDestroy( infoMsg );
- }
-
-// ---------------------------------------------------------
-// CWmResourceLoader::ErrorPopup
-// ---------------------------------------------------------
-//
-void CWmResourceLoader::ErrorPopup( TInt aErrorCode )
- {
- iEnv.HandleError( aErrorCode );
- }
-
-// ---------------------------------------------------------
-// CWmResourceLoader::NoDescriptionText
-// ---------------------------------------------------------
-//
-const TDesC& CWmResourceLoader::NoDescriptionText()
- {
- return *iDescription;
- }
-
-// end of file
-
--- a/widgetmanager/src/wmwidgetdata.cpp Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,357 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* CWmWidgetData implementation.
-*
-*/
-
-
-// INCLUDE FILES
-#include <fbs.h>
-#include <bautils.h>
-#include <s32file.h>
-#include <hscontentinfo.h>
-#include <WidgetRegistryClient.h> // widgetreqistry
-#include "wmwidgetdata.h"
-#include "wmwidgetdataobserver.h"
-#include "wmpersistentwidgetorder.h"
-#include "wmcommon.h"
-
-// ---------------------------------------------------------
-// CWmWidgetData::NewL
-// ---------------------------------------------------------
-//
-CWmWidgetData* CWmWidgetData::NewL(
- CHsContentInfo& aHsContentInfo,
- RWidgetRegistryClientSession* aRegistryClientSession )
- {
- CWmWidgetData* self = CWmWidgetData::NewLC(
- aHsContentInfo, aRegistryClientSession );
- CleanupStack::Pop(); // self;
- return self;
- }
-
-// ---------------------------------------------------------
-// CWmWidgetData::NewLC
-// ---------------------------------------------------------
-//
-CWmWidgetData* CWmWidgetData::NewLC(
- CHsContentInfo& aHsContentInfo,
- RWidgetRegistryClientSession* aRegistryClientSession )
- {
- CWmWidgetData* self = new ( ELeave ) CWmWidgetData();
- CleanupStack::PushL(self);
- self->ConstructL( aHsContentInfo, aRegistryClientSession );
- return self;
- }
-
-// ---------------------------------------------------------
-// CWmWidgetData::CWmWidgetData
-// ---------------------------------------------------------
-//
-CWmWidgetData::CWmWidgetData()
- {
- iIdle = NULL;
- iLogoImage = NULL;
- iLogoImageMask = NULL;
- iHsContentInfo = NULL;
- iWidgetType = CWmWidgetData::EUnknown;
- iInstallAnimationIndex = KErrNotFound;
- iPublisherUid = KNullUid;
- iLogoSize = TSize( 0, 0 );
- }
-
-// ---------------------------------------------------------
-// CWmWidgetData::ConstructL
-// ---------------------------------------------------------
-//
-void CWmWidgetData::ConstructL(
- CHsContentInfo& aHsContentInfo,
- RWidgetRegistryClientSession* aRegistryClientSession )
- {
- // analyse the widget type
- if ( aHsContentInfo.Type() == KContentTemplate )
- {
- iWidgetType = CWmWidgetData::ECps; // wrt widgets included in this gategory
- }
- else if ( aHsContentInfo.Type() == KContentWidget )
- {
- iWidgetType = CWmWidgetData::ENative;
- }
-
- // duplicate the content info locally
- iHsContentInfo = aHsContentInfo.CloneL();
-
- iImageConverter = CWmImageConverter::NewL( this );
-
- FetchPublisherUidL( aRegistryClientSession );
-
- // start decoding the icon
- iIdle = CIdle::NewL( CActive::EPriorityLow );
- iIdle->Start( TCallBack( HandleAsyncIconString, this ) );
- }
-
-
-// ---------------------------------------------------------
-// CWmWidgetData::~CWmWidgetData
-// ---------------------------------------------------------
-//
-CWmWidgetData::~CWmWidgetData()
- {
- if ( iIdle && iIdle->IsActive() )
- {
- iIdle->Cancel();
- }
- delete iIdle;
- SetObserver( NULL );
- delete iLogoImage;
- delete iLogoImageMask;
- delete iImageConverter;
- delete iHsContentInfo;
- }
-
-// ---------------------------------------------------------
-// CWmWidgetData::SetObserver
-// ---------------------------------------------------------
-//
-void CWmWidgetData::SetObserver( MWmWidgetDataObserver* aObserver )
- {
- iObserver = aObserver;
- }
-
-// ---------------------------------------------------------
-// CWmWidgetData::SetObserver
-// ---------------------------------------------------------
-//
-void CWmWidgetData::SetPersistentWidgetOrder(
- const CWmPersistentWidgetOrder* aPersistentWidgetOrder )
- {
- iPersistentWidgetOrder = aPersistentWidgetOrder;
- }
-
-// ---------------------------------------------------------
-// CWmWidgetData::EqualsTo
-// ---------------------------------------------------------
-//
-TBool CWmWidgetData::EqualsTo( CHsContentInfo& aContentInfo )
- {
- return (
- HsContentInfo().Uid() == aContentInfo.Uid() &&
- HsContentInfo().PublisherId() == aContentInfo.PublisherId() );
- }
-
-// ---------------------------------------------------------
-// CWmWidgetData::CompareByName
-// ---------------------------------------------------------
-//
-TInt CWmWidgetData::CompareByName(
- const CWmWidgetData& aDataOne, const CWmWidgetData& aDataTwo )
- {
- // negate the result for ascending alphabetical order
- TInt result = aDataOne.Name().CompareC( aDataTwo.Name() );
- return result;
- }
-
-// ---------------------------------------------------------
-// CWmWidgetData::CompareByPersistentWidgetOrder
-// ---------------------------------------------------------
-//
-TInt CWmWidgetData::CompareByPersistentWidgetOrder(
- const CWmWidgetData& aDataOne, const CWmWidgetData& aDataTwo )
- {
- TInt result;
- const CWmPersistentWidgetOrder* order = aDataOne.iPersistentWidgetOrder;
- if ( order && !order->IsEmpty() )
- {
- result = order->IndexOf( aDataOne ) - order->IndexOf( aDataTwo );
- }
- else
- {
- // fallback: if persistent widget order is not available
- // or it is empty (this is the case on first start, or if the persistent
- // file is corrupted or deleted) -> order widgets by name.
- result = CompareByName( aDataOne, aDataTwo );
- }
- return result;
- }
-
-// ---------------------------------------------------------
-// CWmWidgetData::NotifyCompletion
-// ---------------------------------------------------------
-//
-void CWmWidgetData::NotifyCompletion( TInt aError )
- {
- delete iLogoImage;
- iLogoImage = NULL;
- delete iLogoImageMask;
- iLogoImageMask = NULL;
- if ( KErrNone != aError )
- {
- // no image available. Do nothing.
- }
- else
- {
- iLogoImage = iImageConverter->Bitmap();
- iLogoImageMask = iImageConverter->Mask();
- FireDataChanged();
- }
- }
-
-// ---------------------------------------------------------
-// CWmWidgetData::HandleIconStringL
-// ---------------------------------------------------------
-//
-void CWmWidgetData::HandleIconStringL( const TDesC& aIconStr )
- {
- HBufC* iconStr = NULL;
- if ( aIconStr.Length() == 0 &&
- iPublisherUid != KNullUid )
- {
- // workaround for wrt widgets icon
- _LIT( KUidTag, "uid(0x%x)" );
- const TInt KLength = 32;
- iconStr = HBufC::NewLC( KLength );
- iconStr->Des().Format( KUidTag, iPublisherUid.iUid );
- }
- else
- {
- iconStr = aIconStr.AllocLC();
- }
-
- TSize size( iLogoSize );
- if ( iLogoImage ) { size = iLogoImage->SizeInPixels(); }
- if ( size != iLogoSize &&
- iLogoSize.iWidth > 0 && iLogoSize.iHeight > 0 )
- {
- size = iLogoSize;
- }
- iImageConverter->HandleIconStringL(
- size.iWidth, size.iHeight, *iconStr );
-
- CleanupStack::PopAndDestroy( iconStr );
- }
-
-// ---------------------------------------------------------
-// CWmWidgetData::FireDataChanged
-// ---------------------------------------------------------
-//
-void CWmWidgetData::FireDataChanged()
- {
- if ( iObserver )
- {
- iObserver->HandleWidgetDataChanged( this );
- }
- }
-
-// ----------------------------------------------------
-// CWmWidgetData::UidFromString
-// ----------------------------------------------------
-//
-TUid CWmWidgetData::UidFromString( const TDesC8& aUidString ) const
- {
- TUid uid( TUid::Null() );
- const TInt KHexPrefixLength = 2;
- if ( aUidString.Length() > KHexPrefixLength )
- {
- TUint id = 0;
- TLex8 lex( aUidString.Mid( KHexPrefixLength ) );
- if ( lex.Val( id, EHex ) == KErrNone )
- {
- uid.iUid = (TInt32)id;
- }
- }
- return uid;
- }
-
-// ----------------------------------------------------
-// CWmWidgetData::PublisherUid
-// ----------------------------------------------------
-//
-TUid CWmWidgetData::PublisherUid()
- {
- return iPublisherUid;
- }
-
-// ----------------------------------------------------
-// CWmWidgetData::FetchPublisherUidL
-// ----------------------------------------------------
-//
-void CWmWidgetData::FetchPublisherUidL(
- RWidgetRegistryClientSession* aRegistryClientSession )
- {
- if ( iPublisherUid == KNullUid &&
- PublisherId() != KNullDesC &&
- iWidgetType != CWmWidgetData::ENative &&
- aRegistryClientSession )
- {
- TInt widgetUid = aRegistryClientSession->GetWidgetUidL( PublisherId() );
- iPublisherUid = ( widgetUid != 0 ? TUid::Uid(widgetUid) : KNullUid );
- }
- }
-// ----------------------------------------------------
-// CWmWidgetData::SetLogoSize
-// ----------------------------------------------------
-//
-void CWmWidgetData::SetLogoSize( const TSize& aSize )
- {
- iLogoSize = aSize;
- if ( iImageConverter )
- {
- iImageConverter->SetLogoSize( aSize );
- }
- }
-
-// ---------------------------------------------------------
-// CWmWidgetData::HandleAsyncIconString
-// ---------------------------------------------------------
-//
-TInt CWmWidgetData::HandleAsyncIconString( TAny* aPtr )
- {
- CWmWidgetData* self = static_cast< CWmWidgetData* >( aPtr );
- if ( self->iIdle->IsActive() )
- {
- self->iIdle->Cancel();
- }
- TRAP_IGNORE( self->HandleIconStringL(
- self->HsContentInfo().IconPath() ); );
- return KErrNone;
- }
-
-// ---------------------------------------------------------
-// CWmWidgetData::ReCreateLogo
-// ---------------------------------------------------------
-//
-void CWmWidgetData::ReCreateLogo( const TSize& aSize )
- {
- TSize imageSize( iLogoSize );
- if ( iLogoImage ) { imageSize = iLogoImage->SizeInPixels(); }
- if ( (aSize != iLogoSize) || (imageSize != iLogoSize) )
- {
- iLogoSize = aSize;
-
- delete iLogoImage;
- iLogoImage = NULL;
- delete iLogoImageMask;
- iLogoImageMask = NULL;
-
- if ( iIdle && !iIdle->IsActive() )
- {
- // start decoding the icon
- iIdle->Start( TCallBack( HandleAsyncIconString, this ) );
- }
- }
- }
-
-// End of file
-
--- a/widgetmanager/src/wmwidgetloaderao.cpp Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,256 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies)..
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Active object to load widgets into list
-*
-*/
-
-// INCLUDE FILES
-#include "wmcommon.h"
-#include "wmplugin.h"
-#include "wmresourceloader.h"
-#include "wmpersistentwidgetorder.h"
-#include "wmlistbox.h"
-#include "wmwidgetloaderao.h"
-
-#include <hscontentcontroller.h> // content control api
-#include <hscontentinfoarray.h> // content control api
-#include <WidgetRegistryClient.h> // widget reqistry
-
-
-// ---------------------------------------------------------------------------
-// CWmWidgetLoaderAo::NewL
-// ---------------------------------------------------------------------------
-//
-CWmWidgetLoaderAo* CWmWidgetLoaderAo::NewL(
- CWmPlugin& aWmPlugin,
- CWmListBox& aTargetList )
- {
- CWmWidgetLoaderAo* self = new (ELeave) CWmWidgetLoaderAo(
- aWmPlugin, aTargetList );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CWmWidgetLoaderAo::NewL
-// ---------------------------------------------------------------------------
-//
-CWmWidgetLoaderAo::CWmWidgetLoaderAo(
- CWmPlugin& aWmPlugin,
- CWmListBox& aTargetList )
- : CAsyncOneShot( EPriorityLow )
- , iWmPlugin( aWmPlugin )
- , iWidgetsList( aTargetList )
- {
- iWidgetRegistry = NULL;
- iWidgetOrder = NULL;
- }
-
-// ---------------------------------------------------------------------------
-// CWmWidgetLoaderAo::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CWmWidgetLoaderAo::ConstructL()
- {
- }
-
-// ---------------------------------------------------------------------------
-// CWmWidgetLoaderAo::~CWmWidgetLoaderAo
-// ---------------------------------------------------------------------------
-//
-CWmWidgetLoaderAo::~CWmWidgetLoaderAo()
- {
- // cancel ongoing operation
- Cancel();
-
- // cleanup run data
- Cleanup();
-
- }
-
-// ---------------------------------------------------------------------------
-// CWmWidgetLoaderAo::StartLoading
-// ---------------------------------------------------------------------------
-//
-void CWmWidgetLoaderAo::StartLoading()
- {
- if ( IsActive() )
- {
- // cancel ongoing process
- Cancel();
- }
- Call();
- }
-
-// ---------------------------------------------------------------------------
-// CWmWidgetLoaderAo::RunL
-// ---------------------------------------------------------------------------
-//
-void CWmWidgetLoaderAo::RunL()
- {
- DoLoadWidgetsL();
- Cleanup();
- }
-
-// ---------------------------------------------------------------------------
-// CWmWidgetLoaderAo::RunError
-// ---------------------------------------------------------------------------
-//
-TInt CWmWidgetLoaderAo::RunError( TInt /*aError*/ )
- {
- Cleanup();
- return KErrNone;
- }
-
-// ---------------------------------------------------------
-// CWmWidgetLoaderAo::DoLoadWidgetsL
-// ---------------------------------------------------------
-//
-void CWmWidgetLoaderAo::DoLoadWidgetsL()
- {
- // 1. mark all the existing widgets initially non-valid
- for( TInt i=0; i<iWidgetsList.WidgetDataCount(); ++i )
- iWidgetsList.WidgetData(i).SetValid( EFalse );
-
- // 2. load the widgets array
- MHsContentController& controller = iWmPlugin.ContentController();
- CHsContentInfoArray* contentInfoArray = CHsContentInfoArray::NewL();
- CleanupStack::PushL( contentInfoArray );
- controller.WidgetListL( *contentInfoArray );
-
- // 3. load the widget order
- iWidgetOrder = CWmPersistentWidgetOrder::NewL( iWmPlugin.FileServer() );
- TRAPD( loadError, iWidgetOrder->LoadL() );
-
- // 4. loop through the content array and compare it against the existing
- // widget data.
- TInt widgetsAdded = 0;
- for ( TInt i=0; i < contentInfoArray->Array().Count(); i++ )
- {
- CHsContentInfo* contentInfo = contentInfoArray->Array()[i];
-
- // check if this widget exists.
- // if it does, keep the existing one
- // if it does not, add it
- CWmWidgetData* existingData = FindWidgetData( *contentInfo );
- if ( existingData )
- {
- // keep the existing one
- existingData->SetValid( ETrue );
- }
- else
- {
- // add a new one
- AddWidgetDataL( *contentInfo );
- ++widgetsAdded;
- }
- }
-
- // if widgets were added, extend the listbox
- if ( widgetsAdded )
- iWidgetsList.HandleItemAdditionL();
-
- // 5: finally, remove all UI widgets that during the loading process were
- // NOT marked as VALID. those widgets do not exist anymore.
- TInt widgetsRemoved = 0;
- for( TInt i=0; i<iWidgetsList.WidgetDataCount(); i++ )
- {
- if( !iWidgetsList.WidgetData(i).IsValid() )
- {
- iWidgetsList.RemoveWidgetData( i );
- ++widgetsRemoved;
- }
- }
-
- // 6: cleanup
- CleanupStack::PopAndDestroy( contentInfoArray );
-
- // 7. redraw list
- if ( widgetsAdded > 0 || widgetsRemoved > 0 )
- {
- iWidgetsList.DrawDeferred();
- }
-
- // 8. store list order if necessary
- if ( loadError != KErrNone || widgetsAdded > 0 || widgetsRemoved > 0 )
- {
- iWidgetOrder->StoreL( iWidgetsList.WidgetDataArray() );
- }
-
- }
-
-// ---------------------------------------------------------
-// CWmWidgetLoaderAo::FindWidgetDataL
-// ---------------------------------------------------------
-//
-CWmWidgetData* CWmWidgetLoaderAo::FindWidgetData(
- CHsContentInfo& aContentInfo )
- {
- CWmWidgetData* data = NULL;
- for( TInt i=0; i<iWidgetsList.WidgetDataCount() && !data; ++i )
- {
- if ( iWidgetsList.WidgetData(i).EqualsTo( aContentInfo ) )
- {
- data = &iWidgetsList.WidgetData(i);
- }
- }
- return data;
- }
-
-// ---------------------------------------------------------
-// CWmWidgetLoaderAo::AddWidgetDataL
-// ---------------------------------------------------------
-//
-void CWmWidgetLoaderAo::AddWidgetDataL(
- CHsContentInfo& aContentInfo )
- {
- if ( !iWidgetRegistry )
- {
- iWidgetRegistry = new (ELeave) RWidgetRegistryClientSession();
- User::LeaveIfError( iWidgetRegistry->Connect() );
- }
-
- CWmWidgetData* widgetData = CWmWidgetData::NewLC(
- aContentInfo, iWidgetRegistry );
- widgetData->SetPersistentWidgetOrder( iWidgetOrder );
- widgetData->SetValid( ETrue );
- iWidgetsList.AddWidgetDataL( widgetData );
- CleanupStack::Pop( widgetData );
- }
-
-// ---------------------------------------------------------------------------
-// CWmWidgetLoaderAo::Cleanup
-// ---------------------------------------------------------------------------
-//
-void CWmWidgetLoaderAo::Cleanup()
- {
- // disconnect widget registry
- if ( iWidgetRegistry )
- {
- iWidgetRegistry->Disconnect();
- iWidgetRegistry->Close();
- delete iWidgetRegistry;
- iWidgetRegistry = NULL;
- }
-
- // delete widget order
- delete iWidgetOrder;
- iWidgetOrder = NULL;
- }
-
-// end of file
-
--- a/widgetmanager/tsrc/wmunittest/bwins/wmunittestu.def Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
- ?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * LibEntryL(class CTestModuleIf &)
-
--- a/widgetmanager/tsrc/wmunittest/conf/ui_wmunittest.cfg Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,776 +0,0 @@
-//-------------------------------------------------------------------------------
-// constants
-//-------------------------------------------------------------------------------
-//
-[Define]
-
-TRUE 1
-FALSE 0
-
-OK 0
-FAIL -1
-
-MAX_WIDGET_AMOUNT 1000 // non-functional requirement
-
-EUnrecognized 0
-EUidIcon 1
-ESvgIcon 2
-ESkinIcon 3
-EMifIcon 4
-ESkinAndMifIcon 5
-EImageIcon 6
-
-[Enddefine]
-
-//-------------------------------------------------------------------------------
-// Test cases for the plugin
-//-------------------------------------------------------------------------------
-//
-
-
-// Tests WmPlugin construction
-[Test]
-title WmPlugin create/delete
-create wmunittest test
-test HeapSet
-test PluginCreate
-pause 500
-test PluginDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Heap usage logging
-[Test]
-title WmPlugin memcon test
-create wmunittest test
-test HeapSet
-test LogHeap "before wm"
-test PluginCreate
-test LogHeap "wm Active"
-//
-test SetMass 10
-test PluginActivate
-pause 500
-test LogHeap "10 widgets"
-//
-test SetMass 20
-test PluginWidgetsChanged
-pause 250
-test LogHeap "20 widgets"
-//
-test SetMass 30
-test PluginWidgetsChanged
-pause 250
-test LogHeap "30 widgets"
-//
-test SetMass 40
-test PluginWidgetsChanged
-pause 250
-test LogHeap "40 widgets"
-//
-test SetMass 50
-test PluginWidgetsChanged
-pause 250
-test LogHeap "50 widgets"
-//
-test SetMass 60
-test PluginWidgetsChanged
-pause 250
-test LogHeap "60 widgets"
-//
-test SetMass 70
-test PluginWidgetsChanged
-pause 250
-test LogHeap "70 widgets"
-//
-test SetMass 80
-test PluginWidgetsChanged
-pause 250
-test LogHeap "80 widgets"
-//
-test SetMass 90
-test PluginWidgetsChanged
-pause 250
-test LogHeap "90 widgets"
-//
-test SetMass 100
-test PluginWidgetsChanged
-pause 250
-test LogHeap "100 widgets"
-//
-test SetMass 200
-test PluginWidgetsChanged
-pause 250
-test LogHeap "200 widgets"
-//
-test SetMass 300
-test PluginWidgetsChanged
-pause 250
-test LogHeap "300 widgets"
-//
-test SetMass 400
-test PluginWidgetsChanged
-pause 250
-test LogHeap "400 widgets"
-//
-test SetMass 500
-test PluginWidgetsChanged
-pause 250
-test LogHeap "500 widgets"
-//
-test PluginDeactivate
-pause 250
-test LogHeap "wm deactive"
-//
-test PluginDeactivate
-pause 500
-test PluginDelete
-test HeapCheck
-test LogHeap "after wm"
-delete test
-[Endtest]
-
-// Tests WmPlugin Activate method
-[Test]
-title WmPlugin activate/deactivate
-create wmunittest test
-test HeapSet
-test PluginCreate
-test SetMass 10
-test PluginActivate
-pause 500
-test PluginDeactivate
-pause 500
-test PluginDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests WmPlugin NotifyWidgetListChanged with no change at all
-[Test]
-title WmPlugin notify nochange
-create wmunittest test
-test HeapSet
-test PluginCreate
-test SetMass 10
-test PluginActivate
-pause 500
-test SetMass 10
-test PluginWidgetsChanged
-pause 500
-test PluginDeactivate
-pause 500
-test PluginDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests WmPlugin NotifyWidgetListChanged 10->11 widgets
-[Test]
-title WmPlugin notify 10->11
-create wmunittest test
-test HeapSet
-test PluginCreate
-test SetMass 10
-test PluginActivate
-pause 500
-test SetMass 11
-test PluginWidgetsChanged
-pause 500
-test PluginDeactivate
-pause 500
-test PluginDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests WmPlugin NotifyWidgetListChanged 10->9 widgets
-[Test]
-title WmPlugin notify 10->9
-create wmunittest test
-test HeapSet
-test PluginCreate
-test SetMass 10
-test PluginActivate
-pause 500
-test SetMass 9
-test PluginWidgetsChanged
-pause 500
-test PluginDeactivate
-pause 500
-test PluginDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests WmPlugin NotifyWidgetListChanged 0->10 widgets
-[Test]
-title WmPlugin notify 0->10
-create wmunittest test
-test HeapSet
-test PluginCreate
-test SetMass 0
-test PluginActivate
-pause 500
-test SetMass 10
-test PluginWidgetsChanged
-pause 500
-test PluginDeactivate
-pause 500
-test PluginDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests WmPlugin NotifyWidgetListChanged 10->0 widgets
-[Test]
-title WmPlugin notify 10->0
-create wmunittest test
-test HeapSet
-test PluginCreate
-test SetMass 10
-test PluginActivate
-pause 500
-test SetMass 0
-test PluginWidgetsChanged
-pause 500
-test PluginDeactivate
-pause 500
-test PluginDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests WmPlugin NotifyWidgetListChanged with ridiculous amount of widgets
-// testing the OOM error handling
-[Test]
-title WmPlugin notify OOM
-create wmunittest test
-test HeapSet
-test PluginCreate
-test SetMass 10
-test PluginActivate
-pause 500
-test SetMass 10000
-test PluginWidgetsChanged
-pause 500
-test PluginDeactivate
-pause 500
-test PluginDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests WmPlugin with large data amount
-[Test]
-title WmPlugin capacity
-create wmunittest test
-test HeapSet
-test PluginCreate
-test SetMass MAX_WIDGET_AMOUNT
-test PluginActivate
-pause 3000
-test PluginDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests WmPlugin by notifying widget list changed hundreds of times
-// with different widget amounts and different timeouts. Target is to
-// interrupt the previous update process test that it is cancelled ok
-[Test]
-title WmPlugin robustness
-create wmunittest test
-test HeapSet
-test PluginCreate
-test SetMass 5
-test PluginActivate
-pause 500
-loop 100
-test SetMass 10
-test PluginWidgetsChanged
-pause 10
-test SetMass 15
-test PluginWidgetsChanged
-pause 90
-test SetMass 11
-test PluginWidgetsChanged
-pause 50
-test SetMass 16
-test PluginWidgetsChanged
-pause 120
-endloop
-test PluginDeactivate
-pause 500
-test PluginDelete
-test HeapCheck
-delete test
-[Endtest]
-
-//-------------------------------------------------------------------------------
-// Test cases for the persistent widget order
-//-------------------------------------------------------------------------------
-//
-
-// Tests persistent widget order NewL method
-[Test]
-title Widget order create
-create wmunittest test
-test HeapSet
-test WidgetOrderCreate
-test WidgetOrderCheckIsEmpty TRUE
-test WidgetOrderDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Test persistent widget order STORE method
-[Test]
-title Widget order store
-create wmunittest test
-test HeapSet
-test WidgetOrderCreate
-test WidgetOrderCheckIsEmpty TRUE
-test SetMass 5
-test WidgetOrderSave
-test WidgetOrderCheckIsEmpty FALSE
-test WidgetOrderDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Test persistent widget order STORE method when storing an empty array
-[Test]
-title Widget order store empty
-create wmunittest test
-test HeapSet
-test WidgetOrderCreate
-test WidgetOrderCheckIsEmpty TRUE
-test SetMass 0
-test WidgetOrderSave
-test WidgetOrderCheckIsEmpty TRUE
-test WidgetOrderDelete
-test HeapCheck
-delete test
-[Endtest]
-
-
-// Tests persistent widget order LOAD method
-[Test]
-title Widget order load
-create wmunittest test
-test HeapSet
-test WidgetOrderCreate
-test SetMass 5
-test WidgetOrderSave
-test WidgetOrderCheckIsEmpty 0
-test WidgetOrderDelete
-test WidgetOrderCreate
-test WidgetOrderLoad
-test WidgetOrderCheckIsEmpty 0
-test WidgetOrderDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests persistent widget order LOAD method when count is ZERO
-[Test]
-title Widget order load empty
-create wmunittest test
-test HeapSet
-test WidgetOrderCreate
-test SetMass 0
-test WidgetOrderSave
-test WidgetOrderCheckIsEmpty TRUE
-test WidgetOrderDelete
-test WidgetOrderCreate
-test WidgetOrderLoad
-test WidgetOrderCheckIsEmpty TRUE
-test WidgetOrderDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests persistent widget order INDEXOF method
-[Test]
-title Widget order use
-create wmunittest test
-test HeapSet
-test WidgetOrderCreate
-test SetMass 8
-test WidgetOrderSave
-test WidgetOrderCheckIsEmpty FALSE
-test WidgetOrderUse
-test WidgetOrderDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests persistent widget order INDEXOF method when class is empty
-[Test]
-title Widget order use empty
-create wmunittest test
-test HeapSet
-test WidgetOrderCreate
-test WidgetOrderCheckIsEmpty TRUE
-test SetMass 0
-test WidgetOrderUse
-test WidgetOrderDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests persistent widget order with large data amount
-[Test]
-title Widget order capacity
-create wmunittest test
-test HeapSet
-test WidgetOrderCreate
-test SetMass MAX_WIDGET_AMOUNT
-test WidgetOrderSave
-test WidgetOrderDelete
-test WidgetOrderCreate
-test WidgetOrderLoad
-test SetMass MAX_WIDGET_AMOUNT
-test WidgetOrderUse
-test WidgetOrderDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests persistent widget order save & load 100 times in sequence
-[Test]
-title Widget order robustness
-create wmunittest test
-test HeapSet
-test WidgetOrderCreate
-test SetMass 100
-loop 100
-test WidgetOrderSave
-endloop
-test WidgetOrderDelete
-test WidgetOrderCreate
-test SetMass 100
-loop 100
-test WidgetOrderLoad
-endloop
-test WidgetOrderUse
-test WidgetOrderDelete
-test HeapCheck
-delete test
-[Endtest]
-
-
-//-------------------------------------------------------------------------------
-// Test cases for the image converter
-//-------------------------------------------------------------------------------
-//
-
-// Tests image converter NewL method
-[Test]
-title Image converter create delete
-create wmunittest test
-test HeapSet
-test ImageConverterCreate
-test ImageConverterConversionMethod EUnrecognized
-test ImageConverterDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests malformed icon string
-[Test]
-title malformed image formats
-create wmunittest test
-test HeapSet
-test ImageConverterCreate
-test ImageConverterConvert "foo bar"
-test ImageConverterWaitResult FAIL
-test ImageConverterConvert "*************"
-test ImageConverterWaitResult FAIL
-test ImageConverterConvert "uid skin mif logo icon jpg jpeg icon"
-test ImageConverterWaitResult FAIL
-test ImageConverterConvert "girl.jpg"
-test ImageConverterWaitResult FAIL
-test ImageConverterConvert "dirty_hack.exe"
-test ImageConverterWaitResult FAIL
-test ImageConverterConvert "c:/testframework/wmunittest/wmlogo/logo.jpg"
-test ImageConverterWaitResult FAIL
-test ImageConverterConvert "skin (0x10005a26 0x1000 )"
-test ImageConverterWaitResult FAIL
-test ImageConverterConvert "mif ( c:\testframework\wmunittest\wmlogo\logo.mif 16384 16385)"
-test ImageConverterWaitResult FAIL
-test ImageConverterConvert "skin( 0x100056c6 0x86 ):mif ( c:\testframework\wmunittest\wmlogo\logo.mif 16384 16385 )"
-test ImageConverterWaitResult FAIL
-test ImageConverterConvert "skin ( 0x101f84b7 0x1000594D ) : mif ( c:\testframework\wmunittest\wmlogo\logo.mif 16384 16385 )"
-test ImageConverterWaitResult FAIL
-test ImageConverterConvert " uid(0x10005901 )"
-test ImageConverterWaitResult FAIL
-test ImageConverterConvert "uid (268458241 )"
-test ImageConverterWaitResult FAIL
-test ImageConverterConvert "uid (0x10005901)"
-test ImageConverterWaitResult FAIL
-test ImageConverterDelete
-test HeapCheck
-delete test
-[Endtest]
-
-
-// Tests image converter with skin syntax
-[Test]
-title Image converter skin
-create wmunittest test
-test HeapSet
-test ImageConverterCreate
-test ImageConverterConvert "skin(0x101F86E3 0x100d)"
-test ImageConverterWaitResult OK
-test ImageConverterConversionMethod ESkinIcon
-test ImageConverterDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests image converter skin method with null skin item ids
-[Test]
-title Image converter skin (null)
-create wmunittest test
-test HeapSet
-test ImageConverterCreate
-test ImageConverterConvert "skin(0 0)"
-test ImageConverterWaitResult FAIL
-test ImageConverterDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests image converter with skin/mif syntax
-[Test]
-title Image converter skin/mif
-create wmunittest test
-test HeapSet
-test ImageConverterCreate
-test ImageConverterConvert "skin(270501603 4145):mif(c:\testframework\wmunittest\wmlogo\logo.mif 16384 16385)"
-test ImageConverterWaitResult OK
-test ImageConverterConversionMethod ESkinAndMifIcon
-test ImageConverterDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests image converter mif method
-[Test]
-title Image converter mif
-create wmunittest test
-test HeapSet
-test ImageConverterCreate
-test ImageConverterConvert "mif(c:\testframework\wmunittest\wmlogo\logo.mif 16384 16385)"
-test ImageConverterWaitResult OK
-test ImageConverterConversionMethod EMifIcon
-test ImageConverterDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests image converter mif method with invalid path
-[Test]
-title Image converter mif (invalid path)
-create wmunittest test
-test HeapSet
-test ImageConverterCreate
-test ImageConverterConvert "mif(c:\blabla.mif 16384 16385)"
-test ImageConverterWaitResult FAIL
-test ImageConverterDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests image converter mif method with invalid bitmap & mask ids
-[Test]
-title Image converter mif (invalid ids)
-create wmunittest test
-test HeapSet
-test ImageConverterCreate
-test ImageConverterConvert "mif(c:\testframework\wmunittest\wmlogo\logo.mif 1 2)"
-test ImageConverterWaitResult FAIL
-test ImageConverterDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests image converter uid method
-[Test]
-title Image converter uid
-create wmunittest test
-test HeapSet
-test ImageConverterCreate
-test ImageConverterConvert "uid(0x10005901)"
-test ImageConverterWaitResult OK
-test ImageConverterConversionMethod EUidIcon
-test ImageConverterDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests image converter uid method with null uid
-[Test]
-title Image converter uid (null)
-create wmunittest test
-test HeapSet
-test ImageConverterCreate
-test ImageConverterConvert "uid(0x0)"
-test ImageConverterWaitResult FAIL
-test ImageConverterDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests image converter uid method with wrt widget uid.
-[Test]
-title Image converter wrt widget
-create wmunittest test
-test HeapSet
-test InstallWrtWidget "c:\testframework\wmunittest\wmlogo\test.wgz"
-test ImageConverterCreate
-test ImageConverterConvert "uid(0x2000DAD2)"
-test ImageConverterWaitResult OK
-test ImageConverterConversionMethod EUidIcon
-test ImageConverterDelete
-test UninstallWrtWidget "0x2000DAD2"
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests image converter svg method
-[Test]
-title Image converter svg
-create wmunittest test
-test HeapSet
-test ImageConverterCreate
-test ImageConverterConvert "c:\testframework\wmunittest\wmlogo\logo.svg"
-test ImageConverterWaitResult OK
-test ImageConverterConversionMethod ESvgIcon
-test ImageConverterDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests image converter svg method corrupt file.
-[Test]
-title Image converter svg (corrupted)
-create wmunittest test
-test HeapSet
-test ImageConverterCreate
-test ImageConverterConvert "c:\testframework\wmunittest\wmlogo\logocorrupt.svg"
-test ImageConverterWaitResult FAIL
-test ImageConverterConversionMethod ESvgIcon
-test ImageConverterDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests image converter png method
-[Test]
-title Image converter png
-create wmunittest test
-test HeapSet
-test ImageConverterCreate
-test ImageConverterConvert "c:\testframework\wmunittest\wmlogo\logo.png"
-test ImageConverterWaitResult OK
-test ImageConverterConversionMethod EImageIcon
-test ImageConverterDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests image converter png method corrupt file.
-[Test]
-title Image converter png (corrupted)
-create wmunittest test
-test HeapSet
-test ImageConverterCreate
-test ImageConverterConvert "c:\testframework\wmunittest\wmlogo\logocorrupt.png"
-test ImageConverterWaitResult FAIL
-test ImageConverterDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests image converter jpeg method
-[Test]
-title Image converter jpeg
-create wmunittest test
-test HeapSet
-test ImageConverterCreate
-test ImageConverterConvert "c:\testframework\wmunittest\wmlogo\logo.jpg"
-test ImageConverterWaitResult OK
-test ImageConverterConversionMethod EImageIcon
-test ImageConverterDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests image converter jpeg method
-[Test]
-title Image converter jpeg (corrupted)
-create wmunittest test
-test HeapSet
-test ImageConverterCreate
-test ImageConverterConvert "c:\testframework\wmunittest\wmlogo\logocorrupt.jpg"
-test ImageConverterWaitResult FAIL
-test ImageConverterDelete
-test HeapCheck
-delete test
-[Endtest]
-
-// Tests image converter cancel
-[Test]
-title Image converter cancel
-create wmunittest test
-test HeapSet
-test ImageConverterCreate
-test ImageConverterConvert "c:\testframework\wmunittest\wmlogo\logo.svg"
-test CancelConvert
-test ImageConverterWaitResult FAIL
-test ImageConverterDelete
-test HeapCheck
-delete test
-[Endtest]
-
-
-//-------------------------------------------------------------------------------
-// Misc Test cases
-//-------------------------------------------------------------------------------
-//
-
-// Tests error note
-[Test]
-title Other error note
-create wmunittest test
-test HeapSet
-test PluginCreate
-test PluginActivate
-test ErrorPopup
-pause 3000
-test PluginDelete
-test HeapCheck
-delete test
-[Endtest]
-
-/*
-// Test for heikki to play :)
-[Test]
-title WmPlugin 1h test
-create wmunittest test
-test HeapSet
-test PluginCreate
-test SetMass 500
-test PluginActivate
-pause 3600000
-test PluginDelete
-test HeapCheck
-delete test
-[Endtest]
-*/
-
-
--- a/widgetmanager/tsrc/wmunittest/conf/wmunittest.bat Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-rem /*
-rem * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-rem * All rights reserved.
-rem * This component and the accompanying materials are made available
-rem * under the terms of "Eclipse Public License v1.0"
-rem * which accompanies this distribution, and is available
-rem * at the URL "http://www.eclipse.org/legal/epl-v10.html".
-rem *
-rem * Initial Contributors:
-rem * Nokia Corporation - initial contribution.
-rem *
-rem * Contributors:
-rem *
-rem * Description:
-rem *
-rem */
-
-ATSInterface.exe -testmodule TestScripter -config c:\testframework\ui_wmunittest.cfg
-
--- a/widgetmanager/tsrc/wmunittest/conf/wmunittest.ini Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,188 +0,0 @@
-#
-# This is STIF initialization file
-# Comment lines start with '#'-character.
-# See STIF TestFramework users guide.doc for instructions
-
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-# Set following test engine settings:
-# - Set Test Reporting mode. TestReportMode's possible values are:
-# + 'Summary': Summary of the tested test cases.
-# + 'Environment': Hardware and software info.
-# + 'TestCases': Test case report.
-# + 'FullReport': Set of all above ones.
-# + Example 'TestReportMode= Summary TestCases'
-#
-# - CreateTestReport setting controls report creation mode
-# + YES, Test report will created.
-# + NO, No Test report.
-#
-# - File path indicates the base path of the test report.
-# - File name indicates the name of the test report.
-#
-# - File format indicates the type of the test report.
-# + TXT, Test report file will be txt type, for example 'TestReport.txt'.
-# + HTML, Test report will be html type, for example 'TestReport.html'.
-# + XML, Test report will be xml type, for example 'TestReport.xml'.
-# Note, that xml format is available only when output is set to FILE.
-#
-# - File output indicates output source of the test report.
-# + FILE, Test report logging to file.
-# + RDEBUG, Test report logging to using rdebug.
-#
-# - File Creation Mode indicates test report overwriting if file exist.
-# + OVERWRITE, Overwrites if the Test report file exist.
-# + APPEND, Continue logging after the old Test report information if
-# report exist.
-# - Sets a device reset module's dll name(Reboot).
-# + If Nokia specific reset module is not available or it is not correct one
-# StifHWResetStub module may use as a template for user specific reset
-# module.
-# - Sets STIF test measurement disable options. e.g. pluging1 and pluging2 disablation
-# DisableMeasurement= stifmeasurementplugin01 stifmeasurementplugin02
-#
-
-[Engine_Defaults]
-
-TestReportMode= FullReport # Possible values are: 'Empty', 'Summary', 'Environment',
- # 'TestCases' or 'FullReport'
-
-CreateTestReport= YES # Possible values: YES or NO
-
-TestReportFilePath= C:\LOGS\TestFramework\
-TestReportFileName= WidgetManager
-
-TestReportFormat= TXT # Possible values: TXT, HTML or XML
-TestReportOutput= FILE # Possible values: FILE or RDEBUG
-TestReportFileCreationMode= OVERWRITE # Possible values: OVERWRITE or APPEND
-
-DeviceResetDllName= StifResetForNokia.dll # e.g. 'StifHWResetStub.dll' for user specific reseting
-
-DisableMeasurement= stifmeasurementdisablenone # Possible values are:
- # 'stifmeasurementdisablenone', 'stifmeasurementdisableall'
- # 'stifmeasurementplugin01', 'stifmeasurementplugin02',
- # 'stifmeasurementplugin03', 'stifmeasurementplugin04',
- # 'stifmeasurementplugin05' or 'stifbappeaprofiler'
-
-Timeout= 0 # Default timeout value for each test case. In milliseconds
-UITestingSupport= YES # Possible values: YES or NO
-#SeparateProcesses= YES # Possible values: YES or NO (default: NO)
-[End_Defaults]
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-
-
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-# Widget manager unit tests
-[New_Module]
-ModuleName= testscripter
-TestCaseFile= c:\testframework\ui_wmunittest.cfg
-[End_Module]
-
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-
-
-
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-# Set STIF logging overwrite parameters for Logger.
-# Hardware and emulator environment logging path and styles can
-# be configured from here to overwrite the Logger's implemented values.
-#
-# Settings description:
-# - Indicates option for creation log directory/directories. If log directory/directories
-# is/are not created by user they will make by software.
-# + YES, Create log directory/directories if not allready exist.
-# + NO, Log directory/directories not created. Only created one is used.
-#
-# - Overwrite emulator path setting.
-# + Example: If 'EmulatorBasePath= C:\LOGS\TestFramework\' and in code is defined
-# Logger's path 'D:\\LOGS\\Module\\' with those definition the path
-# will be 'C:\LOGS\TestFramework\LOGS\Module\'
-#
-# - Overwrite emulator's logging format.
-# + TXT, Log file(s) will be txt type(s), for example 'Module.txt'.
-# + HTML, Log file(s) will be html type(s), for example 'Module.html'.
-#
-# - Overwrited emulator logging output source.
-# + FILE, Logging to file(s).
-# + RDEBUG, Logging to using rdebug(s).
-#
-# - Overwrite hardware path setting (Same description as above in emulator path).
-# - Overwrite hardware's logging format(Same description as above in emulator format).
-# - Overwrite hardware's logging output source(Same description as above in emulator output).
-#
-# - File Creation Mode indicates file overwriting if file exist.
-# + OVERWRITE, Overwrites if file(s) exist.
-# + APPEND, Continue logging after the old logging information if file(s) exist.
-#
-# - Will thread id include to the log filename.
-# + YES, Thread id to log file(s) name, Example filename 'Module_b9.txt'.
-# + NO, No thread id to log file(s), Example filename 'Module.txt'.
-#
-# - Will time stamps include the to log file.
-# + YES, Time stamp added to each line in log file(s). Time stamp is
-# for example'12.Nov.2003 115958 LOGGING INFO'
-# + NO, No time stamp(s).
-#
-# - Will line breaks include to the log file.
-# + YES, Each logging event includes line break and next log event is in own line.
-# + NO, No line break(s).
-#
-# - Will event ranking include to the log file.
-# + YES, Event ranking number added to each line in log file(s). Ranking number
-# depends on environment's tics, for example(includes time stamp also)
-# '012 12.Nov.2003 115958 LOGGING INFO'
-# + NO, No event ranking.
-#
-# - Will write log file in unicode format.
-# + YES, Log file will be written in unicode format
-# + NO, Log will be written as normal, not unicode, file.
-#
-
-[Logger_Defaults]
-
-#NOTE: If you want to set Logger using next setting(s) remove comment(s)'#'
-#NOTE: TestEngine and TestServer logging settings cannot change here
-
-#CreateLogDirectories= YES # Possible values: YES or NO
-
-#EmulatorBasePath= C:\LOGS\TestFramework\
-#EmulatorFormat= HTML # Possible values: TXT or HTML
-#EmulatorOutput= FILE # Possible values: FILE or RDEBUG
-
-#HardwareBasePath= D:\LOGS\TestFramework\
-#HardwareFormat= HTML # Possible values: TXT or HTML
-#HardwareOutput= FILE # Possible values: FILE or RDEBUG
-
-#FileCreationMode= OVERWRITE # Possible values: OVERWRITE or APPEND
-
-#ThreadIdToLogFile= YES # Possible values: YES or NO
-#WithTimeStamp= YES # Possible values: YES or NO
-#WithLineBreak= YES # Possible values: YES or NO
-#WithEventRanking= YES # Possible values: YES or NO
-
-#FileUnicode= YES # Possible values: YES or NO
-#AddTestCaseTitle= YES # Possible values: YES or NO
-[End_Logger_Defaults]
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-
-
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-# Set filters to be used by ConsoleUI.
-# If you want to use filter with ConsoleUI, simply remove comments
-# from section below and provide valid filter entries.
-# Each filter line has to start with "filter= " keyword.
-# Filter can contain special wildcard characters:
-# * which stands for none or any literal;
-# ? which stands for single character.
-# Filters are not case-sensitive.
-
-#[Filters]
-#filter= *math*
-#filter= *radio*
-#[End_Filters]
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-# End of file
Binary file widgetmanager/tsrc/wmunittest/data/wmlogo/logo.jpg has changed
Binary file widgetmanager/tsrc/wmunittest/data/wmlogo/logo.mif has changed
Binary file widgetmanager/tsrc/wmunittest/data/wmlogo/logo.png has changed
--- a/widgetmanager/tsrc/wmunittest/data/wmlogo/logo.svg Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="32px"
- height="32px"
- id="svg2466"
- sodipodi:version="0.32"
- inkscape:version="0.46"
- sodipodi:docname="drawing.svg"
- inkscape:output_extension="org.inkscape.output.svg.inkscape">
- <defs
- id="defs2468">
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 16 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="32 : 16 : 1"
- inkscape:persp3d-origin="16 : 10.666667 : 1"
- id="perspective2474" />
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="15.938205"
- inkscape:cx="9.927765"
- inkscape:cy="10.627086"
- inkscape:current-layer="layer1"
- showgrid="true"
- inkscape:grid-bbox="true"
- inkscape:document-units="px"
- inkscape:window-width="1680"
- inkscape:window-height="1031"
- inkscape:window-x="0"
- inkscape:window-y="0" />
- <metadata
- id="metadata2471">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- id="layer1"
- inkscape:label="Layer 1"
- inkscape:groupmode="layer">
- <image
- y="5.765738"
- x="-0.030936712"
- id="image2462"
- height="18.19879"
- width="31.139833"
- sodipodi:absref="Y:\HS_Domain\homescreen\idlehomescreen\data\qhd_tch\shortcut2_2001f484\gfx\shortcut2logo.png"
- xlink:href="Y:\HS_Domain\homescreen\idlehomescreen\data\qhd_tch\shortcut2_2001f484\gfx\shortcut2logo.png"
- transform="matrix(1,0,2.5955691e-2,0.9996631,0,0)" />
- </g>
-</svg>
--- a/widgetmanager/tsrc/wmunittest/data/wmlogo/logocorrupt.jpg Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-ÿØÿà JFIF ` ` ÿá 6Exif II* & ÓJûZP `NƒÜà:÷¬Çy¥êmC%´™0»¦Až™ÿ
-Ö~í5;ܬz ê9áÕ¢s7‘(dUó =‡ç]_„.ßû%P·Íå9è3Ÿçšãå̧˜ã_dPµÓh
-öúlŒ8,2>¼š¬
W9µÒÇ>MÉ®‡©£‡\te?~jµ£±Až»ùTÛz–;Ç桹ÿ YÜoåI,éfI]Q,Xà
-ÁºñŽ‹Œ³)\œ{óúSå¹*5*| ³€ÿ Åi ÿ lÿ #^ÂÊ®¥YCØŒ×Û8o@Àä$_”×±î>ÕRèzYº|ÔÓþTr>)ð½ï—- k¶$
¼vïíÏ~•o—@†G¸¸GšlnU^èO^ž‚¶`ŸÍlŒ1ùqÙsÇçÖ±5MrãOÕ
-©ÝS·@eV´iCšnÈ󥋩
-Å¿u»9RA
øb0n{JʲÖí¯ áû¬Z–(¬ ðW÷ü:þtá(N<ÑwF ¦®‹µ“oþ¿ë£ÿ èF´÷j˶?ºoúèÿ úª%²8šëýõÿ ÐV1ùOÒªZ®ºÿ |è+VIùOÒ“(äƒíàqÞž»$ª:Ÿ_jÆâÎJ 8Ïsì)q¿ | }Õ|&)V“}ÙïÒàØ[ûh¯@$luåYN>¹þµL®¬WÉ7Q„Æß0/ͯ¯¾*Ï›ÏZ<ßzÅN]KöHd[(hN'ù‡’ÙëŸPjÔW[ò¬6È¿yAæûÔRøem²/Ýoè}©7}ÇÉm8ß2 Ïñ
-ë³\•Ï™rˆÃlŠÃrÿ Qí]Îkë2%l;õ<ŒrµEè?5ƒâÛ&¾ÐäŒÈŸ2qÎ? üko4Ž¡Õ‘€!†=ëÜ„œd¤·G£Ì¬Ï ³ÕRßP “r»¡nÙ»ÖãËægy
žÇšgŽ|#-Ô—Ö±—·–uQÊœòÇó¬« Ø ÜI; 9® ¥
-œ¸ªNÍèןsÉ)Sm=‡k+@’**¶ð¤¨ÆFøV3¸ee=ø5wZºO"8÷ìà…ï€5æZúnu%^Ñ·«ß±ÉR+›CHÔnàÛÜN¬e2 $‚;÷5»
-µÕÌVÊ7X)û¿ÅúgñÇq6LÍDg`ü*®IàôëþðûÛíÔvUÏ
-½qýIõÇ¥|þm”ÒXõ:i(Úí.çnœ§fö:ëxü‹xãã* ¯z—4Ê3[ž°®£!èÀƒ^ys—uqg7X‘ž2¬O?žGá^…\׊t‰.oí3Ä>eé¹{ƒú}³I««ÕÎBêi-ØÄrÍÉÿ ?L~5Òà ÅÂRrwfÉ$¬‚Š(¤0 àäQE sß„b½”ÜÙ9·º#QÃ{Üœ×-%¶½¤Ëó[HÀËKvëÿ 8?νB‚<ŠVËŽ»¬·ÈÔ3ÿ \óÅ,vºþ Ûm"ç%Ãçð“ü«Ó|ˆ³þ?ï‘O€)(¤+Ήá(ld[›Ç77XûÍÑ}€èùÉ®˜pµU(=h¢€
-ZJ(£#†í^gâ_ ^Ïpe°uhÙ‹laÈ$ó‚•é´P‹¥VtåÍfxí‡ÃmNæP·eb‹ø° $~#ç¥vñøO†Þ(à’[wU
-Z'eÝùù⺺(m½Ê«^¥gy»œå·ƒ4øfY§i.d^33`ÿ À‰ý+¡$ …QÐ
-u-B¥iþ¤ÿ ×Gÿ Ð]5J×ýIÿ ®ÿ ¡ R¯³Å MßyJîúõã—7xÿ _ýú?üUP¥ÿ Ïx¿ïÑÿ â¨ÿ Kÿ žñߣÿ ÅQE éóÞ/ûôøª_ô¿ùïýú?üUP¥ÿ Ïx¿ïÑÿ â©Òóþ¾/ûôøª( ý/þ{Åÿ ~ÿ Gú_ü÷‹þýþ*Š( ÿ Kÿ žñߣÿ ÅRfëþ{Eÿ ~ÿ E fëþ{Eÿ ~ÿ Gú_ü÷‹þýþ*Š(Òÿ ç¼_÷èÿ ñT™ºÿ žÑߣÿ ÅQE /ú_ü÷‹þýþ*ô¿ùïýú?üUPþ—ÿ =âÿ ¿Gÿ Š£ý/þ{Åÿ ~ÿ E ¥ÿ Ïx¿ïÑÿ â¨Íßü÷‹þýþ*Š( ÿ Kÿ žñߣÿ ÅRfëþ{Eÿ ~ÿ E fëþ{Eÿ ~ÿ Kþ—ÿ =âÿ ¿Gÿ Š¢Š ?Òÿ ç¼_÷èÿ ñT™ºÿ žÑߣÿ ÅQE éóÞ/ûôøª?Òÿ ç¼_÷èÿ ñTQ@ú_ü÷‹þýþ*ŒÝÏh¿ïÑÿ ⨢€ý/þ{Åÿ ~ÿ Gú_ü÷‹þýþ*Š( ÿ Kÿ žñߣÿ ÅRfëþ{Eÿ ~ÿ E ¿éóÞ/ûôøªLÝÏh¿ïÑÿ ⨢€Ý"9ü>j|_ºR‰ÎI'©<ÑE ÿÙ
\ No newline at end of file
--- a/widgetmanager/tsrc/wmunittest/data/wmlogo/logocorrupt.png Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-‰PNG
-
-
IHDR < W #n| sRGB ®Îé gAMA ±üa cHRM z& €„ ú €è u0 ê` :˜ pœºQ< ˜þIDATx^í½XÙº5œ{Ï=÷ž3÷ !4„@Ü=3™ÈÄ…@šœ¸»»1 ÁÝÝÝݦ•¦
—úWu‘’@&ÌÉÜïû¿çäYÙOu±»ºjïZû•ýîwÿ£–ÙÝÝý_ÿõ_~÷«¿ƒí³î·ú]â“øãûÛWéÕ âûü¸‘¿üý>/Ñ=°öÿVíÖßCôwýö{õÿc@ÍßS÷{ý¾ÏyȺ co ¹þsùH8ÿ÷¿ÿ½½¥õoûÛ z
£ª´eƒË®çÔ”×V•VrèlF-Dí#ÔÒë«Æ׃^þþÊTMz½O0ªB¿×¡Úá3ÔWÓúÁ€Ú‡N¯©ªiô¾À¨©ïý=×_Ýn½þ@ï³ßúmÏ~ê÷׿ë¬oq3’טCãÐËi´ÒZ’´u•4ðt-Ì)ÊHÎLKLÍËÌÍLÉ ‘šöR2Pa@ÈLÉtqTÎLêYÉYB×éiª5z!#9½´}>½r¿Øs>9=³/d¥dô‰~Ÿë¯n·^ ÷™‘˜Ñ'þ õ>ëÇöï·ºþ—¯“•šIÕð˜é éµeµõ•õ 0‚6¨¢¸’Ec—–ç•äg@[ndq™u»‘§áð9<1ÿw”>‹ß'lÁ7AO;PÑÚjÏñõíÓßú>/àð†oÔߤ1¿áEúë÷?ê—µöÿþÕÀ>¼f’ßÅG.[’[RœSý‚YÃT]Vá7dâ ¶¢®³¥‹è"Z…-Íü&á'hŠHšÿ¯(ÍÍ|Üjh´~ô´Õ½@¶@øúöùÂE¾ÙŸ¾M;|“Æü†é¿ßûï—oÖ¤áOù"‘ ©IØÜ,jÁÖÄ ¹"Aƒ°ª¸*7-b–$-D+ª>9.…Çæâ|ð»?Ò~Nã/Ÿiâ„^_Ô(56}Ž&x èï%è´ýžÿl˜ûƒöá‰Ð1_þ~·¿+ôÿ\}vj4TþV×ÿV×ùú–ürͶó·ú]Š´=¼å7á²x·ÁJh™ÐRÒV–TÅFĵ‰ÚÛ›::š;;[:ˆön[¢¦OÐŒA` ÐÅ›EŸ
-@I[Iö5âö</õÔÿ
-È~5š,&”Éч-€6ÒBØþŽ=í@Oz|öÙýgS&OÁfYؘçÎÕ;ÈüÒ>¹û9Í]<{k7aÌØÑÃG„…ææ”ddÑÒ¸‡/ú[Ú6ÕøL¦Ñé,ã3Ù&g3öƒPMÝ{¥lÿÍÚG²Õ7yŒšólÔ¼Ò+œÇ,v¾àý°ùï†Îw±È
oþ°E®?-tºÔkÈ!K‡,q²äýðÅ.£xŽ_à.3ïÜ‚»;Líò›SsjÒ2óã±O`µ]õ'ÝŠ}“–VZºâ]0¨7¾o`µR7ÔÖÖVÕ2bÓÊ☳W]Q]üxÒü7RœÆ.rµäýˆ¥ï‡-w¶ÒgÌÏžã—½Üx$ê]á˜Ýæ\ÐàZX÷.»Ä9¯Ü5¿Ö5ážÃqÏiðÈáxä0<rk=skÝ2k}òÙïRÊ|‹9~åB—€¸èÕ0nÅÓÑKíG-ñ¹ÈkäbÏ‘KÝF-u”]v¤ÍHà0Z$¤²°ï%ÞWÑŒ·–°Hç¬üþÞïOHÆbs—”¨¤Ô¨G[‡PïDê`É8H+lD
-Æ®&zs]Tmwð´£Å!h‰¦Öû¬ãm¢tmüõ¬CÏ;›k I!²«xnÁ^º¾»L#t,bõDèÖ?¸ïD€å9§ýGì-Ž¾?|¾Ø;¬..[TÁªÍ¯©-/ÈE*H4YZëîí mrTlbD4ò±i¿ÀUÉŸÈF HËf‹yÛCÚô˜¬ÄÈ´úzF«,›xÖÉì·óÓ¹¤°ùùŒµO§ü|Wþ×{Škoªn»5w…ÅÔM–Ë5–¨)¨(ËMT…Jj´Ü˜QãGŽúÓMŒ-í½ßùx^n¡ «£½àž=cñ†uÛ Q×Y¿`Þ|0vá‚y(-X¸pþ‚9³æÊL>d윙K|=ß=rxñÄÉÍ1ôÙC'ðöù#ççɓ켜ü?!íGŒ{{‘”ÆGÊ¥ŒwÓã;±‰öÈöý0ìšuÿÆ}
-8ž¥>[Qb ÃÇÿn0ëôäÂÄäªØTžõi_«ñWsM¯”ì½Php>ßäR‘éõrÃ+µ¿ZdLÙà-µüýÄ•îòküdVúŒZäq2j±÷È%¾£—ù]8zEàÈeÖúŽXá;l¥×Е.CW:
_á:b¹ç˜¥ã—øN\쬰äÉNS縬æ¤ôêôÔ‚”˜ôØà–•>‹?%-½œFIZ–¢+ŸN½ñ} Í- ;{¤cÏä<ìx̘¾ü¶â|Û‰óœ¥úŒ_ê5j‰ÛPŒ+K/s#SU+CM;©Uv¦ªîJ™ªª¦“ª¦¤º3IuGªŠV²’vŒ¢N¤‚N´‚NŒÒ®$U¸é»Ãfî|·ç¤›OBµWõ%B‹‹ÆXüíI˯â±Jhq1ï_yððæ¥7n=u¹ü0ðÔè+/‹‘~sÐ[d—<¡y_zÛSß~¯þrð¬×Ãæ¾<ûÙ?5îþCãƳn_xïÇÙ7~šs}ðÜCçß™!ón™skø‚Û?̼òi—¾ŸqsÈÜGƒç=ûqö‹g½:ÛaÈ,D“¼:Ó~8‰·#f¼•šyã‰mBb\!Ôc i›8ðEõëˆúiÑXX…‹IÊšÅJ¨Ð€°ÀÀHÖñ½GR<ç–e•"ÑfqzqQJaa2¶è(ÈO.$‘‚ÌE…©…%ÉÙÅ)™y)9é¹)…I™…iH7‘ž‡TH%)éåIée‰iÅIY¨™–Ÿžž__Ž¹Á’âj9U©úº›[:ɽöšÚ[š;êjhî>
Œ #cr4KZ‰MÛ¿êiéäk
Æ~ -/!86?)»89ÙieÕH©Œl±eåEåyùìꚚ⒲¼‚<¤Ëuyÿî ©ÙšÅËç(O›&£¨1QEa¬Ü„aãÇ‹ ›_Wm9}üÚų÷,öŸ8vðêåsàC:wêö±C—ïݲ}x÷•…éá_V®_¶xb¡ *««iª©N›5}Þ®z'Ž^ ±o_amvñÉЇAÔã‡n=píÄᛧŽÞ>}ìÖùã×Þ<}Ò"¸â+I+±óTŸ™”ùöù[ÐyÛ>‚µvìÔÕÕÑÑÞ±[g§o`”wX–SPÙâ·çï|=[ËcÆ® ÚaÓw…jjƒÃÚ¡»Â5vEŠ=M+
-ÐÜ5]+Zsg„ÆŽpM°Z¡¨?]+XsGðŒÑ3´Â§khìöž¦ë=m·ïtm\ÐoÆŽ÷Ku_œxû>(Í3$*<:&À/0"(ì_"Ø&ü‚z^3¥<½$ÜkõÖÿeÑòUÓæÿ&§±mè¤mrs
Sµ4L{äŒ+æ=9Ý~ô,pzò?§=ûiæ«QÆ-}?jÑ+½?Í~0xÎýÁs‚™$æ<2çéÐ9O†Ïy0löý¡3
™õdäü7£‘æë÷¯Ï´#1ãõெN5t†íð/Çϸ
-I›œPŒyZŠ´ƒIoõ'lZÊ{AIZ‹*ñøñ«Ko^¾pyèÉm…O_¾|âÂís×o½vóìõg®Ý8sãƹ›7ÎÞ¾uîÆíSn†Ò…ŒÕWN\¼vüÒµ3¯_8åæ¹K÷Ï\xxú܃“çoŸ!÷&¾pñÚ¹‹7.]ºuúÔ…Ó§.]¾tãÚÕÛ±mé™K¨éâµóg/aƒ&lazþÔ9D½øøû!ÌYê1 H"¢ lqç}ÆO=5ÕE7·$$ÆëˆÀTš¡&¸ÄÀä¸Ï'ê9‰†¶ ï16†Åxéô%{[{p2ÔEĘ¿‡¿Ÿ‡¿§/²û‘,ú _0×ÛßÏD
ò÷
-ðÄ1 ï p²/ ro쀈WÆOÇbàc¨0œa8 @ ~žþØ¡øÝ«wØ÷ K
-꧿~y©
-
Œ|.©(b0èt$î#3Œ±¸%ù¥îNØvÙÔØÜÔÀÂP{¯ÞNc#]sc]Kƒ]Và¸úvÛ@IÈ?}86Ús2ÖÔø8´hHÑc8yKª&ùØs°ÛRŸ„¹¡¶É™£ga¤@7FãF¬¢¸©n¥ÀL¸$Hô×ýgT3‘µHŒˆ…vc÷ÌöÙݯžÚbGi¬‚RC®ã{jûüáã×onØ!¤>-±kuaØ7€*q†*ñW„ìQE‰ãä¸Tì-ôY™Šß¥WÁü!ÓJR¼Åýàö¾i©w†û¨f§¼8†A…+'5:5‚ã C瀀Çú®ŠR?„׉Ü*@¼8éÛKZrA#½‰^Â2ZùõÍ<Zx´f¬VëYnŽ±9 ÉL>“Ž±8X/*¤‰¾¦Ä’12(B²«ØéòÊ@]~š[Ãk¨å"ñÆ‹FŒl2žSBÔæÜ{L)Õÿ³d.^¢ˆJØò¹NÕ¡¾"^I3 PßêM!É™ÞýG¹Ç1++‘«½ŸôORý‘C09
-“ËÍñ>‘ô (o-Jf
)©›¡Æ”/<,æ~%@5jÃ26³ë9(©ð±O@ÔSú0î‡â*Î|[Ò‚9Ô@LÚTœ¥nPNjU=ÆM*…̀Р)¿öv¤Ìi£ÄOi©}¸`¹ážÈà„Oç9?‘'®hæÒ[ë{£
¹´fn}²«`\2;J®§'Áùú’Gg| &4r\„49èä›M¾“%94ˆ×ˆÜ|ý+¾"éÈ¿ââÿÊ5û#g¿×D÷IÐKýô:ÇQ!+¨©×ž9ž3±}Lùô¼vgHɸü¯4ø'ßíS-ê_Íù4¦@ò^ASó´\õ&$8¡ßá\)‚ sÀe Í@#â~‘Wd,EZ’·
t¤~ÖÑYüz’_Sòõ\f=Y"êŠÎ€¿óLÔ¢gr
·¸$7)¢ðoÒþј5`Ò‚¨i?6?ºN¯å¬]?ÿ&X¶CW§¶o{HS’Vâä蟴ö‡Ñp ¥Þ ®7Ø0ëÅ (ê~] Š2°Ù ¸Ä1%õZ€Ÿâß"ËÞ U¬?zqÿ*ü¿#i?檤ézHûÉêscü…bVÌÛ“VLÚöòé3"êK¤åСC³9t›—ÅìA/‚a#L a3ÅfLO¸tö¥ØòAoýpG÷ÍŠCg±TQïÔ‚•“öËCÒÀ%mïþú}@ü?DÚ«Ç=&4µkôbR=Ƈ¯=@Td‡‚›à²ëYt
-bU–’6“à¨+Ö“…H8úu%¥cK@*Ûâ/
-9,¡Q%›ÙÌ—8†xÿ_¤øIÛçB‹/œüÃ+ÿ‹þi¡×`l«Hü™ë|
èß’–zµ(õò–T%¤Å‰ÑÜß¼IZhÅ bÛÈd’þa1øH”fKñ¶i{¸G1°?ôЕ¿ôGF2êĦli
-bÒâ@ðoÒ~cIû1WÿMÚqÐüVŽ¨²1ˆ´ÔÒ< ³˜ŒÁt9£SO¦G`ž“ô÷˜¯ 7¥$T}¥Óñi(±°îw)JÎjPsäʲß1Ðëÿ‹}ð>5"þÿ^Ò’¤%½ `#ð£EöT
-5Ÿø«¾ùÇKZ꽂L¥ÔcLñ¢.Qøü‡’–t¾ÓEðSs§˜V„$o‘œšÝ!ׂQovϼ\ÏK@½
-X’<à*u±ç™ÒÐXâ¥dbw±ØiOÿßç=þ…´éƤ÷þߤýSÚþ·’´ðSê1x:óȈóÀZ$0@8µ»t"E2ÄŠ3qRø(ÿ[ƵXùã²Çj¢l'Iù¡]$Ìï¹
ê¥éu*…ïŸÀ·’´ÿŠ×{v~ ×hýþû±ïÖû¼/¾U‹ý¹ëH¢\> AùVí0ÐöùV¿û…ëPap¨€÷¥dáæi¡…&mZ,B¬Â ±‰
-s¡¢öúÄ€ÂAþDåþ~÷Ïuùçßú·ÔçWþPOþä[’úýÿä‚ýÝç@÷¯¾Î·jϯ¹ÏÞu¾U;|Íï~Í»7Ðvèïš’hYT Ýà.†
-k®L…²c!Zñáéȇ *ƒÙ8 Aü—ƒEŸèöwþÎSS\ÿ:ú»Ïþ®Œîý§?¼íþ®óžë[]ç_oÉ/_¡÷}~Í»ñÚí;è“
-m‡þž…º,( ¢âšxm°®‹Zu„œ*THü 0C‰u$øôf¬H@~“þÖãS©þuÀŠîÍ0Ðúýýî@Ï÷÷»ý]G’¾à“
-½Î@ë´ÚuýOžWòâ}«vhû|«ßíï:ð6á–@@dÌ@‰ *c•x
--ñQ‹ññ™Š¼ËÅk²¨ðÆÏ1Ð¥¿úø•>Ñßï~«ûèõ¿U}êa{_íË-9Ðçè}~A#è¥þ×ê÷¾çþè@ß·¾ç½Ÿ/Ô§ÞHZ€rS+%©µ¾Ð‚áæpDiÈÐ)èK3Їh#þÕ÷3Ðûèý|=]z'ÿo×—¼'Ÿ4à@Û¿¿÷íÿTëõwÿQ!A©Œ i‰ªü{pHK XhÏ›ñêôÿl6ú@ïs ¶ß×Ôï]ç[µÃ@Ÿk ¿;Ðë«úÔËý¹;` ÷ÿêô:_ó>ô¾&8ˆ¯ô¦4*taœÇµïÿÛ ³^²g<b IEND®B`‚
\ No newline at end of file
--- a/widgetmanager/tsrc/wmunittest/data/wmlogo/logocorrupt.svg Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- id="svg2466"
- inkscape:version="0.46"
- sodipodi:docname="drawing.svg"
- inkscape:output_extension="org.inkscape.output.svg.inkscape">
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- id="layer1"
- inkscape:label="Layer 1"
- inkscape:groupmode="layer">
- id="image2462"
- height="18.19879"
- width="31.139833"
- sodipodi:absref="Y:\HS_Domain\homescreen\idlehomescreen\data\qhd_tch\shortcut2_2001f484\gfx\shortcut2logo.png"
- xlink:href="Y:\HS_Domain\homescreen\idlehomescreen\data\qhd_tch\shortcut2_2001f484\gfx\shortcut2logo.png"
- transform="matrix(1,0,2.5955691e-2,0.9996631,0,0)" />
- </g>
-</svg>
Binary file widgetmanager/tsrc/wmunittest/data/wmlogo/test.wgz has changed
--- a/widgetmanager/tsrc/wmunittest/eabi/wmunittestu.def Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
- _Z9LibEntryLR13CTestModuleIf @ 1 NONAME
-
--- a/widgetmanager/tsrc/wmunittest/group/Create_sisx.bat Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-rem
-rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-rem All rights reserved.
-rem This component and the accompanying materials are made available
-rem under the terms of "Eclipse Public License v1.0"
-rem which accompanies this distribution, and is available
-rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-rem
-rem Initial Contributors:
-rem Nokia Corporation - initial contribution.
-rem
-rem Contributors:
-rem
-rem Description:
-rem
-
-rem Create wm sis&sisx files
-makesis wmunittest.pkg
-signsis wmunittest.SIS wmunittest.SISX Nokia_RnDCert_02.der Nokia_RnDCert_02.key
Binary file widgetmanager/tsrc/wmunittest/group/Nokia_RnDCert_02.der has changed
--- a/widgetmanager/tsrc/wmunittest/group/Nokia_RnDCert_02.key Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIICXQIBAAKBgQC/TDP7KKIaf5+uW4OD2iVZuUMC2a+SeQTjf6srlKcOm+CpPNXn
-uLNm/8fdEnyOIuRXPRKmqhs1n0JkxEGHynELWMTuKXbQx9SRAGUXzyneGn+IJNnO
-vOKHWgKCouX2hfI8rtkdqJpqmO460gGsMgw+lsbeyWyW9lnfLxq+ZC7sqQIDAQAB
-AoGBALmUWZE8GBaQ3P4u9WUCSd3DJkkrmXIFSULSZeH/chlwCwDjbbhArHothVzo
-REE3hEFFlERvHbplZ+mNouzy7boduvgUzbksGrbGMLJ2qO1GzWWVwV+GzOWKd3ss
-/98Gwoy5R8pjnkqUE2wP1iJFw0FjvUTKcYv/z6t3LLJ0CsoBAkEA+c7ixvsviQ3J
-s0INytCKU2bf8fqFQJi1VI82ukxNsujGTQ9upVSjuvqPvWyDvvTdrUBHqO+3qPut
-sEh01Q8aiQJBAMQKDJPVRu4ud3mwUfEavzL5EjqwG1k9VCNGYsT4FwtrHcxu1oP/
-pk6M3rIZukqomoEEnHWPMwhrK3fhBqi0OSECQQDr40VXege4FnH5OI2Hj4afHMyp
-VdQQXGMWFyopnzXblFz0lXb43cTCIiorR9XcMqNFHybLypkWE5o+lRzlt55pAkBQ
-P/zeF5Sts//cpL0mgdh7OVKpC6ZmZaCnwAx2rUhhuDu+kDDoYCLoTOps5fNI1LRK
-1GRoC3LMo3Jr5IYhUYWBAkBpCpN6k4JU/mszq98EojHerQNxk8sPqvQKUzTutohT
-1gLX9yepGayB/TtT2EEJDkWOlnTy/dvN6W3vzbJYz97x
------END RSA PRIVATE KEY-----
--- a/widgetmanager/tsrc/wmunittest/group/bld.inf Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Widget manager unit tests
-*/
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_TESTEXPORTS
-// test case configuration
-../conf/wmunittest.bat /epoc32/winscw/c/wmunittest.bat
-../conf/wmunittest.ini /epoc32/winscw/c/testframework/testframework.ini
-../conf/ui_wmunittest.cfg /epoc32/winscw/c/testframework/ui_wmunittest.cfg
-// test data
-../data/wmlogo/logo.jpg /epoc32/winscw/c/testframework/wmunittest/wmlogo/logo.jpg
-../data/wmlogo/logo.mif /epoc32/winscw/c/testframework/wmunittest/wmlogo/logo.mif
-../data/wmlogo/logo.png /epoc32/winscw/c/testframework/wmunittest/wmlogo/logo.png
-../data/wmlogo/logo.svg /epoc32/winscw/c/testframework/wmunittest/wmlogo/logo.svg
-../data/wmlogo/logocorrupt.jpg /epoc32/winscw/c/testframework/wmunittest/wmlogo/logocorrupt.jpg
-../data/wmlogo/logocorrupt.png /epoc32/winscw/c/testframework/wmunittest/wmlogo/logocorrupt.png
-../data/wmlogo/logocorrupt.svg /epoc32/winscw/c/testframework/wmunittest/wmlogo/logocorrupt.svg
-../data/wmlogo/test.wgz /epoc32/winscw/c/testframework/wmunittest/wmlogo/test.wgz
-
-PRJ_TESTMMPFILES
-wmunittest.mmp
-
-// End of File
--- a/widgetmanager/tsrc/wmunittest/group/wmunittest.mmp Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: MMP file for STIF Test Framework's TestScripter
-* testclass test module.
-*
-*/
-
-#include <data_caging_paths.hrh>
-#include <platform_paths.hrh>
-#include <bldvariant.hrh>
-
-TARGET wmunittest.dll
-TARGETTYPE dll
-UID 0x1000008D 0x101FB3E3
-
-CAPABILITY ALL -TCB
-VENDORID VID_DEFAULT
-SECUREID 0x101FB3E3
-
-DEFFILE wmunittest.def
-
-USERINCLUDE ../inc
-USERINCLUDE ../../../inc
-
-APP_LAYER_SYSTEMINCLUDE
-SYSTEMINCLUDE /epoc32/include/libc
-SYSTEMINCLUDE /epoc32/include/ecom
-
-SOURCEPATH ../../../src
-SOURCE wmplugin.cpp
-SOURCE wmresourceloader.cpp
-SOURCE wmmaincontainer.cpp
-SOURCE wmmaincontainerview.cpp
-SOURCE wmwidgetdata.cpp
-SOURCE wmlistbox.cpp
-SOURCE wmimageconverter.cpp
-SOURCE wmiconfileprovider.cpp
-SOURCE wmpersistentwidgetorder.cpp
-SOURCE wmeffectmanager.cpp
-SOURCE wmdetailsdlg.cpp
-SOURCE wmwidgetloaderao.cpp
-
-SOURCEPATH ../src
-SOURCE wmunittest.cpp
-SOURCE wmunittest_all.cpp
-SOURCE wmunittest_plugin.cpp
-SOURCE wmunittest_sortorder.cpp
-SOURCE wmunittest_converter.cpp
-
-// same as in widgetmanager.mmp
-LIBRARY euser.lib
-LIBRARY cone.lib
-LIBRARY avkon.lib
-LIBRARY eikcore.lib
-LIBRARY estor.lib
-LIBRARY eikcoctl.lib
-LIBRARY eikctl.lib
-LIBRARY eikdlg.lib
-LIBRARY efsrv.lib // RFs
-LIBRARY bafl.lib // BaflUtils
-LIBRARY apgrfx.lib // RApaLsSession
-LIBRARY commonengine.lib // StringLoader
-LIBRARY aknicon.lib // AknIconUtility
-LIBRARY imageconversion.lib // CImageDecoder
-LIBRARY bitmaptransforms.lib // CBitmapScaler
-LIBRARY fbscli.lib // CFbsBitmap
-LIBRARY gdi.lib // CFont
-LIBRARY egul.lib // TextUtils
-LIBRARY ecom.lib // ECom fw
-LIBRARY aknskins.lib // AknsDrawUtils
-LIBRARY aknskinsrv.lib // AknsDrawUtils
-LIBRARY aknswallpaperutils.lib // AknsDrawUtils
-LIBRARY hscontentcontrol.lib // CHsContentControlUi
-LIBRARY apparc.lib // CApaCommandLine
-LIBRARY aknlayout.lib // avkon layout
-LIBRARY aknlayout2scalable.lib // scalable avkon layout
-LIBRARY swinstcli.lib // widget uninstall
-LIBRARY hscontentinfo.lib // CHsContentInfo
-LIBRARY platformenv.lib // DriveInfo::GetDefaultDrive
-LIBRARY svgengine.lib // CSvgEngineInterfaceImpl
-LIBRARY gfxtrans.lib // effect manager
-LIBRARY ws32.lib //WindowSession
-LIBRARY widgetregistryclient.lib // WidgetRegistryClient
-LIBRARY hlplch.lib // HlpLauncher
-LIBRARY sysutil.lib // diskspace
-LIBRARY featmgr.lib // FeatureManager
-LIBRARY etext.lib
-
-
-// libraries needed by the test framework
-LIBRARY stiftestinterface.lib
-
-// End of File
--- a/widgetmanager/tsrc/wmunittest/group/wmunittest.pkg Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-;
-; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-; All rights reserved.
-; This component and the accompanying materials are made available
-; under the terms of "Eclipse Public License v1.0"
-; which accompanies this distribution, and is available
-; at the URL "http://www.eclipse.org/legal/epl-v10.html".
-;
-; Initial Contributors:
-; Nokia Corporation - initial contribution.
-;
-; Contributors:
-;
-; Description:
-;
-; Installation file for STIF
-;
-
-; Languages
-&EN
-
-; Provide value for uid
-#{"STIF"},(0x101FB3E3),1,1,0,TYPE=SA
-
-; Series60 product id for S60 3.0
-[0x101F7961], 0, 0, 0, {"Series60ProductID"}
-
-; Localised Vendor name
-%{"Nokia"}
-
-; Unique Vendor name
-:"Nokia"
-
-
-; Install files
-
-"\epoc32\release\armv5\udeb\wmunittest.dll" - "!:\sys\bin\wmunittest.dll"
-
-"..\conf\wmunittest.bat" - "!:\wmunittest.bat"
-"..\conf\wmunittest.ini" - "!:\testframework\testframework2.ini"
-"..\conf\ui_wmunittest.cfg" - "!:\testframework\ui_wmunittest.cfg"
-
-"..\data\wmlogo\logo.jpg" - "!:\testframework\wmunittest\wmlogo\logo.jpg"
-"..\data\wmlogo\logo.mif" - "!:\testframework\wmunittest\wmlogo\logo.mif"
-"..\data\wmlogo\logo.png" - "!:\testframework\wmunittest\wmlogo\logo.png"
-"..\data\wmlogo\logo.svg" - "!:\testframework\wmunittest\wmlogo\logo.svg"
-"..\data\wmlogo\logocorrupt.jpg" - "!:\testframework\wmunittest\wmlogo\logocorrupt.jpg"
-"..\data\wmlogo\logocorrupt.png" - "!:\testframework\wmunittest\wmlogo\logocorrupt.png"
-"..\data\wmlogo\logocorrupt.svg" - "!:\testframework\wmunittest\wmlogo\logocorrupt.svg"
-"..\data\wmlogo\test.wgz" - "!:\testframework\wmunittest\wmlogo\test.wgz"
-
--- a/widgetmanager/tsrc/wmunittest/inc/wmunittest.h Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,205 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: STIF testclass declaration
-*
-*/
-
-#ifndef WMUNITTEST_H
-#define WMUNITTEST_H
-
-// INCLUDES
-#include <stiflogger.h>
-#include <testscripterinternal.h>
-#include <stiftestmodule.h>
-#include <testclassassert.h>
-#include <s32file.h> // RFs
-
-#include "wmimageconverter.h" // MConverterObserver
-#include <hscontentcontroller.h>
-
-// MACROS
-#define TEST_CLASS_VERSION_MAJOR 0
-#define TEST_CLASS_VERSION_MINOR 0
-#define TEST_CLASS_VERSION_BUILD 0
-
-// MACROS FOR THE TEST CASES
-#define _LOG(a) iLog->Log(_L(a))
-#define _RETURN(a, b) iLog->Log(_L("\treturn: %d"),b); \
- iLog->Log(_L(a)); \
- return b; \
-
-#define _CLEANUPCHECK_BEGIN \
- CBase* __check = new (ELeave) CBase(); \
- CleanupStack::PushL( __check );
-
-#define _CLEANUPCHECK_END \
- CleanupStack::PopAndDestroy( __check );
-
-
-// Logging path & file
-_LIT( KWmUnitTestLogPath, "\\logs\\testframework\\wmunittest\\" );
-_LIT( KWmUnitTestLogFile, "wmunittest.txt" );
-
-// FORWARD DECLARATIONS
-class CWmPlugin;
-class CWmPersistentWidgetOrder;
-class CWmImageConverter;
-class CHsContentInfo;
-class CHsContentInfoArray;
-class RWidgetDataValues;
-
-
-// CLASS DECLARATION
-/**
-* test class for STIF Test Framework TestScripter.
-*/
-NONSHARABLE_CLASS(CWmUnitTest) : public CScriptBase,
- public MConverterObserver,
- public MHsContentController
- {
- public: // Constructors and destructor
- /** static constructor */
- static CWmUnitTest* NewL( CTestModuleIf& aTestModuleIf );
- /** desctructor */
- ~CWmUnitTest();
-
- private: // private stuff
- /** default constructor */
- CWmUnitTest( CTestModuleIf& aTestModuleIf );
- /** 2nd phase constructor */
- void ConstructL();
- /** version check */
- void SendTestClassVersion();
-
- public: // Test run API
-
- /** From CScriptBase Runs a script line. */
- virtual TInt RunMethodL( CStifItemParser& aItem );
-
- public: // from MConverterObserver
-
- virtual void NotifyCompletion( TInt aError );
-
- public: // from MHsContentController
-
- TInt WidgetListL( CHsContentInfoArray& aArray );
- TInt ViewListL( CHsContentInfoArray& aArray );
- TInt AppListL( CHsContentInfoArray& aArray );
- TInt AddWidgetL( CHsContentInfo& aInfo );
- TInt RemoveWidgetL( CHsContentInfo& aInfo );
- TInt AddViewL( CHsContentInfo& aInfo );
- TInt RemoveViewL( CHsContentInfo& aInfo );
- TInt ActivateViewL( CHsContentInfo& aInfo );
- TInt ActivateAppL( CHsContentInfo& aInfo );
-
- private: // Test methods
-
- // GENERAL
-
- // sets heap reference value
- TInt HeapSetL( CStifItemParser& aItem );
- // Log heap usage to file
- TInt LogHeapL( CStifItemParser& aItem );
- // compares heap against reference, logs warning if no match
- TInt HeapCheckL( CStifItemParser& aItem );
- // sets the mass of data for next test case
- TInt SetMassL( CStifItemParser& aItem );
- // install and uninstall wrt widget for tests
- TInt InstallWrtWidgetL( CStifItemParser& aItem );
- TInt UninstallWrtWidgetL( CStifItemParser& aItem );
- // test error note
- TInt ErrorPopupL( CStifItemParser& aItem );
-
- // TESTING THE PLUGIN
-
- // creates the WM plugin
- TInt PluginCreateL( CStifItemParser& aItem );
- // deletes WM plugin
- TInt PluginDeleteL( CStifItemParser& aItem );
- // calls Activate method for WM plugin
- TInt PluginActivateL( CStifItemParser& aItem );
- // calls Deactivate method for WM plugin
- TInt PluginDeactivateL( CStifItemParser& aItem );
- // calls NotifyWidgetListChanged method for WM plugin
- TInt PluginWidgetsChangedL( CStifItemParser& aItem );
-
- // TESTING THE WIDGET SORTING AND ORDER
-
- // creates WM persistent widget order object
- TInt WidgetOrderCreateL( CStifItemParser& aItem );
- // deletes WM persistent widget order object
- TInt WidgetOrderDeleteL( CStifItemParser& aItem );
- // tests WM persistent widget order's LOAD method
- TInt WidgetOrderLoadL( CStifItemParser& aItem );
- // tests WM persistent widget order's SAVE method
- TInt WidgetOrderSaveL( CStifItemParser& aItem );
- // tests WM persistent widget order's SAVE method
- TInt WidgetOrderCheckIsEmptyL( CStifItemParser& aItem );
- // calls WM persistent widget order's API methods
- TInt WidgetOrderUseL( CStifItemParser& aItem );
-
- // TESTING IMAGE CONVERSION ROUTINES
-
- // creates image converter object
- TInt ImageConverterCreateL( CStifItemParser& aItem );
- // deletes image converter object
- TInt ImageConverterDeleteL( CStifItemParser& aItem );
- // calls image converter's main conversion method
- TInt ImageConverterConvertL( CStifItemParser& aItem );
- // checks image converter callback and checks its result
- TInt ImageConverterWaitResultL( CStifItemParser& aItem );
- // gets and checks the conversion method from image converter
- TInt ImageConverterConversionMethodL( CStifItemParser& aItem );
- // cancel ongoing convert
- TInt CancelConvertL( CStifItemParser& aItem );
-
-
- private: // members used in testing
-
- void CreateContentInfoArrayL( CHsContentInfoArray& aArray, TInt aCount );
- void CreateWidgetDataArrayL( RWidgetDataValues& aArray, TInt aCount );
-
- // file server
- RFs iFs;
-
- // the WM plugin instance
- CWmPlugin* iWmPlugin;
-
- // the WM persistent widget order instance
- CWmPersistentWidgetOrder* iWmWidgetOrder;
-
- // the Image converter instance
- CWmImageConverter* iImageConverter;
-
- // amount of heap allocated in HeapSet
- TInt iHeapSize;
-
- // image converter response ready
- TBool iConversionReady;
-
- // image converter result
- TInt iConversionError;
-
- // switch for active schedular wait
- TBool iWaiting;
-
- // multipurpose test data count
- TInt iMass;
-
- };
-
-
-#endif // WMUNITTEST_H
-
-// End of File
--- a/widgetmanager/tsrc/wmunittest/src/wmunittest.cpp Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: This file contains testclass implementation.
-*
-*/
-
-// INCLUDE FILES
-#include <stiftestinterface.h>
-#include <settingserverclient.h>
-
-#include "wmunittest.h"
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::CWmUnitTest
-// -----------------------------------------------------------------------------
-//
-CWmUnitTest::CWmUnitTest(
- CTestModuleIf& aTestModuleIf ):
- CScriptBase( aTestModuleIf )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CWmUnitTest::ConstructL()
- {
- iLog = CStifLogger::NewL( KWmUnitTestLogPath,
- KWmUnitTestLogFile,
- CStifLogger::ETxt,
- CStifLogger::EFile,
- EFalse );
-
- SendTestClassVersion();
-
- User::LeaveIfError( iFs.Connect() );
- }
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::NewL
-// -----------------------------------------------------------------------------
-//
-CWmUnitTest* CWmUnitTest::NewL(
- CTestModuleIf& aTestModuleIf )
- {
- CWmUnitTest* self = new (ELeave) CWmUnitTest( aTestModuleIf );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::~CWmUnitTest
-// -----------------------------------------------------------------------------
-//
-CWmUnitTest::~CWmUnitTest()
- {
- // Delete logger
- delete iLog;
- // close file server
- iFs.Close();
- }
-
-//-----------------------------------------------------------------------------
-// CWmDeploymentClientTest::SendTestClassVersion
-//-----------------------------------------------------------------------------
-//
-void CWmUnitTest::SendTestClassVersion()
- {
- TVersion moduleVersion;
- moduleVersion.iMajor = TEST_CLASS_VERSION_MAJOR;
- moduleVersion.iMinor = TEST_CLASS_VERSION_MINOR;
- moduleVersion.iBuild = TEST_CLASS_VERSION_BUILD;
-
- TFileName moduleName;
- moduleName = _L("wmunittest.dll");
-
- TBool newVersionOfMethod = ETrue;
- TestModuleIf().SendTestModuleVersion(moduleVersion, moduleName, newVersionOfMethod);
- }
-
-// ========================== OTHER EXPORTED FUNCTIONS =========================
-
-// -----------------------------------------------------------------------------
-// LibEntryL() - polymorphic Dll entry point.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CScriptBase* LibEntryL(
- CTestModuleIf& aTestModuleIf ) // Backpointer to STIF Test Framework
- {
- return ( CScriptBase* ) CWmUnitTest::NewL( aTestModuleIf );
- }
-
-
-// End of File
--- a/widgetmanager/tsrc/wmunittest/src/wmunittest_all.cpp Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,249 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: list of all test blocks
-*
-*/
-
-//INCLUDE FILES
-#include <e32svr.h>
-#include <stdlib.h>
-#include <stifparser.h>
-#include <stiftestinterface.h>
-#include <bautils.h>
-#include <aknsskininstance.h>
-#include <swinstapi.h>
-#include <swinstdefs.h>
-#include <coemain.h>
-#include <EIKENV.H>
-#include "wmunittest.h"
-#include "wmresourceloader.h"
-
-// CONSTANTS
-_LIT( KHexPrefix, "0x" );
-_LIT8( KWrtMime, "application/x-nokia-widget");
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::RunMethodL
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::RunMethodL(
- CStifItemParser& aItem )
- {
- static TStifFunctionInfo const KFunctions[] =
- {
- // general test blocks
- ENTRY( "HeapSet", CWmUnitTest::HeapSetL ),
- ENTRY( "LogHeap", CWmUnitTest::LogHeapL ),
- ENTRY( "HeapCheck", CWmUnitTest::HeapCheckL ),
- ENTRY( "SetMass", CWmUnitTest::SetMassL ),
- ENTRY( "ErrorPopup", CWmUnitTest::ErrorPopupL ),
-
- // install/uninstall wrt widget for test
- ENTRY( "InstallWrtWidget", CWmUnitTest::InstallWrtWidgetL ),
- ENTRY( "UninstallWrtWidget", CWmUnitTest::UninstallWrtWidgetL ),
-
- // test blocks for the plugin
- ENTRY( "PluginCreate", CWmUnitTest::PluginCreateL ),
- ENTRY( "PluginDelete", CWmUnitTest::PluginDeleteL ),
- ENTRY( "PluginActivate", CWmUnitTest::PluginActivateL ),
- ENTRY( "PluginDeactivate", CWmUnitTest::PluginDeactivateL ),
- ENTRY( "PluginWidgetsChanged", CWmUnitTest::PluginWidgetsChangedL ),
-
- // test blocks for the persistent widget order class
- ENTRY( "WidgetOrderCreate", CWmUnitTest::WidgetOrderCreateL ),
- ENTRY( "WidgetOrderDelete", CWmUnitTest::WidgetOrderDeleteL ),
- ENTRY( "WidgetOrderLoad", CWmUnitTest::WidgetOrderLoadL ),
- ENTRY( "WidgetOrderSave", CWmUnitTest::WidgetOrderSaveL ),
- ENTRY( "WidgetOrderCheckIsEmpty", CWmUnitTest::WidgetOrderCheckIsEmptyL ),
- ENTRY( "WidgetOrderUse", CWmUnitTest::WidgetOrderUseL ),
-
- // test blocks for the image converter
- ENTRY( "ImageConverterCreate", CWmUnitTest::ImageConverterCreateL ),
- ENTRY( "ImageConverterDelete", CWmUnitTest::ImageConverterDeleteL ),
- ENTRY( "ImageConverterConvert", CWmUnitTest::ImageConverterConvertL ),
- ENTRY( "ImageConverterWaitResult", CWmUnitTest::ImageConverterWaitResultL ),
- ENTRY( "ImageConverterConversionMethod", CWmUnitTest::ImageConverterConversionMethodL ),
- ENTRY( "CancelConvert", CWmUnitTest::CancelConvertL ),
-
- };
-
- const TInt count = sizeof( KFunctions ) /
- sizeof( TStifFunctionInfo );
-
- return RunInternalL( KFunctions, count, aItem );
- }
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::HeapSetL
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::HeapSetL( CStifItemParser& /*aItem*/ )
- {
- User::Heap().AllocSize( iHeapSize );
- _RETURN("HeapSetL End", KErrNone);
- }
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::LogHeapL
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::LogHeapL( CStifItemParser& aItem )
- {
- TPtrC inputStr;
- aItem.SetParsingType( CStifItemParser::EQuoteStyleParsing );
- User::LeaveIfError( aItem.GetNextString( inputStr ) );
-
- TInt size = 0;
- User::Heap().AllocSize( size );
- iLog->Log( _L("Heap usage, %S: %d"), &inputStr, size );
- _RETURN("LogHeapL End", KErrNone);
- }
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::HeapCheckL
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::HeapCheckL( CStifItemParser& /*aItem*/ )
- {
- TInt ret = KErrNone;
- TInt heapSizeAtCheckpoint;
- User::Heap().AllocSize( heapSizeAtCheckpoint );
- if ( iHeapSize != heapSizeAtCheckpoint )
- {
- //ret = KErrTooBig; <-- not reliable
- _LOG("Warning: potential memory leak detected!!!");
- }
- _RETURN("HeapCheckL End", ret);
- }
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::SetMassL
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::SetMassL( CStifItemParser& aItem )
- {
- aItem.GetNextInt( iMass );
- _RETURN("SetMassL End", KErrNone);
- }
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::InstallWrtWidgetL
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::InstallWrtWidgetL( CStifItemParser& aItem )
- {
- TInt ret = KErrNone;
- TPtrC inputStr;
- aItem.SetParsingType( CStifItemParser::EQuoteStyleParsing );
- User::LeaveIfError( aItem.GetNextString( inputStr ) );
- if ( inputStr.Length() == 0 ) User::Leave( KErrArgument );
-
- // install widget
- SwiUI::RSWInstSilentLauncher installer;
- User::LeaveIfError( installer.Connect() );
- CleanupClosePushL( installer );
-
- SwiUI::TInstallReqPckg installReqPckg;
- SwiUI::TInstallOptions options;
- TRequestStatus status = KRequestPending;
-
- options.iUpgrade = SwiUI::EPolicyAllowed;
- options.iOptionalItems = SwiUI::EPolicyAllowed;
- options.iOCSP = SwiUI::EPolicyAllowed;
- options.iIgnoreOCSPWarnings = SwiUI::EPolicyAllowed;
- options.iUntrusted = SwiUI::EPolicyAllowed;
- options.iPackageInfo = SwiUI::EPolicyAllowed;
- options.iCapabilities = SwiUI::EPolicyAllowed;
- options.iKillApp = SwiUI::EPolicyAllowed;
- options.iOverwrite = SwiUI::EPolicyAllowed;
- options.iDownload = SwiUI::EPolicyAllowed;
- options.iDrive = 'C';
- options.iLang = User::Language();
- options.iUsePhoneLang = ETrue;
- options.iUpgradeData = SwiUI::EPolicyAllowed;
-
- SwiUI::TInstallOptionsPckg optionsPkg( options );
- installer.SilentInstall( status , inputStr, optionsPkg );
- User::WaitForRequest( status );
- ret = status.Int();
- CleanupStack::PopAndDestroy( &installer );
- _RETURN("InstallWrtWidgetL End", ret);
- }
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::UninstallWrtWidgetL
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::UninstallWrtWidgetL( CStifItemParser& aItem )
- {
- TInt ret = KErrNone;
- TPtrC inputStr;
- aItem.SetParsingType( CStifItemParser::EQuoteStyleParsing );
- User::LeaveIfError( aItem.GetNextString( inputStr ) );
- if ( inputStr.Length() == 0 ) User::Leave( KErrArgument );
-
- TUid uid;
- TLex lex( inputStr );
- lex.SkipSpaceAndMark();
- TPtrC mtoken = lex.MarkedToken();
- TInt pos = mtoken.FindF( KHexPrefix );
- if ( pos == 0 )
- {
- TLex lex( mtoken.Mid( KHexPrefix().Length() ) );
- TUint id = 0;
- ret = lex.Val( id, EHex );
- uid = TUid::Uid( (TInt)id );
- }
- else
- {
- TInt id( 0 );
- ret = lex.Val( id );
- uid.iUid = id;
- }
-
- if ( ret == KErrNone )
- {
- // Uninstall widget
- SwiUI::RSWInstSilentLauncher installer;
- User::LeaveIfError( installer.Connect() );
- CleanupClosePushL( installer );
-
- TRequestStatus status = KRequestPending;
- SwiUI::TUninstallOptions optionsUninstall;
- optionsUninstall.iBreakDependency = SwiUI::EPolicyAllowed;
- optionsUninstall.iKillApp = SwiUI::EPolicyAllowed;
- SwiUI::TUninstallOptionsPckg uninstallOptionsPkg( optionsUninstall );
-
- installer.SilentUninstall( status, uid, uninstallOptionsPkg, KWrtMime );
- User::WaitForRequest( status );
- CleanupStack::PopAndDestroy( &installer );
- }
-
- _RETURN("UninstallWrtWidgetL End", ret);
- }
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::ErrorPopup
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::ErrorPopupL( CStifItemParser& /*aItem*/ )
- {
- CWmResourceLoader* res = CWmResourceLoader::NewL( *CEikonEnv::Static() );
- res->ErrorPopup(KErrNone);
- delete res;
- _RETURN("ErrorPopupL End", KErrNone);
- }
-// End of File
--- a/widgetmanager/tsrc/wmunittest/src/wmunittest_converter.cpp Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,164 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: test blocks for CWmImageConverter
-*
-*/
-
-//INCLUDE FILES
-#include <e32svr.h>
-#include <stdlib.h>
-#include <stifparser.h>
-#include <stiftestinterface.h>
-#include <bautils.h>
-#include <aknsskininstance.h>
-#include "wmunittest.h"
-// components to test
-#include "wmimageconverter.h"
-
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::ImageConverterCreateL
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::ImageConverterCreateL( CStifItemParser& /*aItem*/ )
- {
- if ( iImageConverter != 0 ) User::Leave( KErrArgument );
- TInt ret = KErrNone;
- _CLEANUPCHECK_BEGIN
- iImageConverter = CWmImageConverter::NewL( this );
- _CLEANUPCHECK_END
- _RETURN("ImageConverterCreateL End", ret);
- }
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::ImageConverterDeleteL
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::ImageConverterDeleteL( CStifItemParser& /*aItem*/ )
- {
- if ( iImageConverter == 0 ) User::Leave( KErrArgument );
- TInt ret = KErrNone;
- delete iImageConverter;
- iImageConverter = 0;
- _RETURN("ImageConverterDeleteL End", ret);
- }
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::ImageConverterConvertL
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::ImageConverterConvertL( CStifItemParser& aItem )
- {
- if ( iImageConverter == 0 ) User::Leave( KErrArgument );
- TInt ret = KErrNone;
- iConversionReady = EFalse;
- TPtrC inputStr;
-
- aItem.SetParsingType( CStifItemParser::EQuoteStyleParsing );
- User::LeaveIfError( aItem.GetNextString( inputStr ) );
- if ( inputStr.Length() == 0 ) User::Leave( KErrArgument );
-
- TRAPD( err, iImageConverter->HandleIconStringL( 40, 40, inputStr ) );
- if ( err != KErrNone )
- {
- _LOG("ImageConverterConvertL:HandleIconStringL returns with leave");
- iConversionReady = ETrue;
- iConversionError = err;
- }
-
- _RETURN("ImageConverterConvertL End", ret );
- }
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::ImageConverterWaitResultL
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::ImageConverterWaitResultL( CStifItemParser& aItem )
- {
- if ( iImageConverter == 0 ) User::Leave( KErrArgument );
- TInt ret = KErrNone;
- TInt expectedResult;
-
- User::LeaveIfError( aItem.GetNextInt( expectedResult ) );
-
- iWaiting = EFalse;
- if ( !iConversionReady )
- {
- iWaiting = ETrue;
- CActiveScheduler::Start();
- iWaiting = EFalse;
- }
-
- // check conversion error
- if ( expectedResult == KErrNone && iConversionError != KErrNone )
- {
- _LOG("ImageConverterWaitResultL: expected ok, returns error");
- ret = iConversionError;
- }
- else if ( expectedResult != KErrNone && iConversionError == KErrNone )
- {
- _LOG("ImageConverterWaitResultL: expected error, returns ok");
- ret = KErrGeneral;
- }
-
- _RETURN("ImageConverterWaitResultL End", ret);
- }
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::NotifyCompletion
-// -----------------------------------------------------------------------------
-//
-void CWmUnitTest::NotifyCompletion( TInt aError )
- {
- if ( !iConversionReady )
- {
- iConversionReady = ETrue;
- iConversionError = aError;
- if ( iWaiting )
- {
- CActiveScheduler::Stop();
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::ImageConverterConversionMethodL
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::ImageConverterConversionMethodL( CStifItemParser& aItem )
- {
- if ( iImageConverter == 0 ) User::Leave( KErrArgument );
- TInt ret = KErrNone;
- TInt conversionMethod;
-
- User::LeaveIfError( aItem.GetNextInt( conversionMethod ) );
-
- // check conversion method
- if ( conversionMethod != iImageConverter->ConversionMethod() )
- ret = KErrGeneral;
-
- _RETURN("ImageConverterConversionMethodL End", ret);
- }
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::CancelConvertL
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::CancelConvertL( CStifItemParser& aItem )
- {
- if ( iImageConverter == 0 ) User::Leave( KErrArgument );
- iImageConverter->Cancel();
- _RETURN("CancelConvertL End", KErrNone);
- }
-// End of File
--- a/widgetmanager/tsrc/wmunittest/src/wmunittest_plugin.cpp Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,186 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: test blocks for CWmPlugin
-*
-*/
-
-//INCLUDE FILES
-#include <e32svr.h>
-#include <stdlib.h>
-#include <stifparser.h>
-#include <stiftestinterface.h>
-#include <bautils.h>
-#include <aknsskininstance.h>
-#include "wmunittest.h"
-// components to test
-#include "wmplugin.h"
-#include <hscontentinfo.h>
-#include <hscontentinfoarray.h>
-
-// MACROS
-#define _LOG(a) iLog->Log(_L(a))
-#define _RETURN(a, b) iLog->Log(_L("\treturn: %d"),b); \
- iLog->Log(_L(a)); \
- return b; \
-
-#define _CLEANUPCHECK_BEGIN \
- CBase* __check = new (ELeave) CBase(); \
- CleanupStack::PushL( __check );
-
-#define _CLEANUPCHECK_END \
- CleanupStack::PopAndDestroy( __check );
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::PluginCreateL
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::PluginCreateL( CStifItemParser& /*aItem*/ )
- {
- if ( iWmPlugin != 0 ) User::Leave( KErrArgument );
- TInt ret = KErrNone;
- _CLEANUPCHECK_BEGIN
- iWmPlugin = CWmPlugin::NewL();
- iWmPlugin->SetContentController( this );
- _CLEANUPCHECK_END
- _RETURN("PluginCreateL End", ret);
- }
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::PluginDeleteL
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::PluginDeleteL( CStifItemParser& /*aItem*/ )
- {
- if ( iWmPlugin == 0 ) User::Leave( KErrArgument );
- TInt ret = KErrNone;
- delete iWmPlugin;
- iWmPlugin = 0;
- _RETURN("PluginDeleteL End", ret);
- }
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::PluginActivateL
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::PluginActivateL( CStifItemParser& /*aItem*/ )
- {
- if ( iWmPlugin == 0 ) User::Leave( KErrArgument );
- iWmPlugin->Activate();
- _RETURN("PluginActivateL End", KErrNone);
- }
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::PluginDeactivateL
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::PluginDeactivateL( CStifItemParser& /*aItem*/ )
- {
- if ( iWmPlugin == 0 ) User::Leave( KErrArgument );
- iWmPlugin->Deactivate();
- _RETURN("PluginActivateL End", KErrNone);
- }
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::PluginWidgetsChangedL
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::PluginWidgetsChangedL( CStifItemParser& /*aItem*/ )
- {
- if ( iWmPlugin == 0 ) User::Leave( KErrArgument );
- iWmPlugin->NotifyWidgetListChanged();
- _RETURN("PluginWidgetsChangedL End", KErrNone);
- }
-
-// =============================================================================
-// Methods from MHsContentController
-// =============================================================================
-
-TInt CWmUnitTest::WidgetListL( CHsContentInfoArray& aArray )
- {
- CreateContentInfoArrayL( aArray, iMass );
- return KErrNone;
- }
-
-TInt CWmUnitTest::ViewListL( CHsContentInfoArray& /*aArray*/ )
- {
- return KErrNone;
- }
-
-TInt CWmUnitTest::AppListL( CHsContentInfoArray& /*aArray*/ )
- {
- return KErrNone;
- }
-
-TInt CWmUnitTest::AddWidgetL( CHsContentInfo& /*aInfo*/ )
- {
- return KErrNone;
- }
-
-TInt CWmUnitTest::RemoveWidgetL( CHsContentInfo& /*aInfo*/ )
- {
- return KErrNone;
- }
-
-TInt CWmUnitTest::AddViewL( CHsContentInfo& /*aInfo*/ )
- {
- return KErrNone;
- }
-
-TInt CWmUnitTest::RemoveViewL( CHsContentInfo& /*aInfo*/ )
- {
- return KErrNone;
- }
-
-TInt CWmUnitTest::ActivateViewL( CHsContentInfo& /*aInfo*/ )
- {
- return KErrNone;
- }
-
-TInt CWmUnitTest::ActivateAppL( CHsContentInfo& /*aInfo*/ )
- {
- return KErrNone;
- }
-
-
-
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::CreateContentInfoArrayL
-// -----------------------------------------------------------------------------
-//
-void CWmUnitTest::CreateContentInfoArrayL( CHsContentInfoArray& aArray, TInt aCount )
- {
- for( TInt i=0; i<aCount; ++i )
- {
- CHsContentInfo* info = CHsContentInfo::NewLC();
- TBuf<64> name;
- name.Format( _L("Widget_%d"), i );
- info->SetNameL( name );
- TBuf8<20> id;
- id.Num( i );
- info->SetUidL( id );
- info->SetTypeL( _L8("template") );
- info->SetIconPathL( _L("uid(0x2000DAD2)") );
- info->SetCanBeAdded( ETrue );
- info->SetDescriptionL(_L("Default plaa plaa plaa plaa plaa plaa plaa"));
-
- aArray.Array().AppendL( info );
- CleanupStack::Pop( info );
- }
- }
-
-// End of File
--- a/widgetmanager/tsrc/wmunittest/src/wmunittest_sortorder.cpp Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,176 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: test blocks for CWmPersistentWidgetorder
-*
-*/
-
-//INCLUDE FILES
-#include <e32svr.h>
-#include <stdlib.h>
-#include <stifparser.h>
-#include <stiftestinterface.h>
-#include <bautils.h>
-#include <aknsskininstance.h>
-#include "wmunittest.h"
-// components to test
-#include "wmpersistentwidgetorder.h"
-#include "wmwidgetdata.h"
-#include <hscontentinfo.h>
-#include <hscontentinfoarray.h>
-#include <widgetregistryclient.h> // widgetreqistry
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::WidgetOrderCreateL
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::WidgetOrderCreateL( CStifItemParser& /*aItem*/ )
- {
- if ( iWmWidgetOrder != 0 ) User::Leave( KErrArgument );
- TInt ret = KErrNone;
- _CLEANUPCHECK_BEGIN
- iWmWidgetOrder = CWmPersistentWidgetOrder::NewL( iFs );
- _CLEANUPCHECK_END
- _RETURN("WidgetOrderCreateL End", ret);
- }
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::WidgetOrderDeleteL
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::WidgetOrderDeleteL( CStifItemParser& /*aItem*/ )
- {
- if ( iWmWidgetOrder == 0 ) User::Leave( KErrArgument );
- TInt ret = KErrNone;
- delete iWmWidgetOrder;
- iWmWidgetOrder = 0;
- _RETURN("WidgetOrderDeleteL End", ret);
- }
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::WidgetOrderLoadL
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::WidgetOrderLoadL( CStifItemParser& /*aItem*/ )
- {
- if ( iWmWidgetOrder == 0 ) User::Leave( KErrArgument );
- TInt ret = KErrNone;
- _CLEANUPCHECK_BEGIN
- iWmWidgetOrder->LoadL();
- _CLEANUPCHECK_END
- _RETURN("WidgetOrderLoadL End", ret);
- }
-
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::WidgetOrderSaveL
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::WidgetOrderSaveL( CStifItemParser& /*aItem*/ )
- {
- if ( iWmWidgetOrder == 0 ) User::Leave( KErrArgument );
- TInt ret = KErrNone;
-
- _CLEANUPCHECK_BEGIN
- RWidgetDataValues array;
- CleanupClosePushL( array );
- CreateWidgetDataArrayL( array, iMass );
- iWmWidgetOrder->StoreL( array );
- array.ResetAndDestroy();
- CleanupStack::Pop( &array );
- _CLEANUPCHECK_END
-
- _RETURN("WidgetOrderSaveL End", ret);
- }
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::WidgetOrderCheckIsEmptyL
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::WidgetOrderCheckIsEmptyL( CStifItemParser& aItem )
- {
- if ( iWmWidgetOrder == 0 ) User::Leave( KErrArgument );
- TInt ret = KErrNone;
- TInt expectedResult;
- aItem.GetNextInt( expectedResult );
-
- if ( iWmWidgetOrder->IsEmpty() && !expectedResult )
- ret = KErrGeneral;
- if ( !iWmWidgetOrder->IsEmpty() && expectedResult )
- ret = KErrGeneral;
-
- _RETURN("WidgetOrderCheckIsEmptyL End", ret);
- }
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::WidgetOrderUseL
-// -----------------------------------------------------------------------------
-//
-TInt CWmUnitTest::WidgetOrderUseL( CStifItemParser& /*aItem*/ )
- {
- if ( iWmWidgetOrder == 0 ) User::Leave( KErrArgument );
- TInt ret = KErrNone;
-
- _CLEANUPCHECK_BEGIN
- // test IndexOf
- RWidgetDataValues array;
- CreateWidgetDataArrayL( array, iMass );
- for( TInt i=0; i<array.Count() && ret==KErrNone; ++i )
- {
- TInt index = iWmWidgetOrder->IndexOf( *array[i] );
- if ( index < KErrNotFound || index >= array.Count() )
- ret = KErrUnknown; // illegal index
- }
- array.ResetAndDestroy();
- _CLEANUPCHECK_END
-
- _RETURN("WidgetOrderUseL End", ret);
- }
-
-
-// -----------------------------------------------------------------------------
-// CWmUnitTest::CreateWidgetDataArrayL
-// -----------------------------------------------------------------------------
-//
-void CWmUnitTest::CreateWidgetDataArrayL( RWidgetDataValues& aArray, TInt aCount )
- {
- // first create an array of content info classes
- CHsContentInfoArray* contentArray = CHsContentInfoArray::NewL();
- CleanupStack::PushL( contentArray );
- CreateContentInfoArrayL( *contentArray, aCount );
- // connect to widget registry
- RWidgetRegistryClientSession registryClient;
- User::LeaveIfError( registryClient.Connect() );
- CleanupClosePushL( registryClient );
-
- for( TInt i=0; i<contentArray->Array().Count(); ++i )
- {
- CWmWidgetData* data = CWmWidgetData::NewL(
- *contentArray->Array()[i], ®istryClient);
- CleanupStack::PushL( data );
- aArray.AppendL( data );
- CleanupStack::Pop( data );
- delete contentArray->Array()[i];
- contentArray->Array()[i] = 0;
- }
-
- registryClient.Disconnect();
- CleanupStack::PopAndDestroy( ®istryClient );
- CleanupStack::PopAndDestroy( contentArray );
- }
-
-
-// End of File