diff -r 000000000000 -r 2f259fa3e83a uifw/AvKon/inc/AknAdaptiveSearch.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uifw/AvKon/inc/AknAdaptiveSearch.h Tue Feb 02 01:00:49 2010 +0200 @@ -0,0 +1,206 @@ +/* +* Copyright (c) 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: +* +*/ + + +#ifndef __AKNADAPTIVESEARCH_H__ +#define __AKNADAPTIVESEARCH_H__ + +// INCLUDES +#include "AknAdaptiveSearchGrid.h" +#include "AknAdaptiveSearchGridObserver.h" +#include // CenRep for AS + +// FORWARD DECLARATIONS +class CAknSearchField; +class MAdaptiveSearchTextObserver; +class CRepository; +//class CCenRepNotifyHandler; + +// CLASS DECLARATION + +/** + * The class to provide adaptive search for the application + * + * @lib avkon.lib + * @since Series 60 5.0 + */ + +class CAknAdaptiveSearch : public CBase, + public MAknAdaptiveSearchGridObserver, + public MCenRepNotifyHandlerCallback, + public MCoeControlObserver + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + * + * @param aTextLimit The limit length of search field + * @param aFieldStyle The same flag as search fi1eld + * @return Pointer to the created adaptive search grid object + */ + static CAknAdaptiveSearch* NewL( const TInt aTextLimit, TInt aFieldStyle); + + /** + * Two-phased constructor. + * + * @param aTextLimit The limit length of search field + * @param aFieldStyle The same flag as search field. + * @return Pointer to the created adaptive search grid object + */ + static CAknAdaptiveSearch* NewLC( const TInt aTextLimit, TInt aFieldStyle ); + + /** + * Destructor. + */ + ~CAknAdaptiveSearch(); + + public: // From MAknAdaptiveSearchGridObserver + + /** + * Handles an event from an observed adaptive search grid + * + * @param aCommand The control which sent the event + */ + void ProcessCommandL( TInt aCommand ); + + public: // From MCoeControlObserver + + /** + * From MCoeControlObserver. Handles an event from an observed control. + * If this component has observer, then a EEventStateChanged is sent + * to it when a item is selected from the grid + * + * @param aControl The control that sent the event. + * @param aEventType The event type. + */ + void HandleControlEventL( CCoeControl *aControl, TCoeEvent aEventType ); + + public: // from MCenRepNotifyHandlerCallback + void HandleNotifyInt( TUint32 aId, TInt aNewValue ); + + public: // New functions + + /** + * Shows adaptive search grid. + */ + void ShowAdaptiveSearchGridL(); + + /** + * Hides adaptive search grid. + */ + void HideAdaptiveSearchGridL(); + + /** + * Invert adaptive search grid. + * @param aSelectAll If true, select all content in adaptive search editor. + */ + void InvertAdaptiveSearchGridVisibilityL( TBool aSelectAll = EFalse ); + + /** + * Set characters for buttons to adaptive search grid + * + * @param aGridChars The characters for adaptive search grid. + */ + void SetButtonCharsL( const TDesC& aGridChars ); + + + /** + * Sets a search field for this control. + * + * @param aSearchField A pointer to a search field object. + */ + void SetSearchField( CAknSearchField *aSearchField ); + + /** + * Adds an adaptive search text observer. Duplicates are not checked + * (i.e. adding the same observer multiple times is not prevented). + * + * @since 5.0 + * @param aObserver Must be non-NULL. + */ + void AddAdaptiveSearchTextObserverL( MAdaptiveSearchTextObserver* aObserver ); + + /** + * Removes an adaptive search text observer. + * + * @since 5.0 + * @param aObserver The observer to be removed. + * @return ETrue if removal ok, EFalse if observer was not removed (not + * found from the list of observers). + */ + TBool RemoveAdaptiveSearchTextObserver( MAdaptiveSearchTextObserver* aObserver ); + + /** + * Update adaptive search grid skin. + */ + void UpdateGridSkinL(); + + public: + + /** + * When the rect of find pane is set, this functions will be notified + * to record the size of it. + */ + void SaveFindPaneRect( const TRect &aRect ); + + private: // Constructors + + /** + * C++ default constructor. + */ + CAknAdaptiveSearch(); + + /** + * Symbian 2nd phase constructor. + * + * @param aTextLimit The limit length of search field + * @param aFieldStyle The same flag as search field + */ + void ConstructL( const TInt aTextLimit, TInt aFieldStyle ); + + private: // Member variables + + // Observer to report adaptive search text changes, not owned + MAdaptiveSearchTextObserver* iAdaptiveSearchTextObserver; + + CAknAdaptiveSearchGrid* iAdaptiveSearchGrid; + + CAknSearchField* iSearchField; // not owned + + // Chars of grid from filtered items + HBufC* iGridChars; + + // Limit length of search field + TInt iTextLimit; + + TBool iBlockFlag; + + // Handle to Central Repository. + CRepository* iCenRep; + + // For CenRep value change notifications. + CCenRepNotifyHandler* iCenRepNotifyHandlerChinese; + CCenRepNotifyHandler* iCenRepNotifyHandlerPRC; + CCenRepNotifyHandler* iCenRepNotifyHandlerTW; + CCenRepNotifyHandler* iCenRepNotifyHandlerHongkong; + }; + +#endif // __AKNADAPTIVESEARCH_H__ + +// End of File +