emailuis/uicomponents/inc/fsfastaddressingvisualizer.h
changeset 0 8466d47a6819
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/uicomponents/inc/fsfastaddressingvisualizer.h	Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,251 @@
+/*
+* 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:  Declaration of CFsFastAddressingVisualizer class
+*
+*/
+
+
+#ifndef C_FSFASTADDRESSINGVISUALIZER_H
+#define C_FSFASTADDRESSINGVISUALIZER_H
+
+
+#include <e32base.h>
+//<cmail> removed __FS_ALFRED_SUPPORT flag (other places in this file not tagged!)
+//#include <fsconfig.h>
+/*#ifdef __FS_ALFRED_SUPPORT
+#else // !__FS_ALFRED_SUPPORT
+#endif // __FS_ALFRED_SUPPORT*/
+//</cmail> removed __FS_ALFRED_SUPPORT flag
+#include "fsfastaddressinglist.h"
+
+class CAlfAnchorLayout;
+class CAlfFlowLayout;
+class CFsTextInputVisual;
+
+/**
+ * CFsFastAddressingVisualizer class is responsible for visualisation
+ * of the fast addressing list component. The class constructs the
+ * visualization tree and manages the visualization of the text input field.
+ *
+ */
+
+NONSHARABLE_CLASS( CFsFastAddressingVisualizer ) : public CBase
+    {
+public:
+
+    /**
+     * Two-phased constructor
+     *
+     * @param aOwner Owner of visualizer
+     * @param aTextControl CoeControl of which the Rect will be handled
+     * @return Created instance of CFsFastAddressingVisualizer class
+     */
+    static CFsFastAddressingVisualizer* NewL( CAlfControl& aOwner,
+        CCoeControl& aTextControl );
+
+    /**
+     * Two-phased constructor
+     *
+     * @param aOwner Owner of visualizer
+     * @param aTextControl CoeControl of which the Rect will be handled
+     * @return Created instance of CFsFastAddressingVisualizer class
+     */
+    static CFsFastAddressingVisualizer* NewLC( CAlfControl& aOwner,
+        CCoeControl& aTextControl );
+
+    /**
+     * Destructor
+     */
+    virtual ~CFsFastAddressingVisualizer();
+
+    /**
+     * Set the icon image.
+     *
+     * @param aIconID Sets icon image
+     * @param aImage Image to be set
+     */
+    void SetIcon(
+        const CFsFastAddressingList::TIconID aIconID,
+        const TAlfImage& aImage );
+
+    /**
+     * Sets icon visibility
+     *
+     * @param aIconID Sets icon image
+     * @param aVisible State of icon visibility.
+     */
+    void SetIconVisible( const CFsFastAddressingList::TIconID aIconID,
+                         const TBool aVisible );
+
+    /**
+     * Returns the icon visibility.
+     * @param aIconID Id of icon which visiblity will be set
+     * @return TBool icon visibility status.
+     */
+    TBool IconVisible( const CFsFastAddressingList::TIconID aIconID ) const;
+
+    /**
+     * Redraw the FAL.
+     */
+    void Refresh();
+
+
+    /**
+     * Sets list visiblity
+     *
+     * @param aVisible If ETrue list is set to be visible.
+     *                 If EFalse list is set to invisible.
+     */
+    void SetVisible( const TBool aVisible );
+
+    /**
+     * Move selection up.
+     * Selection implemented in TreeList.
+     */
+
+    void MoveSelectionUp();
+    /**
+     * Move selection down.
+     * Selection implemented in TreeList.
+     */
+
+    void MoveSelectionDown();
+
+    /**
+     * Returns pointer to the layout for the text input field.
+     * @return Layout for the text input field.
+     */
+    CAlfLayout* GetTextLayout() const;
+
+    /**
+     * Sets visibility of the text field layout.
+     * @param iVisible visibility of the text input field.
+     */
+    void SetTextFieldVisible( const TBool iVisible );
+
+    /**
+     * Returns status of visibility of the text field layout.
+     * @return TBool visibility status of the text input field.
+     */
+    TBool IsTextFieldVisible() const;
+
+    /**
+     * Sets position of the list (bottom of text field or on top of text field)
+     * @param aPos position of the list
+     *             {EListOnTopOfTextField,EListBelowTextField}
+     */
+    void SetListPosition( CFsFastAddressingList::TFsListPosition aPos );
+
+    /**
+     * Returns position of the list
+     * @return TFsListPosition position of the list
+     *                         {EListOnTopOfTextField,EListBelowTextField}
+     */
+    CFsFastAddressingList::TFsListPosition ListPosition() const;
+
+    /**
+     * Returns main layout of FAL
+     * @return CHuiLayout* pointer to the main layout.
+     */
+    CAlfLayout* GetMainLayout() const;
+
+    /**
+     * Returns layout for list component
+     * @return CHuiLayout* pointer to the main layout.
+     */
+    CAlfLayout* GetListLayout() const;
+
+private:
+    /**
+     * Default constructor
+     *
+     * @param aOwner Owner of the visualizer.
+     */
+    CFsFastAddressingVisualizer( CAlfControl& aOwner );
+
+    /**
+     * Second phase constructor
+     * @param aTextControl CCoeControl of which the TRect will be managed
+     */
+    void ConstructL( CCoeControl& aTextControl );
+
+    /**
+     * Draw underline text
+     */
+    void DrawUnderline();
+
+    /**
+     * Sets anchors for the textinput layout and for the list layout
+     */
+    void SetAnchors();
+
+
+private: //Data
+
+    /**
+     * Root laout of the fast addresing list component.
+     * Not owned.
+     */
+    CAlfAnchorLayout* iRootLayout;
+
+    /**
+     * Layout passed to the tree list component.
+     * Not owned.
+     */
+    CAlfLayout* iItemsList;
+
+    /**
+     * Layout for text input field.
+     * Not owned.
+     */
+    CAlfFlowLayout* iTextField;
+
+    /**
+     * Image visual for icon A
+     * Not owned.
+     */
+    CAlfImageVisual* iIconA;
+
+    /**
+     * Image visual for icon B
+     * Not owned.
+     */
+    CAlfImageVisual* iIconB;
+
+    /**
+     * Controls which owns the visualizer.
+     * Not owned.
+     */
+    CAlfControl& iControlOwner;
+
+    /**
+     * Visualizer for the text input field
+     * Not owned.
+     */
+    CFsTextInputVisual* iTextInputVisual;
+
+    /**
+     * Visibility of text field.
+     */
+    TBool iTextFieldVisible;
+
+    /**
+     * List position.
+     * {EListOnTopOfTextField,EListBelowTextField}
+     */
+    CFsFastAddressingList::TFsListPosition iListPosition;
+    };
+
+
+#endif  // C_FSFASTADDRESSINGVISUALIZER_H