diff -r 000000000000 -r eb1f2e154e89 textinput/peninputcommonctrlsjp/inc/peninputjapanesepredictivewnd.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textinput/peninputcommonctrlsjp/inc/peninputjapanesepredictivewnd.h Tue Feb 02 01:02:04 2010 +0200 @@ -0,0 +1,323 @@ +/* +* Copyright (c) 2002-2007 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: Predictive Window +* +*/ + +#ifndef C_CPENINPUTJAPANESEPREDICTIVEWND_H +#define C_CPENINPUTJAPANESEPREDICTIVEWND_H + +#include +#include +#include "peninputjapanesepredictivelistboxmodel.h" + // TypeDef:CPredictivePopupLineInfoArray,CPredictivePopupElementArray + +class CPeninputJapanesePredictiveListBox; +class CTextListBoxModel; +class CAknFepCtrlEventButton; + +class CPeninputJapanesePredictiveWnd: public CFepLayoutPopupWnd, + public MEikListBoxObserver, + public MEventObserver + { + public: // Constructors and destructor + + enum TPeninputUICtrlScroll + { + EScrollNone, + EScrollLeft, + EScrollRight, + EScrollUp, + EScrollDown + }; + /** + * Two-phased constructor. + */ + IMPORT_C static CPeninputJapanesePredictiveWnd* NewL(CFepUiLayout* aUiLayout, + TInt aControlId, const CCoeControl* aParent); + + /** + * Destructor. + */ + virtual ~CPeninputJapanesePredictiveWnd(); + + //from base control CFepUiBaseCtrl + /** + * From CFepUiBaseCtrl + * Set control's rectangle + * + * @since S60 V4.0 + * @param aRect The new control area + */ + IMPORT_C virtual void SetRect(const TRect& aRect); + + /** + * From CFepUiBaseCtrl + * Set control's rectangle + * + * @since S60 V4.0 + * @param aFlag ETrue if want to hide the control. + */ + virtual void Hide(TBool aFlag); + + /** + * set scroll up/down button + * @since 2.6 + * @param aScrollUpBtn + * @param aScrollDownBtn + */ + void SetButtons(CAknFepCtrlEventButton* aScrollUpBtn, CAknFepCtrlEventButton* aScrollDownBtn); + + /** + * Specify the cursor position of a pop-up list + * @since 2.6 + * @param aItemIndex The index of the cursor position + */ + void SetCurrentItemIndex(TInt aItemIndex) const; + + /** + * From MEventObserver + * Handle control event + * + * @since S60 v3.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 ); + + /** + * From MAknFepUICtrlPredictivePaneInterface + * Show candidate list popup window + * @since 2.6 + * @param aItems array of candidate list + * @param aIndex selecting number when displaying + * + */ + void ShowPopupL(const CDesCArrayFlat* aItems, TInt aIndex); + + /** + * From MAknFepUICtrlPredictivePaneInterface + * Hide candidate list popup window + * @since 2.6 + * @param aItems array of candidate list + * + */ + void HidePopup(); + + /** + * Return a selected candidate item number currently + * @since 2.6 + */ + TInt CurrentItemIndexOfCandidate() const; + + /** + * @param aData Carry information of key pressed + * @since 2.6 + * + */ + void MoveTo(TPeninputUICtrlScroll aDirection); + + /** + * Update Size + * @param aWidth + * @param aUnitWidth + * @param aUnitHeight + */ + void SizeChanged(TInt aWidth, TInt aUnitWidth, TInt aUnitHeight); + + /** + * Get item whose region contains the point. + * + * @since S60 V4.0 + * @param aPoint The point position the layout + * @return The index of choice item. -1 if no item contains + * the point + */ + TInt HitTest(const TPoint& aPoint); + + /** + * Handle pointer down event + * + * @since S60 V4.0 + * @param aPoint The point position relative the layout + * @return The control which handles the event. + */ + virtual CFepUiBaseCtrl* HandlePointerDownEventL(const TPoint& aPoint); + + /** + * Handle pointer move event + * + * @since S60 V4.0 + * @param aPoint The point position relative the layout + * @return The control which handles the event. + */ + virtual CFepUiBaseCtrl* HandlePointerMoveEventL(const TPoint& aPoint); + + /** + * Handle pointer up event + * + * @since S60 V4.0 + * @param aPoint The point position relative the layout + * @return The control which handles the event. + */ + virtual CFepUiBaseCtrl* HandlePointerUpEventL(const TPoint& aPoint); + + // from MEikListBoxObserver + virtual void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType); + + /** + * Set linecount + * + */ + void SetLineCount(TInt aLineCount); + + /** + * called when listbox updated + * @param aRect Rectangle in which the Cone framework believes drawing + * is needed + */ + void ReDraw(); + + /** + * Cancel repeat + * + * @since S60 v3.2 + * @return None + */ + void CancelRepeat(); + + /** + * @return listbox control + * @since 2.6 + */ + CPeninputJapanesePredictiveListBox* ListBox() const; + + /** + * From CFepUiBaseCtrl + * DeActivate popup window + * + * @since S60 V4.0 + */ + void OnDeActivate(); + + protected: + + /** + * Constructor. + * + * @since S60 V4.0 + * @param aUiLayout Ui layout who contains this control.Ownership not transferred + * @param aControlId control Id + */ + CPeninputJapanesePredictiveWnd(CFepUiLayout* aUiLayout, + TInt aControlId); + + private: + /** + * Symbian 2nd phase constructor can leave. + */ + void ConstructL(const CCoeControl* aParent); + + /** + * Setup array with line information in candidate list + * @since 2.6 + * @param aItems array with candidate string + * @param aMaxDisplayWidthInPixel maximum width in pixel + * @param aFontId font id + */ + void CreatePredictivePopupLineInfoArrayL(const CDesCArrayFlat* aItems, + const TInt aMaxDisplayWidthInPixel, + const TInt aFontId); + + /** + * Append to array with line information + * @since 2.6 + * @param aLineText string to show in a line + * @param aElementArray array with element information + */ + void PredictivePopupAppendLineL(const TPtr& aLineText, + CPredictivePopupElementArray* aElementArray); + + /** + * Create arrary with string to show in a line + * @since 2.6 + * @param aLineArray arrary with line information + * @return string array + */ + void CreateListTextArrayL(const CPredictivePopupLineInfoArray& aLineArray); + + /** + * Called by the framework to draw the control + */ + void Draw(); + + /** + * called when prediction pane is not active + */ + void ClearList(); + + /** + * activateButtons or disactivate + */ + void ActivateButtons(TBool aActive) const; + + private: + /** + * listbox + * Own + */ + CPeninputJapanesePredictiveListBox* iListBox; + + /** + * LineInfoArray + * Own + */ + CPredictivePopupLineInfoArray* iLineInfoArray; + + /** + * ListTextArray + * Own + */ + CDesCArrayFlat* iListTextArray; + + /** + * scroll up button + * Not Own + */ + CAknFepCtrlEventButton* iScrollUpBtn; + + /** + * scroll down button + * Not Own + */ + CAknFepCtrlEventButton* iScrollDownBtn; + + /** + * The unit width + */ + TInt iUnitWidth; + + /** + * The unit height + */ + TInt iUnitHeight; + }; + +#endif //C_CPENINPUTJAPANESEPREDICTIVEWND_H + +// End Of File