00001 /* 00002 * ============================================================================ 00003 * Name : eikbgfty.h 00004 * Part of : UI Framework / EIKON Concrete Controls 00005 * Description : Button group factory interface definitions. 00006 * Version : %version: % 00007 * 00008 * Copyright © 2002-2007 Nokia. All rights reserved. 00009 * This material, including documentation and any related computer 00010 * programs, is protected by copyright controlled by Nokia. All 00011 * rights are reserved. Copying, including reproducing, storing, 00012 * adapting or translating, any or all of this material requires the 00013 * prior written consent of Nokia. This material also contains 00014 * confidential information which may not be disclosed to others 00015 * without the prior written consent of Nokia. 00016 * ============================================================================ 00017 * Template version: 4.1 00018 */ 00019 00020 #ifndef __EIKBGFTY_H__ 00021 #define __EIKBGFTY_H__ 00022 00023 #include <eikbtgpc.h> 00024 #include <coemain.h> 00025 00032 class EikButtonGroupFactory 00033 { 00034 public: 00040 class TCreationData 00041 { 00042 public: 00056 IMPORT_C TCreationData( 00057 CEikButtonGroupContainer::TUse aUse, 00058 MEikCommandObserver* aCommandObserver, 00059 TInt aResourceId, 00060 RWindowGroup* aParentWg, 00061 TUint aFlags, 00062 CEikButtonGroupContainer::TOrientation aOrientation); 00063 public: 00070 CEikButtonGroupContainer::TUse iUse; 00071 00076 MEikCommandObserver* iCommandObserver; 00077 00081 TInt iResourceId; 00082 00087 RWindowGroup* iParentWg; 00088 00092 TUint iFlags; 00093 00097 CEikButtonGroupContainer::TOrientation iOrientation; 00098 }; 00099 00100 public: 00111 static MEikButtonGroup* CreateButtonGroupByTypeL( 00112 TInt aButtonGroupType, 00113 TCreationData& aCreationData, 00114 TBool& aAddToButtonGroupStack); 00115 }; 00116 00120 typedef MEikButtonGroup* (*TCreateButtonGroupByTypeFunction)( 00121 TInt, 00122 EikButtonGroupFactory::TCreationData&, 00123 TBool&); 00124 00136 NONSHARABLE_CLASS(CEikButtonGroupFactoryArray) : public CCoeStatic 00137 { 00138 public: 00144 IMPORT_C static void AppendFactoryFunctionL( 00145 TCreateButtonGroupByTypeFunction aCreateButtonGroupByTypeFunction); 00146 00152 IMPORT_C static void RemoveFactoryFunction( 00153 TCreateButtonGroupByTypeFunction aCreateButtonGroupByTypeFunction); 00154 00160 static CArrayFixFlat<TCreateButtonGroupByTypeFunction>* ButtonGroupFactoryFuncArray(); 00161 00165 ~CEikButtonGroupFactoryArray(); 00166 00167 private: 00168 inline CEikButtonGroupFactoryArray(); 00169 inline static CEikButtonGroupFactoryArray* Self(); 00170 00171 private: // data 00172 CArrayFixFlat<TCreateButtonGroupByTypeFunction>* iButtonGroupFactoryFuncArray; 00173 }; 00174 00175 // __EIKBGFTY_H__ 00176 #endif