epoc32/include/mw/eikcolib.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
williamr@4
     1
/*
williamr@4
     2
* Copyright (c) 1997-1999 Nokia Corporation and/or its subsidiary(-ies).
williamr@4
     3
* All rights reserved.
williamr@4
     4
* This component and the accompanying materials are made available
williamr@4
     5
* under the terms of "Eclipse Public License v1.0"
williamr@4
     6
* which accompanies this distribution, and is available
williamr@4
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
williamr@4
     8
*
williamr@4
     9
* Initial Contributors:
williamr@4
    10
* Nokia Corporation - initial contribution.
williamr@4
    11
*
williamr@4
    12
* Contributors:
williamr@4
    13
*
williamr@4
    14
* Description:
williamr@4
    15
*
williamr@4
    16
*/
williamr@4
    17
williamr@4
    18
williamr@4
    19
#if !defined(__EIKCOLIB_H__)
williamr@4
    20
#define __EIKCOLIB_H__
williamr@4
    21
williamr@4
    22
#include <eikaufty.h>
williamr@4
    23
#include <f32file.h>
williamr@4
    24
#include <e32base.h>
williamr@4
    25
#include <eiklibry.h>
williamr@4
    26
#include <eikbtgpc.h>
williamr@4
    27
#include <eikspane.h>
williamr@4
    28
#include <eikbgfty.h>
williamr@4
    29
#include <lafmain.h>
williamr@4
    30
williamr@4
    31
williamr@4
    32
williamr@4
    33
class CEikAppUiFactory;
williamr@4
    34
class CEikAppUi;
williamr@4
    35
williamr@4
    36
/**
williamr@4
    37
 * @internal
williamr@4
    38
 * Do not use
williamr@4
    39
 */
williamr@4
    40
class CEikCoCtlLibrary : public CBase
williamr@4
    41
	{
williamr@4
    42
public:
williamr@4
    43
	/**
williamr@4
    44
	 * ResourceFile eikcoctl.rsc file name
williamr@4
    45
	 */
williamr@4
    46
	IMPORT_C static TFileName				ResourceFile();
williamr@4
    47
	/**
williamr@4
    48
	 * ControlFactory provides ability to create controls by id number.
williamr@4
    49
	 */
williamr@4
    50
	IMPORT_C static TCreateByTypeFunction	ControlFactory();
williamr@4
    51
	/**
williamr@4
    52
     * Factory to create buttongroups
williamr@4
    53
     */
williamr@4
    54
	IMPORT_C static TCreateButtonGroupByTypeFunction ButtonGroupFactory();
williamr@4
    55
public:
williamr@4
    56
	static SEikControlInfo CreateByTypeL(TInt aControlType);
williamr@4
    57
	static MEikButtonGroup* CreateButtonGroupByTypeL(TInt aButtonGroupType,EikButtonGroupFactory::TCreationData& aCreationData,TBool& aAddToButtonGroupStack);
williamr@4
    58
private:
williamr@4
    59
	CEikCoCtlLibrary();
williamr@4
    60
	};
williamr@4
    61
williamr@4
    62
class CEikToolBar;
williamr@4
    63
class CEikMenuBar;
williamr@4
    64
class CEikMenuPane;
williamr@4
    65
class CEikCommandButton;
williamr@4
    66
class CAknTouchPane;
williamr@4
    67
class CEikAppUiFactoryExtension;
williamr@4
    68
class CAknToolbar;
williamr@4
    69
/**
williamr@4
    70
 * @internal
williamr@4
    71
 * Do not use
williamr@4
    72
 */
williamr@4
    73
