diff -r 000000000000 -r eb1f2e154e89 textinput/peninputhwrfscn/inc/peninputhwrfscncontrolbar.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textinput/peninputhwrfscn/inc/peninputhwrfscncontrolbar.h Tue Feb 02 01:02:04 2010 +0200 @@ -0,0 +1,629 @@ +/* +* Copyright (c) 2005-2006 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: Implementation for chinese peninput full screen hwr +* +*/ + + +#ifndef __PENINPUTHWRFSCNCONTROLBAR_H__ +#define __PENINPUTHWRFSCNCONTROLBAR_H__ + +#include + + +#include "peninputhwrfscnbasepanel.h" +#include "peninputbutton.h" +#include "peninputrepeatbutton.h" +#include "peninputmultiimagebutton.h" +#include "peninputlayoutlatchbutton.h" +#include "peninputhwrfscnfunctionpanel.h" +#include "peninputlayoutctrlgroup.h" + +class CPeninputLayoutInputmodelChoice; +class CAknFepCtrlCommonButton; +/** +* Class CPeninputHwrfscnControlBar +* +* Define the control bar panel and contain controlbar buttongroup and function panel +* +* @lib peninputhwrfscn.lib +* @since S60 v5.0 +*/ +class CPeninputHwrfscnControlBar : public CPeninputHwrfscnBasePanel + { +public: + /** + * The factory function + * + * @since Series 60 5.0 + * @param aLayout The Full screen layout + * @return Pointer to created CPeninputHwrfscnControlBar object + */ + static CPeninputHwrfscnControlBar* NewL( CPeninputHwrfscnLayout* aLayout ); + + /** + * The destructor function + * + * @since Series 60 5.0 + */ + ~CPeninputHwrfscnControlBar(); + +public:// From base class + + /** + * From CPeninputHwrfscnBasePanel + * Show controls + * + * @since Series 60 5.0 + * @param aVisible Show or hide + */ + void Show( TBool aVisible ); + + /** + * From CPeninputHwrfscnBasePanel + * Draw + * + * @since Series 60 5.0 + */ + virtual void Draw(); + + /** + * Handle control's event + * + * @since Series 60 5.0 + * @param aEventType Event type + * @param aCtrl Event source + * @param aEventData event data + */ + virtual void HandleControlEvent( TInt aEventType, + CFepUiBaseCtrl* aCtrl, + const TDesC& aEventData ); + + /** + * Handle layout command + * + * @since Series 60 5.0 + * @param aCommand command type + * @param aData Event data + */ + virtual void HandleCommand( TInt aCommand, TUint8* aData ); + + /** + * From CPeninputHwrfscnBasePanel + * Check if the property could be changed before changing it. + * + * @since S60 v5.0 + * @param aProperty One of @see TPeninputHwrfscnProperty changed + * @return TBool ETrue if the property needed to be changed, EFalse otherwise + */ + virtual TBool BeforePropertyChangedL( + MPeninputHwrfscnPropertySubscriber::TPeninputHwrfscnProperty aProptery); + + /** + * From CPeninputHwrfscnBasePanel + * Notify the property subscriber the property changed. + * + * @since S60 v5.0 + * @param aProperty One of @see TPeninputHwrfscnProperty changed + */ + virtual void PropertyChangedL( + MPeninputHwrfscnPropertySubscriber::TPeninputHwrfscnProperty aProptery); + + + /** + * From CPeninputHwrfscnBasePanel + * Handle size changed. + * + * @since S60 v5.0 + */ + void SizeChanged(); + + /** + * + * Handle skin changed. + * + * @since S60 v5.0 + */ + void HandleSkinChanged(); + + /** + * + * Set enable setting button. + * + * @since S60 v5.0 + * @param aEnable + */ + void SetEnableSettingBtn(TBool aEnable); + +private: + /** + * The latch picture index + */ + enum TLatchPicIndex + { + ELatchPicError = -1, + ELatchPicMoreFunc = 0, + ELatchPicChineseButton, + ELatchPicEnglishButton, + ELatchPicNumberButton, + ELatchPicCount + }; + + /** + * Save the latched and unlatche pictures pointers + */ + struct TLatchedPic + { + CFbsBitmap* iSvgLatchedBMP; + CFbsBitmap* iSvgUnLatchedBMP; + }; + +private: + /** + * The constructor + * + * @since Series 60 5.0 + * @param aLayout The layout pointer. + */ + CPeninputHwrfscnControlBar( CPeninputHwrfscnLayout* aLayout ); + + /** + * 2nd phase constructor + * + * @since Series 60 5.0 + */ + void ConstructL(); + + /** + * From CPeninputHwrfscnBasePanel + * Handle laf (Look and feel) changed + * + * @since S60 v5.0 + */ + void LafChanged(); + + /** + * Handle control's button up event + * + * @since Series 60 5.0 + * @param aEventType Event type + * @param aCtrl Event source + * @param aEventData event data + */ + void OnControlEvent_ButtonUp( + TInt aEventType, + CFepUiBaseCtrl* aCtrl, + const TDesC& aEventData ); + + /** + * Handle control's button down event + * + * @since Series 60 5.0 + * @param aEventType Event type + * @param aCtrl Event source + * @param aEventData event data + */ + void OnControlEvent_ButtonDown( + TInt aEventType, + CFepUiBaseCtrl* aCtrl, + const TDesC& aEventData ); + + /** + * Create close button group + * + * @since Series 60 5.0 + */ + void CreateCloseBtnL( ); + + /** + * Create option button group + * + * @since Series 60 5.0 + */ + void CreateOptionBtnL( ); + + /** + * Create vkb switcher button group + * + * @since Series 60 5.0 + */ + void CreateVkbSwitcherBtnL( ); + + /** + * Create Range switch button group + * + * @since Series 60 5.0 + */ + void CreateRangeSwitchBtnGroupL(); + + /** + * Create Range switch cover button group + * + * @since Series 60 5.0 + */ + void CreateRangeSwitchCoverBtnGroupL(); + + /** + * Create more function button + * + * @since Series 60 5.0 + */ + void CreateMoreFuncBtnL(); + + /** + * Create more function panel + * + * @since Series 60 5.0 + */ + void CreateMoreFuncPanelL(); + + /** + * Create backspace function button + * + * @since Series 60 5.0 + */ + void CreateBackSpaceBtnL(); + + /** + * Create latched button + * + * @since Series 60 5.0 + * @param aRect button rectangle + * @param aCtrlId control ID + * @param aLatchedPicID latched picture ID + * @param aUnLatchedID unlatched picture ID + * @return newly created button + */ + CAknFepCtrlCommonButton* CreateLatchedBtnLC( const TRect aRect, + TInt aCtrlId, + TInt aLatchedPicID, + TInt aUnLatchedID ); + + /** + * Create latched button + * + * @since Series 60 5.0 + * @param aRect button rectangle + * @param aCtrlId control ID + * @param aResID resource ID + * @return newly created button + */ + CAknFepCtrlCommonButton* CreateNormalBtnLC( const TRect aRect, + TInt aCtrlId, + TInt aResID ); + + /** + * Close Range switch list + * + * @since Series 60 5.0 + */ + void CloseRangeSwitchList(); + + /** + * Hide cover range swith buttons + * + * @since Series 60 5.0 + */ + void HideCoverRangeSwitchBtns(); + + /** + * Hide range swith buttons + * + * @since Series 60 5.0 + */ + void HideRangeSwitchBtns( TBool aHide ); + + /** + * Set active cover range button + * + * @since Series 60 5.0 + */ + void SetActiveCoverRangeBtn(); + + /** + * Remove all buttons on range and cover range list + * + * @since Series 60 5.0 + */ + void RemoveAllSwitchBtns(); + + /** + * Set the range switch buttons to be latched + * + * @since Series 60 5.0 + */ + void ShowRangeSwitchBtnsLatched(); + + /** + * Open Range switch list + * + * @since Series 60 5.0 + */ + void OpenRangeSwitchList(); + + /** + * Switch more function list + * + * @since Series 60 5.0 + * @param aShowNow ETrue if the function panel need be shown or EFalse otherwise + */ + void ShowMoreFuncList( TBool aShowNow ); + + /** + * Click is in the Range switch group + * + * @since Series 60 5.0 + * @param aCtrl event source control + */ + TBool ClickIsInRangeSwitchGrp( CFepUiBaseCtrl* aCtrl ); + + /** + * Update Range swtich list + * + * @since Series 60 5.0 + */ + void UpdateRangeSwitchL(); + + /** + * Update convered Range swtich list + * + * @since Series 60 5.0 + */ + void UpdateCoverRangeSwitchL(); + + /** + * Update convered Range swtich without mark picture + * + * @since Series 60 5.0 + */ + void UpdateWithoutMarkL(); + + /** + * Update convered Range swtich with mark picture + * + * @since Series 60 5.0 + */ + void UpdateWithMarkL(); + + /** + * Get current active Range + * + * @since Series 60 5.0 + */ + TInt ActiveRangeIndex(); + + /** + * Update current active Range list + * + * @since Series 60 5.0 + */ + void UpdateCurrentActiveRangeList(); + + /** + * Update current active Range + * + * @since Series 60 5.0 + */ + void UpdateCurrentActiveRange(); + + /** + * Get event type by the control ID + * + * @since Series 60 5.0 + * @param aCtrlId control ID + * @return Event type + */ + TInt EventTypeByCtrlId(TInt aCtrlId); + + /** + * Get Latched pic pointer based on the control ID + * + * @since Series 60 5.0 + * @param aCtrlId control ID + * @param aIndex The latched picture index + */ + void GetLatchedIndexByCtrlID( TInt aCtrlID, TLatchPicIndex& aIndex ); + + /** + * Read LAF information + * + * @since Series 60 5.0 + */ + void ReadLAFInfo(); + + /** + * Reset Cover Range switch button size + * + * @since Series 60 5.0 + */ + void ResetCoverRangeSwitchSize(); + + /** + * Reset Range switch button size + * + * @since Series 60 5.0 + */ + void ResetRangeSwitchSize(); + + /** + * Reset More function button size + * + * @since Series 60 5.0 + */ + void ResetMoreFuncBtnSize(); + + /** + * Reset back space button size + * + * @since Series 60 5.0 + */ + void ResetBackSpaceBtnSize(); + + /** + * Reset close, option, vkbswitcher button size + * + * @since Series 60 5.0 + */ + void ResetControlBarBtnSize( ); + + /** + * Get more cover Range switch button rectangle + * + * @since Series 60 5.0 + * @return cover Range switch button rectangle + */ + TRect CoverRangeSwitchRect(); + + /** + * Get more Range switch buttons rectangle + * + * @since Series 60 5.0 + * @return Range switch buttons rectangle + */ + TRect RangeSwitchBtnRect(TInt aIndex); + + /** + * Get more function button rectangle + * + * @since Series 60 5.0 + * @return more function button rectangle + */ + TRect MoreFuncBtnRect(); + + /** + * Get back space button rectangle + * + * @since Series 60 5.0 + * @return back space button rectangle + */ + TRect BackSpaceBtnRect(); + + /** + * Get back space button rectangle + * + * @since Series 60 5.0 + * @return back space button rectangle + */ + TRect ControlBarBtnRect( TInt aIndex ); + +private: + enum TPeninputHwrfscnControlBarGrp + { + //This definition is used for more function btn + ECloseBtn = 0, + EOptionBtn, + EVkbSwitcherBtn, + EControlBarBtnCount + }; + + +private: + /** + * The function panel pointer + * Own + */ + CPeninputHwrfscnFunctionPanel* iFunctionPanel; + + /** + * Back space button + * Not own + */ + CAknFepCtrlRepeatButton* iBackSpaceBtn; + + /** + * More function button + * Not own + */ + CAknFepCtrlCommonButton* iMoreFuncBtn; + + /** + * Range switch button group + * Not own + */ + CControlGroup* iRangeSwitchBtnGroup; + + /** + * Cover Range switch button group + * Not own + */ + CControlGroup* iCoverRangeSwitchBtnGroup; + + /** + * Close button + * Not own + */ + CAknFepCtrlEventButton* iCloseBtn; + + /** + * Option button + * Not own + */ + CAknFepCtrlEventButton* iOptionBtn; + + /** + * Vkb switcher button + * Not own + */ + CAknFepCtrlEventButton* iVkbSwitcherBtn; + + /** + * Pen input mode switcher (own) + */ + CPeninputLayoutInputmodelChoice* iInputModeSwitch; + + /** + * Range switch list shown or not + */ + TBool iRangeSwitchExpanded; + + /** + * Current active Range + */ + TAknFepPenInputRange iCurrentActiveRange; + + /** + * Current Range list + * Own + */ + RArray iCurrentRangeList; + + /** + * Latch pictures + */ + TLatchedPic iLatchedBtnPic[ELatchPicCount]; + + /** + * Button width + */ + TInt iUnitWidth; + + /** + * Button height + */ + TInt iUnitHeight; + + /** + * background window for close,option,switch button + * not own. + */ + CControlGroup* iBkgndWnd1; + + /** + * background window for more,backspace button. + * not own. + */ + CControlGroup* iBkgndWnd2; + }; + +#endif //__PENINPUTHWRFSCNCONTROLBAR_H__ \ No newline at end of file