diff -r eb1f2e154e89 -r f5a1e66df979 textinput/peninputfingerhwrar/inc/peninputfingerhwrarwnd.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textinput/peninputfingerhwrar/inc/peninputfingerhwrarwnd.h Fri Feb 19 23:09:27 2010 +0200 @@ -0,0 +1,744 @@ +/* +* 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_PENINPUTFINGERHWRARWND_H +#define C_PENINPUTFINGERHWRARWND_H + +// INCLUDES +#include + +// FORWARD DECLARATIONS +class CFepLayoutMultiLineIcf; +class CAknFepCtrlEventButton; +class CAknFepCtrlRepeatButton; +class CFepCtrlDropdownList; +class CPeninputLayoutInputmodelChoice; +class CTransparentHwrWndExt; +class CPeninputFingerHwrArLafManager; +class CPeninputArabicFingerHwrSymbolTable; +class CPeninputArabicFingerHwrIndicator; + +/** + * class CPeninputFingerHwrArWnd. + * + * Main window of finger hwr arabic. + * + * @lib peninputfingerhwrar.lib + * @since S60 v5.0 + */ +class CPeninputFingerHwrArWnd : 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 CPeninputFingerHwrArWnd object + */ + static CPeninputFingerHwrArWnd* 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 CPeninputFingerHwrArWnd object + */ + static CPeninputFingerHwrArWnd* NewLC( CFepUiLayout* aFepUiLayout, + TInt aControlId, TBool aLandscapeStyle ); + + /** + * standard c++ destructor. + * + * @since S60 v5.0 + * @return None + */ + virtual ~CPeninputFingerHwrArWnd(); + + +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 + * @return None + */ + void SizeChangedL(); + +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 ); + +public: //hwr + + /** + * get strokes from hwr writing box + * + * @since S60 v5.0 + * @return a TPoint array of strokes + */ + const RArray& 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 guide line on or off. + * + * @since S60 v5.0 + * @return none + */ + void SetGuideLineOn( const TBool aGuideLineOn); + + /** + * 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: // show symbol table page + + /** + * 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 ); + +public: //child control access + + /** + * retrieve the ICF control. + * + * @since S60 v5.0 + * @return pointer to ICF + */ + CFepLayoutMultiLineIcf* Icf(); + + + /** + * retrieve the candicate list control. + * + * @since S60 v5.0 + * @return pointer to candicate list + */ + CFepCtrlDropdownList* CandidateList(); + + /** + * retrieve the number candicate list control. + * + * @since S60 v5.0 + * @return pointer to candicate list + */ + CFepCtrlDropdownList* NumCandidateList(); + +public: //ui + + /** + * 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 ); + + /** + * update layout + * + * @since S60 v5.0 + * @param aIsStandby ETrue if is standby state + * @return none + */ + void UpdateLayoutL( const TBool aIsStandby, + const TBool aReloadCandicate=ETrue); + + /** + * 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: // symbol table & candidate list + /** + * retrieve char range of layout, including sct. + * + * @since S60 v5.0 + * @return char range id. + */ + TInt CurrentCharRange(); + + /** + * Show preview bubble + * + * @since S60 v5.0 + * @param aShow Show/Hide flag + * @return none + */ + void ShowBubble(TInt aShow); + + /** + * Open the symble table + * + * @since S60 v5.0 + * @return none + */ + void OpenSymbolTable(); + + /** + * Close the symble table + * + * @since S60 v5.0 + * @return none + */ + void CloseSymbolTable(); + + /** + * Check if the symbol table is alreay opened up + * + * @since S60 v5.0 + * @return none + */ + TBool IsSymbolTableShowingUp(); + + /** + * Check if the candidate list was opened up + * + * @since S60 v5.0 + * @return none + */ + TBool IsCandidateShowup(); + + /** + * Hide the indicator of handwriting + * @since S60 v5.0 + * @return none + */ + void HideIndicator(); + + /** + * Get the char before the cursor + * + * @param aCharPos The the char position + * @param aCharBeforeCursor The char to be retrieved + * @since S60 v5.0 + * @return TBool ETrue if char have been retrieved, EFalse otherwise + */ + TBool GetCharBeforeCursor(TInt aCharPos, TUint16& aCharBeforeCursor); + +protected: + + /** + * C++ constructor + * + * @since S60 v5.0 + * @param aFepUiLayout A Ui Layout environment (CFepUiLayout) + * @param aControlId Control id + * @return None + */ + CPeninputFingerHwrArWnd( 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 number candidate lists. + * + * @since S60 v5.0 + * @return None + */ + void CreateNumCandidateListL(); + + /** + * 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 sct pad. + * + * @since S60 v5.0 + * @return None + */ + void CreateSymbolTableL(); + + /** + * 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( const TInt aResId, const TSize& aKeySize ); + + + /** + * 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& 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 SwitchToStandbyView(); + + /** + * layout for symbol range standby. + * + * @since S60 v5.0 + * @return None + */ + void SwitchToSymbolTableView(); + + /** + * 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 ); + + /** + * 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 ); + + /** + * Calcaulate the postion of guideline + * @since S60 v5.0 + * @return None + */ + void CalculateGuideLinePos(); + + /** + * Draw the guideline + * @since S60 v5.0 + * @return None + */ + void DrawGuideLine(); + +private: // datas + + /** + * Input context field control. + * Not own. + */ + CFepLayoutMultiLineIcf* iContextField; + + + /** + * Candidate list control. + * Not own. + */ + CFepCtrlDropdownList* iCandidateList; + + + /** + * number Candidate list control. + * Not own. + */ + CFepCtrlDropdownList* iNumCandidateList; + /** + * Writing box control. + * Not own. + */ + CTransparentHwrWndExt* 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* iSymbolTableBtn; + + /** + * Symbol table control. + * Not own. + */ + CPeninputArabicFingerHwrSymbolTable* iSymbolTable; + + /** + * Ime selection list control. + * Not own. + */ + CPeninputLayoutInputmodelChoice* iInputModeSwitch; + + /** + * L&F manager. + * Own. + */ + CPeninputFingerHwrArLafManager* iLafManager; + + /** + * First time construct flag + */ + TBool iFirstTimeConstruct; + + /** + * Current char range id, including SCT. + */ + TInt iCurCharRange; + + /** + * Current char range id, without SCT. + */ + TInt iCurCharRangeNoSct; + + /** + * bit mask of permitted char ranges. + */ + TInt iPermittedRanges; + + /** + * Right Bottom point of guideline + */ + TPoint iGuideLineBottomTl; + + /** + * Right Bottom point of guideline + */ + TPoint iGuideLineBottomBr; + + /** + * Check if the symbol table has been opened up + */ + TBool iIsSymbolTableShowingUp; + + /** + * Check if the guideline is switched on + */ + TBool iGuideLineOn; + + /** + * Handwring indicator + */ + CPeninputArabicFingerHwrIndicator* iHandwritingIndicator; + }; + +#endif // C_PENINPUTFINGERHWRARWND_H +// End Of File