classicui_plat/special_character_table_api/inc/AknSctDialog.h
changeset 0 2f259fa3e83a
child 9 0aa5fbdfbc30
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/classicui_plat/special_character_table_api/inc/AknSctDialog.h	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,179 @@
+/*
+* 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: 
+*     Dialog class for support of Series 60 Special character table
+*
+*/
+
+
+#ifndef AKNSCTDIALOG_H
+#define AKNSCTDIALOG_H
+
+#include <AknDialog.h>// <eikdialg.h>
+#include <aknCharMap.h>
+
+class CAknCharMapDialogExtension;
+
+/**
+ * Special character table dialog for AVKON. The dialog contains special
+ * character table.
+ */
+class CAknCharMapDialog : public CAknDialog
+    {
+public:
+
+    /**
+    * AVKON special character table constructor.
+    *
+    * @param aCharCase Character case for special character table
+    *      (EAknSCTLowerCase or EAknSCTUpperCase).
+    * @param aSpecialChar Reference to the buffer where selected special characters are put.
+    * @param aCharSetResourceId Optional parameter to set editor specific
+    *      special character table. If the value is omitted, default AVKON
+    *      special character table is shown.
+    *
+    */
+    IMPORT_C CAknCharMapDialog(TInt aCharCase, TDes& aSpecialChars, TInt aCharSetResourceId = 0);
+
+    ~CAknCharMapDialog();
+
+public: // from CEikDialog
+
+    /**
+    * Prepares and runs the dialog and returns the id of the button used to dismiss
+    * it. The dialog is constructed from the resource with id aResourceId and is destroyed
+    * on exit.
+    *
+    * @param aResourceId Resource id for special character table dialog resource.
+    * @return Id of the button used to dismiss dialog.
+    *
+    */
+    IMPORT_C TInt ExecuteLD(TInt aResourceId);
+
+public: // from CCoeControl
+    IMPORT_C TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode);
+
+    /**
+     * Handles a change to the control's resources of type aType
+     * which are shared across the environment, e.g. colors or fonts.
+     *
+     * @since ER5U
+     */
+    IMPORT_C void HandleResourceChange(TInt aType);
+
+protected: // from CEikDialog
+    IMPORT_C virtual TBool OkToExitL(TInt);
+    IMPORT_C virtual void PreLayoutDynInitL();
+    IMPORT_C virtual void SetSizeAndPosition(const TSize& aSize);
+
+private:
+    IMPORT_C virtual void CEikDialog_Reserved_1();
+    IMPORT_C virtual void CEikDialog_Reserved_2();
+
+private: // new function
+    IMPORT_C virtual void CAknCharMapDialog_Reserved();
+
+public:
+    /*
+    * The SCT never shows the pictographs table.
+    *
+    * @since 2.6
+    */
+    IMPORT_C void ShowNoPictographs();
+
+    /**
+    * When the SCT is opened, it shows pictographs table.
+    *
+    * @since 2.6
+    */
+    IMPORT_C void ShowPictographsFirst();
+    
+    /**
+    * Set the emotion mode for the special character table.
+    *
+    * @param aEmotionMode The emotion mode for the special character table 
+    *      (EAknCharMapEmotionUse, EAknCharMapEmotionFirst, EAknCharMapEmotionNoUse).
+    * * @since 9.2
+    */
+    IMPORT_C void SetEmotionMode(TAknCharMapEmotionMode aEmotionMode);
+
+    /**
+    * When the SCT is opened, it shows another width table.
+    *
+    * @param aCharCase another character case type
+    * @since 2.6
+    */
+    IMPORT_C void ShowAnotherTable(TInt aCharCase);
+
+    /**
+    * From MCoeControlObserver
+    *
+    * @param aControl pointer to observed
+    * @param aEventType event to be handled
+    */
+    IMPORT_C void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
+
+    /**
+    * From MDialogPageObserver
+    *
+    * @param aEventID event to be handled
+    */
+    IMPORT_C void HandleDialogPageEventL(TInt aEventID);
+
+    /**
+    * Sets locking status for numeric keys. If this is called with ETrue,
+    * then cursor can't be moved with numeric keys.
+    *
+    * @param aLockStatus  Numeric key lock status. ETrue disables numeric keys
+    *                     cursor movement, EFalse enables it.
+    */
+    IMPORT_C void LockNumericKeys(TBool aLockStatus);
+
+    /**
+    * Hides the first row that shows recent characters.
+    *
+    * @since 3.2
+    */
+    IMPORT_C void DisableRecentCharsRow();
+
+    /**
+    * From CoeControl
+    * @since 3.2
+    * Handles pointer events
+    */
+    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
+private: // helpers
+    void DoLayout();
+private:
+    /**
+     * Change layout when pressing '*' key or EStdKeyLeftFunc(or EStdKeyRightFunc) key.
+     */
+    void SwitchTablesOrPagesL();
+    TBool SwitchTablesL();
+    void SwitchPagesL();
+    void RefreshTitleAndNavi();
+
+    void ChangeCategoryL(const TInt aCategory);
+    void ChangeLayoutL(const TBool aLayoutChanged);
+    void SetSoftKeyL(const TBool aDrawNow = EFalse);
+
+private:
+    TDes* iSpecialChars;
+    TInt iCharCase;
+    TInt iCharSetResourceId;
+    TInt iWsBufferRequestId;
+    CAknCharMapDialogExtension *iExtension;
+    };
+
+#endif  // AKNSCTDIALOG_H