--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/email/mail/ViewerSrc/Msgmailcharactersethandler.h Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,118 @@
+/*
+* 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: Character set menu handler
+*
+*/
+
+
+
+#ifndef CMSGMAILCHARACTERSETHANDLER_H
+#define CMSGMAILCHARACTERSETHANDLER_H
+
+// INCLUDES
+#include <e32base.h>
+
+// FORWARD DECLARATIONS
+class CEikMenuPane;
+
+// CLASS DECLARATION
+
+/**
+* Character set handler
+* Handle dynamic options in characterset menu.
+*
+* @since Series60_25
+*/
+class CMsgMailCharacterSetHandler : public CBase
+ {
+ public: // Constructors and destructor
+ /**
+ * Two-phased constructor.
+ * @param aFirstFreeCommandId First dynamic option menu
+ * item will use this id.
+ */
+ static CMsgMailCharacterSetHandler* NewL( TInt aFirstFreeCommandId );
+
+ /**
+ * Destructor.
+ */
+ ~CMsgMailCharacterSetHandler();
+
+ public: // New functions
+
+ /**
+ * SetCharacterSetSubMenuItemsL
+ * @since Series60_2.6
+ * @param aMenuPane MenuPane where items are added
+ * @param aActiveCharacterSet Currently active characterset. Character
+ * set with this ID is hide from the options menu.
+ */
+ void SetCharacterSetSubMenuItemsL(
+ CEikMenuPane& aMenuPane,
+ TUint aActiveCharacterSet);
+ /**
+ * GetCharacterSetId
+ * @since Series60_2.5
+ * @param aCommandId Options menu command id.
+ * @param aCharacterSetId Corresponding CharacterSet Id
+ * @return ETrue if aCommandId was consumed
+ */
+ TBool GetCharacterSetId(TInt aCommandId, TUint& aCharacterSetId);
+
+ /**
+ * CharacterSetCount
+ * @since Series60_2.6
+ * @param aMenuPane MenuPane where item is added
+ * Menu item is not added if characterset count is zero.
+ */
+ void SetCharacterSetMenuItemL(CEikMenuPane& aMenuPane);
+
+ private: // Implementation
+ TBool IsAcceptedCharacterSet(TUint aCharacterSetId);
+ void AppendItemsToItemArrayL();
+
+ // Item array data structure
+ struct TData
+ {
+ enum { ENominalTextLength=40 }; // see CEikMenuPaneItem::SData
+ TInt iCommandId;
+ TUint iCharacterSetId;
+ TBuf<ENominalTextLength> iText; // Options menu text
+ };
+
+ private:
+
+ /**
+ * C++ default constructor.
+ */
+ CMsgMailCharacterSetHandler();
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL();
+
+ private: // Data
+ /// Variant flag
+ TInt iVariationFlag;
+ /// Item array
+ RArray<TData> iItems;
+ /// FirstFreeCommandId
+ TInt iFirstFreeCommandId;
+
+ };
+
+#endif // CMSGMAILCHARACTERSETHANDLER_H
+
+// End of File