--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputvkbcn/ctrlinc/peninputvkbwindow.h Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,581 @@
+/*
+* 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: Interface of vkb ui state
+*
+*/
+
+
+#ifndef C_CAKNFEPVKBWINDOW_H
+#define C_CAKNFEPVKBWINDOW_H
+
+// system includes
+#include <peninputbasewindowext.h>
+
+/** class forward decalaration */
+class CFepUiLayout;
+class CPeninputCommonChoiceList;
+class CAknFepVkbClientArea;
+class MAknFepVkbDataProvider;
+class CAknFepVkbUiStateMgr;
+class CAknFepCtrlEventButton;
+class CFepLayoutMultiLineIcf;
+class CPeninputLayoutInputmodelChoice;
+class CPeninputVkbCtrlExt;
+class CAknFepCtrlVkbLayout;
+class CPeninputCnGenericVkbLafMgr;
+class CAknFepCtrlRepeatButton;
+class CFepLayoutScrollableList;
+
+// class declarations
+/**
+ * vkb window class
+ *
+ * @lib peninputvkbcn.lib
+ * @since S60 v3.2
+ */
+class CAknFepVkbWindow : public CAknFepCtrlBaseWindowExt
+ {
+public:
+
+ /**
+ * Create one CAknFepVkbWindow object
+ *
+ * @since S60 v3.2
+ * @param aUiLayout The layout plugin
+ * @param aControlId This control ID
+ * @param aDataProvider The interface of data provider
+ * @return The CFepCtrlDropdownList object.
+ */
+ static CAknFepVkbWindow* NewL(CFepUiLayout* aUiLayout,
+ TInt aControlId,
+ MAknFepVkbDataProvider* aDataProvider,
+ CAknFepVkbUiStateMgr* aUiStateMgr);
+
+ /**
+ * Create one CAknFepVkbWindow object
+ *
+ * @since S60 v3.2
+ * @param aUiLayout The layout plugin
+ * @param aControlId This control ID
+ * @param aDataProvider The interface of data provider
+ * @return The CFepCtrlDropdownList object.
+ */
+ static CAknFepVkbWindow* NewLC(CFepUiLayout* aUiLayout,
+ TInt aControlId,
+ MAknFepVkbDataProvider* aDataProvider,
+ CAknFepVkbUiStateMgr* aUiStateMgr);
+
+ /**
+ * Destructor
+ *
+ * @since S60 v3.2
+ * @return None.
+ */
+ virtual ~CAknFepVkbWindow();
+
+ /**
+ * Size change function
+ *
+ * @since S60 v3.2
+ * @param aLandscapeStyle Landscape or portrait
+ * @return None.
+ */
+ void SizeChanged(TBool aLandscapeStyle);
+
+ /**
+ * Handle event
+ * @since Series 60 3.2
+ * @param aEventType The event type
+ * @param aCtrl The control who sends the event
+ * @param aEventData The event data
+ * @return None
+ */
+ void HandleControlEvent(TInt aEventType, CFepUiBaseCtrl* aCtrl, const TDesC& aEventData);
+
+ /**
+ * Get client area control
+ *
+ * @since S60 v3.2
+ * @return The client area control.
+ */
+ CAknFepVkbClientArea* ClientArea();
+
+ /**
+ * Get input context field
+ *
+ * @since S60 v3.2
+ * @return The input context field
+ */
+ CFepLayoutMultiLineIcf* InputContextField();
+
+ /**
+ * Change input method layout
+ *
+ * @since S60 v3.2
+ * @param aRange The range defined in TAknFepVkbIMLayout
+ * @param aChangeVkb The flag of changing vkb or not
+ * @return None.
+ */
+ void ChangeImLayout(TInt aRange, TBool aChangeVkb = ETrue);
+
+ /**
+ * Loop vkb layout
+ *
+ * @since S60 v3.2
+ * @param aType The flag showing shift down or capslock down
+ * @return None.
+ */
+ void LoopVkbLayout(TVkbShiftType aType, TBool aNotify = EFalse);
+
+ /**
+ * Change vkb layout
+ *
+ * @since S60 v3.2
+ * @param aVkbLayout The destination layout
+ * @return None.
+ */
+ void ChangeVkbLayout(TInt aVkbLayoutId);
+
+ /**
+ * Get the string length in composition field
+ *
+ * @since S60 v3.2
+ * @return The string length in composition field.
+ */
+ TInt CompositionFieldStringLength();
+
+ /**
+ * Popup accent window
+ *
+ * @since S60 v3.2
+ * @return None.
+ */
+ void PopupAccentWindow();
+
+
+ void PopupSwitchWindow();
+
+ /**
+ * Reset the status accent button
+ *
+ * @since S60 v3.2
+ * @return None.
+ */
+ void ResetAccentButton();
+
+ /**
+ * Set the input context field text
+ *
+ * @since S60 v3.2
+ * @param aTotalTextLen The total text length in editor
+ * @param aStartPos The position of aText in whole editor
+ * @param aCursorSel Current cursor selection
+ * @param aText The text to be set
+ * @return None
+ */
+ void SetEditorTextL(const TFepInputContextFieldData& aData);
+
+ /**
+ * Set if the input context field text is secret
+ *
+ * @since S60 v3.2
+ * @param aIsSecret The flag
+ * @return None
+ */
+ void SetTextIsSecret( TBool aIsSecret );
+
+ /**
+ * Dim arrow keys when the editor type is
+ * find pane or secret editor
+ *
+ * @since S60 v3.2
+ * @param aIsSecret The flag
+ * @return None
+ */
+ void DimArrowKeys( TBool aDimArrow );
+ /**
+ * Get current control who has focus
+ *
+ * @since S60 v3.2
+ * @return None.
+ */
+ TInt FocusedControlID();
+
+ /**
+ * Draw window and shadow
+ *
+ * @since S60 v3.2
+ * @return None
+ */
+ void Draw();
+
+ /**
+
+ /**
+ * Set layout's rectangle
+ *
+ * @since S60 V3.2
+ * @param aRect The new control area
+ * @return None
+ */
+ void SetRect(const TRect& aRect);
+
+ /**
+ * Is there need to create new word
+ *
+ * @since S60 v3.2
+ * @return ETrue if need to create new word, otherwise EFalse
+ */
+ TBool NeedCreateWord();
+
+ /**
+ * Close Accent window
+ *
+ * @since S60 V3.2
+ * @return None
+ */
+ void CloseAccentWindow();
+
+ static TInt BackgroundTaskL(TAny* aPtr);
+
+ /**
+ * Set if enable option button and language switch button
+ *
+ * @since S60 v3.2
+ * @param aEnable The enable flag
+ * @return None
+ */
+ void SetEnableSettingBtn(TBool aEnable);
+
+ /**
+ * Return the spell for new created words.
+ *
+ * @since S60 v3.2
+ * @return The buffer for the gernated spell.
+ */
+ TPtrC GetCreatedWordSpell();
+
+ void SetSwitchlistLanguage(TInt aLang);
+
+ void SetSwitchlistSecretFlag(TBool aSecret);
+
+ /**
+ * Set prompt text in FSQ mode.
+ *
+ * @since S60 v3.2
+ * @param Prompt text data
+ * @return None.
+ */
+ void SetPromptTextL(TUint8* aData);
+
+ void ChangeMergedButtonStatus( const TInt aIsShiftCase,
+ const TInt aIsCapslockCase );
+
+ void ShowBubble(TInt aShow);
+
+ void SetTextAlignmentL( TInt aAlignment );
+ void UpdateICFTextL();
+
+ /**
+ * Show tooltip of ICF
+ *
+ * @since S60 v5.0
+ * @param aText The text to be displayed in ICF
+ * @return None
+ */
+ void ShowTooltipOnFSQL( const TDesC& aText );
+
+ /**
+ * Hide tooltip of ICF
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void HideTooltipOnFSQ();
+
+ /**
+ * Hide candidate list
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void HideCandidateListOnFSQ();
+
+ /**
+ * Show candidate list
+ *
+ * @param aItemArray, the contents to be shown
+ * @param aActiveIndex, the default index
+ * @return None
+ */
+ void ShowCandidateListOnFSQL( const CDesCArray* aItemArray,
+ TInt aActiveIndex );
+
+ /**
+ * Handle candidate list selected events
+ *
+ * @param aCtrl, pointer of the candidate list on which events occur.
+ * @param aEventData event data
+ * @return None
+ */
+ void HandleCandidateListSelectedOnFSQL( CFepUiBaseCtrl* aCtrl,
+ const TDesC& aEventData );
+
+protected:
+
+ /**
+ * Construct function
+ *
+ * @since S60 v3.2
+ * @param aUiLayout The layout plugin
+ * @param aControlId This control ID
+ * @param aDataProvider The interface of data provider
+ * @return None.
+ */
+ CAknFepVkbWindow(CFepUiLayout* aUiLayout,
+ TInt aControlId,
+ MAknFepVkbDataProvider* aDataProvider,
+ CAknFepVkbUiStateMgr* aUiStateMgr);
+
+ /**
+ * 2nd construct function
+ *
+ * @since Series 60 3.2
+ * @return None
+ */
+ void ConstructL();
+
+ /**
+ * Close window
+ *
+ * @since Series 60 3.2
+ * @return None
+ */
+ TBool DoClose();
+
+ /**
+ * read from resource function
+ *
+ * @since Series 60 3.2
+ * @return None
+ */
+ void ConstructFromResourceL();
+
+ virtual void AddCustomControlGroupL(CFepUiBaseCtrl* aCtrl);
+
+ virtual TBool CreateCustomControlL( TInt16 aControlId, TInt32 aImageId );
+
+private:
+
+ /**
+ * Add context field into the vkb window
+ *
+ * @since Series 60 3.2
+ * @return None
+ */
+ void AddContextFieldL();
+
+ /**
+ * Add popup window into the vkb window
+ *
+ * @since Series 60 3.2
+ * @return None
+ */
+ void AddPopupWindowL();
+
+ /**
+ * Add touch input into the vkb window
+ *
+ * @since Series 60 3.2
+ * @return None
+ */
+ void AddTouchInputButtonL();
+
+ /**
+ * get resource info of accented chars popup window
+ *
+ * @since S60 v3.2
+ * @param aReader Resource reader
+ * @return None
+ */
+ void GetPopupWndInfoFromRes( TResourceReader aReader);
+
+ /**
+ * Construct popup window
+ *
+ * @since S60 v3.2
+ * @return None
+ */
+ void DoIdleConstructL();
+
+ /**
+ * Set item rect, position, font, text color etc to
+ * popup window
+ *
+ * @since S60 v3.2
+ * @return None
+ */
+ void SetPopupProperty();
+
+ TInt GetWindowResId();
+
+ void SimulateRawEvent(TInt aScanCode, TRawEvent::TType aType);
+
+ void SizeChangedForTitle();
+
+ /*
+ * Create a candidate list control
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void CreateCandidateListOnFSQL();
+
+ /*
+ * Retrieve text color from skin for candidiate list
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ const TRgb CandidateListTextColorOnFSQ();
+
+ /*
+ * Retrieve text color from skin for autocompletion part
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ const TRgb AutoCompletionPartColorOnFSQ();
+
+ /*
+ * Set item rect, position, font, text color etc to tooltip
+ * and candidate list
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void SetITILayoutOnFSQ();
+
+public:
+ CPeninputCnGenericVkbLafMgr* iLafMgr;
+
+private: // data
+
+ /**
+ * The client area control
+ * Own
+ */
+ CAknFepVkbClientArea* iClientArea;
+
+ /**
+ * The input context field
+ * Own
+ */
+ CFepLayoutMultiLineIcf* iInputContextField;
+
+
+ /**
+ * The popup window
+ * Own
+ */
+ CPeninputCommonChoiceList* iPopupWnd;
+
+ /**
+ * The data provider
+ * Not own
+ */
+ MAknFepVkbDataProvider* iDataProvider;
+public:
+ /**
+ * The UI state manager
+ * Not own
+ */
+ CAknFepVkbUiStateMgr* iUiStateMgr;
+private:
+ /**
+ * The background bitmap of popup window
+ * Not own
+ */
+ CFbsBitmap* iPopupWndBgImg;
+
+ /**
+ * The background mask bitmap of popup window
+ * Not own
+ */
+ CFbsBitmap* iPopupWndBgMaskImg;
+
+
+ /**
+ * The focus bitmap of popup window
+ * Not own
+ */
+ CFbsBitmap* iPopupWndFocusImg;
+
+ /**
+ * The focus mask bitmap of popup window
+ * Not own
+ */
+ CFbsBitmap* iPopupWndFocusMaskImg;
+
+ /**
+ * The rect of whole vkb window
+ */
+ TRect iWndRect;
+
+ /**
+ * Accent popuo window open state
+ */
+ TBool iAccentPopup;
+
+ /**
+ * First time construct flag
+ */
+ TBool iFirstTimeConstruct;
+
+ CIdle* iIdle;
+ TBool iPopupInited;
+
+ /**
+ * Flag to indicate whether popup window's property
+ * have been set
+ */
+ TBool iPopupSet;
+
+ /**
+ * Popup window item size
+ */
+ TSize iPopupItemSize;
+
+ CPeninputLayoutInputmodelChoice* iInputModeSwitch;
+ CAknFepCtrlRepeatButton* iArrowLeftButton;
+
+ CAknFepCtrlRepeatButton* iArrowRightButton;
+
+ CAknFepCtrlDragButton* iMoveButton;
+
+ /**
+ * Vkb layout
+ * Own
+ */
+ CAknFepCtrlVkbLayout* iVkbLayout;
+ TAknWindowLineLayout iBubbleSize;
+ TAknTextLineLayout iBubbleTextLayout;
+
+ CFepLayoutScrollableList* iCandidateList;
+
+ };
+
+#endif // C_CAKNFEPVKBWINDOW_H
+
+// End Of File