taskswitcher/teleportui/hgteleportapp/inc/hgteleportappui.h
changeset 2 08c6ee43b396
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/taskswitcher/teleportui/hgteleportapp/inc/hgteleportappui.h	Mon Jan 18 20:10:36 2010 +0200
@@ -0,0 +1,165 @@
+/*
+ * ============================================================================
+ *  Name        : hgteleportappui.h
+ *  Part of     : Hg Teleport
+ *  Description : appui
+ *  Version     : %version: sa1spcx1#26 %
+ *
+ *  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 HGTELEPORTAPPUI_H
+#define HGTELEPORTAPPUI_H
+
+#include <e32base.h> 
+#include <aknappui.h>
+
+#include <gfxtranseffect/gfxtranseffect.h>
+#include <akntransitionutils.h>
+
+#include "hgproplistener.h"
+#include "hgcenreplistener.h"
+
+// FORWARD DECLARATIONS
+class CHgTeleportAppView;
+class CHgActionUtility;
+class CHgTeleportDeviceState;
+
+/**
+ * CHgTeleportAppUi
+ * Appui for hg teleport app
+ */
+class CHgTeleportAppUi : public CAknAppUi, 
+                         public MHgPropertyChangeObserver,
+                         public MHgCenrepChangeObserver,
+                         public MGfxTransEffectObserver
+    {
+
+public:
+    /**
+     * Perform the second phase construction of a CHgTeleportAppUi object
+     * this needs to be public due to the way the framework constructs the AppUi
+     */
+    void ConstructL();
+
+    /**
+     * Perform the first phase of two phase construction.
+     * This needs to be public due to the way the framework constructs the AppUi
+     */
+    CHgTeleportAppUi();
+
+    /**
+     * Destroy the object and release all memory objects
+     */
+    ~CHgTeleportAppUi();
+
+public: //effects
+    /**
+     * @return value of theme effects enabled flag
+     */
+    TBool EffectsEnabled() const;
+    
+    /**
+     * Function start transition  
+     */
+    void StartTransion( TUint aTransitionType );
+    
+    /**
+     * from MGfxTransEffectObserver
+     */
+    void TransitionFinished(const CCoeControl* aControl, TUint aAction);
+    
+    void MoveAppToForeground( TUint aTransitionType );
+    void MoveAppToBackground( TUint aTransitionType );
+    
+public:
+    /**
+     * From MHgCenrepChangeObserver
+     */
+    void CenrepChanged( TUint32 aKey, TInt aNewValue );
+    
+
+private:
+
+    // From MHgPropertyChangeObserver
+    void PropertyChanged( TUid aCategory, TUint aKey );
+
+    // From CEikAppUi
+    void HandleResourceChangeL( TInt aType );
+    void HandleForegroundEventL( TBool aForeground );
+    void HandleCommandL( TInt aCommand );
+    
+    void StartTransition( TUint aTranstionId,
+                          TBool aVisibility,
+                          TBool aLayers, 
+                          TUint aSubCom );
+
+private: // New functions
+    
+    /**
+     * Called from HandleForegroundEventL if the app came to foreground.
+     */
+    void HandleSwitchToForegroundEvent();
+    
+    /**
+     * Called from HandleForegroundEventL if the app went to background.
+     */
+    void HandleSwitchToBackgroundEvent();
+
+    /**
+     * Sets P&S property which is used to monitor and set Teleport to 
+     * background/foreground and short/long app key press.
+     * 
+     * @param aValue Property value. 
+     */
+    void SetTeleportStateProperty( TInt aValue );
+    
+    /**
+     * Sends request for close some 
+     * other apps to free memory for 
+     * teleport app
+     */
+    void FreeMemoryRequest();
+
+    static TInt GoToBackgroundTimerCallback( TAny* aParam );
+
+private:
+
+    // Teleport application view, owned
+    CHgTeleportAppView* iAppView;
+    
+    // Listener for app key long press P&S, owned
+    CHgPropertyListener* iPropListener;
+    
+    // Tells if Teleport is in foreground or in background
+    TBool iForeground;
+    
+    // Application arch task which refers to our own app
+    TApaTask iApplicationTask;
+
+    // Device state
+    CHgTeleportDeviceState* iDeviceState;
+
+    // Buffer to keeping some memory allocation while being in background.    
+    TUint8* iMemAllocBuf;
+
+    CPeriodic* iGoToBackgroundTimer;
+    
+    TBool iEffectsEnabled;
+    
+    /**
+     * Cenrep listener for the tfxserver enabled/disabled key.
+     */    
+    CHgCenrepListener* iThemeEffectsEnabledWatcher;
+    };
+
+#endif // HGTELEPORTAPPUI_H