diff -r 000000000000 -r eb1f2e154e89 textinput/peninputcommonlayout/inc/peninputctrlpool.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textinput/peninputcommonlayout/inc/peninputctrlpool.h Tue Feb 02 01:02:04 2010 +0200 @@ -0,0 +1,141 @@ +/* +* 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: controls management utility +* +*/ + + +#ifndef C_CPENINPUTCTRLPOOL_H +#define C_CPENINPUTCTRLPOOL_H + +// System includes +#include +#include + +// Forward declaration +class CFepUiBaseCtrl; + +/** + * Peninput control pool class + * + * This class is control pool. Application can use this class to + * manage their controls. Control creates out side and add itself to this + * pool. Application can get and remove one control based on control + * id. + * + * @lib peninputcommonlayout.lib + * @since S60 v3.2 + */ +class CPeninputCtrlPool : public CBase + { + +public: + + /** + * Symbian constructor + * + * @since S60 v3.2 + * @return Pointer to created CPeninputCtrlPool object + */ + IMPORT_C static CPeninputCtrlPool* NewL(); + + /** + * Symbian constructor + * + * @since S60 v3.2 + * @return Pointer to created CPeninputCtrlPool object + */ + IMPORT_C static CPeninputCtrlPool* NewLC(); + + /** + * Destructor, it need to destroy all controls + * + * @since S60 v3.2 + * @return None + */ + IMPORT_C virtual ~CPeninputCtrlPool(); + + /** + * Add one control to the pooling, the control should have + * one control id + * + * @since S60 v3.2 + * @param aControl Pointer to control + * @return None + */ + IMPORT_C void AddControl( CFepUiBaseCtrl* aControl ); + + /** + * Remove one control from the pooling + * + * @since S60 v3.2 + * @param aControlID Control id + * @return None + */ + IMPORT_C void RemoveControl( const TInt aControlID ); + + /** + * Get one control from the pooling according to the control id + * + * @since S60 v3.2 + * @param aControlID Control id + * @return Pointer to control + */ + IMPORT_C CFepUiBaseCtrl* Control( const TInt aControlID ) const; + + /** + * Remove all controls and delete them + * + * @since S60 v3.2 + * @return None + */ + IMPORT_C void Reset(); + + /** + * Get current control count in this pool + * + * @since S60 v3.2 + * @return The count of controls + */ + IMPORT_C TInt ControlCount() const; + + /** + * Get the control from the pool according to the index + * + * @since S60 v3.2 + * @param aIndex Index in array + * @return Pointer to control + */ + IMPORT_C CFepUiBaseCtrl* ControlByIndex( const TInt aIndex ) const; + +protected: + + /** + * Symbian second-phase constructor + * + * @since S60 v3.2 + * @return None + */ + IMPORT_C void Construct(); + +private: // Data + + /** + * Control pointer array + */ + RPointerArray iControlList; + + }; + +#endif // C_CPENINPUTCTRLPOOL_H