diff -r ebe688cedc25 -r 7fdbb852d323 messagingappbase/msgavkon/muiu_internal/flagger/inc/MuiuFlagger.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingappbase/msgavkon/muiu_internal/flagger/inc/MuiuFlagger.h Wed Sep 01 12:31:54 2010 +0100 @@ -0,0 +1,180 @@ +/* +* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: This file contains declearation of CMuiuFlags class +* +*/ + + + + +#ifndef CMUIUFLAGGER_H +#define CMUIUFLAGGER_H + +// INCLUDES +#include "MuiuFlags.h" +#include + +// CONSTANTS +// MACROS +// DATA TYPES +struct TMuiuLocalFeatureItem + { + // The Central Repository ID to be used to access the feature + TUid iUid; + // The Key id that is used to get the value + TUint32 iKeyId; + // Value to be used to set the feature + TUint32 iFlag; + // iFlag is a flag (ETrue) or an index (EFalse) + TBool iIsFlag; + }; + +typedef RArray TMuiuGlobalFeatureArray; +typedef RArray TMuiuLocalFeatureArray; +typedef RArray TMuiuFlagArray; + +// FUNCTION PROTOTYPES +// FORWARD DECLARATIONS +// CLASS DECLARATION + +/** +* ?one_line_short_description. +* ?other_description_lines +* +* @lib ?library +* @since Series60 3.0 +*/ +class CMuiuFlags : public CBase + { + public: // Constructors and destructor + + /** + * + * @since Series60 3.0 + */ + IMPORT_C static CMuiuFlags* NewL( + const TMuiuGlobalFeatureArray* aGlobalFeatures = NULL, + const TMuiuLocalFeatureArray* aLocalFeatures = NULL, + const TMuiuFlagArray* aFlags = NULL ); + + /** + * + * @since Series60 3.0 + */ + IMPORT_C static CMuiuFlags* NewLC( + const TMuiuGlobalFeatureArray* aGlobalFeatures = NULL, + const TMuiuLocalFeatureArray* aLocalFeatures = NULL, + const TMuiuFlagArray* aFlags = NULL ); + + + IMPORT_C virtual ~CMuiuFlags(); + + public: // New functions + + inline TBool GF( + const TUint aGlobalFlag ) const; + inline TBool LF( + const TUint aLocalFeature ) const; + + inline void SetFlag( + const TUint aFlag ); + inline void ClearFlag( + const TUint aFlag ); + inline TBool Flag( + const TUint aFlag ) const; + inline void ChangeFlag( + const TUint aFlag, + const TBool aNewState ); + + public: // Functions from base classes + + protected: // New virtual functions + protected: // New functions + protected: // Functions from base classes + + private: // Constructors and destructor + + CMuiuFlags(); + void ConstructL( + const TMuiuGlobalFeatureArray* aGlobalFeatures, + const TMuiuLocalFeatureArray* aLocalFeatures, + const TMuiuFlagArray* aFlags ); + + private: // New virtual functions + private: // New functions + + // FLAG HANDLERS + + /** + * + * @since Series60 3.0 + */ + void PrepareGlobalFeaturesL( + const TMuiuGlobalFeatureArray& aGlobalFeatures ); + + /** + * + * @since Series60 3.0 + */ + void PrepareLocalFeaturesL( + const TMuiuLocalFeatureArray& aLocalFeatures ); + + /** + * + * @since Series60 3.0 + */ + void PrepareGeneralFlags( + const TMuiuFlagArray& aFlags ); + + inline void ChangeGF( + const TUint aGlobalFlag, + const TBool aNewState ); + + inline void ChangeLF( + const TUint aLocalFlag, + const TBool aNewState ); + + inline void HandleSetFlag( + TMuiuFlags& aFlags, + const TUint aFlag ) const; + inline void HandleClearFlag( + TMuiuFlags& aFlags, + const TUint aFlag ) const; + inline TBool HandleFlag( + const TMuiuFlags& aFlags, + const TUint aFlag ) const; + inline void HandleChangeFlag( + TMuiuFlags& aFlags, + const TUint aFlag, + const TBool aNewState ) const; + + private: // Functions from base classes + + public: // Data + protected: // Data + private: // Data + + // Flag storage for global features + TMuiuFlags iGlobalFeatures; + // Flag storage for local features + TMuiuFlags iLocalFeatures; + // Flag storage for basic flags + TMuiuFlags iFlags; + }; + +#include + +#endif // CMUIUFLAGGER_H + +// End of File