epoc32/include/eikappui.h
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
--- a/epoc32/include/eikappui.h	Tue Nov 24 13:55:44 2009 +0000
+++ b/epoc32/include/eikappui.h	Tue Mar 16 16:12:26 2010 +0000
@@ -1,1 +1,186 @@
-eikappui.h
+// 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 the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef __EIKAPPUI_H__
+#define __EIKAPPUI_H__
+
+#include <coeaui.h>
+#include <coemain.h>
+#include <eikmobs.h>
+#include <apadef.h>
+#include <vwsdef.h>
+#include <eikdef.h>
+#include <baerrhan.h>
+#include <eikaufty.h>
+#include <coemop.h>
+
+class CEikDocument;
+class CEikApplication;
+class CEikAppUiExtra;
+class MApaEmbeddedDocObserver;
+struct SExtendedError;
+class CApaCommandLine;
+
+/** Handles application-wide aspects of the application's user interface such 
+as the menu bar, toolbar pop-up menus, opening and closing files and exiting the 
+application cleanly. 
+
+Every GUI application should use its own class derived from CEikAppUi. 
+
+An app UI's main role is to handle commands, in its HandleCommandL() function. 
+These may be invoked using the menu bar, toolbar, or hotkeys; the commands 
+that an app UI handles are specified in the application's resource file.
+
+In addition, the app UI normally needs to respond to other kinds of events, by 
+providing suitable implementations of the following virtual functions, all 
+inherited from CCoeAppUi: 
+
+- HandleKeyEventL(): Key events.
+
+- HandleForegroundEventL(): Application switched to foreground.
+
+- HandleSwitchOnEventL(): Machine switched on.
+
+- HandleSystemEventL(): System events.
+
+- HandleApplicationSpecificEventL(): Application-specific events.
+
+@publishedAll
+@released */
+class CEikAppUi : public CCoeAppUi, public MEikMenuObserver, public MCoeMessageObserver, public MObjectProvider
+	{
+public:
+	IMPORT_C ~CEikAppUi();
+	IMPORT_C CEikAppUi();
+public: // new functions
+	IMPORT_C virtual void ConstructL();
+	IMPORT_C virtual void HandleModelChangeL();
+	IMPORT_C TLanguage ApplicationLanguageL() const;
+	IMPORT_C CEikApplication* Application() const;
+	IMPORT_C CEikDocument* Document() const;
+	IMPORT_C void SetDocument(CEikDocument* aDocument);
+	inline CEikAppUi* ContainerAppUi() const;
+	IMPORT_C void SetEmbeddedDocInfo(MApaEmbeddedDocObserver* aObserver, TBool aReadOnly);
+	IMPORT_C virtual TBool ProcessCommandParametersL(TApaCommand aCommand, TFileName& aDocumentName, const TDesC8& aTail);
+	IMPORT_C virtual TBool ProcessCommandParametersL(CApaCommandLine& aCommandLine);
+	// Application screen extent
+	IMPORT_C TRect ClientRect() const;
+	IMPORT_C virtual TRect ApplicationRect() const;
+	// Menu utilities
+	IMPORT_C void LaunchPopupMenuL(TInt aResourceId, const TPoint& aTargetPos, TPopupTargetPosType aTargetType, const CEikHotKeyTable* aHotKeyTable = NULL);
+	IMPORT_C virtual void StopDisplayingMenuBar();
+	// Fading effect
+	IMPORT_C TBool FadeWhenInBackground();
+	IMPORT_C virtual void SetFadedL(TBool aFaded);
+	inline void SetFaded(TBool aFaded);			//mm: has no implementation
+public: // new function
+	IMPORT_C virtual void ReportResourceChangedToAppL(TInt aType);
+	IMPORT_C virtual void HandleCommandL(TInt aCommand);
+	IMPORT_C virtual void ProcessMessageL(TUid aUid, const TDesC8& aParams);
+	IMPORT_C virtual void OpenFileL(const TDesC& aFileName);
+	IMPORT_C virtual void CreateFileL(const TDesC& aFileName);
+	IMPORT_C virtual TErrorHandlerResponse HandleError(TInt aError, const SExtendedError& aExtErr, TDes& aErrorText, TDes& aContextText);
+	IMPORT_C virtual void HandleResourceChangeL(TInt aType);
+public: // from CCoeAppUi
+	IMPORT_C void PrepareToExit();
+protected: // new functions
+	// Construction
+	IMPORT_C void BaseConstructL(TInt aAppUiFlags = 0);
+	IMPORT_C void ReadAppInfoResourceL(TInt aResourceFileOffset = 0);
+	IMPORT_C void CreateHotKeyControlL(TInt aResourceId);
+	IMPORT_C TBool ProcessCommandParametersL(TApaCommand aCommand, TFileName& aDocumentName);
+	// User data change management
+	IMPORT_C void SetDocChanged();
+	IMPORT_C void SaveAnyChangesL();
+	IMPORT_C void SaveL();
+	IMPORT_C virtual void Exit();
+	// Utility
+	IMPORT_C void ClosePopup();		//mm: deprecate?
+protected: // from MEikMenuObserver
+	IMPORT_C void HandleSideBarMenuL(TInt aResourceId,const TPoint& aPos,TInt aModifiers,const CEikHotKeyTable* aTable);
+protected: // from CCoeAppUi
+	IMPORT_C void HandleApplicationSpecificEventL(TInt aType,const TWsEvent& aEvent);
+	IMPORT_C void HandleForegroundEventL(TBool aForeground);
+	IMPORT_C void HandleWsEventL(const TWsEvent& aEvent, CCoeControl* aDestination);
+	IMPORT_C void HandleSystemEventL(const TWsEvent& aEvent);
+	IMPORT_C void HandleScreenDeviceChangedL();
+protected: // from MEikCommandObserver
+	IMPORT_C void ProcessCommandL(TInt aCommand);
+private: // from MEikMenuObserver
+	IMPORT_C void SetEmphasis(CCoeControl* aMenuWindow,TBool aEmphasis);
+protected: // from MCoeMessageObserver
+	IMPORT_C MCoeMessageObserver::TMessageResponse HandleMessageL(TUint32 aClientHandleOfTargetWindowGroup, TUid aMessageUid, const TDesC8& aMessageParameters);
+protected:	// from MObjectProvider
+	IMPORT_C virtual TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
+	IMPORT_C virtual MObjectProvider* MopNext();
+private: 
+	// Validate document file type
+	IMPORT_C virtual TBool ValidFileType(TUid aFileUid) const;
+private: // spare virtuals	
+	IMPORT_C virtual void Reserved_3();
+	IMPORT_C virtual void Reserved_4();
+public:
+	/** Application resource file and screen furniture flags, passed to BaseConstructL(). */
+	enum
+		{
+		/** Application uses a standard resource file. */
+		EStandardApp			= 0x00,
+		/** Application has no resource file. */
+		ENoAppResourceFile		= 0x01,
+		/** Application uses a different resource file from the standard. */
+		ENonStandardResourceFile= 0x02,
+		/** Application uses no screen furniture. */
+		ENoScreenFurniture		= 0x04,
+		/** Indicates the last value in the enum. */
+		ELastReservedEikAppUiFlag = 0x8000
+		};
+public:
+	IMPORT_C void ReportResourceChangedToAppStackL(CEikAppUi* aTopApp, TInt aEventId);
+	CEikAppUiExtra* AppUiExtra();
+private:
+	void CreateResourceIndependentFurnitureL();
+	TBool ValidFileExistsL(const TDesC& aFileName);
+protected:
+	/** A pointer to the application's document. */
+	CEikDocument* iDocument;
+	/** A pointer to the containing app UI. This is NULL for non-embedded 
+	apps. */
+	CEikAppUi* iContainerAppUi;
+	/** Embedded document observer. */
+	MApaEmbeddedDocObserver* iDoorObserver;
+	/** Indicates whether or not this is the app UI for an embedded, 
+	read-only document. */
+	TBool iEmbeddedAndReadOnly;
+	TInt iFlags;
+private:
+	enum
+		{
+		EEmbedded = 0x01
+		};
+private:
+	CEikAppUiExtra* iAppUiExtra;
+	};
+
+
+
+/** Returns the app UI inside which this app UI is embedded.
+Embedded app UIs are used for editing embedded documents.
+
+@return A pointer to this object's container app UI. NULL if this app 
+UI is not embedded */
+inline CEikAppUi* CEikAppUi::ContainerAppUi() const
+	{ return iContainerAppUi; }
+
+#endif	// __EIKAPPUI_H__