diff -r 491b3ed49290 -r 65326cf895ed filemanager/App/inc/CFileManagerContainerBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filemanager/App/inc/CFileManagerContainerBase.h Wed Sep 01 12:31:07 2010 +0100 @@ -0,0 +1,275 @@ +/* +* Copyright (c) 2006 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: Base class for all file manager containers +* +*/ + + +#ifndef CFILEMANAGERCONTAINERBASE_H +#define CFILEMANAGERCONTAINERBASE_H + + +// INCLUDES +#include +#include +#include +#include + + +// FORWARD DECLARATIONS +class CEikTextListBox; + + +// CLASS DECLARATION +/** + * Base class for all containers in File Manager + */ +class CFileManagerContainerBase : public CCoeControl, + public MEikListBoxObserver, + public MCoeControlObserver, + public MEikCommandObserver, + public MListBoxSelectionObserver + { + public: // destructor + /** + * Destructor. + */ + ~CFileManagerContainerBase(); + + protected: // MEikListBoxObserver + void HandleListBoxEventL( CEikListBox* aListBox, TListBoxEvent aEventType ); + + protected: // MCoeControlObserver + void HandleControlEventL( CCoeControl* aControl, TCoeEvent aEventType ); + + protected: // From CCoeControl + /** + * @see CCoeControl + */ + TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType ); + + /** + * @see CCoeControl + */ + void SizeChanged(); + + /** + * @see CCoeControl + */ + TInt CountComponentControls() const; + + /** + * @see CCoeControl + */ + CCoeControl* ComponentControl( TInt aIndex ) const; + + /** + * @see CCoeControl + */ + void FocusChanged( TDrawNow aDrawNow ); + + /** + * @see CCoeControl + */ + void GetHelpContext( TCoeHelpContext& aContext ) const; + + public: // From MEikCommandObserver + /** + * @see MEikCommandObserver + */ + void ProcessCommandL( TInt aCommandId ); + + public: // New functions + /** + * Sets list empty and removes empty text until refreshed. + */ + virtual void SetListEmptyL(); + + /** + * Stores the focus, so when control is reseted, focus can + * be set back to current position. + * + * @param aFocusedIndex index to be stored + */ + void SetIndex( TInt aFocusedIndex ); + + /** + * Sets text array. + */ + void SetTextArray( MDesCArray* aArray ); + + /** + * Sets help context. + */ + void SetHelpContext( const TDesC& aHelpContext ); + + /** + * Sets empty text. + */ + void SetEmptyTextL( TInt aTextId ); + + /** + * Refreshes the container. + * @param aFocusedIndex Index of the item that will be focused + * after refresh. + */ + virtual void RefreshListL( TInt aFocusedIndex ); + + /** + * Gets selection mode status + */ + TBool SelectionModeEnabled() const; + + /** + * Updates cba + */ + virtual void UpdateCba(); + + /** + * Gets index of current list item + * @return Index of current list item or KErrNotFound if list is empty. + */ + virtual TInt ListBoxCurrentItemIndex(); + + /** + * Gets number of list items + * @return Number of list items. + */ + virtual TInt ListBoxNumberOfItems(); + + /** + * Gets indexes of selection + * @return Array of selected indexes. Ownership is not transferred. + */ + virtual const CArrayFix< TInt >* ListBoxSelectionIndexes(); + + /** + * Gets number of selected list items + * @return Number of selected list items. + */ + virtual TInt ListBoxSelectionIndexesCount(); + + /** + * Toggles list item selection status + * @param aIndex Index of list item. + */ + virtual void ListBoxToggleItemL( TInt aIndex ); + + /** + * Checks list item selection status + * @param aIndex Index of list item. + * @return ETrue if item is selected. Otherwise EFalse. + */ + virtual TBool ListBoxIsItemSelected( TInt aIndex ); + + /** + * Selects all list items + */ + virtual void ListBoxSelectAllL(); + + /** + * Clears list selection + */ + virtual void ListBoxClearSelection(); + + /** + * Sets text showm in empty list view. + * @param aText Text to be shown + */ + virtual void ListBoxSetTextL( const TDesC& aText ); + + /** + * Checks is search field visible + * @return ETrue if search field is visible. Otherwise EFalse. + */ + virtual TBool IsSearchFieldVisible() const; + + /** + * Enables and disables the search field. + * @param aEnable New status of search field. + * @param aSearchText Text to search + */ + virtual void EnableSearchFieldL( + TBool aEnable, const TDesC& aSearchText = KNullDesC ); + + /** + * Sets current item index after search + * @param aIndex Current item index. + */ + virtual void SetCurrentItemIndexAfterSearch( TInt aIndex ); + + /** + * Selects list item + * @param aIndex Index of list item. + */ + virtual void ListBoxSelectItemL( TInt aIndex ); + + /** + * Deselects list item + * @param aIndex Index of list item. + */ + virtual void ListBoxDeselectItem( TInt aIndex ); + + /** + * + * + */ + virtual void ListBoxSetSelectionIndexesL(const CArrayFixFlat* + aSelectionIndexes); + /** + * search filed index to listbox index + * @param aIndex index in search filed + * @return index in listbox + */ + virtual TInt SearchFieldToListBoxIndex( TInt aIndex ); + protected: + /** + * Standard C++ constructor. + */ + CFileManagerContainerBase(); + + virtual void ConstructL( + const TRect& aRect, + const TInt aFocusedIndex ); + + virtual CEikTextListBox* CreateListBoxL() = 0; + + TBool ListBoxExists() const; + + CEikListBox& ListBox(); + + private: // From MListBoxSelectionObserver + void SelectionModeChanged( + CEikListBox* aListBox, TBool aSelectionModeEnabled ); + + private: + void SetEmptyArrayL(); + + private: // Data + // Own: Pointer to listbox + CEikTextListBox* iListBox; + // Own: Help context name + TCoeContextName iHelpContext; + // Own: Empty text + HBufC* iEmptyText; + // Ref: Pointer to text array + MDesCArray* iArray; + // Own: Stores selection mode status + TBool iSelectionModeEnabled; + + }; + +#endif // CFILEMANAGERCONTAINERBASE_H + +// End of File