diff -r 5f0182e07bfb -r 5456b4e8b3a8 idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.h Wed Sep 01 12:32:46 2010 +0100 @@ -0,0 +1,493 @@ +/* +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Data class to hold widget info +* +*/ + + +#ifndef _XNPLUGINDATA_H +#define _XNPLUGINDATA_H + +// System includes +#include +#include + +// User includes + +// Forward declarations +class CXnNode; +class CXnDomNode; +class CXnResource; +class CXnControlAdapter; +class CXnViewData; +class CXnODT; +class CXnViewManager; +class CXnPublisherData; + +// Constants + +// Class declaration + +/** + * Holds plugin data in UiEngine + * + * @ingroup group_xnlayoutengine + * @lib xn3layoutengine.lib + * @since S60 5.0 + */ +NONSHARABLE_CLASS( CXnPluginData ) : public CBase + { +public: + // Data types + enum + { + EUseEmpty, + EIsDispose, + EIsOccupied, + EIsEmpty, + EIsRemovable, + EIsActive, + EIsInitial + }; + +public: + // Constructors and destructor + + /** + * Two-phased constructor. + * + * @param aParent Parent + */ + static CXnPluginData* NewL( CXnPluginData& aParent ); + + /** + * Two-phased constructor. Leaving on stack + * + * @param aParent Parent + */ + static CXnPluginData* NewLC( CXnPluginData& aParent ); + + /** + * Destructor + */ + ~CXnPluginData(); + +protected: + + /** + * C++ constructor + * + * @param aParent + */ + CXnPluginData( CXnPluginData& aParent ); + + /** + * C++ constructor + * + * @param aManager + */ + CXnPluginData( CXnViewManager& aManager ); + + /** + * C++ constructor + */ + CXnPluginData(); + + /** + * Leaving constructor + */ + void ConstructL(); + +public: + // New functions + + /** + * Loads content to plugin + * + * @return KErrNone if succesful, error code otherwise + */ + virtual TInt Load(); + + /** + * Destroys content from plugin + */ + virtual void Destroy(); + + /** + * Sets plugindata node + * + * @param aNode Node to be set. + */ + inline void SetNode( CXnDomNode* aNode ); + + /** + * Returns plugindata node + * + * @return Dom Node + */ + inline CXnDomNode* Node() const; + + /** + * Sets Owner + * + * @param Dom node owner + */ + inline void SetOwner( CXnDomNode* aOwner ); + + /** + * Returns owner + * + * @return Returns the owning dom node + */ + inline CXnDomNode* Owner() const; + + /** + * Returns parent + * + * @return ViewData Parent + */ + inline CXnPluginData* Parent() const; + + /** + * Returns View Manager + * + * @return View manager + */ + inline CXnViewManager& ViewManager() const; + + /** + * Returns state of the parent - active/ not active + * + * @return ETrue - parent active + * EFalse - parent not active + */ + inline virtual TBool Active() const; + + /** + * Sets new configuration ID + * + * @param aConfigurationId Config ID + */ + void SetConfigurationIdL( const TDesC8& aConfigurationId ); + + /** + * Returns Config. ID + * + * @return Id + */ + inline const TDesC8& ConfigurationId() const; + + /** + * Sets new plugin ID + * + * @param aPluginId Plugin ID + */ + void SetPluginIdL( const TDesC8& aPluginId ); + + /** + * Returns plugin ID + * + * @return Plugin ID + */ + inline const TDesC8& PluginId() const; + + /** + * Sets new plugin UID + * + * @param aPluginUid Plugin UID + */ + void SetPluginUidL( const TDesC8& aPluginUid ); + + /** + * Returns plugin UID + * + * @return Plugin Uid + */ + inline const TDesC8& PluginUid() const; + + /** + * Sets new plugin name + * + * @param aPluginName Plugin name + */ + void SetPluginNameL( const TDesC8& aPluginName ); + + /** + * Returns plugin name + * + * @return Plugin name + */ + inline const TDesC8& PluginName() const; + + /** + * Sets new plugin type + * + * @param aPluginType Plugin type + */ + void SetPluginTypeL( const TDesC8& aPluginType ); + + /** + * Returns plugin type + * + * @return Plugin type + */ + inline const TDesC8& Type() const; + + /** + * void SetPublisherNameL( const TDesC8& aPublisherName ) + * Sets the name of the publisher + * + * @param const TDesC& aPublisherName - Publisher name + */ + void SetPublisherNameL( const TDesC8& aPublisherName ); + + /** + * void SetPublisherNameL( const TDesC& aPublisherName ) + * Sets the name of the publisher + * + * @param const TDesC& aPublisherName - Publisher name + */ + void SetPublisherNameL( const TDesC& aPublisherName ); + + /** + * inline const TDesC16& PublisherName() + * Returns the publisher name + * + * @param + * @return - *iPublisherName or KNullDesC16() + */ + inline const TDesC& PublisherName() const; + + /** + * Sets new resources. + * + * @param aResources resource list + */ + void SetResources( CArrayPtrSeg< CXnResource >* aResources ); + + /** + * Adds resources to the list + * + * @param aList List are added to + */ + virtual void ResourcesL( CArrayPtrSeg< CXnResource >& aList ) const; + + /** + * Adds control from Node's control + * + * @param aNode Node which control should be added + */ + void SetControlL( CXnNode* aNode ); + + /** + * Returns list of controls + * + * @param aList List where controls are added + */ + virtual void ControlsL( RPointerArray< CXnControlAdapter >& aList ) const; + + /** + * Sets content source + * + * @param aNode Node to be added + */ + void SetContentSourceNodeL( CXnNode* aNode ); + + /** + * Returns all content source nodes + * + * @param aList List where they are returned + */ + virtual void ContentSourceNodesL( RPointerArray< CXnNode >& aList ) const; + + /** + * Returns all publishers + * + * @param aList List publishers + */ + virtual void PublishersL( RPointerArray< CXnPublisherData >& aList ) const; + + /** + * Adds appearance nodes + * + * @param aNode Node to be added + */ + void SetAppearanceNodeL( CXnNode* aNode ); + + /** + * Returns list of appearance nodes + * + * @param aList List of apperance nodes + */ + virtual void AppearanceNodesL( RPointerArray< CXnNode >& aList ) const; + + /** + * Adds an initial focus node + * + * @param aNode Node + */ + void SetInitialFocusNodeL( CXnNode* aNode ); + + /** + * Returns list of focus nodes + * + * @param aList List of focus nodes + */ + virtual void InitialFocusNodesL( RPointerArray< CXnNode >& aList ) const; + + /** + * Returns list of popup nodes + * + * @param aList List of popup nodes + */ + virtual void PopupNodesL( RPointerArray< CXnNode >& aList ) const; + + /** + * Sets the plugin occupied + */ + inline void SetOccupied(); + + /* + * Checks whether occupied + * + * @return ETrue when occupied EFalse when not + */ + inline TBool Occupied() const; + + /* + * Checks whether removable + * + * @return ETrue when removable EFalse when not + */ + inline TBool Removable() const; + + /* + * Queries whether this plugin is holding "empty" widget + * + * @return ETrue if empty, EFalse otherwise + */ + TBool Empty() const; + + /* + * Sets this plugin to hold "empty" widget + * + * @param aPluginId PluginId for later usage + */ + void SetEmptyL( const TDesC8& aPluginId ); + + /** + * Flushes plugin data + */ + void Flush(); + + /** + * Sets/Unsets the popup + * @param aVisible sets the popup visible or invisible + * @param aNode a pointer to the popup node + */ + void SetIsDisplayingPopup( TBool aVisible, CXnNode* aNode ); + + /** + * Checks if the popup is displayed + */ + TBool IsDisplayingPopup() const; + + /** + * Returns list of plugindata + * + * @return List of plugindata + */ + inline RPointerArray< CXnPluginData >& PluginData() const; + + /** + * Loads publishers + * + * @param aReason Load reason + */ + void LoadPublishers( TInt aReason ); + + /** + * Destroy publishers + * + * @param aReason Destroy reason + */ + void DestroyPublishers( TInt aReason ); + + /** + * Notifies a publisher is ready + */ + virtual void NotifyPublisherReadyL(); + + /** + * Show content removed error note + */ + void ShowContentRemovedError(); + + /** + * Show oom error note + */ + void ShowOutOfMemError(); + + /** + * Sets locking_status attribute (locked/none) + * + * @param aStatus "locked" / "none" + */ + void SetLockingStatus( const TDesC8& aStatus ); + +protected: + // data + + /** Plugins data */ + mutable RPointerArray< CXnPluginData > iPluginsData; + /** List of plugin resources, Owned */ + CArrayPtrSeg< CXnResource >* iResources; + /** List of controls, Not owned */ + RPointerArray< CXnControlAdapter > iControls; + /** List of publishers, Owned */ + RPointerArray< CXnPublisherData > iPublishers; + /** List of appearance nodes, Not owned */ + RPointerArray< CXnNode > iAppearanceNodes; + /** List of initial focus nodes, Not owned */ + RPointerArray< CXnNode > iInitialFocusNodes; + /** List of popup focus nodes, Not owned */ + RPointerArray< CXnNode > iPopupNodes; + /** Parent, Not owned */ + CXnPluginData* iParent; + /** View manager, Not owned */ + CXnViewManager& iManager; + /** This plugin's node, Not owned */ + CXnDomNode* iNode; + /** This plugin's owner, Not owned */ + CXnDomNode* iOwner; + /** config ID, Owned */ + HBufC8* iConfigurationId; + /** Plugin ID, Owned */ + HBufC8* iPluginId; + /** Plugin UID, Owned */ + HBufC8* iPluginUid; + /** Plugin name, Owned */ + HBufC8* iPluginName; + /** Plugin type, Owned */ + HBufC8* iPluginType; + /** Publisher name, Owned */ + HBufC* iPublisherName; + /** Flags to define this plugin's state */ + TBitFlags32 iFlags; + }; + +// Inline functions +#include "xnplugindata.inl" + +#endif // _XNPLUGINDATA_H