--- a/textinput/peninputhwrtrui/inc/truihwrbox.h Wed Jun 23 04:57:58 2010 +0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,593 +0,0 @@
-/*
-* Copyright (c) 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: hand writing box - control in Training UI application
-*
-*/
-
-
-#ifndef C_TRAININGUIHWRBOX_H
-#define C_TRAININGUIHWRBOX_H
-
-// includes
-#include <coecntrl.h>
-#include <AknInfoPopupNoteController.h> // Tooltip
-
-// forward declarations
-class MTruiHwrBoxObserver;
-class CAknInfoPopupNoteController;
-class CAknsBasicBackgroundControlContext;
-
-const TPoint KTail( 0xFFFF,0 );
-
-// Class declaration
-/**
- * CTruiHwrBox
- * CTruiHwrBox is new component, which allows input and output a character
- * model by strokes
- * @lib avkon.lib
- */
-class CTruiHwrBox : public CCoeControl, public MAknInfoPopupNoteObserver
- {
-public:
-
- /* Flags for hwrbox state. HwrBox must be one and only one state */
- enum TBoxState
- {
- /* Already has model but doesn't play the animation */
- EExistModelStop = 0,
- /* Already has model and play the animation */
- EExistModelDraw,
- /* Ready to input an new character model */
- ENewModelStop,
- /* Use is inputting an new character model */
- ENewModelDraw,
- };
-
- enum THwrBoxFlag
- {
- ENoFrameHwrBox = 0x00000000,
- EFrameHwrBox = 0x00000001,
- EReadOnlyHwrBox = 0x00000002,
- EWritableHwrBox = 0x00000004
- };
-
-public:
-
- /**
- * Two-phased constructor.
- * @param aParent the parent control for choice list
- * @param aRect the extent of the control
- * @return Pointer to CTruiHwrBox's instance
- */
- static CTruiHwrBox* NewL( CCoeControl* aParent,
- MTruiHwrBoxObserver* aHwrBoxObserver = NULL,
- MAknsControlContext* aBgContext = NULL );
-
- /**
- * Two-phased constructor.
- * @param aParent the parent control for choice list
- * @param aRect the extent of the control
- * @return Pointer to CTruiHwrBox's instance
- */
- static CTruiHwrBox* NewLC( CCoeControl* aParent,
- MTruiHwrBoxObserver* aHwrBoxObserver = NULL,
- MAknsControlContext* aBgContext = NULL );
-
- /**
- * Destructor
- */
- ~CTruiHwrBox();
-
- /**
- * Periodic Callback function
- * To save the model
- *
- * @param aObject: Transfer the pointer to CTruiHwrBox into this function
- * @return system-wide err code
- */
- static TInt TimeToSaveL( TAny* aObject );
-
- /**
- * Save the new inputting model
- */
- void SaveModelL();
-
- /**
- * Save the new inputting model by manual.
- */
- void SaveModelByManuallyL();
-
- /**
- * Periodic Callback function
- * To draw the next piont in the animation
- *
- * @param aObject: Transfer the pointer to CTruiHwrBox into this function
- * @return system-wide err code
- */
- static TInt TimeToDrawNextL( TAny* aObject );
-
- /**
- * Draw the next piont in the animation
- */
- void DrawNextL();
-
- /**
- * Begin to draw the existing model
- *
- * @param aIsScale ETrue scale points to the fitable size before playing.
- * @param aRefSize The size as the reference coordination for scaling.
- */
- void PlayAnimation( TBool aIsScale = EFalse, const TSize& aRefSize = TSize( 1, 1 ) );
-
- /**
- * clear the existing model
- */
- void ClearExistModel();
-
- /**
- * Set HwrBox observer
- * @param aHwrBoxObserver the observer
- */
- void SetHwrBoxObserver( MTruiHwrBoxObserver* aHwrBoxObserver );
-
- /**
- * Get the Hwrbox's model
- *
- * @return Reference to iPointArrayModel
- */
- RArray<TPoint>& Model();
-
- /**
- * Get the Hwrbox's state
- *
- * @return Current HWR box's state
- */
- TInt BoxState() const;
-
- /**
- * Pause the playing of animation
- */
- void PausePlaying();
-
- /**
- * Resume the playing of animation
- */
- void ResumePlaying();
-
- /**
- * Set guiding line
- *
- * @param aTop The vertical coordinate of top guiding line
- * @param aBottom The vertical coordinate of bottom guiding line
- * @return system-wide err code
- */
- TInt SetGuidingLine( TInt aTop, TInt aBottom );
-
- /**
- * Show trails statically
- *
- * @param aPointArray The points that will be shown in HwrBox
- */
- void ShowTrails( const RArray<TPoint>& aPointArray,
- TBool aIsScale = EFalse,
- const TSize& aRefSize = TSize( 1, 1 ) );
-
- /**
- * Show tooltip
- *
- * @param aText The tooltip tex.
- * @param aPosition The tooltip's location.
- * @param aBeforeTimeout The time internal that will popup tooltip
- * @param aInViewTimeout The time internal that will hide tooltip
- */
- void ShowTooltipL( const TDesC& aText,
- const TPoint& aPosition,
- const TInt aBeforeTimeout,
- const TInt aInViewTimeout );
-
- /**
- * Set the position for tooltip
- *
- * @param aPosition The tooltip's location.
- */
- void SetTooltipPosition( const TPoint& aPosition );
-
- /**
- * Hide tooltip
- *
- */
- void HideInfoPopupNote();
-// From CCoeControl
-
- /**
- * From CCoeControl. Handles key events.
- * @param aKeyEvent the key event
- * @param aType The type of key event
- * @return Indicates whether or not the keyevent was used by this control
- */
- TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
-
- /**
- * From CCoeControl. Draws control to given area
- * @param aRect The rectangle that should be drawn by the control.
- */
- void Draw( const TRect& aRect ) const;
-
- /**
- * Draw character model
- */
- void DrawModel();
-
- /**
- * Set box state from outside
- *
- * @param aReady ture means model is loaded
- * false means no model is loaded
- */
- void ModelIsReady( TBool aReady = ETrue );
-
- TRect DrawableRect() const;
-
- inline void SetHwrBoxFlag( TUint aFlag )
- {
- iFlag = aFlag;
- };
-
- /**
- * Set flag to indicate if draw bottom guideline
- *
- * @param aBottomGuideLineDisplay ETrue means draw bottom guideline
- */
- inline void SetDisplayBottomGuideLine( TBool aBottomGuideLineDisplay )
- {
- iBottomGuideLineDisplay = aBottomGuideLineDisplay;
- };
-
- /**
- * Set flag to indicate if draw top guideline
- *
- * @param aTopGuideLineDisplay ETrue means draw bottom guideline
- */
- inline void SetDisplayTopGuideLine( TBool aTopGuideLineDisplay )
- {
- iTopGuideLineDisplay = aTopGuideLineDisplay;
- };
-
- /**
- * Set editing mode to readonly or writable
- *
- * @param aReadOnly ETrue means hwrbox is readonly
- * EFalse means hwrbox is loaded
- */
- void SetHwrBoxReadOnly( TBool aReadOnly );
-
-// from CCoeControl
-
- /**
- * From CCoeControl. Handles pointer events
- * @param aPointerEvent the pointer event be be handled.
- */
- void HandlePointerEventL( const TPointerEvent& aPointerEvent );
-
-protected:
-
-
- /**
- * From CoeControl.
- * Responds to changes to the size and position of the contents of this control.
- */
- void SizeChanged();
-
- /**
- * Handles a change to the control's resources.
- *
- * @param aType A message UID value.
- */
- void HandleResourceChange( TInt aType );
-
- /**
- * Handle focus changed
- *
- */
- void FocusChanged( TDrawNow aDrawNow );
-
-private:
-
- /**
- * C++ Default Constructor
- */
- CTruiHwrBox();
-
- /**
- * 2nd phase constructor
- * @param aParent the parent control for choice list
- * @param aRect the extent of the control
- */
- void ConstructL( CCoeControl* aParent,
- MTruiHwrBoxObserver* aHwrBoxObserver = NULL,
- MAknsControlContext* aBgContext = NULL );
-
- /**
- * Check if the point is contained in drawing area
- *
- * @param aPoint The point which to be checked
- * @return ETrue: The point is in drawing area
- * EFalse: The point isn't in drawing area
- */
- TBool IsContained( const TPoint& aPoint ) const;
-
- /**
- * Adjust shortcut model's point to fit the popup hwr box.
- * @param aOriginSize Origin size of which input character model.
- * @param aRealSize Real popup hwr box's size.
- * @param aModel The model to be adjuested.
- */
- void ScaleModel( const TSize& aOriginSize,
- const TSize& aRealSize,
- RArray<TPoint>& aModel );
-
- /**
- * Draws all points.
- */
- void DrawTrails( CWindowGc& aGc ) const;
-
- /**
- * Set context for this control.
- *
- * @param aGc Handle for CWindowGc
- */
- void PrepareContext( CWindowGc& aGc ) const;
-
- /**
- * Load bitmaps for border.
- *
- */
- void LoadBorderBitmapsL();
-
- /**
- * Load bitmaps for shadows.
- *
- */
- void LoadShadowBitmapsL();
-
- /**
- * Load bitmaps for guidelines.
- *
- */
- void LoadGuideLineBitmapsL();
-
- /**
- * Load layouts for borders from LAF.
- *
- * @param aVarity Varity for LAF
- */
- void LoadBorderLayout( TInt aVarity );
-
- /**
- * Load layouts for shadows from LAF.
- *
- * @param aVarity Varity for LAF
- */
- void LoadShadowLayout( TInt aVarity );
-
- /**
- * Load layouts for guidelines from LAF.
- *
- * @param aVarity Varity for LAF
- */
- void LoadGuideLineLayout( TInt aVarity );
-
- /**
- * Draw borders.
- *
- */
- void DrawBorders( CWindowGc& aGc ) const;
-
- /**
- * Draw shadows.
- *
- */
- void DrawShadows( CWindowGc& aGc ) const;
-
- /**
- * Draw guideliens.
- *
- */
- void DrawGuideLines( CWindowGc& aGc ) const;
-
-// From MAknInfoPopupNoteObserver
- /**
- * Handles events reported from info popup note.
- * @param aController The controller that controls the note, from
- * where the event originates.
- * @param aEvent The event.
- */
- void HandleInfoPopupNoteEvent( CAknInfoPopupNoteController* aController,
- TAknInfoPopupNoteEvent aEvent );
-
-private: // data
-
- /**
- * When this timer time out, the inputting of new character is over.
- * Own.
- */
- CPeriodic* iTimeToSave;
-
- /**
- * To control drawing speed
- * Own.
- */
- CPeriodic* iTimeToDrawNext;
-
- /**
- * Contain the points need to be drawn on screen
- * Own
- */
- RArray<TPoint> iPointArrayDraw;
-
- /**
- * Contain the character model points
- * Own
- */
- RArray<TPoint> iPointArrayModel;
-
- /**
- * Current control state
- */
- TBoxState iBoxState;
-
- /**
- * Observe user's input
- * Not own
- */
- MTruiHwrBoxObserver* iHwrBoxObserver;
-
- /**
- * Use this attribute to count the last animated point
- * zero implies the first point
- */
- TInt iLastAnimatedPoint;
-
- /**
- * Guideline top left point
- */
- TPoint iGuideLineTopL;
-
- /**
- * Guideline top right point
- */
- TPoint iGuideLineTopR;
-
- /**
- * Guideline bottom left point
- */
- TPoint iGuideLineBottomL;
-
- /**
- * Guideline bottom right point
- */
- TPoint iGuideLineBottomR;
-
- /**
- * Indicate pen position
- */
- TBool iPenInRect;
-
- /**
- * Flag of training box.
- */
- TUint iFlag;
-
- /**
- * Component used to show tooltip
- * Own.
- */
- CAknInfoPopupNoteController* iTooltip;
-
- /**
- * Check if draw bottom guideline.
- */
- TBool iBottomGuideLineDisplay;
-
- /**
- * Check if draw bottom guideline.
- */
- TBool iTopGuideLineDisplay;
-
- /**
- * Pointer array to store pointers to bitmaps of borders
- *
- * Own
- */
- RPointerArray<CFbsBitmap> iBorderBitmaps;
-
- /**
- * Pointer array to store pointers to mask bitmaps of borders
- *
- * Own
- */
- RPointerArray<CFbsBitmap> iBorderBitmapMasks;
-
- /**
- * Array to store pointers to TAknLayoutRect for borders
- *
- * Own
- */
- RArray<TAknLayoutRect> iBorderLayout;
-
-
- /**
- * Pointer array to store pointers to bitmaps of shadows
- *
- * Own
- */
- RPointerArray<CFbsBitmap> iShadowBitmaps;
-
- /**
- * Pointer array to store pointers to mask bitmaps of shadows
- *
- * Own
- */
- RPointerArray<CFbsBitmap> iShadowBitmapMasks;
-
- /**
- * Array to store pointers to TAknLayoutRect for shadows
- *
- * Own
- */
- RArray<TAknLayoutRect> iShadowLayout;
-
- /**
- * Pointer array to store pointers to bitmaps of guideline
- *
- * Own
- */
- RPointerArray<CFbsBitmap> iGuideLineBitmaps;
-
- /**
- * Pointer array to store pointers to mask bitmaps of guideline
- *
- * Own
- */
- RPointerArray<CFbsBitmap> iGuideLineBitmapMasks;
-
- /**
- * Array to store pointers to TAknLayoutRect for guidelines
- *
- * Own
- */
- RArray<TAknLayoutRect> iGuideLineLayout;
-
- /**
- * Rect of drawable for trails;
- *
- */
- TRect iDrawabelRect;
-
- /**
- * Color of pen;
- *
- */
- TRgb iPenColor;
-
-
- CAknsBasicBackgroundControlContext* iBgContext;
-
- TBool iStartSave;
- };
-
-#endif // TRAININGUIHWRBOX_H
-
-// end of file
-