idlehomescreen/xmluicontroller/inc/appui.h
changeset 0 f72a12da539e
child 9 f966699dea19
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/xmluicontroller/inc/appui.h	Thu Dec 17 08:40:49 2009 +0200
@@ -0,0 +1,174 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  App UI
+*
+*/
+
+
+#ifndef C_APPUI_H
+#define C_APPUI_H
+
+#include <coeview.h>
+#include "xnappuiadapter.h"
+
+
+class CAiUiIdleIntegration;
+class MAiUiFrameworkObserver;
+
+namespace AiXmlUiController
+{        
+class CContentRenderer;
+class CXmlUiController;
+class CAIXuikonEventHandler;
+class COnlineOfflineHelper;
+
+/**
+ *  @ingroup group_xmluicontroller
+ * 
+ *  AppUI class of XML UI Controller application
+ *
+ *  @lib AiXmlUiMain
+ */
+NONSHARABLE_CLASS( CAppUi ) : public CXnAppUiAdapter, 
+    public MCoeViewActivationObserver
+    {    
+public:   // Constructors and destructor
+
+    static CAppUi* NewL( CXmlUiController& aUiCtl );
+
+    ~CAppUi();
+    
+public:  
+    // new functions
+    CCoeEnv* CoeEnv() { return iCoeEnv; }
+            
+private:  
+    // from CXnAppUiAdapter
+    void PrepareToExit();
+    
+    void HandleForegroundEventL( TBool aForeground );
+    
+    void HandleCommandL( TInt aCommand );
+    
+    void HandleResourceChangeL( TInt aType );
+
+    void HandleXuikonEventL( CXnNodeAppIf& aOrigin, CXnNodeAppIf& aTrigger,  
+         CXnDomNode& aTriggerDefinition, CXnDomNode& aEvent ); 
+                                                          
+    void HandleWsEventL( const TWsEvent& aEvent, 
+            CCoeControl* aDestination );
+
+    void LoadDataPluginsL( RPointerArray< CXnNodeAppIf >& aList );
+          
+    void DestroyDataPluginsL( RPointerArray< CXnNodeAppIf >& aList );
+           
+    void SetOnlineStateL( RPointerArray< CXnNodeAppIf >& aList );
+    
+    TBool DynInitMenuItemL( const TDesC& aItemType, 
+        RPointerArray< CXnNodeAppIf >* aList = NULL );
+
+    void HandlePageSwitch();
+    
+    void HandleEnterEditModeL( TBool aEnter );
+	
+private:
+    // new functions
+    void LoadNativeDataPluginsL();
+    void DestroyNativeDataPluginsL();
+    
+private:
+    // from MCoeViewActivationObserver
+    
+    /**
+     * @see MCoeViewActivationObserver
+     */
+    void HandleViewActivation( const TVwsViewId& aNewlyActivatedViewId, 
+        const TVwsViewId& aViewIdToBeDeactivated );
+           
+public: 
+    // new functions
+    
+    /**
+     * Sets plugins online state
+     * 
+     * @since S60 5.0
+     * @param aOnline ETrue to enter online, EFalse to offline
+     * 
+     */
+    void SetOnlineStateL( TBool aOnline );
+    
+    /**
+     * Gets Ui controller
+     *
+     * @since S60 5.0
+     * @return Ui Controller
+     */
+    CXmlUiController& UiController() const;
+               
+private: 
+    // Constructors
+
+    CAppUi( CXmlUiController& aUiCtl, TUid aAppUid );
+    
+    void ConstructL();
+          
+private:     
+    // data
+
+    /**
+     * UI Controller implementation. Not own.
+     */
+    CXmlUiController& iUiCtl;
+
+    /**
+     * Event handler. Own.
+     */
+    CAIXuikonEventHandler* iEventHandler;
+    
+    /**
+     * Content renderer. Own.
+     */
+    CContentRenderer* iContentRenderer;
+    
+    /**
+     * Ui framework event observer. Not own.
+     */
+    MAiUiFrameworkObserver* iUiFwObserver;
+    
+    /**
+     * Idle Integration helper object. Own.
+     */
+    CAiUiIdleIntegration* iIdleIntegration;
+
+    /**
+     * Online/Offline helper object. Own.
+     */
+    COnlineOfflineHelper* iHelper;    
+    
+    /**
+     * Flag to indicate whether native plugins are loaded.
+     */
+    TBool iNativePluginsLoaded;
+    
+    /**
+     * Flag to indicate whether edit mode is active.
+     */
+    TBool iIsEditModeActive;
+    };
+    
+}  // namespace AiXmlUiController
+    
+#endif  // C_APPUI_H
+
+// End of File.