lafagnosticuifoundation/cone/inc/COEAUI.H
changeset 0 2f259fa3e83a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lafagnosticuifoundation/cone/inc/COEAUI.H	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,249 @@
+// Copyright (c) 1997-2009 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:
+//
+
+#ifndef __COEAUI_H__
+#define __COEAUI_H__
+
+#include <e32std.h>
+#include <e32base.h>
+#include <w32std.h>
+#include <coedef.h>
+#include <coehelp.h>
+#include <coeview.h>
+#include <coeinput.h>
+
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <vwsdef.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+
+
+class CCoeEnv;
+class CCoeControl;
+
+/**
+Creates a FEP interface object.
+
+@publishedAll
+@released
+*/
+typedef CCoeFep* (*TCoeFepFactoryFunctionL)(CCoeEnv& aConeEnvironment, const TDesC& aFullFileNameOfDll, const CCoeFepParameters& aFepParameters);
+
+/**
+Calls the second ordinal function of the FEP for which the settings dialog is to be executed.
+
+@publishedAll
+@released
+*/
+typedef void (*TCoeSynchronouslyExecuteFepSettingsDialogFunctionL)(CCoeEnv& aConeEnvironment, const TDesC& aFullFileNameOfDll);
+
+/** Stack priority flags.
+  
+Controls with higher priorities get offered key events before controls	
+with lower priorities.	  
+		
+@publishedAll 
+@released */
+enum
+	{
+	/** 0 */
+	ECoeStackPriorityDefault=0,
+	/** 10 */
+	ECoeStackPriorityMenu=10,
+	/** 50 */
+	ECoeStackPriorityDialog=50,
+	/** 60 */
+	ECoeStackPriorityCba=60,
+	/** 200 */
+	ECoeStackPriorityAlert=200,
+	/** 240 */
+	ECoeStackPrioritySoftkey=240,
+	/** 250 */
+	ECoeStackPriorityFep=250,
+	/** 300 */
+	ECoeStackPriorityEnvironmentFilter=300
+	};
+
+
+/** Control stack flags.
+
+Each control on the stack has a set of these flags which can be used 
+to refuse to accept key events and to refuse requests for focus.
+
+@publishedAll 
+@released */
+enum
+	{
+	/** The default value */
+	ECoeStackFlagStandard			= 0,	
+	/** The control does not accept key events. */
+	ECoeStackFlagRefusesAllKeys		= 0x01,
+	/** The control does not accept keyboard focus. */
+	ECoeStackFlagRefusesFocus		= 0x02,
+	/** The control is owned and deleted by the stack. */
+	ECoeStackFlagOwnershipTransfered= 0x04,	
+	/** The control is also added to the stack of any embedded app UI. For 
+	example, an alert dialog added through CEikonEnv will be 
+	shared on the stack of all embedded app UIs that may appear in the 
+	application. */
+	ECoeStackFlagSharable			= 0x08
+	};
+
+class CCoeControlStack;
+class CCoeViewManager;
+
+/** Application user interface (app UI) base class. 
+
+The app UI's responsibilities include owning the application's control stack and views, 
+handling user commands, (see the derived class CEikAppUi), and handling events sent by 
+the OS to the application, for instance being brought to the foreground.
+
+The UI framework class CEikAppUi is derived from this class. UIs may derive 
+further to add their own UI-specific features to the app UI; each application must 
+derive its own concrete app UI class from this.
+
+@publishedAll 
+@released */
+class CCoeAppUi : public CBase
+	{
+public:
+	// Construction and destruction
+	IMPORT_C CCoeAppUi();
+	IMPORT_C ~CCoeAppUi();
+	IMPORT_C void ConstructL(CCoeAppUi* aPrevious=NULL);
+	// Control stack
+	IMPORT_C void AddToStackL(const MCoeView& aView,CCoeControl* aControl,TInt aPriority=ECoeStackPriorityDefault,TInt aStackingFlags=ECoeStackFlagStandard);
+	IMPORT_C void AddToStackL(CCoeControl* aControl,TInt aPriority=ECoeStackPriorityDefault,TInt aStackingFlags=ECoeStackFlagStandard);
+	IMPORT_C void RemoveFromStack(CCoeControl* aControl);
+	IMPORT_C void HandleStackChanged();
+	IMPORT_C void HandleStackedControlsResourceChange(TInt aType);
+	IMPORT_C void UpdateStackedControlFlags(CCoeControl* aControl,TInt aFlags,TInt aMask);
+	// Help context
+	IMPORT_C CArrayFix<TCoeHelpContext>* AppHelpContextL() const;
+	// Text input
+	IMPORT_C virtual TCoeInputCapabilities InputCapabilities() const;
+	// Control focus
+	IMPORT_C CCoeControl* TopFocusedControl() const;
+	// Utility
+	IMPORT_C TBool IsDisplayingMenuOrDialog() const; 
+	IMPORT_C TBool IsDisplayingDialog() const; 
+	IMPORT_C TBool IsDisplayingControlBetweenPriorities(TInt aLowerPriority, TInt aHigherPriority) const;
+	// View registration
+	IMPORT_C void RegisterViewL(MCoeView& aView);
+	IMPORT_C void DeregisterView(const MCoeView& aView);
+	IMPORT_C void SetDefaultViewL(const MCoeView& aView);
+	IMPORT_C TInt GetDefaultViewId(TVwsViewId& aViewId) const;
+	// Pseudo-view registration
+	IMPORT_C void CheckInitializeViewsL(TUid aAppUid);
+	IMPORT_C void RegisterApplicationViewL(TUid aAppUid);
+	IMPORT_C void DeregisterApplicationView();
+	// View construction
+	IMPORT_C TBool IsViewConstructed(const TVwsViewId& aViewId) const;
+	// View activation
+	IMPORT_C void ActivateViewL(const TVwsViewId& aViewId);
+	IMPORT_C void ActivateViewL(const TVwsViewId& aViewId,TUid aCustomMessageId,const TDesC8& aCustomMessage);
+	IMPORT_C void ActivateTopViewL();
+	IMPORT_C void CreateActivateViewEventL(const TVwsViewId& aViewId,TUid aCustomMessageId,const TDesC8& aCustomMessage);
+	IMPORT_C void DeactivateActiveViewIfOwnerMatchL();
+	IMPORT_C void DeactivateActiveViewL();
+	IMPORT_C TInt GetActiveViewId(TVwsViewId& aViewId) const;	
+	// View registration 
+	IMPORT_C void AddViewObserverL(MCoeViewObserver* aViewObserver);
+	IMPORT_C void RemoveViewObserver(MCoeViewObserver* aViewObserver);
+	// View activation observer
+	IMPORT_C void AddViewActivationObserverL(MCoeViewActivationObserver* aViewActivationObserver);
+	IMPORT_C void RemoveViewActivationObserver(MCoeViewActivationObserver* aViewActivationObserver);
+	IMPORT_C void NotifyNextActivation(const TVwsViewId& aViewId, MCoeViewActivationObserver& aViewActivationObserver);
+	IMPORT_C void NotifyNextActivation(MCoeViewActivationObserver& aViewActivationObserver);
+	IMPORT_C TBool CheckSourceOfViewSwitchL(const TSecurityPolicy& aSecurityPolicy,const char* aDiagnostic=NULL) const;
+	// View decativation observer
+	IMPORT_C void AddViewDeactivationObserverL(MCoeViewDeactivationObserver* aViewDeactivationObserver);
+	IMPORT_C void RemoveViewDeactivationObserver(MCoeViewDeactivationObserver* aViewDeactivationObserver);
+	IMPORT_C void NotifyNextDeactivation(const TVwsViewId& aViewId, MCoeViewDeactivationObserver& aViewDeactivationObserver);
+	IMPORT_C void NotifyNextDeactivation(MCoeViewDeactivationObserver& aViewDeactivationObserver);
+	// View session configuration
+	IMPORT_C TInt EnableExternalViewSwitches(TBool aEnable);
+	IMPORT_C void UpdateViewServerBackgroundColor(const TRgb& aBgColor);
+
+	// New APIs
+	IMPORT_C void SetCustomControl(TInt aCustomControl);
+	IMPORT_C TInt GetTopViewId(TVwsViewId& aViewId) const;
+	IMPORT_C void SetWindowGroupOrdinal(TInt aWindowGroupOrdinal);
+
+public: // Internal
+	IMPORT_C void SetApplicationViewAsDefaultL(); // internalTechnology
+ 	IMPORT_C void SetSystemDefaultViewL(const TVwsViewId& aViewId,TInt aMode); // internalTechnology
+ 	IMPORT_C void SetSystemDefaultViewL(const TVwsViewId& aViewId); // internalTechnology
+ 	IMPORT_C void GetSystemDefaultViewL(TVwsViewId& aViewId); // internalTechnology
+	IMPORT_C virtual void HandleWsEventL(const TWsEvent& aEvent,CCoeControl* aDestination);
+	IMPORT_C virtual void PrepareToExit();
+protected: // Internal
+	IMPORT_C virtual void HandleScreenDeviceChangedL();
+private: // Internal
+	IMPORT_C virtual TKeyResponse HandleKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
+	IMPORT_C virtual void HandleForegroundEventL(TBool aForeground);
+	IMPORT_C virtual void HandleSwitchOnEventL(CCoeControl* aDestination);
+	IMPORT_C virtual void HandleSystemEventL(const TWsEvent& aEvent);
+	IMPORT_C virtual void HandleApplicationSpecificEventL(TInt aType,const TWsEvent& aEvent);
+	IMPORT_C virtual void SetAndDrawFocus(TBool aFocus);
+	IMPORT_C virtual CArrayFix<TCoeHelpContext>* HelpContextL() const;
+public: // Internal
+	IMPORT_C virtual TBool FrameworkCallsRendezvous() const;
+public: // Internal 
+	IMPORT_C void WriteInternalStateOfStackedControlsL(RWriteStream& aWriteStream) const; // internalTechnology
+public: // Deprecated. Do not use!
+	IMPORT_C void RegisterViewAndAddStackL(MCoeView& aView);	// deprecated
+	IMPORT_C void DeregisterViewAndRemoveStack(const MCoeView& aView);	// deprecated
+	IMPORT_C void RemoveFromViewStack(const MCoeView& aView,CCoeControl* aControl);	// deprecated
+	IMPORT_C void UpdateViewStackedControlFlags(const MCoeView& aView,CCoeControl* aControl,TInt aFlags,TInt aMask);	// deprecated
+	IMPORT_C void AddToViewStackL(const MCoeView& aView,CCoeControl* aControl,TInt aPriority=ECoeStackPriorityDefault,TInt aStackingFlags=ECoeStackFlagStandard);	// deprecated
+public: // not exported
+	TBool IsControlOnStack(CCoeControl* aControl) const;
+	void SetCurrentControlStackGroupId(TInt aGroupId);
+	void NotifyFontChange(const CCoeFontProvider& aFontProvider); 
+	void RefetchPixelMappingL();
+private:
+	enum TRemoveCondition
+		{
+		ERemoveUnconditionally,
+		ERemoveOnlyIfSharable
+		};
+private:// Internal
+	IMPORT_C virtual void CCoeAppUi_Reserved_2();
+private:
+	CCoeControl* TopFocusableControl() const;
+	TInt FindPos(CCoeControlStack* aStack,CCoeControl* aControl) const;
+	void SetFocusToControl(CCoeControl* aControl,TBool aFocus);
+	void DoAddToStackL(CCoeControlStack* aStack,CCoeControl* aControl,TInt aPriority,TInt aStackingFlags);
+	void DoAddToStackL(CCoeControlStack* aStack,CCoeControl* aControl,TInt aPriority,TInt aStackingFlags, TInt aGroupId);
+	void DoRemoveFromStack(CCoeControlStack* aStack,CCoeControl* aControl,TRemoveCondition aRemoveCondition=ERemoveUnconditionally);
+	void DoUpdateStackedControlFlags(CCoeControlStack* aStack,CCoeControl* aControl,TInt aFlags,TInt aMask);
+public:
+/**Monitor function for passing all windows events to registered monitor observers for optional inspection*/
+	void MonitorWsEvent(const TWsEvent& aEvent);
+private:
+	class CExtra;
+	friend class CExtra;
+	friend class CTestDriver;
+protected:
+	CCoeEnv* iCoeEnv;
+private:
+	CCoeViewManager* iViewManager;
+	CCoeControlStack* iStack;
+	CExtra* iExtra;
+	TInt iCCoeAppUi_Reserved1;
+	};
+
+
+#endif // __COEAUI_H__