--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputhwrtrui/inc/truimainviewcontainer.h Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,439 @@
+/*
+* 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<KActiveCharSize> 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<TInt> iLineWidthArray;
+ };
+
+#endif // C_TRUIMAINVIEWCONTAINER_H
+