--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputfingerhwr/inc/peninputfingerhwrwnd.h Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,939 @@
+/*
+* Copyright (c) 2009 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: header of main window of finger hwr.
+*
+*/
+
+#ifndef C_PENINPUTFINGERHWRWND_H
+#define C_PENINPUTFINGERHWRWND_H
+
+// INCLUDES
+#include <peninputlayoutctrlgroup.h>
+
+// FORWARD DECLARATIONS
+class CFepLayoutMultiLineIcf;
+class CAknFepCtrlButton;
+class CAknFepCtrlEventButton;
+class CAknFepCtrlRepeatButton;
+class CAknFepCtrlMultiImageButton;
+class CFepCtrlDropdownList;
+class TResourceReader;
+class CPeninputLayoutInputmodelChoice;
+class CTransparentHwrWnd;
+class CVirtualKeyboard;
+class CVirtualKey;
+class CPeninputFingerHwrLAFManager;
+class CMultiPageVirtualKeyboard;
+class CPeninputFingerHwrRangeSelector;
+
+enum TPagePosition
+ {
+ EPagePosPageNo,
+ EPagePosNextPage,
+ EPagePosPrevPage,
+ EPagePosLastPage,
+ EPagePosFirstPage,
+ };
+
+/**
+ * class CPeninputFingerHwrWnd.
+ *
+ * Main window of finger hwr.
+ *
+ * @lib peninputfingerhwr.lib
+ * @since S60 v5.0
+ */
+class CPeninputFingerHwrWnd : public CControlGroup
+ {
+
+public:
+
+ /**
+ * Symbian constructor.
+ *
+ * @since S60 v5.0
+ *
+ * @param aUiLayout The layout
+ * @param aControlId The control id
+ * @param aLandscapeStyle Current screen is landscape or not
+ * @return Pointer to created CPeninputFingerHwrWnd object
+ */
+ static CPeninputFingerHwrWnd* NewL( CFepUiLayout* aFepUiLayout,
+ TInt aControlId, TBool aLandscapeStyle );
+
+ /**
+ * Symbian constructor.
+ *
+ * @since S60 v5.0
+ *
+ * @param aUiLayout The layout
+ * @param aControlId The control id
+ * @param aLandscapeStyle Current screen is landscape or not
+ * @return Pointer to created CPeninputFingerHwrWnd object
+ */
+ static CPeninputFingerHwrWnd* NewLC( CFepUiLayout* aFepUiLayout,
+ TInt aControlId, TBool aLandscapeStyle );
+
+ /**
+ * standard c++ destructor.
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ virtual ~CPeninputFingerHwrWnd();
+
+
+public: //from base class CFepUiBaseCtrl
+ /**
+ * From CFepUiBaseCtrl.
+ * Construct from resource. Handle resource change.
+ *
+ * @since S60 v4.0
+ */
+ void ConstructFromResourceL();
+
+ /**
+ * From CFepUiBaseCtrl
+ * Draw control
+ *
+ * @since S60 V4.0
+ */
+ void Draw();
+
+public:
+
+ /**
+ * Resize according to LAF.
+ *
+ * @since S60 v5.0
+ * @param aLandscapeStyle Current screen is landscape or not
+ * @return None
+ */
+ void SizeChangedL( TBool aLandscapeStyle );
+
+public: // target editor attributes
+
+ /**
+ * accept editor's text alignment.
+ *
+ * @since S60 v5.0
+ * @param aAlignment text alignment id. It can be one of the following:
+ * EAknEditorAlignNone
+ * EAknEditorAlignCenter
+ * EAknEditorAlignLeft
+ * EAknEditorAlignRight
+ * EAknEditorAlignBidi
+ * @param aLangId language id
+ * @return none
+ */
+ void SetTextAlignmentL( TInt aAlignment, TInt aLangId );
+
+ /**
+ * accept editor's text.
+ *
+ * @since S60 v5.0
+ * @param aData editor's text.
+ * @return none
+ */
+ void SetEditorTextL( const TFepInputContextFieldData& aData );
+
+ /**
+ * accept editor's promopt txt
+ *
+ * @since S60 v5.0
+ * @param aPromoptData editor's promopt text
+ * @return none
+ */
+ void SetPromptTextL( TUint8* aPromoptData );
+
+ /**
+ * Dim option button
+ *
+ * @since S60 v5.0
+ * @param aEnable Enable or disable option button
+ * @return none
+ */
+ void SetEnableSettingBtn(const TBool aEnable);
+
+ /**
+ * accept editor's bubble text.
+ *
+ * @since S60 v5.0
+ * @param aPromoptData editor's bubble text.
+ * @return none
+ */
+ void SetBubbleTextL( const TDesC& aInfo );
+
+ /**
+ * accept editor's char ranges restriction.
+ *
+ * @since S60 v5.0
+ * @param aPermittedRanges permitted char range flags. It can be combination of the following:
+ * ERangeNative
+ * ERangeEnglish
+ * ERangeNumber.
+ * See TAknFepPenInputRange.
+ * @return none
+ */
+ void SetPermittedRanges( const TInt aPermittedRanges );
+
+ /**
+ * accept editor's number mapping restriction.
+ *
+ * @since S60 v5.0
+ * @param aNumMapping a string contains numbers and related char. max length is 16.
+ * @return none
+ */
+ void SetNumericMapping( const TDesC& aNumMapping );
+
+ /**
+ * accept editor's input language
+ *
+ * @since S60 v5.0
+ * @param aLanguageId language id.
+ * @return none
+ */
+ void SetInputLanguage( const TInt aLanguageId );
+
+public: //hwr
+
+ /**
+ * get strokes from hwr writing box
+ *
+ * @since S60 v5.0
+ * @return a TPoint array of strokes
+ */
+ const RArray<TPoint>& StrokeList();
+
+ /**
+ * set end mark of hwr
+ *
+ * @since S60 v5.0
+ * @param aEndMark a TPoint object as end mark
+ * @return none
+ */
+ void SetStrokeEndMark( const TPoint& aEndMark );
+
+ /**
+ * set pen color of hwr writing
+ *
+ * @since S60 v5.0
+ * @return none
+ */
+ void SetBoxPenColor( const TInt aPenColor );
+
+ /**
+ * set pen size of hwr writing
+ *
+ * @since S60 v5.0
+ * @return none
+ */
+ void SetBoxPenSize( const TSize aPenSize );
+
+ /**
+ * set writing speed hwr writing
+ *
+ * @since S60 v5.0
+ * @return none
+ */
+ void SetBoxWritingSpeed( const TTimeIntervalMicroSeconds32& aCharDelay );
+
+ /**
+ * retrieve rect of hwr writingbox.
+ *
+ * @since S60 v5.0
+ * @return rect of hwr writingbox.
+ */
+ TRect WritingBoxRect();
+
+ /**
+ * Cancel wrting
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void CancelWriting();
+
+public: //ime switching list
+ /**
+ * Popup ime switch list
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void PopupImeSwitcher();
+
+public: //range list
+ /**
+ * show range selection list
+ *
+ * @since S60 v5.0
+ * @param aDirect direction of popup. It can be one of the following:
+ * EPopDirAuto
+ * EPopDirLeft
+ * EPopDirRight
+ * EPopDirTop
+ * EPopDirDown
+ * default value is EPopDirAuto. See TPeninputPopListDirection.
+ * @return none
+ */
+ void ShowRangeDropList( TInt aDirect );
+
+ /**
+ * cancel range selection and hide selection list.
+ *
+ * @since S60 v5.0
+ * @return none
+ */
+ void CancelRangeDropList();
+
+ /**
+ * test whether the range selection list is visible
+ *
+ * @since S60 v5.0
+ * @return ETrue if range selection list is visible
+ */
+ TBool RangeDropListVisible();
+
+public: //sct
+
+ /**
+ * Change SCT page.
+ *
+ * @since S60 v5.0
+ * @param aPageNo page no.
+ * @param aPos Specifies the interpretation of the aPageNo parameter:
+ EPagePosPageNo - go to page aPageNo.
+ EPagePosNextPage - go to next page.
+ EPagePosPrevPage - go to previous page.
+ EPagePosLastPage - go to last page.
+ EPagePosFirstPage - go to first page.
+ * @return none
+ */
+ void ShowSctPage( TInt aPageNo, TInt aPos );
+
+ /**
+ * sync sct paging buttons.
+ *
+ * @since S60 v5.0
+ * @return none
+ */
+ void UpdateSctPageButtonsUi();
+
+public: //child control access
+
+ /**
+ * retrieve the ICF control.
+ *
+ * @since S60 v5.0
+ * @return pointer to ICF
+ */
+ CFepLayoutMultiLineIcf* Icf();
+
+ /**
+ * retrieve the predictive List control.
+ *
+ * @since S60 v5.0
+ * @return pointer to predictive List
+ */
+ CFepCtrlDropdownList* PredictiveList();
+
+ /**
+ * retrieve the candicate list control.
+ *
+ * @since S60 v5.0
+ * @return pointer to candicate list
+ */
+ CFepCtrlDropdownList* CandidateList();
+
+public: //ui
+
+ /**
+ * cancel all popped list
+ *
+ * @since S60 v5.0
+ * @return none
+ */
+ void CancelAllPopList();
+
+ /**
+ * update layout
+ * safe version of UpdateLayoutL()
+ *
+ * @since S60 v5.0
+ * @param aIsStandby ETrue if is standby state
+ * @return none
+ */
+ void UpdateLayout( const TBool aIsStandby,
+ const TBool aReloadCandicate=ETrue,
+ const TBool aReloadPredictive=ETrue );
+
+ /**
+ * update layout
+ *
+ * @since S60 v5.0
+ * @param aIsStandby ETrue if is standby state
+ * @return none
+ */
+ void UpdateLayoutL( const TBool aIsStandby,
+ const TBool aReloadCandicate=ETrue,
+ const TBool aReloadPredictive=ETrue );
+
+#ifndef RD_INTELLIGENT_TEXT_INPUT
+ /**
+ * hide or show eng-symbol candidate lists.
+ *
+ * @since S60 v5.0
+ * @param aIsHide ETrue to hide lists, EFalse to show lists.
+ * @return none
+ */
+ void HideTwoRowEngSymbolList( const TBool aIsHide );
+#endif
+
+ /**
+ * dim arrow buttons
+ *
+ * @since S60 v5.0
+ * @param aDimArrow ETrue to dim arrow buttons, EFalse to set arrow buttons as not dimmed.
+ * @return none
+ */
+ void DimArrowKeys( TBool aDimArrow );
+
+public: //range
+
+ /**
+ * change layout to specified char range.
+ *
+ * @since S60 v5.0
+ * @param aCharRange current range id. It can be one of the following:
+ * EFingerHwrNativeRange
+ * EFingerHwrEnglishRange
+ * EFingerHwrNumberRange
+ * EFingerHwrSymbolRange
+ * @return none
+ */
+ void TryToChangeCharRange( TInt aCharRange );
+
+ /**
+ * retrieve char range of layout, including sct.
+ *
+ * @since S60 v5.0
+ * @return char range id.
+ */
+ TInt CurrentCharRange();
+
+ /**
+ * restore the char range saved before sct.
+ *
+ * @since S60 v5.0
+ * @return none
+ */
+ TInt RestoreNonSctLayout();
+
+ /**
+ * Show preview bubble
+ *
+ * @since S60 v5.0
+ * @param aShow Show/Hide flag
+ * @return none
+ */
+ void ShowBubble(TInt aShow);
+
+protected:
+
+ /**
+ * C++ constructor
+ *
+ * @since S60 v5.0
+ * @param aFepUiLayout A Ui Layout environment (CFepUiLayout)
+ * @param aControlId Control id
+ * @return None
+ */
+ CPeninputFingerHwrWnd( CFepUiLayout* aFepUiLayout, TInt aControlId );
+
+private:
+
+ /**
+ * Symbian second-phase constructor
+ *
+ * @since S60 v5.0
+ * @param aLandscapeStyle Current screen is landscape or not
+ * @return None
+ */
+ void ConstructL( TBool aLandscapeStyle );
+
+ /**
+ * create icf.
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void CreateContextFieldL();
+
+ /**
+ * create candidate lists.
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void CreateCandidateListL();
+
+ /**
+ * create predictive lists.
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void CreatePredictListL();
+
+ /**
+ * create writing box.
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void CreateWritingBoxL();
+
+ /**
+ * create all function buttons.
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void CreateButtonsL();
+
+ /**
+ * create virtual number pad.
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void CreateVirtualNumpadL();
+
+ /**
+ * create virtual sct pad.
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void CreateVirtualSctpadL();
+
+ /**
+ * create space and backspace virtual pad.
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void CreateFixVirtualSctpadL();
+
+ /**
+ * EventButton creation helper.
+ *
+ * @since S60 v5.0
+ * @param aCtrlId button control id.
+ * @param aResId resource id.
+ * @param aEvent event id;
+ * @param aUnicode a unicode value to be sent
+ * @return pointer to created CAknFepCtrlEventButton obj.
+ */
+ CAknFepCtrlEventButton* CreateEventBtnL( TInt aCtrlId, TInt32 aResId,
+ TInt aEvent = 0xFFFF, TInt aUnicode=0 );
+
+ /**
+ * RepeatButton creation helper.
+ *
+ * @since S60 v5.0
+ * @param aCtrlId button control id.
+ * @param aResId resource id.
+ * @param aEvent event id;
+ * @param aUnicode a unicode value to be sent
+ * @return pointer to created CAknFepCtrlRepeatButton obj.
+ */
+ CAknFepCtrlRepeatButton* CreateRepBtnL( const TInt aCtrlId, TInt32 aResId,
+ const TInt aEvent, const TInt aUnicode );
+
+ /**
+ * load virtual number pad images.
+ *
+ * @since S60 v5.0
+ * @param aResId resource id.
+ * @param aKeySize virtual key rect.
+ * @return None
+ */
+ void LoadVkbKeyImageL( CVirtualKeyboard* aVkb, const TInt aResId, const TSize& aKeySize );
+
+
+ /**
+ * create virtual key.
+ *
+ * @since S60 v5.0
+ * @param aReader resource reader.
+ * @param aKeyRect rect of virtual key.
+ * @return pointer of created CVirtualKey obj.
+ */
+ CVirtualKey* CreateVkbKeyL( TResourceReader& aReader, const TRect aKeyRect );
+
+ /**
+ * update virtual key info.
+ *
+ * @since S60 v5.0
+ * @param aVirtualKey an exist virtul key.
+ * @param aReader resource reader.
+ * @param aKeyRect rect of virtual key.
+ * @return None
+ */
+ void UpdateVkbKeyL( CVirtualKey* aVirtualKey, TResourceReader& aReader,
+ const TRect aKeyRect );
+
+ /**
+ * load virtual number keys.
+ *
+ * @since S60 v5.0
+ * @param aResId resource id.
+ * @param aCellRects rects of virtual keys.
+ * @return None
+ */
+ void LoadVirtualNumpadKeysL( const TInt aResId, const RArray<TRect>& aCellRects );
+
+ /**
+ * load virtual sct keys.
+ *
+ * @since S60 v5.0
+ * @param aResId resource id.
+ * @param aCellRects rects of virtual keys.
+ * @return None
+ */
+ void LoadVirtualSctpadKeysL( const TInt aResId, const RArray<TRect>& aCellRects );
+
+ /**
+ * load space and backspace virtual keys.
+ *
+ * @since S60 v5.0
+ * @param aResId resource id.
+ * @param aCellRects rects of virtual keys.
+ * @return None
+ */
+ void LoadFixVirtualSctpadKeysL( const TInt aResId, const RArray<TRect>& aCellRects );
+
+ /**
+ * relayout full ui, reset all controls position.
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void ResetLayoutL();
+
+ /**
+ * layout for chinese range standby.
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void LayoutStandbyChinese();
+
+ /**
+ * layout for english range standby.
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void LayoutStandbyEnglish();
+
+ /**
+ * layout for number range standby.
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void LayoutStandbyNumeric();
+
+ /**
+ * layout for symbol range standby.
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void LayoutStandbySymbol();
+
+ /**
+ * EventButton layout helper. Move button to specified rect.
+ *
+ * @since S60 v5.0
+ * @param aButton the button to move
+ * @param aRect new rect of button
+ * @param aXPadding horz padding of button icon.
+ * @param aYPadding vert padding of button icon.
+ * @param aReloadImages Specifies whether the images is to be reloaded.
+ * @return None
+ */
+ void MoveIconButton( CAknFepCtrlEventButton* aButton, const TRect& aRect,
+ TInt aXPadding=0, TInt aYPadding=0, TBool aReloadImages=ETrue );
+
+ /**
+ * EventButton layout helper. Move button to specified rect.
+ *
+ * @since S60 v5.0
+ * @param aButton the button to move
+ * @param aRect new rect of button
+ * @param aXPadding horz padding of button icon.
+ * @param aYPadding vert padding of button icon.
+ * @param aReloadImages Specifies whether the images is to be reloaded.
+ * @return None
+ */
+ void MoveSwitchPageButton( CAknFepCtrlEventButton* aButton, const TRect& aRect,
+ TInt aXPadding=0, TInt aYPadding=0, TBool aReloadImages=ETrue );
+
+
+ /**
+ * read control's shadow info.
+ *
+ * @since S60 v5.0
+ * @param aResId resource id.
+ * @return None
+ */
+ void ReadShadowInfoL( const TInt aResId );
+
+ /**
+ * read control's background info.
+ *
+ * @since S60 v5.0
+ * @param aResId resource id.
+ * @return None
+ */
+ void ReadBackgroundInfoL( const TInt aResId );
+
+ /**
+ * read icf appearance info.
+ *
+ * @since S60 v5.0
+ * @param aResId resource id.
+ * @return None
+ */
+ void ReadICFInfoL( const TInt aResId );
+
+ /**
+ * read writingbox appearance info.
+ *
+ * @since S60 v5.0
+ * @param aResId resource id.
+ * @return None
+ */
+ void ReadWritingBoxInfoL( TInt aResId );
+
+ /**
+ * update feedback state of all virtual keys
+ *
+ * @since S60 v5.0
+ * @param aType char range id
+ * @return None
+ */
+ void UpdateAllVirtualKeysFeedback( TInt aType );
+
+ /**
+ * Reload guide line
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void ReloadWritingGuideLinesL();
+
+ /**
+ * Set highlight cell in candidate list
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void SetCandHighlightCell();
+
+private: // datas
+
+ /**
+ * Input context field control.
+ * Not own.
+ */
+ CFepLayoutMultiLineIcf* iContextField;
+
+
+ /**
+ * 1st fixed eng-symbol list control.
+ * Not own.
+ */
+ CFepCtrlDropdownList* iFixEngSymbolList1;
+
+ /**
+ * 2nd fixed eng-symbol list control.
+ * Not own.
+ */
+ CFepCtrlDropdownList* iFixEngSymbolList2;
+
+ /**
+ * Candidate list control.
+ * Not own.
+ */
+ CFepCtrlDropdownList* iCandidateList;
+
+ /**
+ * Predictive list control.
+ * Not own.
+ */
+ CFepCtrlDropdownList* iPredictList;
+
+ /**
+ * Writing box control.
+ * Not own.
+ */
+ CTransparentHwrWnd* iWritingBox;
+
+ /**
+ * Close button control.
+ * Not own.
+ */
+ CAknFepCtrlEventButton* iCloseBtn;
+
+ /**
+ * Option button control.
+ * Not own.
+ */
+ CAknFepCtrlEventButton* iOptionBtn;
+
+ /**
+ * Ime switch button control.
+ * Not own.
+ */
+ CAknFepCtrlEventButton* iImeSwitchBtn;
+
+ /**
+ * Backspace button control.
+ * Not own.
+ */
+ CAknFepCtrlRepeatButton* iBackspaceBtn;
+
+ /**
+ * Left arrow button control.
+ * Not own.
+ */
+ CAknFepCtrlRepeatButton* iArrowLeftBtn;
+
+ /**
+ * Right arrow button control.
+ * Not own.
+ */
+ CAknFepCtrlRepeatButton* iArrowRightBtn;
+
+ /**
+ * Up arrow button control.
+ * Not own.
+ */
+ CAknFepCtrlRepeatButton* iArrowUpBtn;
+
+ /**
+ * Down arrow button control.
+ * Not own.
+ */
+ CAknFepCtrlRepeatButton* iArrowDownBtn;
+
+ /**
+ * Sct selection button control.
+ * Not own.
+ */
+ CAknFepCtrlEventButton* iRangeSpecialBtn;
+
+ /**
+ * Sct page 0 selction button control.
+ * Not own.
+ */
+ CAknFepCtrlEventButton* iSctPage0Btn;
+
+ /**
+ * Sct page 1 selction button control.
+ * Not own.
+ */
+ CAknFepCtrlEventButton* iSctPage1Btn;
+
+ /**
+ * Sct page 2 selction button control.
+ * Not own.
+ */
+ CAknFepCtrlEventButton* iSctPage2Btn;
+
+
+ /**
+ * Virtual number pad control.
+ * Not own.
+ */
+ CVirtualKeyboard* iVirtualNumpad;
+
+ /**
+ * Virtual sct pad control.
+ * Not own.
+ */
+ CMultiPageVirtualKeyboard* iVirtualSctpad;
+
+ CVirtualKeyboard* iVirtualSctpadFix;
+ /**
+ * Range selection list control.
+ * Not own.
+ */
+ CPeninputFingerHwrRangeSelector* iRangeSelector;
+
+ /**
+ * Ime selection list control.
+ * Not own.
+ */
+ CPeninputLayoutInputmodelChoice* iInputModeSwitch;
+
+ /**
+ * L&F manager.
+ * Own.
+ */
+ CPeninputFingerHwrLAFManager* iLafManager;
+
+ /**
+ * First time construct flag
+ */
+ TBool iFirstTimeConstruct;
+
+
+ /**
+ * rect of range selection control.
+ */
+ TRect iRectOfRangeBtn;
+
+ /**
+ * Current char range id, including SCT.
+ */
+ TInt iCurCharRange;
+
+ /**
+ * Current char range id, without SCT.
+ */
+ TInt iCurCharRangeNoSct;
+
+ /**
+ * bit mask of permitted char ranges.
+ */
+ TInt iPermittedRanges;
+
+
+ /**
+ * flag.
+ */
+ TBool iInEditWordQueryDlg;
+
+ TRgb iWritingBoxBkColor;
+ TRgb iWritingBoxFrameColor;
+ };
+
+#endif // C_PENINPUTFINGERHWRWND_H
+// End Of File
\ No newline at end of file