epoc32/include/eikaufty.h
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
--- a/epoc32/include/eikaufty.h	Tue Nov 24 13:55:44 2009 +0000
+++ b/epoc32/include/eikaufty.h	Tue Mar 16 16:12:26 2010 +0000
@@ -1,1 +1,143 @@
-eikaufty.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:
+// Defines mix-in interace to break dependencey of Eikon Application UI 
+// on controls
+// 
+//
+
+#ifndef __EIKAUFTY_H__
+#define __EIKAUFTY_H__
+
+#include <f32file.h>
+#include <e32base.h>
+#include <eikdef.h>
+
+#include <coemop.h>
+
+class CEikHotKeyTable;
+class CEikMenuBar;
+class CEikMenuPane;
+class CEikCommandButton;
+class CEikToolBar;
+class CEikButtonGroupContainer;
+class CEikAppUi;
+class CEikonEnv;
+class CEikStatusPane;
+
+
+/** This class defines a mixin interface to break the dependency of the Uikon Application 
+User Interface on controls. 
+
+@publishedAll 
+@released */
+class MEikAppUiFactory : public MObjectProvider
+	{
+public:
+	virtual void CreateResourceIndependentFurnitureL(CEikAppUi* aAppUi) =0;
+	virtual TRect ClientRect() = 0;
+	virtual void ReadAppInfoResourceL(TInt aResourceFileOffset,CEikAppUi* aAppUi) = 0;
+	virtual void LaunchPopupMenuL(	TInt aResourceId,
+									const TPoint& aTargetPos,
+									TPopupTargetPosType aTargetType,
+									const CEikHotKeyTable* aHotKeyTable,
+									CEikAppUi* aAppUi) = 0;
+
+	virtual void DoLaunchPopupL(TInt aResourceId,const TPoint& aTargetPos, const CEikHotKeyTable* aHotKeyTable, 
+								TPopupTargetPosType aTargetType,CEikAppUi* aAppUi) = 0;
+
+   	virtual void ClosePopup(CEikAppUi* aAppUi) = 0;
+	virtual void StopDisplayingMenuBar() = 0;
+	virtual void HandleSideBarMenuL(TInt aResourceId,const TPoint& aPos,
+									const CEikHotKeyTable* aHotKeyTable,CEikAppUi* aAppUi) = 0;
+	virtual void CreateHotKeyControlL(TInt aResourceId, CEikAppUi* aAppUi) = 0;
+	/** Gets a pointer to the menu bar.
+	
+	@return Pointer to the menu bar. */
+	virtual CEikMenuBar* MenuBar() const = 0;
+	/** Replaces or clears a menu bar, returning a pointer to the replaced menu bar.
+	
+	@param aMenu The new menu bar. This can be NULL to clear an existing menu bar. 
+	@return Pointer to the replaced menu bar. */
+	virtual CEikMenuBar* SwapMenuBar(CEikMenuBar* aMenu) = 0;
+	virtual CEikMenuPane* Popup() const = 0;
+	/** Gets a pointer to the tool bar.
+	
+	@return Pointer to the tool bar. */
+	virtual CEikButtonGroupContainer* ToolBar() const = 0;
+	/** Replaces or clears a button group, returning a pointer to the replaced button 
+	group.
+	
+	@param aNewGroup The new button group. This can be NULL to clear an existing 
+	button group. 
+	@return Pointer to the replaced button group. */
+	virtual CEikButtonGroupContainer* SwapButtonGroup(CEikButtonGroupContainer* aNewGroup) = 0;
+	/** Gets a pointer to the tool band.
+	
+	@return Pointer to the tool band. */
+	virtual CEikToolBar* ToolBand() const = 0;
+	/** Gets a pointer to the title band.
+	
+	@return Pointer to the title band. */
+	virtual CEikToolBar* TitleBand() const = 0;
+	/** Gets a pointer to the status pane.
+	
+	@return Pointer to the status pane */
+	virtual CEikStatusPane* StatusPane() const = 0;
+	/** Gets a pointer to the CBA. 
+	
+	@return Pointer to the CBA */
+	virtual CEikButtonGroupContainer* Cba() const = 0;
+	inline CEikToolBar* SwapToolBand(CEikToolBar* aToolBand);
+	inline CEikToolBar* SwapTitleBand(CEikToolBar* aTitleBand);
+	/** Creates a standard tab button.
+	
+	@return Pointer to the created tab button. */
+	virtual CEikCommandButton*  CreateStandardTabButtonL() const = 0;
+	virtual void CreateEmbeddedL(CEikonEnv& aEikonEnv) = 0;
+	virtual void DestroyEmbedded(CEikonEnv& aEikonEnv) = 0;
+	virtual void HandleResourceChangeL(TInt aType) = 0;
+protected:
+	/** Defines the type of tool bar. */
+	enum TToolBarType
+		{
+		/** Defines a band tool bar. */
+		EBand,
+		/** Defines a title tool bar. */
+		ETitle
+		};
+private:
+	virtual CEikToolBar* SwapToolBar(CEikToolBar* aToolBar,TToolBarType aType) = 0;
+	};
+
+
+
+/** Replaces or clears a tool band, returning a pointer to the replaced tool band.
+
+@param aToolBand The new tool band. This can be NULL to clear an existing 
+tool band. 
+@return Pointer to the replaced tool band. */
+inline CEikToolBar* MEikAppUiFactory::SwapToolBand(CEikToolBar* aToolBand)
+	{return SwapToolBar(aToolBand,EBand);}
+
+
+/** Replaces or clears a title band, returning a pointer to the replaced title 
+band.
+
+@param aTitleBand The new title band. This can be NULL to clear an existing 
+title band. 
+@return Pointer to the replaced title band. */
+inline CEikToolBar* MEikAppUiFactory::SwapTitleBand(CEikToolBar* aTitleBand)
+	{return SwapToolBar(aTitleBand,ETitle);}
+
+#endif	// __EIKAUFTY_H__