--- /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