eikcolib.h

Go to the documentation of this file.
00001 //
00002 // Copyright (c) 1997-1999 Symbian Ltd.  All rights reserved.
00003 //
00004 // Static functions called by CEikDllInitializer setting EikCoCtl
00005 // library resources in Cone and giving access to its controls
00006 // via ControlFactoryFuncArray() in EikonEnv
00007 
00008 #if !defined(__EIKCOLIB_H__)
00009 #define __EIKCOLIB_H__
00010 
00011 #include <eikaufty.h>
00012 #include <f32file.h>
00013 #include <e32base.h>
00014 #include <eiklibry.h>
00015 #include <eikbtgpc.h>
00016 #include <Eikspane.h>
00017 #include <eikbgfty.h>
00018 #include <lafmain.h>
00019 
00020 
00021 
00022 class CEikAppUiFactory;
00023 class CEikAppUi;
00024 
00029 class CEikCoCtlLibrary : public CBase
00030         {
00031 public:
00035         IMPORT_C static TFileName                               ResourceFile();
00039         IMPORT_C static TCreateByTypeFunction   ControlFactory();
00043         IMPORT_C static TCreateButtonGroupByTypeFunction ButtonGroupFactory();
00044 public:
00045         static SEikControlInfo CreateByTypeL(TInt aControlType);
00046         static MEikButtonGroup* CreateButtonGroupByTypeL(TInt aButtonGroupType,EikButtonGroupFactory::TCreationData& aCreationData,TBool& aAddToButtonGroupStack);
00047 private:
00048         CEikCoCtlLibrary();
00049         };
00050 
00051 class CEikToolBar;
00052 class CEikMenuBar;
00053 class CEikMenuPane;
00054 class CEikCommandButton;
00055 class CAknTouchPane;
00056 class CEikAppUiFactoryExtension;
00057 class CAknToolbar;
00062 class CEikAppUiFactory : public CBase, public MEikAppUiFactory, public MLafClientRectResolver
00063         {
00064 public:
00065         IMPORT_C CEikAppUiFactory();
00066         ~CEikAppUiFactory();
00067 public: // from MEikAppUiFactory
00068         void CreateResourceIndependentFurnitureL(CEikAppUi* aAppUi);
00069         TRect ClientRect();
00070         void ReadAppInfoResourceL(TInt aResourceFileOffset, CEikAppUi* aAppUi);
00071         void LaunchPopupMenuL(
00072                                                         TInt aResourceId,
00073                                                         const TPoint& aTargetPos,
00074                                                         TPopupTargetPosType aTargetType,
00075                                                         const CEikHotKeyTable* aHotKeyTable,
00076                                                         CEikAppUi* aAppUi);
00077         void DoLaunchPopupL(
00078                                                         TInt aResourceId,
00079                                                         const TPoint& aTargetPos, 
00080                                                         const CEikHotKeyTable* aHotKeyTable, 
00081                                                         TPopupTargetPosType aTargetType,
00082                                                         CEikAppUi* aAppUi);
00083         void ClosePopup(CEikAppUi* aAppUi);
00084         void StopDisplayingMenuBar();
00085         void HandleSideBarMenuL(
00086                                                         TInt aResourceId,
00087                                                         const TPoint& aPos,
00088                                                         const CEikHotKeyTable* aHotKeyTable,
00089                                                         CEikAppUi* aAppUi);
00090 
00091         void CreateHotKeyControlL(TInt aResourceId, CEikAppUi* aAppUi);
00092         CEikMenuBar* MenuBar() const;
00093         CEikMenuBar* SwapMenuBar(CEikMenuBar* aMenu);
00094         CEikMenuPane* Popup() const;
00095         CEikButtonGroupContainer* SwapButtonGroup(CEikButtonGroupContainer* aNewGroup);
00096         CEikButtonGroupContainer* ToolBar() const;
00097         CEikToolBar* ToolBand() const;
00098         CEikToolBar* TitleBand() const;
00099         CEikToolBar* SwapToolBar(CEikToolBar* aToolBar,TToolBarType aType);
00100         CEikStatusPane* StatusPane() const;
00101         CEikButtonGroupContainer* Cba() const;
00102 
00103         CEikCommandButton* CreateStandardTabButtonL() const;
00104         void CreateEmbeddedL(CEikonEnv& aEikonEnv);
00105         void DestroyEmbedded(CEikonEnv& aEikonEnv);
00106         void HandleResourceChangeL(TInt aType);
00107 public: // New functions
00108     IMPORT_C CAknTouchPane* TouchPane() const;
00109         
00117     IMPORT_C CAknToolbar* PopupToolbar() const;
00118     
00127     IMPORT_C CAknToolbar* CurrentPopupToolbar() const;
00128     
00136     IMPORT_C void SetViewPopupToolbar(CAknToolbar* aViewPopupToolbar); 
00137 
00138 private: // from MLafClientRectResolver
00139         void ReduceRect(TScreenFurniture aScreenFurniture,TRect& aRect) const;
00140 private:
00141         void AddTitleBandL(CEikAppUi* aAppUi);
00142 private: // from MObjectProvider
00143         TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
00144 private:
00145         struct SEikAppInfo
00146                 {
00147                 TInt iHotKeysId;
00148                 TInt iMenuBarId;
00149                 TInt iToolBarId;
00150                 TInt iToolBandId;
00151                 TInt iCbaId;
00152                 TInt iStatusPaneId;
00153         TInt iExtensionId; // link to extension resource struct.
00154                 };
00155         struct SRssSignature
00156                 {
00157                 TInt iSignature;
00158                 TInt iSelf;
00159                 };
00160 private:
00161         CEikButtonGroupContainer* iToolBar;
00162         CEikToolBar* iToolBand;
00163         CEikToolBar* iTitleBand;
00164         CEikMenuBar* iMenuBar;
00165         CEikMenuPane* iPopup;
00166         TInt iSidebarPopupId;
00167         CEikStatusPane* iStatusPane;
00168         // To avoid BC break, iCba is replaced with an extension containing iCba
00169         // and some additional items.
00170         //CEikButtonGroupContainer* iCba;
00171         CEikAppUiFactoryExtension* iExtension;
00172         };
00173 
00174 #endif

Copyright © Nokia Corporation 2001-2008
Back to top