diff -r 000000000000 -r eb1f2e154e89 textinput/peninputhwrtrui/inc/truishortcutscontainer.h --- /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 +#include +#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 +