uifw/AvKon/src/PictograhGrouping.cpp
changeset 0 2f259fa3e83a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/AvKon/src/PictograhGrouping.cpp	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,77 @@
+/*
+* Copyright (c) 2002-2005 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:  Defined avkon pictograph ranges to show in SCT
+*
+*/
+
+
+
+// INCLUDE FILES
+#include    "PictograhGrouping.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// PictograhGrouping::AllocStringLC
+// Return pictograph string to show in SCT
+// -----------------------------------------------------------------------------
+//
+HBufC* PictograhGrouping::AllocStringLC(
+    TAknPictographGroupType aType)
+    {
+
+    struct TPictograhGrouping
+        {
+        TUint iStart;
+        TUint iEnd;
+        };
+    static const TPictograhGrouping pictograph1[] = 
+        {
+        { 0xE63E, 0xE6A5 },
+        { 0xE6AC, 0xE6AE },
+        { 0xE6B1, 0xE6B3 },
+        { 0xE6B7, 0xE6BA },
+        { 0xE6CE, 0xE70B }
+        };
+    static const TPictograhGrouping pictograph2[] = 
+        {
+        { 0xE70C, 0xE757 }
+        };
+
+    const TPictograhGrouping* base = 
+                (aType == TAknPictographGroup2)? pictograph2 : pictograph1;
+    const TInt sizeoftable = 
+                (aType == TAknPictographGroup2)? sizeof(pictograph2) : sizeof(pictograph1);
+    const TPictograhGrouping* end = base + 
+                ( sizeoftable / sizeof(base[0]) -1);
+    const TUint len = end->iEnd - base->iStart + 1;
+
+    HBufC* buf = HBufC::NewLC(len);
+    TPtr ptr(buf->Des());
+
+    TInt count = 0;
+    while (base <= end)
+        {
+        for ( TChar ch = base->iStart; ch <= TChar(base->iEnd); )
+            {
+            ptr.Append(ch);
+            count++;
+            ch += 1;
+            }
+        base++;
+        }
+    return buf;
+    }
+
+//  End of File