textinput/peninputhwrtrui/inc/truihwrbox.h
changeset 27 694fa80c203c
parent 24 fc42a86c98e3
child 35 0f326f2e628e
--- 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
-