textinput/peninputarc/gsplugin/gspeninputplugin/inc/gssettingdialog.h
changeset 0 eb1f2e154e89
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputarc/gsplugin/gspeninputplugin/inc/gssettingdialog.h	Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,535 @@
+/*
+* 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:  gspeninputimple dialog header file.
+*
+*/
+
+
+#ifndef C_GSSETTINGDIALOG_H
+#define C_GSSETTINGDIALOG_H
+
+// INCLUDES
+#include <aknsettingitemlist.h>
+#include <AknDialog.h>
+
+#include "gscenrepnotifyhandlercallback.h"
+
+// FORWARD CLASS DECLARATION
+class CGSPenInputImple;
+class CGSSettingItemList;
+class CAknNullService;
+
+// CONSTANTS
+const TInt KItemTextSize = 50;
+
+/**
+ *  CGSColorSettingItem item class
+ *
+ *  This class is trail colour item class. It offers trail colour item in setting 
+ *  list.Form this class, user can define item behavior and interface by themselves.
+ *
+ *  @lib gspeninputplugin.dll
+ *  @since S60 v3.2
+ */
+class CGSColorSettingItem : public CAknSettingItem
+    {
+    
+public:
+
+    /**
+     * Symbian constructor
+     *
+     * @since S60 v3.2
+     * @param aIdentifier Resource id
+     * @param aImpl CGSPenInputImple instance
+     * @return None
+     */
+    CGSColorSettingItem(const TInt aIdentifier, CGSPenInputImple* aImpl);
+
+    /**
+     * Destructor
+     *
+     * @since S60 v3.2
+     * @return None
+     */
+    virtual ~CGSColorSettingItem();
+
+    /**
+     * Create a mask for item mask
+     *
+     * @since S60 v3.2
+     * @return None
+     */
+    void CreateMaskL();
+
+// From CAknSettingItem
+
+    /**
+     * From CAknSettingItem
+     * This launches the setting page 
+     *
+     * @since S60 v3.2
+     * @param aCalledFromMenu Ignored in this class
+     * @return None
+     */
+    void EditItemL(TBool aCalledFromMenu);
+
+    /**
+     * From CAknSettingItem
+     * This method obtains the current value's setting text
+     *
+     * @since S60 v3.2
+     * @return Reference to descriptor with the text
+     */
+    virtual const TDesC& SettingTextL();
+
+protected:
+    
+// From CAknSettingItem
+
+    /**
+     * From CAknSettingItem
+     * Method to obtain a new bitmap for the setting content
+     *
+     * @since S60 v3.2
+     * @return Pointer to create CFbsBitmap object
+     */
+    CFbsBitmap* CreateBitmapL(); 
+ 
+private:
+
+    /**
+     * The pen input implementation (Not own)
+     */
+    CGSPenInputImple* iImple;
+
+    };
+
+/**
+ *  CGSTextSettingItem item class
+ *
+ *  This class is for text item class. It offers input lauguage, writing speed, 
+ *  trail width items in setting list.Form this class, user can 
+ *  define item behavior and interface by themselves.
+ *
+ *  @lib gspeninputplugin.dll
+ *  @since S60 v3.2
+ */
+class CGSTextSettingItem : public CAknTextSettingItem 
+    {
+
+public:
+
+    /**
+     * Symbian constructor
+     *
+     * @since S60 v3.2
+     * @param aItemResourceId Resource id
+     * @param aText Text display in item
+     * @param aImple CGSPenInputImple instance
+     * @return None
+     */
+    CGSTextSettingItem(TInt aItemResourceId, 
+                          TDes &aText, 
+                          CGSPenInputImple* aImple,
+                          CGSSettingItemList* aParent);
+
+    /**
+     * Destructor
+     *
+     * @since S60 v3.2
+     * @return None
+     */
+    virtual ~CGSTextSettingItem();
+
+// From CAknTextSettingItem
+
+    /**
+     * From CAknTextSettingItem
+     * This method obtains the current value's setting text
+     *
+     * @since S60 v3.2
+     * @return Reference to descriptor with the text
+     */
+    const TDesC& SettingTextL();
+
+    /**
+     * From CAknTextSettingItem
+     * This launches the setting page 
+     *
+     * @since S60 v3.2
+     * @param aCalledFromMenu Ignored in this class
+     * @return None
+     */
+    void EditItemL(TBool aCalledFromMenu); 
+
+private:
+
+    /**
+     * The pen input implementation (Not own)
+     */
+    CGSPenInputImple* iImple;
+
+    /**
+     * Item resource id 
+     */
+    TInt iItemId;
+
+    /**
+     * Input language item text
+     */
+    TBuf<KItemTextSize> iInputLanguage;
+
+    /**
+     * Writing speed item text
+     */
+    TBuf<KItemTextSize> iWritingSpeed;
+
+    /**
+     * Guide Line item text
+     */
+    TBuf<KItemTextSize> iGuideLine;
+    /**
+     * Guide Line item text
+     */
+    TBuf<KItemTextSize> iRecognitionWithDictionary;    
+    
+    
+    /**
+     * Trail Width item text
+     */
+    TBuf<KItemTextSize> iTrailWidth;
+
+    /**
+     * Input method for find item text
+     */
+    TBuf<KItemTextSize> iInputMethodForFind;
+
+    /**
+     * Chinese Input Find Method for find item text
+     */
+    RBuf iInputChineseFindMethod;
+    //TBuf<KItemTextSize> iInputChineseFindMethod;
+
+    /**
+     * Input Mode item text
+     */
+    TBuf<KItemTextSize> iInputMode;
+    
+    /**
+     * Input Mode item text (Not own)
+     */    
+    CGSSettingItemList* iSettingList;
+ 
+    };
+
+/**
+ *  CGSSettingItemList list class
+ *
+ *  This class is for list box class. It offers list box, which contains input language,
+ *  writing speed, trail width, and trail colour items in setting list.Form 
+ *  CreateSettingItemL function user can create custom item which from above 
+ *  CGSTextSettingItem and CGSColorSettingItem. 
+ *
+ *  @lib gspeninputplugin.dll
+ *  @since S60 v3.2
+ */
+class CGSSettingItemList : public CAknSettingItemList
+    {
+
+public:
+
+    /**
+     * Symbian constructor
+     *
+     * @since S60 v3.2
+     * @param aImple CGSPenInputImple instance
+     * @return None
+     */
+    CGSSettingItemList(CGSPenInputImple* aImple);
+
+    /**
+     * Destructor
+     *
+     * @since S60 v3.2
+     * @return None
+     */
+    virtual ~CGSSettingItemList();
+    
+    /**
+     * Reset Setting List
+     *
+     * @since S60 v3.2
+     * @return None
+     */
+    void ResetSettingListL();
+    
+    /**
+    * From MEikListBoxObserver.
+    * Handles the commands coming from the listbox
+    * @param aListBox List box that initiated the event
+    * @param aEventType Type of the event         
+    */
+    void HandleListBoxEventL( CEikListBox* aListBox, TListBoxEvent aEventType );
+    
+protected:
+
+// From CAknSettingItemList
+
+    /**
+     * From CAknTextSettingItem
+     * Framework method to create a setting item based upon the user id aSettingId
+     *
+     * @since S60 v3.2
+     * @param identifier ID to use to determine the type of the setting item
+     * @return A constructed (not 2nd-stage constructed) setting item
+     */
+    CAknSettingItem* CreateSettingItemL(TInt identifier);
+
+private:
+
+    /**
+     * The pen input implementation (Not own)
+     */
+    CGSPenInputImple* iImple;
+
+    /**
+     * Input language item text
+     */
+    TBuf<KItemTextSize> iInputLanguage;
+
+    /**
+     * Writing speed item text
+     */
+    TBuf<KItemTextSize> iWritingSpeed;
+
+    /**
+     * Guide Line item text
+     */
+    TBuf<KItemTextSize> iGuideLine;    
+    /**
+     * Guide Line item text
+     */
+    TBuf<KItemTextSize> iRecognitionWithDictionary;    
+    
+    /**
+     * Trail Width item text
+     */
+    TBuf<KItemTextSize> iTrailWidth;
+    
+    /**
+     * Input method for find item text
+     */
+    TBuf<KItemTextSize> iInputMethodForFind;
+
+    /**
+     * Chinese Input Find Method for find item text
+     */
+    RBuf iInputChineseFindMethod;
+    //TBuf<KItemTextSize> iInputChineseFindMethod;
+
+    /**
+     * Input Mode item text
+     */
+    TBuf<KItemTextSize> iInputMode;
+
+    /**
+     * Current language is chinese
+     */
+    TBool iChinese;  
+    
+    /**
+     * Current language is Japanese
+     */
+    TBool iJapanese;        
+    
+   };
+
+/**
+ *  CGSSettingDialog dialog class
+ *
+ *  This class is for dialog class containing above list box. It offers dialog, 
+ *  which contains a list box with input language, writing speed, trail width, 
+ *  and trail colour items in setting list.
+ *
+ *  @lib gspeninputplugin.dll
+ *  @since S60 v3.2
+ */
+class CGSSettingDialog : public CAknDialog,
+                            public MGsCenRepNotifyHandlerCallback
+    {
+
+public:
+
+    /**
+     * Symbian constructor
+     *
+     * @since S60 v3.2
+     * @param aImple CGSPenInputImple instance
+     * @return None
+     */
+    CGSSettingDialog(CGSPenInputImple* aImple);
+
+    /**
+     * Destructor
+     *
+     * @since S60 v3.2
+     * @return None
+     */
+    virtual ~CGSSettingDialog();
+
+// From MEikDialogPageObserver via CEikDialog
+
+    /**
+     * From MEikDialogPageObserver
+     * Framework method to create a control based upon control type
+     *
+     * @since S60 v3.2
+     * @param aControlType Control resource id
+     * @return Custom control info
+     */
+    virtual SEikControlInfo CreateCustomControlL(TInt aControlType);
+
+// From MGsCenRepNotifyHandlerCallback
+    
+    /**
+     * From MGsCenRepNotifyHandlerCallback
+     * This callback method is used to notify the client about
+     * key changing
+     * 
+     * @since S60 v3.2
+     * @param aId Key id 
+     * @param aNewValue New value
+     * @return None
+     */
+    void HandleNotifyInt(TUint32 aId, TInt aNewValue);    
+    
+    /**
+     * This callback method is used to notify the client about
+     * key changing
+     * 
+     * @param aId Key id 
+     * @param aNewValue New value
+     * @param aRepositoryUid The repository uid for each key
+     * @return None
+     */
+    void HandleNotifyInt(TUid aRepositoryUid, TUint32 aId, TInt aNewValue); 
+
+// From MEikMenuObserver
+    
+    /**
+     * From MEikMenuObserver
+     * 
+     * @since S60 v3.2
+     * @param aResourceId resource id 
+     * @param aMenuPane 
+     * @return None
+     */
+    virtual void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane *aMenuPane);
+    
+protected:
+
+// From CAknDialog
+
+    /**
+     * From CAknDialog
+     * Handles a dialog button press for the specified button. 
+     *
+     * This function is invoked when the user presses a button in the
+     * button panel. It is not called if the Cancel button is activated 
+     * unless the @c EEikDialogFlagNotifyEsc flag has been set.
+     *
+     * If there is an Options key then pops up menu, otherwise exits.
+     *
+     * @param aButtonId The ID of the button that was activated.
+     * @return @c ETrue to validate and exit the dialog, 
+     *         @c EFalse to keep the dialog active. If @c ETrue, the 
+     *         dialog will be destroyed automatically by @c ExecuteLD(). 
+     *         The default implementation returns @c ETrue no matter which
+     *         button is pressed.
+     */
+	virtual TBool OkToExitL( TInt aButtonId );
+	
+private:
+
+    /**
+     * Show setting page when user select item in listbox
+     * 
+     * @since S60 v3.2
+     * @return None
+     */
+    void ShowSettingPageL();	
+
+    /**
+     * From MEikCommandObserver
+     * Process menu selection event
+     *
+     * @since S60 v3.2
+     * @param aCommandId command.
+     * @return None
+     */
+    void ProcessCommandL(TInt aCommandId);
+    
+    /**
+     * Handle notifier from KCRUidPersonalizationSettings in CRepository
+     *
+     * @param aId Key id
+     * @param aNewValue New value     
+     */
+    void HandleNotifyIntFromPersonalizationL( TUint32 aId, TInt aNewValue );
+    
+    /**
+     * Handle notifier from KCRUidAknFep in CRepository
+     *
+     * @param aId Key id
+     * @param aNewValue New value     
+     */
+    void HandleNotifyIntFromAknFepL( TUint32 aId, TInt aNewValue );
+    
+    /**
+     * Handle notifier from KCRUidAvkon in CRepository
+     *
+     * @param aId Key id
+     * @param aNewValue New value     
+     */
+    void HandleNotifyIntFromAvkonL( TUint32 aId, TInt aNewValue );    
+    
+    /**
+     * Launch other application
+     *
+     * @aAppUid: The application's uid     
+     */    
+    void LaunchAppL( TUid aAppUid );
+     
+private:
+
+    /**
+     * The pen input implementation (Not own)
+     */
+    CGSPenInputImple* iImple;
+
+    /**
+     * The setting list (Not own)
+     */
+    CGSSettingItemList* iSettingList;
+    
+    /**
+     * Launch application;
+     */    
+    CAknNullService* iNullService;    
+    };
+
+#endif // C_GSSETTINGDIALOG_H
+
+// End Of File