--- /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 <eiklbo.h>
+#include <peninputlayoutpopupwnd.h>
+#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