class CEikAppUiFactory : public CBase, public MEikAppUiFactory, public MLafClientRectResolver
williamr@4
    74
	{
williamr@4
    75
public:
williamr@4
    76
	IMPORT_C CEikAppUiFactory();
williamr@4
    77
	~CEikAppUiFactory();
williamr@4
    78
public: // from MEikAppUiFactory
williamr@4
    79
	void CreateResourceIndependentFurnitureL(CEikAppUi* aAppUi);
williamr@4
    80
	TRect ClientRect();
williamr@4
    81
	void ReadAppInfoResourceL(TInt aResourceFileOffset, CEikAppUi* aAppUi);
williamr@4
    82
	void LaunchPopupMenuL(
williamr@4
    83
							TInt aResourceId,
williamr@4
    84
							const TPoint& aTargetPos,
williamr@4
    85
							TPopupTargetPosType aTargetType,
williamr@4
    86
							const CEikHotKeyTable* aHotKeyTable,
williamr@4
    87
							CEikAppUi* aAppUi);
williamr@4
    88
	void DoLaunchPopupL(
williamr@4
    89
							TInt aResourceId,
williamr@4
    90
							const TPoint& aTargetPos, 
williamr@4
    91
							const CEikHotKeyTable* aHotKeyTable, 
williamr@4
    92
							TPopupTargetPosType aTargetType,
williamr@4
    93
							CEikAppUi* aAppUi);
williamr@4
    94
	void ClosePopup(CEikAppUi* aAppUi);
williamr@4
    95
	void StopDisplayingMenuBar();
williamr@4
    96
	void HandleSideBarMenuL(
williamr@4
    97
							TInt aResourceId,
williamr@4
    98
							const TPoint& aPos,
williamr@4
    99
							const CEikHotKeyTable* aHotKeyTable,
williamr@4
   100
							CEikAppUi* aAppUi);
williamr@4
   101
williamr@4
   102
	void CreateHotKeyControlL(TInt aResourceId, CEikAppUi* aAppUi);
williamr@4
   103
	CEikMenuBar* MenuBar() const;
williamr@4
   104
	CEikMenuBar* SwapMenuBar(CEikMenuBar* aMenu);
williamr@4
   105
	CEikMenuPane* Popup() const;
williamr@4
   106
	CEikButtonGroupContainer* SwapButtonGroup(CEikButtonGroupContainer* aNewGroup);
williamr@4
   107
	CEikButtonGroupContainer* ToolBar() const;
williamr@4
   108
	CEikToolBar* ToolBand() const;
williamr@4
   109
	CEikToolBar* TitleBand() const;
williamr@4
   110
	CEikToolBar* SwapToolBar(CEikToolBar* aToolBar,TToolBarType aType);
williamr@4
   111
	CEikStatusPane* StatusPane() const;
williamr@4
   112
	CEikButtonGroupContainer* Cba() const;
williamr@4
   113
williamr@4
   114
	CEikCommandButton* CreateStandardTabButtonL() const;
williamr@4
   115
	void CreateEmbeddedL(CEikonEnv& aEikonEnv);
williamr@4
   116
	void DestroyEmbedded(CEikonEnv& aEikonEnv);
williamr@4
   117
	void HandleResourceChangeL(TInt aType);
williamr@4
   118
public: // New functions
williamr@4
   119
    IMPORT_C CAknTouchPane* TouchPane() const;
williamr@4
   120
    	
williamr@4
   121
    /**
williamr@4
   122
     * Returns the pointer to the application avkon toolbar object if
williamr@4
   123
     * there is one or NULL.
williamr@4
   124
     * 
williamr@4
   125
     * @return Pointer to the AVKON toolbar object
williamr@4
   126
     * @since Series 60 3.1
williamr@4
   127
     */
williamr@4
   128
    IMPORT_C CAknToolbar* PopupToolbar() const;
williamr@4
   129
    
williamr@4
   130
    /** 
williamr@4
   131
     * Returns the pointer to the current view avkon toolbar object if
williamr@4
   132
     * there is one, if no it will return the pointer to the application 
williamr@4
   133
     * avkon toolbar or NULL.
williamr@4
   134
     *
williamr@4
   135
     * @return Pointer to the AVKON toolbar object
williamr@4
   136
     * @since Series 60 3.1
williamr@4
   137
     */
williamr@4
   138
    IMPORT_C CAknToolbar* CurrentPopupToolbar() const;
williamr@4
   139
    
williamr@4
   140
    /**
williamr@4
   141
     * Sets the avkon toolbar for the current view. Called by CAknView when view is
williamr@4
   142
     * activated.
williamr@4
   143
     *
williamr@4
   144
     * @param aViewPopupToolbar Pointer to the view specific toolbar.
williamr@4
   145
     * @since Series 60 3.1
williamr@4
   146
     */
williamr@4
   147
    IMPORT_C void SetViewPopupToolbar(CAknToolbar* aViewPopupToolbar); 
williamr@4
   148
williamr@4
   149
    /** 
williamr@4
   150
     * Returns the pointer to the current view avkon fixed toolbar object if
williamr@4
   151
     * there is one, if no it will return the pointer to the application 
williamr@4
   152
     * avkon fixed toolbar or NULL.
williamr@4
   153
     *
williamr@4
   154
     * @return Pointer to the AVKON toolbar object
williamr@4
   155
     * @since S60 5.0
williamr@4
   156
     */
williamr@4
   157
    IMPORT_C CAknToolbar* CurrentFixedToolbar() const;
williamr@4
   158
williamr@4
   159
williamr@4
   160
    /**
williamr@4
   161
     * Sets the avkon fixed toolbar for the current view. Called by CAknView 
williamr@4
   162
     * when view is activated.
williamr@4
   163
     *
williamr@4
   164
     * @param aViewFixedToolbar Pointer to the view specific fixed toolbar.
williamr@4
   165
     * @since S60 5.0
williamr@4
   166
     */
williamr@4
   167
    IMPORT_C void SetViewFixedToolbar( CAknToolbar* aViewFixedToolbar ); 
williamr@4
   168
williamr@4
   169
williamr@4
   170
williamr@4
   171
private: // from MLafClientRectResolver
williamr@4
   172
	void ReduceRect(TScreenFurniture aScreenFurniture,TRect& aRect) const;
williamr@4
   173
private:
williamr@4
   174
	void AddTitleBandL(CEikAppUi* aAppUi);
williamr@4
   175
private: // from MObjectProvider
williamr@4
   176
	TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
williamr@4
   177
private:
williamr@4
   178
	struct SEikAppInfo
williamr@4
   179
		{
williamr@4
   180
		TInt iHotKeysId;
williamr@4
   181
		TInt iMenuBarId;
williamr@4
   182
		TInt iToolBarId;
williamr@4
   183
		TInt iToolBandId;
williamr@4
   184
		TInt iCbaId;
williamr@4
   185
		TInt iStatusPaneId;
williamr@4
   186
        TInt iExtensionId; // link to extension resource struct.
williamr@4
   187
		};
williamr@4
   188
	struct SRssSignature
williamr@4
   189
		{
williamr@4
   190
		TInt iSignature;
williamr@4
   191
		TInt iSelf;
williamr@4
   192
		};
williamr@4
   193
private:
williamr@4
   194
	CEikButtonGroupContainer* iToolBar;
williamr@4
   195
	CEikToolBar* iToolBand;
williamr@4
   196
	CEikToolBar* iTitleBand;
williamr@4
   197
	CEikMenuBar* iMenuBar;
williamr@4
   198
	CEikMenuPane* iPopup;
williamr@4
   199
	TInt iSidebarPopupId;
williamr@4
   200
	CEikStatusPane* iStatusPane;
williamr@4
   201
	// To avoid BC break, iCba is replaced with an extension containing iCba
williamr@4
   202
	// and some additional items.
williamr@4
   203
	//CEikButtonGroupContainer* iCba;
williamr@4
   204
	CEikAppUiFactoryExtension* iExtension;
williamr@4
   205
	};
williamr@4
   206
williamr@4
   207
#endif