idlehomescreen/inc/xnuiengineappif.h
changeset 0 f72a12da539e
child 34 d05a55b217df
--- /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 <e32base.h>
+
+// 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