diff -r 000000000000 -r 8466d47a6819 emailcontacts/contactactionmenu/inc/cfsccontactactionmenuitemimpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailcontacts/contactactionmenu/inc/cfsccontactactionmenuitemimpl.h Thu Dec 17 08:39:21 2009 +0200 @@ -0,0 +1,284 @@ +/* +* Copyright (c) 2008 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: Definition of class CFscContactActionMenuItemImpl. +* +*/ + + +#ifndef C_FSCCONTACTACTIONMENUITEMIMPL_H +#define C_FSCCONTACTACTIONMENUITEMIMPL_H + +#include +// +#include "cfsccontactactionmenuitem.h" +// + +// FORWARD DECLARATIONS +class CGulIcon; + +/** + * Contact Action Menu Item implementation. + * + * @since S60 3.1 + */ +class CFscContactActionMenuItemImpl : public CFscContactActionMenuItem + { + +public: // Public constructor and destructor + + /** + * Two-phased constructor. + * + * @return New instance of the component + */ + static CFscContactActionMenuItemImpl* NewL(); + + /** + * Two-phased constructor. + * + * @return New instance of the component + */ + static CFscContactActionMenuItemImpl* NewLC(); + + /** + * Two-phased constructor. + * + * @param aMenuText Menu text + * @param aIcon Icon + * @param aPriority Priority + * @param aStatic Is static + * @param aUid Item Uid + * @return New instance of the component + */ + static CFscContactActionMenuItemImpl* NewL( + const TDesC& aMenuText, + const CGulIcon* aIcon, + TInt aPriority, + TBool aStatic, + TUid aUid = KFscDefaultItemUid ); + + /** + * Two-phased constructor. + * + * @param aMenuText Menu text + * @param aIcon Icon + * @param aPriority Priority + * @param aStatic Is static + * @param aUid Item Uid + * @return New instance of the component + */ + static CFscContactActionMenuItemImpl* NewLC( + const TDesC& aMenuText, + const CGulIcon* aIcon, + TInt aPriority, + TBool aStatic, + TUid aUid = KFscDefaultItemUid ); + + /** + * Destructor. + */ + virtual ~CFscContactActionMenuItemImpl(); + +public: // Public methods from base class + + /** + * Set menu text + * + * @param aMenuText New menu text + */ + void SetMenuTextL( const TDesC& aMenuText ); + + /** + * Get menu text + * + * @return Menu text + */ + const TDesC& MenuText() const; + + /** + * Set icon + * + * @param aIcon New icon + */ + void SetIcon( const CGulIcon* aIcon ); + + /** + * Get icon + * + * @return Item's icon + */ + const CGulIcon* Icon() const; + + /** + * Set priority + * + * @param aPriority Item priority + */ + void SetPriority( TInt aPriority ); + + /** + * Get priority + * + * @return Item's priority + */ + TInt Priority() const; + + /** + * Set implementation uid + * + * @param aUid Implementation Uid of the item + */ + void SetImplementationUid( TUid aUid ); + + /** + * Get implementation Uid + * + * @return Item's implementation Uid + */ + TUid ImplementationUid() const; + + /** + * Set item dimmed + * + * @param aDimmed ETrue if item is dimmed + */ + void SetDimmed( TBool aDimmed ); + + /** + * Is item dimmed + * + * @return ETrue if item is dimmed, otherwise EFalse + */ + TBool Dimmed() const; + + /** + * Set dimm reason + * + * @param aDimmReason dimm reason + */ + void SetDimmReasonL( const TDesC& aDimmReason ); + + /** + * Get dimm reason + * + * @return dimm reason + */ + const TDesC& DimmReason() const; + + /** + * Set item hidden + * + * @param aHidden ETrue if item is hidden + */ + void SetHidden( TBool aHidden ); + + /** + * Is item hidden + * + * @return ETrue if item is hidden, otherwise EFalse + */ + TBool Hidden() const; + + /** + * Set item static + * Static items are ment to be kept in the menu longer than non-static. + * Normal use case for static items are special items set by Action Menu's + * client. These special items are always in the menu so client does not + * want to set them again after clearing other items from the menu. All CAS + * based items are non-static and therefore they can easily be removed from + * the menu without removing static items also. + * + * @param aStatic ETrue if item is hidden + */ + void SetStatic( TBool aStatic ); + + /** + * Is item static + * + * @return ETrue if item is static, otherwise EFalse + */ + TBool Static() const; + +protected: + + /** + * Constructor. + * + * @param aIcon Icon + * @param aPriority Priority + * @param aStatic Is static + * @param aUid Item Uid + */ + CFscContactActionMenuItemImpl( + const CGulIcon* aIcon, + TInt aPriority, + TBool aStatic, + TUid aUid ); + + /** + * Second phase constructor. + * + * @param aMenuText Menu text + */ + void ConstructL( const TDesC& aMenuText ); + +protected: // data + + /** + * Menu item text + * Owned + */ + HBufC* iMenuText; + + /** + * Menu item icon + * Not owned + */ + const CGulIcon* iIcon; + + /** + * Priority of the menu item + */ + TInt iPriority; + + /** + * Action implementation uid + */ + TUid iImplementationUid; + + /** + * Dimmed flag + */ + TBool iDimmed; + + /** + * Dimming reason. + * Owned + */ + HBufC* iDimmReason; + + /** + * Hidden flag + */ + TBool iHidden; + + /** + * Static flag + */ + TBool iStatic; + + }; + +#endif // C_FSCCONTACTACTIONMENUITEMIMPL_H +