diff -r fc42a86c98e3 -r 694fa80c203c textinput/peninputhwrtrui/inc/truimainviewcontainer.h --- a/textinput/peninputhwrtrui/inc/truimainviewcontainer.h Wed Jun 23 04:57:58 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,439 +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: CTruiMainViewContainer class of TrainingUI -* -*/ - - -#ifndef C_TRUIMAINVIEWCONTAINER_H -#define C_TRUIMAINVIEWCONTAINER_H - -#include "truicontainerbase.h" -#include "truihwrboxobserver.h" - -class CAknButton; -class CAknChoiceList; -class CTruiHwrBox; -class CAknCharMapDialog; -class CAknsBasicBackgroundControlContext; -class CEikLabel; -class CAknPreviewPopUpController; - -const TInt KActiveCharSize = 1; -const TInt KLabelTextLen = 100; -/** - * CTruiMainViewContainer container control - * Used as the component to training ui main view - * - * @code - * iContainer = CTruiMainViewContainer::NewL( ClientRect() ); - * iContainer->SetMopParent( this ); - * AppUi()->AddToStackL( *this, iContainer ); - * @endcode - * - */ -class CTruiMainViewContainer : public CTruiContainerBase, - public MCoeControlObserver, - public MTruiHwrBoxObserver - { -public: - - /** - * Two-phased constructor. - * @param aRect The rectangle that defines the control's extent. - * The rectangle's origin is relative to the origin of its associated window. - * @return Pointer to the component control - */ - static CTruiMainViewContainer* NewL( const TRect& aRect ); - - /** - * Two-phased constructor. - * @param aRect The rectangle that defines the control's extent. - * The rectangle's origin is relative to the origin of its associated window. - * @return Pointer to the component control - */ - static CTruiMainViewContainer* NewLC( const TRect& aRect ); - - /** - * Destructor. - */ - virtual ~CTruiMainViewContainer(); - - /** - * Handles an event from an observed control. - * - * @param aControl The control that sent the event. - * @param aEventType The event type. - */ - void HandleControlEventL( CCoeControl* aControl, TCoeEvent aEventType ); - - /** - * Handles language script changed. - * - * @param aScriptId The selected language script's Id - */ - void HandleLanguageScriptChangedL( TInt aScriptId ); - - /** - * Handles character range changed. - * - * @param aIndex The index of range item in Menu "character range" or choicelist - * @param aRangeId The range Id. - */ - void HandleCharRangeChangedL( TInt aIndex, TInt aRangeId ); - - /** - * Handles choosing an active char from SCT. - * - */ - void HandleChooseCharEventL(); - - /** - * Preview character model - * - */ - void PreviewCharacterModel(); - - /** - * Set current trained character - * - * @param aChar the trained character - */ - void SetCurrentCharL( const TPtrC& aChar ); - - /** - * Clear current model - * - */ - void ClearCurrentModel(); - - /** - * Delete model of current character - * - */ - void DeleteModelL(); - - /** - * Delete all models of current character - * - */ - void DeleteAllModelL(); - - /** - * Check if clear button has been dimmed - * - * @return ETrue: dimmed; EFalse: undimmed - */ - TBool IsButtonDimmed(); - - /** - * Check if all delete button has been dimmed - * - * @return ETrue: dimmed; EFalse: undimmed - */ - TBool IsAllDelete(); - - /** - * Get character set Id, used to choose which characters will be displayed in SCT - * - * @param aRangeId Character range Id for special character table - * - * @return Id of character set. - */ - TInt SctCharacterSetId( TInt aRangeId ); - - /** - * Get cyrillic lower character set Id - * - * @param aInputLanguage Current input language - * - * @return Id of character set. - */ - TInt SctCyrillicLowerCharacterSetId( TLanguage aInputLanguage ); - - /** - * Get cyrillic upper character set Id - * - * @param aInputLanguage Current input language - * - * @return Id of character set. - */ - TInt SctCyrillicUpperCharacterSetId( TLanguage aInputLanguage ); - - /** - * Before exit, do some necessary operation - * - */ - void PrepareToExitL(); - - /** - * Handle size changed - * - * @param aVarity: Use aVarity to load different resulotion's LAF data. - */ - void DoSizeChanged( TInt aVarity ); - -private: - - /** - * Constructor. - */ - CTruiMainViewContainer(); - - /** - * Perform the second phase construction of a CTruiMainViewContainer object. - * - * @param aRect: The rectangle that defines the control's extent. - */ - void ConstructL( const TRect& aRect ); - - /** - * Create controls to be displayed in this container. - * - */ - void InitializeControlsL(); - - /** - * Create label and display it in the container. - * - * @param aResourceID The resource ID - * @param aParent The parent of the control. - * @param aObserver The observer of the control. - * @return The pointer to the label. - */ - CEikLabel* CreateLabelL( const TInt aResourceId, - const CCoeControl* aParent, - MCoeControlObserver* aObserver ); - - /** - * Create choicelist and display it in the container. - * - * @param aParent The parent of the control. - * @param aObserver The observer of the control. - * @param aTextArray The content displayed in the control. - * @param aButton The attached button. - * @return The pointer to the choiclist. - */ - CAknChoiceList* CreateChoiceListL( CCoeControl* aParent, - MCoeControlObserver* aObserver, - CDesCArray* aTextArray, - CAknButton* aButton ); - - /** - * Create HWRBox and display it in the container. - * - * @param aParent The parent of the control. - * @param aObserver The observer of the control. - * @return The pointer to the choiclist. - */ - CTruiHwrBox* CreateHwrBoxL( CCoeControl* aParent, - MTruiHwrBoxObserver* aObserver ); - - /** - * Return button's resourceId by Character Range Id. - * - * @param aRangeId The character range ID. - * @return Reource Id to be used to create button for choicelist. - */ - TInt ButtonResourceId( TInt aRangeId ) const; - - /** - * Pop Sct dialog - * - * @param aCharCase Character case for special character table - * - * @param aSpecialChar Reference to the buffer where selected special characters are put. - * @param aCharSetResourceId The resource ID of special character table - * @return Id of the button used to dismiss dialog. - * - */ - TInt PopupSctDialogL( TInt aCharCase, TDes& aSpecialChars, TInt aCharSetResourceId ); - - /** - * Popup information note - * - * @param aText The text to be displayed in CAknInformationNote. - */ - void PopupInformationNoteL( const TDesC& aText ); - - /** - * Adjust special behavior characters to displayable characters. - * @param aResult Return result for adjustment. - * - */ - void AdjustDisplayChars( TDes& aResult ); - - /** - * From CoeControl. - * Handles key event. - * - * @param aKeyEvent The key event. - * @param aType The type of key event: EEventKey, EEventKeyUp or EEventKeyDown. - * @return Indicates whether or not the key event was used by this control. - */ - TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType ); - - /** - * GetHelpContext() - * Identify the help context so that the framework can look up - * the corresponding help topic - * @param aContext Returns the help context - */ - void GetHelpContext( TCoeHelpContext& aContext ) const; - - /** - * From CoeControl. - * Responds to changes to the size and position of the contents of this control. - */ - void SizeChanged(); - - /** - * From CoeControl. - * Responds to a change in focus. - * - * @param aRect Contains the value that was passed to it by SetFocus(). - */ - void FocusChanged( TDrawNow aDrawNow ); - - /** - * From CoeControl. - * Draws the container. - * - * @param aRect The region of the control to be redrawn. Co-ordinates are relative to the control's origin (top left corner). - */ - virtual void Draw( const TRect& aRect ) const; - - /** - * From CoeControl. - * Handles a change to the control's resources. - * - * @param aType A message UID value. - */ - void HandleResourceChange( TInt aType ); - - void HandlePointerEventL(const TPointerEvent& aPointerEvent); - -// From MTruiHWRBoxObserver - /** - * From MTruiHWRBoxObserver. - * Input times out - * Handle the save model event - */ - void SaveNewModelL(); - - /** - * From MTruiHWRBoxObserver. - * HandleEventL - * Handle the message event from the HWRBox - * @param aMessage According to the aMessage to handle the event - */ - void HandleEventL( TMessageType aMessage ); - -private: // data - - /** - * The current trained character - */ - TBuf iCurrentChar; - - /** - * The current tip of training character - */ - HBufC* iLabeltext; - - /** - * Store the wrapped text to indicate which character is being trained. - * - * Own - */ - HBufC* iWrappedLabelText; - - /** - * This text helps a user understand that he / she is - * teaching his / her own character models to HWR engine - * Not own - */ - CEikLabel* iLabel; - - /** - * The Clear button in toolbar, used to clean up the Writing Box - * Not own - */ - CAknButton* iClearBtn; - - /** - * The preview button in toolbar - * Not own - */ - CAknButton* iPreviewBtn; - - /** - * The button currently associated with choicelist. - * Not own - */ - CAknButton* iCurChoiceListBtn; - - /** - * Left buttons allow quick access to the previous character - * in the selected character range. - * Not own - */ - CAknButton* iLeftBtn; - - /** - * Indicates which character is currently selected. - * Not own - */ - CEikLabel* iIindicator; - - /** - * Right buttons allow quick access to the Next character - * in the selected character range. - * Not own - */ - CAknButton* iRightBtn; - - /** - * ChoiceList is used for switching between character ranges. - * Not own - */ - CAknChoiceList* iChoicelist; - - /** - * The Writing Box is used for drawing a character model. - * Not own - */ - CTruiHwrBox* iHwrBox; - - /** - * Pointer to background - * Own - */ - CAknsBasicBackgroundControlContext* iBackGround; - - /** - * Rect of parent pane of label - */ - TRect iLabelPaneRect; - - /** - * MultiLineTextLayout of Label - */ - TAknMultiLineTextLayout iMultilineLayout; - - RArray iLineWidthArray; - }; - -#endif // C_TRUIMAINVIEWCONTAINER_H -