diff -r 000000000000 -r eb1f2e154e89 textinput/peninputcommonlayout/inc/peninputuistatemgr.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textinput/peninputcommonlayout/inc/peninputuistatemgr.h Tue Feb 02 01:02:04 2010 +0200 @@ -0,0 +1,172 @@ +/* +* Copyright (c) 2002-2005 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: Interface of ui state manager +* +*/ + + +#ifndef C_CPENINPUTUISTATEMGR_H +#define C_CPENINPUTUISTATEMGR_H + +// System includes +#include +#include + +// User includes +#include "peninputuistatemgrinterface.h" + +// Forward declarations +class CPeninputUiStateBase; +class MPeninputLayoutContext; + +/** + * The ui state manager + * It provides get method of all ui state and current ui state + * + * @lib peninputcommonlayout.lib + * @since S60 v3.2 + */ +class CPeninputUiStateMgr : public CBase, + public MPeninputUiStateMgr + { + +public: + + /** + * Two-phased constructor + * + * @since S60 v3.2 + * @param aContext The layout context + * @return The pointer to CPeninputUiStateMgr object + */ + IMPORT_C static CPeninputUiStateMgr* NewL( + MPeninputLayoutContext* aContext ); + + /** + * Two-phased constructor + * + * @since S60 v3.2 + * @param aContext The layout context + * @return The pointer to CPeninputUiStateMgr object + */ + IMPORT_C static CPeninputUiStateMgr* NewLC( + MPeninputLayoutContext* aContext ); + + /** + * Destructor + * + * @since S60 v3.2 + * @return None + */ + IMPORT_C virtual ~CPeninputUiStateMgr(); + +// from base class MPeninputUiStateMgr + + /** + * From MPeninputUiStateMgr + * Get current ui state + * + * @since S60 v3.2 + * @return The pointer to CPeninputUiStateBase object + */ + IMPORT_C CPeninputUiStateBase* CurrentUiState(); + + /** + * From MPeninputUiStateMgr + * Get ui state object according to the input state type + * + * @since S60 v3.2 + * @param aUiStateType The type of ui state + * @return The pointer to CPeninputUiStateBase object + */ + IMPORT_C CPeninputUiStateBase* GetUiState( TInt aUiStateType ); + + /** + * From MPeninputUiStateMgr + * Set current ui state by state object + * + * @since S60 v3.2 + * @param aUiState The state to be set as current ui state + * @return None + */ + IMPORT_C void SetCurrentUiState( CPeninputUiStateBase* aUiState ); + + /** + * From MPeninputUiStateMgr + * Set current ui state by state type + * + * @since S60 v3.2 + * @param aUiStateType The type of ui state + * @return None + */ + IMPORT_C void SetCurrentUiState( TInt aUiStateType ); + + /** + * From MPeninputUiStateMgr + * Add ui state to list + * + * @since S60 v3.2 + * @param aUiState The ui state object to be added to list + * @param aUiStateType The ui state type to be added to list + * @return None + */ + IMPORT_C void AddUiState( CPeninputUiStateBase* aUiState, + TInt aUiStateType ); + +protected: //method + + /** + * Symbian second phase constructor + * + * @since S60 v3.2 + * @return None + */ + virtual void Construct(); + + /** + * Constructor + * + * @since S60 v3.2 + * @param aContext The layout context + * @return None + */ + CPeninputUiStateMgr( MPeninputLayoutContext* aContext ); + +private: // Data + + /** + * The pointer points to current ui state + * Own + */ + CPeninputUiStateBase* iCurrentState; + + /** + * The pointer points to layout context + * Not own + */ + MPeninputLayoutContext* iContext; + + /** + * Ui state list + */ + RPointerArray iUiStateList; + + /** + * Ui type list + */ + RArray iUiStateTypeList; + + }; + +#endif // C_CPENINPUTUISTATEMGR_H