diff -r 000000000000 -r f72a12da539e idlehomescreen/inc/xnuiengineappif.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/inc/xnuiengineappif.h Thu Dec 17 08:40:49 2009 +0200 @@ -0,0 +1,226 @@ +/* +* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Layout calculation and UI rendering mechanism. +* +*/ + +#ifndef XNUIENGINEAPPIF_H +#define XNUIENGINEAPPIF_H + +// System inlcudes +#include + +// Forward declarations +class CXnUiEngine; +class CXnNodeAppIf; +class CXnDomStringPool; +class RFile; + +// Class declaration +/** + * Layout engine. + * + * @ingroup group_xnlayoutengine + * @lib xn3layoutengine.lib + * @since Series 60 3.1 + */ +class TXnUiEngineAppIf + { +public: + /** + * C++ default constructor. + */ + TXnUiEngineAppIf( CXnUiEngine& aUiEngine ); + +public: + // New functions + + /** + * Calculates the layout of the UI + * + * @since Series 60 3.1 + * @param aNode Starting point for the layout + * @exception KXnErrLoadLayoutFileFailed Loading the layout file failed. + */ + IMPORT_C void RenderUIL( CXnNodeAppIf* aNode = NULL ); + + /** + * Gets the root node of the UI. Ownership is not transferred. + * + * @since Series 60 3.1 + * @return Node + */ + IMPORT_C CXnNodeAppIf& RootNodeL(); + + /** + * Find a node by its id. Ownership is not transferred. + * + * @since Series 60 3.1 + * @param aNodeId Area id + * @param aNamespace Namespace + * @return Node with the given id + */ + IMPORT_C CXnNodeAppIf* FindNodeByIdL( + const TDesC& aNodeId, + const TDesC& aNamespace = KNullDesC ); + + /** + * Find a node by its id. Ownership is not transferred. + * + * @since Series 60 3.1 + * @param aNodeId Area id + * @param aNamespace Namespace + * @return Node with the given id + */ + IMPORT_C CXnNodeAppIf* FindNodeByIdL( + const TDesC8& aNodeId, + const TDesC8& aNamespace = KNullDesC8 ); + + /** + * Find nodes by class. Ownership of the array is transferred, ownership of + * the nodes is not transferred. + * + * @since Series 60 3.1 + * @param aClassId Class id + * @return Nodes belonging to the class + */ + IMPORT_C RPointerArray< CXnNodeAppIf > FindNodeByClassL( + const TDesC& aClassId, + const TDesC& aNamespace = KNullDesC ); + + /** + * Find nodes by class. Ownership of the array is transferred, ownership of + * the nodes is not transferred. + * + * @since Series 60 3.1 + * @param aClassId Class id + * @return Nodes belonging to the class + */ + IMPORT_C RPointerArray< CXnNodeAppIf > FindNodeByClassL( + const TDesC8& aClassId, + const TDesC8& aNamespace = KNullDesC8 ); + + /** + * Find content source nodes. Ownership of the array is transferred, + * ownership of the nodes is not transferred. + * + * @since S60 5.0 + * @param aNamespace namespace where to find content source nodes + * @return Content source nodes from the namespace + */ + IMPORT_C RPointerArray< CXnNodeAppIf > FindContentSourceNodesL( + const TDesC8& aNamespace ); + + /** + * Get the string pool + * + * @since Series 60 3.1 + * @return String pool + */ + IMPORT_C CXnDomStringPool& StringPool(); + + /** + * Refresh current menu + * + * @since Series 60 3.1 + */ + IMPORT_C void RefreshMenuL(); + + /** + * Activate a view + * + * @since Series 60 3.1 + * @param aViewNode View node + */ + IMPORT_C void ActivateViewL( CXnNodeAppIf& aViewNode ); + + /** + * Returns the active view + * + * @since Series 60 3.1 + * @return The active view node + */ + IMPORT_C CXnNodeAppIf* ActiveView(); + + /** + * Checks whether the menu is displaying. + * + * @since Series 60 3.2 + * @return ETrue if menu is displaying. + */ + IMPORT_C TBool IsMenuDisplaying(); + + /** + * Populate given array with plugin nodes. + * + * @since Series 60 5.0 + * @param aArray Array to populate + * @return Number of added plugin nodes + */ + IMPORT_C TInt GetPluginNodeArrayL( + RPointerArray< CXnNodeAppIf >& aArray ); + + /** + * Gets the currently focused node + * + * @since Series 60 5.0 + * @return Pointer to focused node, NULL if no focus + */ + IMPORT_C CXnNodeAppIf* FocusedNode(); + + /** + * Checks if the UI is in Edit mode. + * + * @since Series 60 5.0 + * @return ETrue if the current mode is edit, otherwise EFalse. + */ + IMPORT_C TBool IsEditMode(); + + /** + * Changes internal ui engine pointer + * + * @since Series 60 5.0 + */ + IMPORT_C void SetUiEngine( CXnUiEngine* aUiEngine ); + + /** + * Gets theme resource file + * + * @since S60 5.1 + * @param aPath path from which file is found + * @param aFile file to which resource is set + * @return errorcode + */ + IMPORT_C TInt GetThemeResource( const TDesC& aPath, RFile& aFile ); + + /** + * Gets widgets visibilty state + * + * @since Series 60 5.0 + * @return ETrue if widgets visible, EFalse otherwise + */ + IMPORT_C TBool WidgetsVisible() const; + +private: + // Data + + /** + * The layout calculation and ui rendering implementation. + * Not own. + */ + CXnUiEngine* iUiEngine; + }; + +#endif