diff -r 000000000000 -r eb1f2e154e89 textinput/peninputvkbcn/ctrlinc/peninputvkblayoutpool.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textinput/peninputvkbcn/ctrlinc/peninputvkblayoutpool.h Tue Feb 02 01:02:04 2010 +0200 @@ -0,0 +1,211 @@ +/* +* 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: vkb layout pool header file +* +*/ + + +#ifndef C_AKNFEPVKBLAYOUTPOOL_H +#define C_AKNFEPVKBLAYOUTPOOL_H + +// INCLUDES +#include +#include +#include +#include + +// FORWARD DECLARATION +class CAknFepCtrlVkbLayout; +class CPeninputVkbLayoutInfo; +class CAknFepVkbImLayout; + +/** + * vkb layout pool class + * + * This class is layout pool. Application can use this class to + * manage their layout. Layout creates out side and add it to this + * pool. Application can get and remove one layout based on layout + * id. + * + * @lib peninputvkbcn.lib + * @since S60 v3.2 + */ +class CAknFepLayoutPool: public CBase + { + +public: + + /** + * Symbian constructor + * + * @since S60 v3.2 + * @return Pointer to created CAknFepLayoutPool object + */ + static CAknFepLayoutPool* NewL( CAknFepCtrlVkbLayout& aVkbLayout ); + + /** + * Symbian constructor + * + * @since S60 v3.2 + * @return Pointer to created CAknFepLayoutPool object + */ + static CAknFepLayoutPool* NewLC( CAknFepCtrlVkbLayout& aVkbLayout ); + + /** + * Destructor + * + * @since S60 v3.2 + * @return None + */ + virtual ~CAknFepLayoutPool(); + + /** + * Add one client layout to the poo + * + * @since S60 v3.2 + * @param aImLayout Pointer to image layout + * @return None + */ + void AddImLayout(CAknFepVkbImLayout* aImLayout); + + /** + * Remove one client layout from the pool based on image layout id + * + * @since S60 v3.2 + * @param aImLayout Image layout id + * @return None + */ + void RemoveImLayout(const TInt aImLayout); + + /** + * Get one client layout from the pool based on image layout id + * + * @since S60 v3.2 + * @param aImLayout image layout id + * @return Pointer to image layout + */ + CAknFepVkbImLayout* GetImLayout(const TInt aImLayout) const; + + /** + * Add one vkb layout to the pooling + * + * @since S60 v3.2 + * @param aVkbLayout Pointer to image layout + * @return None + */ + void AddVkbLayout(CPeninputVkbLayoutInfo* aVkbLayout); + + /** + * Remove one client layout from the pool based on layout id + * + * @since S60 v3.2 + * @param aVkbLayout Vkb layout id + * @return None + */ + void RemoveVkbLayout(const TInt aVkbLayout); + + /** + * Get one vkb layout from the pool based on layout id + * + * @since S60 v3.2 + * @param aVkbLayout Vkb layout id + * @return Pointer to vkb layout + */ + CPeninputVkbLayoutInfo* GetVkbLayout(const TInt aVkbLayout) const; + + /** + * Delete all image layout from the pool + * + * @since S60 v3.2 + * @return None + */ + void ResetImLayout(); + + /** + * Delete all vkb layout from the pool + * + * @since S60 v3.2 + * @return None + */ + void ResetVkbLayout(); + + /** + * Delete all vkb and image layout from the pool + * + * @since S60 v3.2 + * @return None + */ + void Reset(); + + /** + * Get vkb layout array + * + * @since S60 v3.2 + * @return None + */ + inline RPointerArray& VkbLayoutInfoList(); + + /** + * Get image layout array + * + * @since S60 v3.2 + * @return None + */ + inline RPointerArray& ImLayoutList(); + +protected: + + /** + * C++ default constructor + * + * @since S60 v3.2 + * @return None + */ + CAknFepLayoutPool(); + + /** + * Contruct from resource + * + * @since S60 v3.2 + * @return None + */ + void ConstructFromResourceL( CAknFepCtrlVkbLayout& aVkbLayout ); + + /** + * Symbian second-phase constructor + * + * @since S60 v3.2 + * @return None + */ + void ConstructL( CAknFepCtrlVkbLayout& aVkbLayout ); + +private: // Data + + /** + * Image layout array + */ + RPointerArray iImLayoutList; + + /** + * Vkb layout array + */ + RPointerArray iVkbLayoutInfoList; + + }; + +#include "peninputvkblayoutpool.inl" + +#endif // C_AKNFEPVKBLAYOUTPOOL_H + +// End Of File