diff -r 1fc85118c3ae -r 870918037e16 landmarksui/uicontrols/inc/CLmkSelectorDialog.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/landmarksui/uicontrols/inc/CLmkSelectorDialog.h Wed Sep 01 12:31:27 2010 +0100 @@ -0,0 +1,204 @@ +/* +* Copyright (c) 2002 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: LandmarksUi Content File - CLmkSelectorDialog class +* +*/ + + + + + + + + +#ifndef CLMKSELECTORDIALOG_H +#define CLMKSELECTORDIALOG_H + +// INCLUDES +#include "MLmkListProviderObserver.h" +#include +#include "MLmkListMemento.h" + +// FORWARD DECLARATIONS +class MLmkNavigationObserver; +class TCoeHelpContext; +class CLmkListProviderBase; + +// CLASS DECLARATION + +/** +* CLmkSelectorDialog class +*/ +class CLmkSelectorDialog + : public CAknSelectionListDialog, + public MLmkListProviderObserver + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + * @param aOpenedItemIndex + * @param aLbModel listbox model, ownership is not transferred + * @param aMenuBarResourceId + * @param aCmdObserver, ownership is not transferred + * @param aMemento , maintains reference of memento. + * @return newly instantiated object + */ + static CLmkSelectorDialog* NewL( TInt& aOpenedItemIndex, + MDesCArray* aLbModel, + TInt aMenuBarResourceId, + MEikCommandObserver* aCmdObserver, + MLmkListMemento* aMemento = NULL, CLmkListProviderBase* aListProvider = NULL); + + /** + * Destructor. + */ + virtual ~CLmkSelectorDialog(); + + public: // New functions + void MakeEmptyTextListBoxL(TInt aResourcePrimText ,TInt aResourceSecText, TBool aRequestFromFindBox = EFalse ) const; + /** + * Enable/Disable the find box in list dialog. + * @return ETrue to enable find box, EFalse otherwise + */ + void ShowFindBox( TBool aVisible ); + /** + * Tells whether this dialog has a find box or not. + * @return ETrue if has find box, EFalse otherwise + */ + TBool HasFindBox() const; + + /** + * Number of list items. + * @return number of list items + */ + TInt NumberOfItems() const; + + /** + * Currently highlighted item's index. + * @return highlighted item's index + */ + TInt CurrentItemIndex() const; + + /** + * Selection indexes. This class does not support multiselection, + * subclasses may support. + * @return selection indexes, ownership is not transferred + */ + const CArrayFix* SelectionIndexes() const; + + /** + * Set help context. + * @param aContext + */ + void SetHelpContext( TCoeHelpContext aContext ); + + /** + * Set observer for navigation events. + * @param + */ + void SetNavigationObserver( MLmkNavigationObserver& aObserver ); + + // For Landscape Support + void HandleResourceChange (TInt aType); + + /** + * Stores the empty dialog label + * @param aLabelRes Label resource id + */ + void SetDlgEmptyResource(TInt aEmptyPrimLabel,TInt aEmptySecLabel); + /** + * Enables or Disables left softkey + * @param aEnable ETrue for visible, EFalse for invisible + */ + void EnableLeftSoftKey(TBool aEnable); + /** + * Updates the MSK for the dialog + */ + virtual void UpdateMskL(); + void PrepareLC(TInt aDlgResourceId); + + private: + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(TInt aMenuBarResourceId); + + void SetCbaResourceAndCommandId(TInt aaDlgResourceId); + + public: // From CAknSelectionListDialog + CEikListBox* ListBox() const; + CAknSearchField* FindBox() const; +#ifdef RD_SCALABLE_UI_V2 + protected: // from MCoeControlObserver + void HandleControlEventL( CCoeControl* aControl,TCoeEvent aEventType ); +#endif //RD_SCALABLE_UI_V2 + + public: // From MLmkListProviderObserver + void HandleListProviderEvent( TLmkListProviderEventType aEvent ); + void HandleListProviderError( TInt aError ); + + protected: // From CCoeControl + void GetHelpContext( TCoeHelpContext& aContext ) const; + TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, + TEventCode aType ); + + protected: // From CAknSelectionListDialog + void PreLayoutDynInitL(); + void PostLayoutDynInitL(); + + protected: // From CAknDialog + TBool OkToExitL( TInt aButtonId ); + + protected: // New functions + + /** + * Internal method which notifies navigation observer if key event + * is navigation event. + * @param aEkeyEvent + * @param aType + * @return EKeyWasConsumed if navigation observer consumed the event + */ + TKeyResponse KeyEventForNavigationL( const TKeyEvent& aKeyEvent, + TEventCode aType ); + + protected: + + /** + * C++ default constructor. + */ + CLmkSelectorDialog( TInt& aOpenedItemIndex, + MDesCArray* aLbModel, + MEikCommandObserver* aCmdObserver, + MLmkListMemento* aMemento = NULL, CLmkListProviderBase* aListProvider = NULL ); + + protected: // Data + TCoeHelpContext iHelpContext; + /// Ref: navigation observer + MLmkNavigationObserver* iNavigationObserver; + MLmkListMemento* iMemento; + TBool iExited; + TInt iDlgEmptyLabelPrimResource; + TInt iDlgEmptyLabelSecResource; + TInt iMskCmdId; + TInt iCbaResourceId; +#ifdef RD_SCALABLE_UI_V2 + CAknListBoxFilterItems* iFilter; +#endif //RD_SCALABLE_UI_V2 + CLmkListProviderBase* iListProvider; + }; + +#endif // CLMKSELECTORDIALOG_H + +// End of File