--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/taskswitcher/teleportui/hgteleportapp/inc/hgteleportappview.h Mon Jan 18 20:10:36 2010 +0200
@@ -0,0 +1,250 @@
+/*
+ * ============================================================================
+ * Name : hgteleportappview.h
+ * Part of : Hg Teleport
+ * Description : appui
+ * Version : %version: sa1spcx1#32 %
+ *
+ * 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.
+ * ============================================================================
+ *
+ */
+
+#ifndef HGTELEPORTAPPVIEW_H
+#define HGTELEPORTAPPVIEW_H
+
+#include <e32base.h>
+#include <coecntrl.h>
+#include <AknPopupFader.h>
+#include "hgteleportdevicestate.h"
+#include "hgteleportdatachangeobserver.h"
+#include "hgteleporteventcontrolerobserver.h"
+
+// FORWARD DECLARATIONS
+class CAknsFrameBackgroundControlContext;
+class CHgTeleportFastSwapArea;
+class CHgTeleportDialog;
+class CAknPopupHeadingPane;
+class CHgTeleportEventControler;
+
+/**
+ * Teleport applicatio view class.
+ */
+class CHgTeleportAppView : public CCoeControl, public MCoeControlObserver,
+ public MHgDeviceStateObserver,
+ public MAknFadedComponent,
+ public MHgTeleportDataChangeObserver,
+ public MHgTeleportEventControlerObserver
+ {
+public:
+
+ /**
+ * Two-phase constructor.
+ *
+ * @param aRect Area where view should draw itself.
+ */
+ static CHgTeleportAppView* NewL(const TRect& aRect,
+ CHgTeleportDeviceState& aDeviceState);
+
+ /**
+ * @copydoc NewL
+ */
+ static CHgTeleportAppView* NewLC(const TRect& aRect,
+ CHgTeleportDeviceState& aDeviceState);
+
+ /**
+ * Destructor.
+ */
+ ~CHgTeleportAppView();
+
+ /**
+ * Called from appui if the app came to foreground.
+ */
+ void HandleSwitchToForegroundEvent();
+
+ /**
+ * Called from appui if the app went to background.
+ */
+ void HandleSwitchToBackgroundEvent();
+
+ /**
+ * From CCoeControl Method handling the pointer events while the fsw is used.
+ *
+ * @param aPointerEvent Information about the event.
+ */
+ void HandlePointerEventL( const TPointerEvent &aPointerEvent );
+
+public:
+ // from CCoeControl
+ void Draw( const TRect& aRect ) const;
+ TTypeUid::Ptr MopSupplyObject( TTypeUid aId );
+ TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
+ TInt CountComponentControls() const;
+ CCoeControl* ComponentControl(TInt aIndex) const;
+ void SizeChanged();
+
+ //Own
+ /*
+ * Forward app key handling to fasswaparea control.
+ */
+ void HandleAppKey(TInt aType);
+
+protected:
+ // from MCoeControlObserver
+ void HandleControlEventL( CCoeControl* aControl, TCoeEvent aEventType );
+
+ // from MHgDeviceStateObserver
+ void HandleDeviceStateChanged( TChangeType aChangeType );
+
+protected: // from MAknFadedComponent
+ TInt CountFadedComponents();
+ CCoeControl* FadedComponent( TInt aIndex );
+
+protected: // from MHgCenrepChangeObserver
+ void CenrepChanged( TUint32 aKey, TInt aNewValue );
+
+protected: // from MHgTeleportDataChangeObserver
+ void DataChanged( CCoeControl* aWhere, TInt aNewCount );
+
+private:
+
+ /**
+ * @copydoc NewL
+ */
+ void ConstructL( const TRect& aRect );
+
+ /**
+ * C++ constructor.
+ */
+ CHgTeleportAppView( CHgTeleportDeviceState& aDeviceState );
+
+ /**
+ * Updates the internal state for currently focused control.
+ * @param aNewFocusedControl ptr to new focused control, ownership not taken
+ */
+ void ChangeFocus( CCoeControl* aNewFocusedControl );
+
+ /**
+ * Creates components.
+ */
+ void CreateControlsL();
+
+ /**
+ * Appends component rects to the given array.
+ * @param aRects array
+ */
+ void GetRects( RArray<TRect>& aRects );
+
+ /**
+ * Adds the ptr to the list of dialog pointers.
+ * @param aDlg dialog ptr, ownership not taken
+ */
+ void AddDlgSelfPtrL( CHgTeleportDialog* aDlg );
+
+ /**
+ * Handles key event according to the portrait-style (vertical) layout.
+ */
+ TKeyResponse OfferKeyEventPortraitStyleL( const TKeyEvent& aKeyEvent, TEventCode aType);
+
+ /**
+ * Calculates and returns the following:
+ * - the rectangle for main_tport_pane
+ * - the outer rectangle for the frame
+ * - the inner rectangle for the frame
+ */
+ void UpdatePopupRects( );
+
+ /**
+ * Updates the text in the applications and suggestions heading panes.
+ */
+ void UpdateHeadingsL();
+
+ /**
+ * Disables transition animations for teleport app.
+ * (the automatic effects that are applied when coming/leaving foreground)
+ */
+ void DisableAppSwitchEffects();
+
+
+public://From MHgTeleportEventControlerObserver
+ /**
+ * Declare drag gesture handling.
+ * @param aOffset - drag distance
+ */
+ virtual void MoveOffset(const TPoint& aOffset);
+
+ /**
+ * Declare tap gesture handling.
+ * @param aPoint - tap position
+ */
+ virtual void TapL(const TPoint& aPoint);
+
+ /**
+ * Declare long tap gesture handling.
+ * @param aPoint - tap position
+ */
+ virtual void LongTapL(const TPoint& aPoint);
+
+ /**
+ *
+ */
+ virtual void Drag(
+ const AknTouchGestureFw::MAknTouchGestureFwDragEvent& aEvent);
+
+ /**
+ * Declare animation stop handling
+ */
+ virtual void Stop();
+
+ /**
+ * Declare getter for view position
+ */
+ virtual TPoint ViewPos() const;
+
+private: // Data
+
+ // Ref to container for commonly used instances
+ CHgTeleportDeviceState& iDeviceState;
+
+ // Background context, owned
+ CAknsFrameBackgroundControlContext* iBgContext;
+
+ // Fast Swap area, owned
+ CHgTeleportFastSwapArea* iFastSwapArea;
+
+ /**
+ * Heading pane, own
+ */
+ CAknPopupHeadingPane* iAppsHeading;
+
+ /**
+ * Currently focused control, not own
+ */
+ CCoeControl* iFocused;
+
+ /**
+ * Rectangle of the control.
+ */
+ TRect iViewRect;
+
+ /**
+ * Popup fader instance.
+ */
+ TAknPopupFader iPopupFader;
+
+ /**
+ * Pointer for background image, owned
+ */
+ TRect iBgContextOuterRect;
+ TRect iBgContextInnerRect;
+ CHgTeleportEventControler* iEvtHandler; //own
+ };
+
+#endif // HGTELEPORTAPPVIEW_H