--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputhwrfscn/inc/peninputhwrfscncontrolbar.h Wed Sep 01 12:23:33 2010 +0100
@@ -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 <aknfeppeninputenums.h>
+
+
+#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<TInt> 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