diff -r 000000000000 -r 8466d47a6819 emailuis/uicomponents/inc/fstreevisualizer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailuis/uicomponents/inc/fstreevisualizer.h Thu Dec 17 08:39:21 2009 +0200 @@ -0,0 +1,350 @@ +/* +* Copyright (c) 2007 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: Freestyle tree list component +* +*/ + + +#ifndef M_FSTREEVISUALIZER_H +#define M_FSTREEVISUALIZER_H + +#include "fstreelistconstants.h" + +//////SYSTEM CLASSES +class TRgb; + +//////TOOLKIT CLASSES +class TAlfEvent; + +//////PROJECT CLASSES +class MFsTreeItemData; +class MFsTreeNodeVisualizer; + +/** + * MFsTreeVisualizer is an interface for the tree visualizers. + * + * @code + * + * @endcode + * + * @lib + */ +class MFsTreeVisualizer + { +public: + + /** Pre-defined slide effects directions */ + enum TFsSlideEffect + { + ESlideNone = 0, + ESlideFromTop, + ESlideFromBottom, + ESlideFromRight, + ESlideFromLeft + }; + +public: + + /** + * C++ destructor + */ + virtual ~MFsTreeVisualizer() { }; + +public: // visualizer's interface + + /** + * Handles key event forwarded by the controller. + * + * @param aEvent Key event to handle. + * + * @return ETrue if the event was handled by the tree visualizer. + */ + virtual TBool HandleKeyEventL(const TAlfEvent& aEvent) = 0; + + // "Base class modifications for using touch" + /** + * Handles key event forwarded by the controller. + * + * @param aEvent Pointer event to investigate. + * @return TBool for indicating if event is used. + */ + virtual TBool HandlePointerEventL( const TAlfEvent& aEvent ) = 0; + // + + /** + * Sets the specified item as focused. + * + * @param aItem indicates item to be focused. + * + * @panic EFsListPanicInvalidItemID Item with specified ID is not found. + */ + // + virtual void SetFocusedItemL( TFsTreeItemId aItem, TBool aCheckFocus = ETrue ) = 0; + // + + /** + * Returns item id of the currently focused item. + * + * @return Id of the focused item. + */ + virtual TFsTreeItemId FocusedItem () const = 0; + + /** + * Checks if the specified item is focused. + * + * @param aItem Item to be checked. + * + * @return ETrue If item is focused. EFalse if item is not focused or + * item does not exist in the tree. + */ + virtual TBool IsFocused( const TFsTreeItemId aItem ) const = 0; + + /** + * Gets a pointer to the root's item data object. + * + * @return Pointer to the root's item data object. + */ + virtual MFsTreeItemData* RootItemData() = 0; + + /** + * Gets a pointer to the root's item visualizer object. + * + * @return Pointer to the root's item visualizer object. + */ + virtual MFsTreeNodeVisualizer* RootNodeVisualizer() = 0; + + /** + * Displays the list. + * + * @param aFadeIn Defines if list visual should or shouldn't fade in to + * the screen. + * @param aSlideIn ETrue if slide in effect should be used, EFalse if not. + */ + virtual void ShowListL( const TBool aFadeIn = EFalse, + const TBool aSlideIn = EFalse ) = 0; + + /** + * Hides the list. + * + * @param aFadeOut Defines if list visual should or shouldn't fade out + * from the screen. + * @param aSlideOut ETrue if slide out effect should be used,EFalse if not + */ + virtual void HideList( const TBool aFadeOut = EFalse, + const TBool aSlideOut = EFalse ) = 0; + + /** + * The function sets duration of the slide-in effect. + * + * @param aTimeMiliseconds Slide in time in milliseconds. + */ + virtual void SetSlideInDuration ( TInt aTimeMiliseconds ) = 0; + + /** + * The function returns slide in effect's duration. + * + * @return Slide in duration in miliseconds. + */ + virtual TInt SlideInDuration ( ) const = 0; + + /** + * The function sets direction of the slide in effect. + * + * @param aDirection A direction of the slide in effect. + */ + virtual void SetSlideInDirection ( TFsSlideEffect aDirection ) = 0; + + /** + * The function returns direction of the slide in effect. + * + * @return A direction of the slide in effect. + */ + virtual TFsSlideEffect SlideInDirection ( ) const = 0; + + /** + * The function sets duration of the slide-out effect. + * + * @param aTimeMiliseconds Slide out time in milliseconds. + */ + virtual void SetSlideOutDuration ( TInt aTimeMiliseconds ) = 0; + + /** + * The function returns slide out effect's duration. + * + * @return Slide out duration in miliseconds. + */ + virtual TInt SlideOutDuration ( ) const = 0; + + /** + * The function sets direction of the slide out effect. + * + * @param aDirection A direction of the slide out effect. + */ + virtual void SetSlideOutDirection ( TFsSlideEffect aDirection ) = 0; + + /** + * The function returns direction of the slide out effect. + * + * @return A direction of the slide out effect. + */ + virtual TFsSlideEffect SlideOutDirection ( ) const = 0; + + /** + * Returns information about looping type of the list. + * + * @return Type of list looping. EFsTreeListLoopingDisabled when looping + * is turned off. + */ + virtual TFsTreeListLoopingType LoopingType() const = 0; + + /** + * Sets type of list's looping. + * + * @param aLoopingType type of list looping. + */ + virtual void SetLoopingType(const TFsTreeListLoopingType aLoopingType) =0; + + /** + * Sets the delay for the item expansion animation. + * + * @param aDelay Delay in miliseconds. + */ + virtual void SetItemExpansionDelay( const TInt aDelay ) = 0; + + /** + * Gets the delay for the item expansion animation. + * + * @return Delay in miliseconds. + */ + virtual TInt ItemExpansionDelay( ) const = 0; + + /** + * + */ + virtual void SetItemSeparatorColor( const TRgb& aColor ) = 0; + + /** + * + */ + virtual void SetItemSeparatorSize( const TSize aSize ) = 0; + + /** + * + */ + virtual void CollapseAllL() = 0; + + /** + * + */ + virtual void ExpandAllL() = 0; + + /** + * Refreshes all visible items in the list. + */ + virtual void UpdateItemL( const TFsTreeItemId aItemId ) = 0; + + /** + * Refreshes all visible items in the list. + */ + virtual void RefreshListViewL() = 0; + + /** + * The functions sets wether all item in the list should be always in + * extended state or in normal state. + * The list view is refreshed. + * + * @param aAlwaysExtended ETrue if items should be always extended. EFalse + * if items should be in normal state. + */ + virtual void SetItemsAlwaysExtendedL ( TBool aAlwaysExtended ) = 0; + + /* + * The function returns if items are always in extended state or in normal + * + * @return ETrue if items are always in extended state, EFalse if items + * are in normal state. + */ + virtual TBool IsItemsAlwaysExtended ( ) = 0; + + /** + * The function sets a text for empty list's view. + * + * @param aText Text to be displayed. + */ + virtual void SetEmptyListTextL( const TDesC& aText ) = 0; + + /** + * Sets the type of text marquee. + * + * @param aMarquee Type of marquee. + */ + virtual void SetTextMarqueeType(const TFsTextMarqueeType aMarquee) = 0; + + /** + * Gets the type of text marquee. + * + * @return Type of marquee. + */ + virtual TFsTextMarqueeType TextMarqueeType() const = 0; + + /** + * Sets the speed of marquee. + * + * @param aPixelsPerSec How many pixels per second. + */ + virtual void SetTextMarqueeSpeed ( const TInt aPixelsPerSec ) = 0; + + /** + * Gets the speed of marquee. + * + * @return How many pixels per second. + */ + virtual TInt TextMarqueeSpeed ( ) const = 0; + + /** + * Sets delay for text marquee start. + * + * @param aStartDelay Time after which the text marquee starts (in miliseconds). + */ + virtual void SetTextMarqueeStartDelay ( const TInt aStartDelay ) = 0; + + /** + * Gets delay for text marquee. + * + * @return Time after which the text marquee starts (in miliseconds). + */ + virtual TInt TextMarqueeStartDelay () const = 0; + + /** + * Sets repetitions number of marquee cycle. + * + * @param aRepetitions Number of marquee cycles. Negetive values - infinite loop. + */ + virtual void SetTextMarqueeRepetitions ( const TInt aMarqueeRepetitions ) = 0; + + /** + * Gets repetitions number of marquee cycle. + * + * @return Number of marquee cycles. Negetive values - infinite loop. + */ + virtual TInt TextMarqueeRepetitions ( ) const = 0; + + // Change scrollbar to avkon (to support skinning & touch) + virtual void NotifyControlVisibilityChange( TBool aIsVisible ) = 0; + // + + }; + + +#endif // M_FSTREEVISUALIZER_H