taskswitcher/teleportui/hgteleportapp/inc/hgteleportfastswaparea.h
changeset 4 4d54b72983ae
parent 3 fb3763350a08
child 5 c743ef5928ba
--- a/taskswitcher/teleportui/hgteleportapp/inc/hgteleportfastswaparea.h	Fri Jan 22 09:35:14 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,459 +0,0 @@
-/*
- * ============================================================================
- *  Name        : hgteleportfastswaparea.h
- *  Part of     : Hg Teleport
- *  Description : Teleport Fast Swap area UI
- *  Version     : %version: sa1spcx1#45 %
- *
- *  Copyright © 2008 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.
- * ============================================================================
- *
- */
-
-//macro TASKSWITCHER_USE_CUSTOM_LAYOUT
-#if !defined ( TASKSWITCHER_USE_CUSTOM_LAYOUT )
-    //#define TASKSWITCHER_USE_CUSTOM_LAYOUT 1
-#endif
-
-
-#ifndef HGTELEPORTFASTSWAPAREA_H
-#define HGTELEPORTFASTSWAPAREA_H
-
-#include <e32base.h>
-#include <eikmobs.h>
-#include "hgteleportdevicestate.h"
-#include "hgfswclientobserver.h"
-#include "hgteleportfastswapgrid.h"
-#include "hgteleporteventcontrolerobserver.h"
-
-
-// FORWARD DECLARATIONS
-class CHgFswClient;
-class CHgFswEntry;
-class CAknStylusPopUpMenu;
-class CAknQueryDialog;
-class CHgTeleportEventControler;
-class MHgTeleportDataChangeObserver;
-
-#ifdef TASKSWITCHER_USE_CUSTOM_LAYOUT
-const TInt KFswItemHeight = 250;
-const TInt KFswItemWidth = 240;
-const TInt KFswImageSize = 200;
-const TInt KFswTextHeight = 20;
-const TInt KFswBorderSize = 10;
-const TInt KFswHeadingHeight = 50;
-#endif
-
-/**
- * Teleport Fast Swap area UI.
- */
-class CHgTeleportFastSwapArea: public CCoeControl,
-                               public MEikMenuObserver,
-                               public MHgFswObserver,
-                               public MEikListBoxObserver,
-                               public MHgTeleportFastSwapGridObserver,
-                               private MHgTeleportEventControlerObserver,
-                               public MHgDeviceStateObserver,
-                               public MHgTeleportFastSwapTimerObserver
-    {
-public:
-    /**
-     * Two-phase constructor.
-     * 
-     * @param aRect Area where fast swap info & list should draw itself.
-     * @param aParent Parent CoeControl. 
-     */
-    static CHgTeleportFastSwapArea* NewL( const TRect& aRect,
-            CCoeControl& aParent, CHgTeleportDeviceState& aDeviceState,
-            CHgTeleportEventControler& aEventHandler);
-
-    /**
-     * @copydoc NewL
-     */
-    static CHgTeleportFastSwapArea* NewLC( const TRect& aRect,
-            CCoeControl& aParent, CHgTeleportDeviceState& aDeviceState,
-            CHgTeleportEventControler& aEventHandler);
-
-    /**
-     * Destructor.
-     */
-    ~CHgTeleportFastSwapArea();
-
-    /**
-     * Called from appview when coming to foreground.
-     */
-    void HandleSwitchToForegroundEvent();
-    
-    /**
-     * Called from appview when going to background.
-     */
-    void HandleSwitchToBackgroundEvent();
-
-    /**
-     * Called after construction to set up additional properties,
-     * like the control observer.
-     */
-    void Setup( MCoeControlObserver& aControlObserver );
-
-    /**
-     * Saves the index of the currently selected (highlighted) item.
-     */
-    void SaveSelectedIndex();
-    
-    /**
-     * Restores the selection (highlight) position.
-     */
-    void RestoreSelectedIndex();
-
-    // Functions to perform activate, close, close others operations.
-    // They are public so same functionality can be implemented in the
-    // Options menu (appui) for example.
-    
-    /**
-     * Index of highlighted item or KErrNotFound.
-     */
-    TInt SelectedIndex() const;
-    
-    /**
-     * Brings the app corresponding to the item at given index into foreground.
-     */
-    void SwitchToApp( TInt aIndex );
-    
-    /**
-     * Sends close msg to given app.
-     * @param   aIndex      index
-     * @param   aSuppressRendering  content is not refreshed if ETrue
-     */
-    void TryCloseAppL( TInt aIndex, TBool aSuppressRendering = EFalse );
-    
-    /**
-     * Sends close msg to given app if user confirms the query.
-     */
-    void TryCloseAppWithQueryL( TInt aIndex );
-    
-    /**
-     * Tries to Close all applications that cn be closed
-     */
-    void TryCloseAllL();
-    
-    /**
-     * True if it is allowed to ask the given app to close.
-     * @param   aIndex  index
-     */
-    TBool CanClose( TInt aIndex ) const;
-    
-    /**
-     * @param  aSelectedItem  item for which pop up is shown
-     * 
-     * @return ETrue, when number of closable apps is >= 2 or there is at least
-     *                one closable item and non closable item is selected.
-     * @return EFalse, when number of closable apps is < 2.
-     */
-    TBool CanCloseAll( TInt aSelectedItem ) const;
-
-    /**
-     * Returns the number of items in the list.
-     */
-    TInt Count() const;
-
-    /**
-     * Returns the underlying Ganes control pointer.
-     */
-    CCoeControl* GetChildControl() { return iGrid; }
-
-    /**
-     * Sets the data-changed observer.
-     */
-    void SetDataChangeObserver( MHgTeleportDataChangeObserver* aDcObserver );
-
-    /*
-     * Handling short/long app key.
-     */
-    void HandleAppKey(TInt aType);
-
-private:
-
-    /**
-     * @copydoc NewL
-     */
-    void ConstructL( const TRect& aRect );
-
-    /**
-     * C++ constructor.
-     */
-    CHgTeleportFastSwapArea(CCoeControl& aParent,
-            CHgTeleportDeviceState& aDeviceState,
-            CHgTeleportEventControler& aEventHandler);
-    
-    // From MEikListBoxObserver
-    void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType);
-    
-public:
-    /**
-     * Implements drag gesture handling
-     * @see MHgTeleportEventControlerObserver
-     */
-    void MoveOffset(const TPoint&);
-
-    /**
-     * Implements tap gesture handling
-     * @see MHgTeleportEventControlerObserver
-     */
-    void TapL(const TPoint&);
-
-    /**
-     * Implements long tap gesture handling
-     * @see MHgTeleportEventControlerObserver
-     */
-    void LongTapL(const TPoint&);
-
-    /**
-     * Implements drag gesture handling
-     * @see MHgTeleportEventControlerObserver
-     */
-    void Drag(const AknTouchGestureFw::MAknTouchGestureFwDragEvent& aEvent);
-    
-    /**
-     * Implements animation stop handling
-     * @see MHgTeleportEventControlerObserver
-     */
-    void Stop();
-    
-    /**
-     * Implements view position getter. Returns point in the middle of the
-     * grid view window.
-     * 
-     * @see MHgTeleportEventControlerObserver
-     */
-    TPoint ViewPos()const;
-    
-public:    
-    // from CCoeControl    
-    TInt CountComponentControls() const;
-    CCoeControl* ComponentControl(TInt aIndex) const;
-    void FocusChanged( TDrawNow aDrawNow );
-    void SizeChanged();
-    void Draw( const TRect& aRect ) const;
-    TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
-    void HandlePointerEventL( const TPointerEvent& aPointerEvent );
-    
-private:
-    // From MHgFswObserver     
-    void HandleFswContentChanged();
-    
-    // From MEikMenuObserver
-    void ProcessCommandL( TInt aCommandId );
-	void SetEmphasis( CCoeControl*, TBool ) { }
-	
-	// From MHgTeleportFastSwapGridObserver
-	void HandleCloseEventL(TInt aItemIdx);
-	
-	// From MHgDeviceStateObserver
-	void HandleDeviceStateChanged( TChangeType aChangeType );
-
-    // From MHgTeleportFastSwapTimerObserver
-    void TimerCompletedL( CHgTeleportFastSwapTimer* aSource );
-	
-// new functions    
-
-    /**
-     * Makes a copy of the given bitmap.
-     * Also scaled to the given size, but maintains aspect ratio,
-     * so the size of the returned bitmap may be less then aSize.
-     */
-    CFbsBitmap* CopyBitmapL( TInt aFbsHandle, TSize aSize );
-
-    /**
-     * Called from HandleFswContentChanged.
-     */    
-    void HandleFswContentChangedL();
-    
-    /**
-     * Shows the content from iArray on the screen.
-     */
-    void RenderContentL();
-    
-    /**
-     * Creates the ganes grid control.
-     */
-    void ReCreateGridL();
-    
-    /**
-     * Returns rectangles for fast swap area controls
-     */
-    void GetFastSwapAreaRects( RArray<TAknLayoutRect>& aRects );
-
-    /**
-     * Creates a stylus popup instance (iPopup) if not yet done.
-     */
-    void PreCreatePopupL();
-
-    /**
-     * Shows the stylus popup menu if not yet visible.
-     * @param   aIndex  index of item in the grid
-     * @param   aPoint  position for the popup
-     */
-    TBool ShowPopupL( TInt aIndex, const TPoint& aPoint );
-    
-    /**
-     * Shows the app close confirmation query.
-     * @param   aIndex  index of item in the grid
-     * @return ETrue if accepted EFalse if canceled
-     */
-    TBool ConfirmCloseL( TInt aIndex );
-
-    /**
-     * Sends the data-changed notification.
-     */   
-    void NotifyChange();
-
-    /**
-     * Chage application order.
-     * move Homescreen to first left position.
-     */   
-    void SwapApplicationOrder( RPointerArray<CHgFswEntry>& aArray );
-    
-    /**
-     * Retrieves and returns size for image graphics.
-     */
-    TSize PreferredImageSize();
-    
-    /**
-     * Retrieves number of items in grid
-     */
-    TInt GridItemCount();
-    
-    /**
-     * Calculates the correct size if aspect ratio needs to be preserved.
-     */
-    TSize CalculateSizePreserveRatio(const TSize& aTargetAreaSize,
-            const TSize& aSourceSize);
-    
-    /**
-     * Selects next item in grid
-     */
-    void SelectNextItem();
-    
-    /**
-     * Highlight current grid'd item and redraw
-     */
-    void ShowHighlight();
-    
-    /**
-     * Centralise most centered item so it was most exposed on the view.
-     * Centered element is being selected by grid.
-     * Animation to the centered element is made after aRedrawDelay time.
-     * 
-     * @param aRedrawDelay - animation delay.
-     */
-    void CenterItem( TInt aRedrawDelay);
-    
-    /**
-     * Returns full grid view size.
-     */
-    TSize GridWorldSize();
-    
-    /**
-     * Updates grid, called for manual grid scroll update
-     * 
-     * @param  aForceRedraw    if set to ETrue - redraw will be forced
-     * @param  aAnimate        set to ETrue to enable animation
-     */
-    void UpdateGrid( TBool aForceRedraw = EFalse,
-                     TBool aAnimate = ETrue );
-    
-    /**
-     * Returns grid view size
-     */
-    TSize ViewSize();
-    
-    /**
-     * Returns the position of the given item inside grid world rect.
-     * Returns point in the middle of the view rectangle.
-     * 
-     * @param  aItemIdx  index of the item for which calculation will be done
-     */
-    TPoint ItemViewPosition( TInt aItemIdx );
-    
-    /**
-     * Returns index of the shown item, based on the logical
-     * position of the grids view. Item that is closest to the
-     * middle of screen is returned.
-     * 
-     * @param  aViewPos  grids view position. This must be point in
-     *                   the middle of the view rectangle
-     * @return  index of the item
-     */
-    TInt ViewToVisibleItem( const TPoint aViewPos );
-    
-    /**
-     * Launches increasing pop-up feedback.
-     */
-    void LaunchPopupFeedback();
-
-private: // Data
-    
-    // parent control
-    CCoeControl& iParent;
-    
-    // device state
-    // not own 
-    CHgTeleportDeviceState& iDeviceState;
-
-    // grid, own
-    CHgTeleportFastSwapGrid* iGrid;
-        
-    // fsw client, own
-    CHgFswClient* iFSClient;
-    // fsw content, ptrs owned
-    RPointerArray<CHgFswEntry> iArray;
-    
-    // index of selected (highlighted) item in the grid
-    // when the fsw was last focused
-    TInt iSavedSelectedIndex;
-    
-    // fsw popup (activate, close, etc.), own
-    CAknStylusPopUpMenu* iPopup;
-    // the aIndex argument of ShowPopupL is stored here
-    TInt iAppIndexForPopup;
-
-    // query shown when pressing Clear key in fsw, own
-    CAknQueryDialog* iConfirmCloseQuery;
-
-    // Timestamp of the last application close operation
-    TTime iTimeOfLastClose;
-    
-    // Observer ptr, may be NULL, not owned
-    MHgTeleportDataChangeObserver* iDcObserver;
-    
-    //Input events handler
-    CHgTeleportEventControler& iEvtHandler;
-    
-    TInt iMaxItemsOnScreen;
-    TInt iPreviousNoOfItems;
-    
-    // Tap event
-    TPointerEvent iTapEvent;
-    CHgTeleportFastSwapTimer* iHighlightTimer;
-    TBool iLongTap;
-    
-    // Grid scrolling
-    TInt iGridItemWidth;
-    
-    CHgTeleportFastSwapTimer* iRedrawTimer; // owned
-    
-    CHgTeleportFastSwapTimer* iUpdateGridTimer;//owned
-    
-    // Key event handling
-    TBool iConsumeEvent;
-    TBool iKeyEvent;
-    };
-
-#endif // HGTELEPORTFASTSWAPAREA_H