taskswitcher/teleportui/hgteleportapp/inc/hgteleportfastswapgrid.h
changeset 4 4d54b72983ae
parent 3 fb3763350a08
child 5 c743ef5928ba
--- a/taskswitcher/teleportui/hgteleportapp/inc/hgteleportfastswapgrid.h	Fri Jan 22 09:35:14 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,274 +0,0 @@
-/*
- * ============================================================================
- *  Name        : hgteleportfastswapgrid.h
- *  Part of     : Hg Teleport
- *  Description : Teleport Fast Swap area UI
- *  Version     : %version:  12 %
- *
- *  Copyright © 2009 Nokia.  All rights reserved.
- *  This material, including documentation and any related computer
- *  programs, is protected by copyright controlled by Nokia.  All
- *  rights are reserved.  Copying, including reproducing, storing,
- *  adapting or translating, any or all of this material requires the
- *  prior written consent of Nokia.  This material also contains
- *  confidential information which may not be disclosed to others
- *  without the prior written consent of Nokia.
- * ============================================================================
- *
- */
-
-#ifndef HGTELEPORTFASTSWAPGRID_H_
-#define HGTELEPORTFASTSWAPGRID_H_
-
-#include <AknGrid.h>
-#include <aknconsts.h>
-#include "hgteleportdevicestate.h"
-
-class CAknsFrameBackgroundControlContext;
-class CHgTeleportFastSwapTimer;
-
-/**
- * Observer for handling fast swap grid events
- */
-class MHgTeleportFastSwapGridObserver
-    {
-public:
-    /**
-     * Called when close icon is tapped on the grid item.
-     * 
-     * @param  aItemIdx  index of the the item for which close icon
-     *                   has been tapped
-     */
-    virtual void HandleCloseEventL( TInt aItemIdx ) = 0;
-    };
-
-
-class MHgTeleportFastSwapTimerObserver
-    {
-public:
-    /**
-     * Called when timer is completed
-     */
-    virtual void TimerCompletedL( CHgTeleportFastSwapTimer* aSource ) = 0;
-    };
-
-
-/**
- * Avkon grid implementing custom item drawer
- */
-class CHgTeleportFastSwapGrid: 
-    public CAknGrid,
-    public MHgDeviceStateObserver
-    {
-public: // enums
-    enum TFastSwapGridBehaviour
-        {
-        // Highlight always visible
-        EHybrid,
-        
-        // Touch only highlight handling
-        ETouchOnly
-        };
-    
-public: // Constructor and destructor
-    CHgTeleportFastSwapGrid();
-    ~CHgTeleportFastSwapGrid();
-    void ConstructL( const CCoeControl* aParent );
-    
-public: // From CCoeControl
-    void HandlePointerEventL( const TPointerEvent &aPointerEvent );
-    TTypeUid::Ptr MopSupplyObject( TTypeUid aId );
-    void HandleResourceChange( TInt aType );
-    void SizeChanged();
-    
-public: //From MHgDeviceStateObserver
-    /**
-     * Called when a change, to which the observer is registered,
-     * has happened.
-     */
-    virtual void HandleDeviceStateChanged( TChangeType aChangeType );
-    
-public: // New functions
-
-    /**
-     * Sets fast swap grid observer
-     */
-    void SetFastSwapGridObserver( MHgTeleportFastSwapGridObserver* aObserver  );
-
-    /**
-     * Set indexes of items which can be closed.
-     * Copies item index array.
-     */
-    void SetCloseItemsL( RArray<TInt>& aItemIndex );
-
-    /**
-     * Checks if the item of given index is closable
-     */
-    TBool CanCloseItem( TInt aItemIndex );
-
-    /**
-     * Checks if the given item's close icon has been tapped.
-     */
-    TBool IsItemCloseHit( TInt aItemIndex );
-
-    /**
-     * Resets index of the item that has been close icon hit
-     */
-    void ResetCloseHit();
-    
-    /**
-     * Sets grid behaviour
-     * 
-     * @param  aBehaviour  behaviour to be set
-     */
-    void SetGridBehaviour( TFastSwapGridBehaviour aBehaviour );
-    
-    /**
-     * Getter for grid behaviour
-     * 
-     * @return  girds behaviour
-     */
-    TFastSwapGridBehaviour GridBehaviour();
-    
-    /**
-     * Shows highlight. In touch only behaviour highlight
-     * will be shown only for ammount of time.
-     */
-    void ShowHighlight();
-    
-    /**
-     * Hides highlight.
-     */
-    void HideHighlight();
-    
-    /**
-     * Checks if the highlight is currently visible.
-     * 
-     * @return  ETrue  if highlight is visible
-     *          EFalse if highlight is not visible
-     */
-    TBool IsHighlightVisible();
-    
-    /**
-     * Sets visible view, items outside of view will not be drawn
-     */
-    void SetVisibleViewRect( const TRect aRect );
-    
-    /**
-     * Returns visible view. Items outside of visible rectangle are not drawn.
-     */
-    TRect VisibleViewRect();
-
-private: // From CAknGrid
-    virtual void CreateItemDrawerL();
-
-private: // New functions
-    
-    /**
-     * Loads close icon bitmap and mask
-     */
-    void LoadCloseIcon();
-    
-    /**
-     * Redraws grid and parent controls
-     */
-    void Redraw();
-    
-private: // Data
-    // Background context for grid
-    CAknsFrameBackgroundControlContext* iBgContext;
-    
-    // Close icon handling
-    RArray<TInt> iCloseItems;
-    TInt iCloseIconHitIdx;
-    MHgTeleportFastSwapGridObserver* iFastSwapGridObserver;
-
-    // Highlight handling
-    TFastSwapGridBehaviour iBehaviour;
-    TBool iHighlightVisible;
-    
-    // Visible view rectangle (horizontal scrolling support)
-    TRect iVisibleViewRect;
-    };
-
-
-
-/**
- * Custom item drawer for drawing grid items
- */
-class CHgTeleportGridItemDrawer: public CFormattedCellListBoxItemDrawer
-    {
-
-public: // Constructor and destructor
-    CHgTeleportGridItemDrawer( CHgTeleportFastSwapGrid* aGrid,
-                               CFormattedCellListBoxData* aData );
-    ~CHgTeleportGridItemDrawer();
-
-public: // New functions
-
-    /**
-     * Sets close icon drawn for items that can be closed.
-     * Ownership transferred.
-     */
-    void SetCloseIcon( CFbsBitmap* aBmp, CFbsBitmap* aMask );
-
-    /**
-     * Returns close icon coordinates for the given item rectangle
-     */
-    TRect GetCloseIconRect( const TRect& aItemRect ) const;
-    
-    /**
-     * Sets screen offset for the item drawer to not draw items on the
-     * grid edges
-     */
-    void SetEdgeOffset( TInt aLeftOffset, TInt aRightOffset );
-
-private: // From CFormattedCellListBoxItemDrawer
-    void DrawActualItem( TInt aItemIndex, const TRect& aActualItemRect,
-                         TBool aItemIsCurrent, TBool aViewIsEmphasized,
-                         TBool aViewIsDimmed, TBool aItemIsSelected ) const;
-private: // New functions
-    /**
-     * Checks if the item rectangle is visible in the view.
-     * 
-     * @param   aItemRect  rectangle of the item to be checked 
-     * @return  ETrue      if rectangle is fully or partially visible
-     *          EFalse     if rectangle is not visible
-     */
-    TBool IsItemRectVisible( const TRect& aItemRect ) const;
-    
-private: // Data
-    // Not owned
-    CHgTeleportFastSwapGrid* iGrid;
-    // Owned
-    CFbsBitmap* iCloseIcon;
-    CFbsBitmap* iCloseIconMask;
-    
-    TRect iScreenRect;
-    TInt iLeftOffset;
-    TInt iRightOffset;
-    };
-
-
-
-/**
- * Timer class for handling highlight bevaiour
- */
-class CHgTeleportFastSwapTimer : public CTimer
-    {
-public:
-    // Constructor
-    CHgTeleportFastSwapTimer( MHgTeleportFastSwapTimerObserver& aObserver );
-    // Destructor
-    ~CHgTeleportFastSwapTimer();
-    // 2nd phase constructor
-    void ConstructL();
-    
-private: // From CTimer
-    void RunL();
-    
-private: // Data
-    MHgTeleportFastSwapTimerObserver* iObserver; // not own
-    };
-
-#endif /* HGTELEPORTFASTSWAPGRID_H_ */