diff -r 000000000000 -r eb1f2e154e89 textinput/peninputgenericitut/inc/peninputgenericitutwindow.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textinput/peninputgenericitut/inc/peninputgenericitutwindow.h Tue Feb 02 01:02:04 2010 +0200 @@ -0,0 +1,281 @@ +/* +* 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: drop-down list control +* +*/ + + +#ifndef C_GENERICITUTWINDOW_H +#define C_GENERICITUTWINDOW_H + +#include +#include +#include +#include + +#include + +#include "peninputgenericitutwindowmanager.h" +#include "peninputgenericitutpropertysubscriber.h" +#include "peninputgenericitutlayoutcontext.h" + +class CGenericItutDataMgr; +class CFepCtrlDropdownList; +class CPeninputLayoutInputmodelChoice; +class CFepLayoutScrollableList; +class CAknFepCtrlCommonBgCtrl; +class CPeninputCommonChoiceList; +class CPeninputSyncBitmapRotator; + +const TInt KUnavailableID = -1; + +class CGenericItutWindow : public CBase + { +private: + + enum TButtonType + { + ERawKeyButton, + ECommonButton, + ERepeatButtonEx + }; + + enum TIndicatorAlign + { + EIndiAlignLeft, + EIndiAlignCenter, + EIndiAlignRight + }; +public: + static CGenericItutWindow* NewL(CGenericItutWindowManager* aWindowMgr, + CGenericItutUiLayout* aLayoutOwner, + CGenericItutDataMgr* aDataMgr); + + ~CGenericItutWindow(); + + TInt OnAppEditorTextComing(const TFepInputContextFieldData& aData); + + TInt PenInputType(); + + // from MITUTPropertySubscriber + void SetPropertyL( MItutPropertySubscriber::TItutProperty aPropertyName, + const TDesC& aPropertyValue); + + TInt SizeChanged(TBool aIcfOverlap); + + // from MItutLayoutContext + CFepUiBaseCtrl* Control(const TInt aCtrlId); + + inline TBool IsSecretEdtior(); + + // drop down list + // stroke zhuyin spell ctrl + void CreateChineseSpecificCtrlsIfNeededL(); + + void EnterMatchSelectionState(TBool aOn); + + void CalIndicatorRect(const TRect& aBoundRect, + TRect& aRealSize1, + TRect& aRealSize2, + TIndicatorAlign aAlign = EIndiAlignRight); + void ResetIndicatorL(CFepUiBaseCtrl* aIndicator); + + void DisplayInputmodeSwitchL(); + + inline CFepLayoutMultiLineIcf* Icf(); + inline CPeninputLayoutInputmodelChoice* InputModeSwitch(); + inline CFepLayoutScrollableList* MatchSelection(); + inline CVirtualKeyboard* ItutKeypad(); + void SetPromptTextL(TUint8* aData); + + + void ConstructItutKeypadFromResourceL(TInt aResId); + + void ConstructIcfFromResourceL(); + void OnSkinChange(); + void ApplyVariantLafDataL(TBool aResolutionChange = EFalse); + + void SetIndicatorImageL(CFepUiBaseCtrl* aIndicator, + const TInt aImgID1, + const TInt aMaskID1, + const TInt aImgID2, + const TInt aMaskID2); + + void ConstructSpellCtrlFromResourceL(); + + void UpdateIndicatorL(TUint8* aData); + + inline CPeninputCommonChoiceList* EditorMenu(); + + void ShowEditorMenuL(TInt* aData); + + void SetHardKeyOneSymbol(TUint8* aData); + void SetHardKeyOneSymbolL(TUint8* aData); + + void HandleButtonResOnLangDirChange( TInt aControlId ); + void HandleButtonResOnLangDirChangeL( TInt aControlId ); +private: + CGenericItutWindow(CGenericItutWindowManager* aWindowMgr, + CGenericItutUiLayout* aLayoutOwner, + CGenericItutDataMgr* aDataMgr); + + void ConstructL(); + + // called when first time construct itut keypad + void CreateItutKeypadL(); + + void CreateLayoutIconL(TInt aMajorSkinId, + TInt aMinorSkinId, + const TDesC& aBmpFileName, + TInt aBmpId, + TInt aMaskBmpId, + CFbsBitmap*& aBmp, + CFbsBitmap*& aMaskBmp, + TSize aSize); + + void CreateMatchSelectionCtrlL(); + + // aLeftTopPos: the offset of top most and left most key relative to keypad + CVirtualKey* CreateKeyL(TResourceReader& aReader, + TRect aKeyRect); + + void ChangeVirtualKeyInfoL(TResourceReader& aReader, + CVirtualKey* aKey); + + + + + void CreateAllButtonL(); + + void CreateBackGroundControlL(); + + void CreateICFL(); + + void CreateDropdownListL(); + + + + void SetCtrlRect(CFepUiBaseCtrl* aCtrl, TInt aRectIdx); + + void ResizeCandidateList(CFepCtrlDropdownList* aList, TInt aLTPosIdx, TBool aExpandable); + + void CalculateFrameRects(const TRect aRect, + TRect& aOuterRect, + TRect& aInnerRect); + + + + TRgb GetMatchListTextColor(); + + + + + CAknFepCtrlCommonButton* CreateRawKeyButtonL(const TInt aControlId, + const TInt aCommand); + + CAknFepCtrlCommonButton* CommonButtonControl(const TInt aControlId); + + CAknFepCtrlCommonButton* CreateRepeatButtonL(const TInt aControlId, + const TInt aCommand); + + CAknFepCtrlCommonButton* CreateCommonButtonL(const TInt aControlId); + + + CFepUiBaseCtrl* CreateButtonL(TButtonType aType, + const TInt aControlId, + const TInt aRectId, + const TInt aInnerRectId, + const TInt aResourceId, + const TInt aCommand = KUnavailableID); + + TBool ControlSizeChanged(const TInt aControlId, + const TInt aRect, + const TInt aInnerRect, + TBool aIsReloadImages); + + void AddControlL(CFepUiBaseCtrl* aControl); + + void AddEditorMenuL(); + + TBool IsChineseMode(); + void ConstructKeyImageFromResourceL( TInt aKeyImageResID ); + + void SetUnicodesForHardKey1(CVirtualKey* aKey, const TDesC& aMapData); + void SetUnicodesForHardKey1L(CVirtualKey* aKey, const TDesC& aMapData); +private: + CVirtualKeyboard* iStandardItutKp; + CFepLayoutMultiLineIcf* iICF; + + CFepCtrlDropdownList* iSpellCandsList; + CFepCtrlDropdownList* iCandsList; + CFepCtrlDropdownList* iPuncCandsList; + + CFepLayoutScrollableList* iMatchSelection; + + CGenericItutDataMgr* iDataMgr; + + TBool iPenDownOnNaviPane; + + TBool iChnCtrlInited; + + + CPeninputLayoutInputmodelChoice* iInputModeSwitch; + + CPeninputCommonChoiceList* iEditorMenu; + + TBool iIsSecret; + TSize iIndicatorSize; + TSize iIndicatorTextSize; + TBool iImDimensionSet; + + TInt iLastRawKeyDown; + TBool iRawKeyDown; + TBool iLastIsChinese; + + TAknWindowLineLayout iBubbleSize; + TAknTextLineLayout iBubbleTextLayout; + CGenericItutUiLayout* iLayoutOwner; + CGenericItutWindowManager* iWindowMgr; + CAknFepCtrlCommonBgCtrl* iBackgroundCtrl; + CFepInputContextField* iSpell; + CPeninputSyncBitmapRotator* iBmpRotator; + TFepSymbolOfHardwareOne iSymbolData; + }; + +inline CFepLayoutMultiLineIcf* CGenericItutWindow::Icf() + { + return iICF; + } + +inline CPeninputLayoutInputmodelChoice* CGenericItutWindow::InputModeSwitch() + { + return iInputModeSwitch; + } + +inline CFepLayoutScrollableList* CGenericItutWindow::MatchSelection() + { + return iMatchSelection; + } + +inline CVirtualKeyboard* CGenericItutWindow::ItutKeypad() + { + return iStandardItutKp; + } + +inline CPeninputCommonChoiceList* CGenericItutWindow::EditorMenu() + { + return iEditorMenu; + } + +#endif //C_GENERICITUTWINDOW_H