eikbgfty.h

Go to the documentation of this file.
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

Copyright © Nokia Corporation 2001-2008
Back to top