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