00001 // EIKBGFTY.H 00002 // 00003 // Copyright (c) 1997-2000 Symbian Ltd. All rights reserved. 00004 // 00005 00006 #ifndef __EIKBGFTY_H__ 00007 #define __EIKBGFTY_H__ 00008 00009 #include <eikbtgpc.h> 00010 #include <coemain.h> 00011 00017 class EikButtonGroupFactory 00018 { 00019 public: 00020 class TCreationData 00021 { 00022 public: 00023 IMPORT_C TCreationData(CEikButtonGroupContainer::TUse aUse, 00024 MEikCommandObserver* aCommandObserver, 00025 TInt aResourceId, RWindowGroup* aParentWg, TUint aFlags, 00026 CEikButtonGroupContainer::TOrientation aOrientation); 00027 public: 00028 CEikButtonGroupContainer::TUse iUse; 00029 MEikCommandObserver* iCommandObserver; 00030 TInt iResourceId; 00031 RWindowGroup* iParentWg; 00032 TUint iFlags; 00033 CEikButtonGroupContainer::TOrientation iOrientation; 00034 }; 00035 public: 00036 static MEikButtonGroup* CreateButtonGroupByTypeL(TInt aButtonGroupType,TCreationData& aCreationData,TBool& aAddToButtonGroupStack); 00037 }; 00038 00039 typedef MEikButtonGroup* (*TCreateButtonGroupByTypeFunction)(TInt,EikButtonGroupFactory::TCreationData&,TBool&); 00040 00049 NONSHARABLE_CLASS(CEikButtonGroupFactoryArray) : public CCoeStatic 00050 { 00051 public: 00052 IMPORT_C static void AppendFactoryFunctionL(TCreateButtonGroupByTypeFunction aCreateButtonGroupByTypeFunction); 00053 IMPORT_C static void RemoveFactoryFunction(TCreateButtonGroupByTypeFunction aCreateButtonGroupByTypeFunction); 00054 public: 00055 static CArrayFixFlat<TCreateButtonGroupByTypeFunction>* ButtonGroupFactoryFuncArray(); 00056 public: 00057 ~CEikButtonGroupFactoryArray(); 00058 private: 00059 inline CEikButtonGroupFactoryArray(); 00060 inline static CEikButtonGroupFactoryArray* Self(); 00061 private: 00062 CArrayFixFlat<TCreateButtonGroupByTypeFunction>* iButtonGroupFactoryFuncArray; 00063 }; 00064 00065 #endif