idlehomescreen/widgetmanager/inc/wmmaincontainer.h
branchRCL_3
changeset 102 ba63c83f4716
parent 93 b01126ce0bec
--- a/idlehomescreen/widgetmanager/inc/wmmaincontainer.h	Wed Sep 15 12:00:00 2010 +0300
+++ b/idlehomescreen/widgetmanager/inc/wmmaincontainer.h	Wed Oct 13 14:18:30 2010 +0300
@@ -38,7 +38,7 @@
 class CAknSearchField;
 class CCoeControl;
 class CAknSearchField;
-class CWmStore;
+class CWmPortalButton;
 class CWmMainContainerView;
 class CWmConfiguration;
 
@@ -94,6 +94,11 @@
     TBool IsLoadingWidgets();
     
     /** 
+     * @return true, if portal button is currently selected 
+     */
+    TBool PortalSelected();
+    
+    /** 
      * @return true, if a widget in list is currently selected 
      */
     TBool WidgetSelected();
@@ -169,9 +174,14 @@
     void UninstallWidgetL();
 
     /**
-     * Store menu command.
+     * opens currently selected portal
      */
-    void HandleStoreCommandL();
+    void OpenPortalL();
+
+    /**
+     * Selection key (middle soft key)
+     */
+    void SelectL();
     
     /**
      * Show widget manager help
@@ -216,6 +226,12 @@
      * @see CCoeControl::HandlePointerEventL
      */
     void HandlePointerEventL( const TPointerEvent& aPointerEvent );
+    
+    /**
+     * Moves focus to the OVI button
+     * @param aIndex 0=first button, 1=second (if it exists)
+     */
+    void SetFocusToPortalButton( TInt aIndex );
 
     /**
      * Moves focus to the widgets list, alternatively also setting the currently
@@ -236,6 +252,17 @@
      * To set iClosingDown. See above.
      */
     void SetClosingDown( TBool aClosingDown );
+
+    /**
+     * access to WM configuration
+     */
+    CWmConfiguration& Configuration();
+    
+    /**
+     * Process foregound events.
+     * @param aForeground ETrue indicates foreground
+     */
+    void ProcessForegroundEvent( TBool aForeground );
     
     /**
      * access to WM list
@@ -287,22 +314,28 @@
     
 private: // New functions
     
-    void DisplayAndLaunchStoresL();
-    static void CleanupIconArray( TAny* aIconArray );
-
     void AddControlL( CCoeControl* aControl, TInt aControlId );
     void InitializeControlsL( const TRect& aRect );
     void LayoutControls();
     void StartLoadingWidgetsL();
     void RemoveCtrlsFromStack();
+    void UpdateFocusMode();
+    void ResetFocus( TDrawNow aDrawNow = ENoDrawNow );
     CCoeControl* FindChildControlByPoint( const TPoint& aPoint );
     void HandleFindSizeChanged();
+    TKeyResponse MoveFocusByKeys(
+            const TKeyEvent& aKeyEvent, 
+            TEventCode aType );
+    TKeyResponse HandleButtonKeyEventL( 
+            const TKeyEvent& aKeyEvent, 
+            TEventCode aType );
     TKeyResponse HandleListKeyEventL( 
             const TKeyEvent& aKeyEvent, 
             TEventCode aType );
     TKeyResponse HandleSearchKeyEventL( 
             const TKeyEvent& aKeyEvent, 
             TEventCode aType );
+    TInt OperatorButtonHigherPriority( TInt aIndex );
     
 public: // from MWmWidgetloaderObserver
     void LoadDoneL( TBool aWidgetListChanged );
@@ -333,23 +366,55 @@
      * background
      */
     CAknsBasicBackgroundControlContext* iBgContext;
+    
+    /**
+     * portal button
+     * (if there is only one button, this is it)
+     */
+    CWmPortalButton*         iPortalButtonOne;
 
     /**
+     * portal button
+     * (if there is only one button, this is NULL)
+     */
+    CWmPortalButton*         iPortalButtonTwo;
+
+    /** whether we are orientated in landscape */
+    TBool                   iLandscape;
+
+    /** whether we have mirrored layout */
+    TBool                   iMirrored;
+
+    /** focus modes */
+    enum TWmFocusMode
+        {
+        ENowhere,
+        EPortal,
+        EList,
+        EFind
+        };
+
+    /**
+     * current widget manager focus mode
+     */
+    TWmFocusMode            iFocusMode;
+    
+    /**
      * AO for loading widgets into the list UI
      */
     CWmWidgetLoaderAo*      iWidgetLoader;
-
-    /**
-     * Currectly selected store.
-     */
-    CWmStore*               iSelectedStore;
-
+    
     /**
      * If this is set to ETrue it means wmview is closing and all user inputs
      * should be ignored.
      */
     TBool                   iClosingDown;
     
+    /**
+     * The configuration
+     */
+    CWmConfiguration*       iConfiguration;
+    
 #ifdef _WM_UNIT_TEST
     friend class CWmUnitTest;
 #endif