diff -r 000000000000 -r eb1f2e154e89 textinput/peninputhwrfscn/inc/peninputhwrfscnlayout.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textinput/peninputhwrfscn/inc/peninputhwrfscnlayout.h Tue Feb 02 01:02:04 2010 +0200 @@ -0,0 +1,405 @@ +/* +* 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 __PENINPUTHWRFSCNLAYOUT_H__ +#define __PENINPUTHWRFSCNLAYOUT_H__ + +//FEP INCLUDES +#include "peninputfullscrlayoutbase.h" + +const TInt KControlButtonSize = 30; + +//FORWARD CLASS +class CPeninputHwrfscnStateManager; +class CPeninputHwrfscnDataStore; +class CPeninputHwrfscnCandidatePanel; +class CPeninputHwrfscnControlBar; +class CPeninputHwrfscnWritingBox; + +/** +* Class CPeninputHwrfscnLayout. +* Chinese full screen handwriting ui layout class. +* +* +* @since Series 60 5.0 +*/ + +class CPeninputHwrfscnLayout : public CPenInputFullScreenLayoutBase +{ +public: + /** + * The factory function + * + * @since Series 60 5.0 + * @param aLayoutOwner The MLayoutOwner + * @param aInitData Init data for layout + * @return Pointer to created CPeninputHwrfscnLayout object + */ + static CPeninputHwrfscnLayout* NewL( MLayoutOwner* aLayoutOwner, + const TAny* aInitData ); + +public://from CFepUiLayout + /** + * From CFepUiLayout. + * Handle layout command event + * + * @since Series 60 5.0 + * @param aCmd Command Id. + * @param aData Data for command. + * @return Errors when return value small than 0. + */ + TInt HandleCommand( TInt aCmd,TUint8* aData ); + + /** + * From CFepUiLayout. + * Inform layout the size changing event + * + * @since Series 60 5.0 + * @param pData The event data. + * @return KErrNone if successfully size changing. + */ + TInt SizeChanged( const TAny* pData ); + + /** + * From CFepUiLayout. + * Handle editor text coming + * Called by animation dll when app editor text is coming. + * If a ui layout has a editor area, it must implements this function to get the text + * + * @since Series 60 5.0 + * @param aData The fep input context field data + * @return KErrNone is operation succeeded. + */ + TInt OnAppEditorTextComing( const TFepInputContextFieldData& aData ); + + /** + * Return the peninput ui type + * + * @since Series 60 5.0 + * @return The ui type @see TPenInputUiType + */ + TInt PenInputType(); + +public://from MEventObserver; + /** + * From MEventObserver, handle control event. + * + * + * @since Series 60 5.0 + * @param aEventType The event type + * @param aCtrl The control who sends the event + * @param aEventData The event data + */ + void HandleControlEvent( TInt aEventType, + CFepUiBaseCtrl* aCtrl, const TDesC& aEventData ); + + /** + * Get the data stroe + * + * @since Series 60 5.0 + * @return The CPeninputHwrfscnDataStore reference + */ + CPeninputHwrfscnDataStore& DataStore(); + + /** + * Get the candidate panel reference + * + * @since Series 60 5.0 + * @return The CPeninputHwrfscnCandidatePanel reference + */ + CPeninputHwrfscnCandidatePanel& CandidatePanel(); + + /** + * Replace the char before the cursor in forground app with a new char. + * + * @since Series 60 5.0 + * @param aOldCharCode The old char need to be replaced + * @param aNewCharCode The new char for replacing the old char + */ + void Replace( const TDesC& aOldCharCode, + const TDesC& aNewCharCode ); + + /** + * Submit the buffer to layoutowner. + * + * @param aCharCode The buffer needed to be submitted. + * @since Series 60 5.0 + */ + void SubmitStringToFep( const TDesC& aCharCode ); + + void ClearScreen(); + + CPeninputHwrfscnWritingBox& HwrfscnWritingBox(); + +protected: + /** + * From CFepUiLayout + * OnResourceChange. Inform layout the system resource changed. + * + * @since S60 v4.0 + * @param aType the event type + * @return KErrNone if successfully size changing. + */ + TInt OnResourceChange(TInt aType); +private: + /** + * The panel type + * + * @since Series 60 5.0 + */ + enum TPeninputHwrfscnPanel + { + ENone = 0x0000, + EHwrWndBox = 0x0010, + ECtrlBar = 0x0020, + ECandidatePanel = 0x0040 + }; + +private: + /** + * The constructor + * + * @since Series 60 5.0 + * @param aLayoutOwner The MLayoutOwner pointer. + */ + CPeninputHwrfscnLayout( MLayoutOwner* aLayoutOwner ); + + /** + * The destructor + * + * @since Series 60 5.0 + */ + ~CPeninputHwrfscnLayout(); + + /** + * 2nd phase constructor + * + * @since Series 60 5.0 + * @param aInitData The init data passed by layout engine. + */ + void ConstructL( const TAny* aInitData ); + + /** + * Handle raw key event. Call back function. Called when raw key event happens + * Do nothing in default implementation + * + * @since S60 v5.0 + * @param aKeyEvent Key event + * @return EFalse if the key has not been processed. Otherwise ETrue. + * If key is not processed, it will be passed to CONE's control stack. + */ + TBool HandleRawKeyEventL( const TRawEvent& aKeyEvent ); + + /** + * From CPenInputFullScreenLayoutBase + * + */ + void PreHandleEvent( TEventType aType, + const TRawEvent &aEvent ); + + /** + * Do someting before sending the events to background + * + * @since S60 v5.0 + */ + void BeforeSendingEventsToBackground(); + + /** + * From MFepLayoutBase + * OnDeActivate. Called by owner when the layout is going to be hidden + * + * @since Series 60 5.0 + */ + void OnDeActivate(); + + /** + * Create the control bar + * + * @since Series 60 5.0 + */ + void CreateControlBarL(); + + /** + * Create the candidate panel + * + * @since Series 60 5.0 + */ + void CreateCandidatePanelL(); + + /** + * Create the hwr box window + * + * @since Series 60 5.0 + */ + void CreateHwrWindowL(); + + /** + * Create the state manager + * + * @since Series 60 5.0 + */ + void CreateStateManagerL(); + + /** + * Handle control bar events + * + * @since Series 60 5.0 + * @param aEventType The event type + * @param aCtrl The control who sends the event + * @param aEventData The event data + */ + void HandleControlBarEventL( TInt aEventType, + CFepUiBaseCtrl* aCtrl, + const TDesC& aEventData ); + + /** + * Handle function list events + * + * @since Series 60 5.0 + * @param aEventType The event type + * @param aCtrl The control who sends the event + * @param aEventData The event data + */ + void HandleFunctionListEventL( TInt aEventType, + CFepUiBaseCtrl* aCtrl, + const TDesC& aEventData ); + + /** + * Handle the Hwr Box events and candiate list events. + * + * @since Series 60 5.0 + * @param aEventType The event type + * @param aEventData The event data + */ + void HandleHwrWndEventL( TInt aEventType, const TDesC& aEventData ); + + /** + * Handle the candidate list events. + * + * @since Series 60 5.0 + * @param aEventType The event type + * @param aEventData The event data + */ + void HandleCandidateWndEventL( TInt aEventType, + const TDesC& aEventData ); + + /** + * Notify the candidate and control bar the outside window events. + * + * @since Series 60 5.0 + * @param aPanel Which panel need to be hidden + */ + void NotifyOutsideEventL( TInt aPanel ); + + /** + * Notify the layout owner the primary has changed. + * + * @since Series 60 5.0 + * @param aPrimaryRange The range which will be changed to + */ + void NotifyPrimaryRangeChanged( TInt aPrimaryRange ); + +private: + /** + * The data store + * Own + */ + CPeninputHwrfscnDataStore* iDataStore; + + /** + * The state manager + * Own + */ + CPeninputHwrfscnStateManager* iStateMgr; + + /** + * The candidate panel + * Own + */ + CPeninputHwrfscnCandidatePanel* iCandidatePanel; + + /** + * The control bar panel + * Own + */ + CPeninputHwrfscnControlBar* iControlBar; + + /** + * The full screen hwr box + * Own + */ + CPeninputHwrfscnWritingBox* iFsHwrBox; + + /** + * The resource Id + * + */ + TInt iResId; +}; +#endif //__PENINPUTHWRFSCNLAYOUT_H__ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file