emailuis/uicomponents/inc/fstreevisualizer.h
changeset 0 8466d47a6819
--- /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;
+
+    // <cmail> "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;
+    // </cmail>
+            
+    /**
+     * Sets the specified item as focused.
+     * 
+     * @param aItem indicates item to be focused.
+     * 
+     * @panic EFsListPanicInvalidItemID Item with specified ID is not found.
+     */
+    // <cmail>
+    virtual void SetFocusedItemL( TFsTreeItemId aItem, TBool aCheckFocus = ETrue ) = 0;
+    // </cmail>
+    
+    /**
+     * 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;
+    
+    // <cmail> Change scrollbar to avkon (to support skinning & touch)
+    virtual void NotifyControlVisibilityChange( TBool aIsVisible ) = 0;
+    // </cmail>
+    
+    };
+    
+     
+#endif // M_FSTREEVISUALIZER_H