textinput/peninputhwrtrui/inc/truishortcutscontainer.h
changeset 0 eb1f2e154e89
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputhwrtrui/inc/truishortcutscontainer.h	Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,319 @@
+/*
+* 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:  CTruiShortcutsContainer class of TrainingUI
+*
+*/
+
+
+#ifndef C_TRUISHORTCUTSCONTAINER_H
+#define C_TRUISHORTCUTSCONTAINER_H
+
+#include <eiklbo.h>
+#include <AknPreviewPopUpObserver.h>
+#include "truicontainerbase.h"
+
+class CEikButtonGroupContainer;
+class CAknSingleGraphicStyleListBox;
+class CTruiHwrBox;
+class CAknPreviewPopUpController;
+
+/**
+ *  CTruiShortcutsContainer container control
+ *  Used as the component to shortcut main view
+ *
+ *  @code
+ *      iContainer = CTruiShortcutsContainer::NewL( ClientRect() );
+ *      iContainer->SetMopParent( this );
+ *      AppUi()->AddToStackL( *this, iContainer );
+ *  @endcode
+ *
+ */
+class CTruiShortcutsContainer : public CTruiContainerBase,
+                                public MEikListBoxObserver,
+                                public MAknPreviewPopUpObserver
+    {
+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 CTruiShortcutsContainer* 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 CTruiShortcutsContainer* NewLC( const TRect& aRect );
+
+    /**
+     * Destructor.
+     */
+    virtual ~CTruiShortcutsContainer();
+
+    /**
+     * Popup the TextSettingPage and added the new shortcut to ListBox.    
+     */    
+    void AddShortcutL();
+    
+    /**
+     * Delete shortcut.    
+     */
+    void DeleteShortcutL();
+    
+    /**
+     * Mark shortcut.    
+     */
+    void MarkShortcutL();
+    
+    /**
+     * Unmark shortcut.    
+     */
+    void UnmarkShortcutL();
+    
+    /**
+     * Return currently selected item's index.
+     *
+     * @return Currently selected item's index. 
+     */
+    TInt CurrentItemIndex();
+
+    /**
+     * Test if the currently selected index is marked.
+     *
+     * @param aSelectedIndex: Current selected item's index
+     * @return ETrue if the item is marked. EFalse if it is not marked. 
+     */    
+    TBool IsMarked( TInt aSelectedIndex );
+     
+    /**
+     * Return the count of being marked currently.
+     *     
+     * @return The count of being marked. 
+     */    
+    TInt MarkCount();
+    
+    /**
+     * Edit shortcut
+     * @param aOnlyEditText ETrue : Only edit shortcut text.
+     *                      EFalse : Only edit shortcut model.
+     */
+    void EditShortcutL( TBool aOnlyEditText = EFalse );
+        
+    
+    /**
+     * Check if reset introduction
+     * 
+     * @return ETrue: Reset introcudtion
+     *         EFalse: Do not.
+     */
+    TBool IsResetIntroduction();
+
+    /**
+     * Reset introduction
+     * 
+     */
+    void ResetIntroductionL();
+    
+    /**
+     * Set flag to indicate popup window being displayed.
+     *
+     * @param aDisplayPopupWindow ETrue : Displaying.
+     *                            EFalse : Not displaying.
+     */
+    inline void SetDisplayPopupWindow( TBool aDisplayPopupWindow )
+        {
+        iDisplayPopupWindow = aDisplayPopupWindow;
+        };
+
+// from MEikListBoxObserver
+    /**
+     * Observer callback from the listbox
+     * @param aListBox  ptr to listbox that is calling the method  
+     * @param aEventType  type of event; defined by MEikListBoxObserver 
+     */
+    void HandleListBoxEventL( CEikListBox* aListBox, TListBoxEvent aEventType );
+
+// from CCoeControl
+    /**
+     * 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;
+           
+private:
+    
+   /**
+    * Constructor.
+    */
+    CTruiShortcutsContainer();
+
+   /**
+    * 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();       
+    
+    /**
+     * Delete shortcut from ListBox.     
+     */    
+    void DeleteItemsL();
+    
+    /**
+     * Create preview popup controller to show popup hwrbox.       
+     */ 
+    CAknPreviewPopUpController* CreatePopupHwrBoxL();
+    
+    /**
+     * Popup HWR box
+     * @param aPosition The position to display HWR box
+     * @param aShowDelay The delay time interval before being shown.
+     * @param aHideDelay The delay time interval after which to hide tooltip.     
+     */ 
+    void PopupHwrBoxL( const TPoint& aPosition, 
+                       const TTimeIntervalMicroSeconds32& aShowDelay,
+                       const TTimeIntervalMicroSeconds32& aHideDelay );        
+    /**
+     * Preview shortcut model in popup hwrbox.
+     * @param aShortcutText The shortcut to be previewed
+     */ 
+    void PreviewShortcutModelL( const TDesC& aShortcutText, TInt aIndex );
+                          
+   /**
+    * Check if need to preview shortcut and perform previewing necessarily.
+    *
+    * @param aIndex To stand for which item of the listbox
+    * @return ETrue : Preview shortcut model. EFalse : Don't preview it.
+    */    
+    TBool CheckAndPreviewShortcutModelL( TInt aIndex );
+    
+   /**
+    * Update buttons' status in toolbar.
+    *
+    * @param aIndex To stand for which item of the listbox.
+    */
+    void UpdateToolbarButtonStatus( TInt aIndex );
+
+    /**
+     * Create ListBox
+     */
+    void CreateListBoxL();
+    
+    /**
+     * Setup text data for listbox
+     */    
+    void LoadTextArrayL( const CDesCArray* aTextArray );
+    
+    /**
+     * Handle event when listbox change to another focused item.
+     */
+    void HandleListBoxFocusChangedL( TInt aIndex );    
+
+    /**
+     * Popup context menu.
+     * @param aResourceId The resource Id of the context menu.
+     */
+    void PopupContextMenuL( TInt aResourceId );
+    
+    /**
+     * Get position relative to screen origin for popup window.
+     * @param aIndex The index of item from which pop up.
+     */
+    TPoint PopupWindowPosition( TInt aIndex );
+       
+// from MAknPreviewPopUpObserver
+    /**    
+    * Called by the preview popup when an appropriate event takes place. 
+    * @param aController Pointer to the sender of the event.
+    * @param aEvent Event type.
+    */
+    void HandlePreviewPopUpEventL(
+          CAknPreviewPopUpController* aController, TPreviewPopUpEvent aEvent );
+
+// from CoeControl.   
+    /**     
+     * Responds to changes to the size and position of the contents of this control.
+     */
+    void SizeChanged();
+    
+    /**     
+     * Responds to a change in focus.
+     * @param aDrawNow Contains the value that was passed to it by SetFocus().
+     */
+    void FocusChanged( TDrawNow aDrawNow );
+    
+    /**     
+     * Handles pointer events.
+     * @param aPointerEvent The pointer event.
+     */
+    void HandlePointerEventL( const TPointerEvent& aPointerEvent );
+       
+private: // data
+        
+    /**
+     * list box to display all shortcut
+     * Not own
+     */
+    CAknSingleGraphicStyleListBox* iListBox;
+    
+    /**
+     * Pointer to HWR box displayed in popup controller
+     * Own
+     */
+    CTruiHwrBox* iHwrBox;
+
+    /**
+     * Pointer to preview popup used to show tooltip
+     * Own
+     */
+    CAknPreviewPopUpController* iPopupController;
+
+    /**
+     * Check if popup preview when focus changed
+     */
+    TBool iDisplayPopupWindow;
+    
+    TUint iShortcutUnicode;
+    
+    /**
+     * Point of pen down on item.
+     */
+    TPoint iPenDownPoint;
+    };
+
+#endif // C_TRUISHORTCUTSCONTAINER_H
+