diff -r 000000000000 -r eb1f2e154e89 textinput/peninputhwrboxcn/inc/peninputhwrbxlayout.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textinput/peninputhwrboxcn/inc/peninputhwrbxlayout.h Tue Feb 02 01:02:04 2010 +0200 @@ -0,0 +1,384 @@ +/* +* Copyright (c) 2002-2005 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: boxbase hwr layout +* +*/ + + +#ifndef C_CAKNFEPHWRBXLAYOUT_H +#define C_CAKNFEPHWRBXLAYOUT_H + +// INCLUDES +#include +#include + +class CAknFepHwrBxDataStore; +class CAknFepHwrBxWnd; +class CAknFepHwrBxStateBase; +class MLayoutOwner; +class MPenInputModeSwitchInterface; + +/** + * peninputhwrboxcn layout interface implemtation + * + * @lib peninputhwrboxcn.lib + * @since S60 v3.2 + */ +class CAknFepHwrBxLayoutImp : public CFepUiLayoutInterface + { +public: + + /** + * Symbian constructor. + * + * @since S60 v3.2 + * @param aInitParams Init data for layout + * @return Pointer to created CAknFepHwrBxLayoutImp object + */ + static CAknFepHwrBxLayoutImp* NewL(TAny* aInitParams); + + /** + * destructor. + * + * @since S60 v3.2 + * @return None + */ + virtual ~CAknFepHwrBxLayoutImp(); + +//from CFepUiLayoutInterface + + /** + * From CFepUiLayoutInterface. + * Handle layout command event + * + * @since S60 v3.2 + * @param aLayoutOwner The layout owner + * @param aData The data for creating layout + * @return Pointer to created CFepUiLayout object + */ + MPenUiLayoutBase* CreateFepUiLayoutL(MLayoutOwner* aLayoutOwner,const TAny* aData); + +private: + + /** + * C++ default constructor + * + * @since S60 v3.2 + * @return None + */ + CAknFepHwrBxLayoutImp(); + + /** + * Symbian second-phase constructor + * + * @since S60 v3.2 + * @return None + */ + void ConstructL(); + +private:// data + + }; + +/** + * peninputhwrboxcn layout + * + * @lib peninputhwrboxcn.lib + * @since S60 v3.2 + */ +class CAknFepHwrBxLayout : public CFepUiLayout + { +public: + + /** + * Symbian constructor. + * + * @since S60 v3.2 + * @param aLafEnv The LAF enviroment + * @param aInitData Init data for layout + * @return Pointer to created CAknFepHwrBxLayout object + */ + static CAknFepHwrBxLayout* NewL(MLayoutOwner* aLayoutOwner, const TAny* aInitData); + + /** + * destructor. + * + * @since S60 v3.2 + * @return None + */ + virtual ~CAknFepHwrBxLayout(); + + /** + * Get the data store + * + * @since S60 v3.2 + * @return The data store + */ + inline CAknFepHwrBxDataStore* DataStore() const; + + /** + * Get the Ui window + * + * @since S60 v3.2 + * @return The window + */ + inline CAknFepHwrBxWnd* Window() const; + + /** + * Set the current state + * + * @since S60 v3.2 + * @param aState New state + * @return None + */ + void SetCurrentStateL(CAknFepHwrBxStateBase* aState); + + /** + * Send command to open option menu + * + * @since S60 v3.2 + * @return None + */ + void OpenOptionMenu(); + + /** + * Send command to open language switch menu + * + * @since S60 v3.2 + * @return None + */ + void OpenLangSwitchMenu(); + + /** + * Translate if char code is enter or back or space + * + * @since S60 v3.2 + * @param aCharCode The char code + * @return the char code after translation + */ + void TranslateCharCode(TDes& aCharCode); + + /** + * Submit the candidate. + * + * @since S60 v3.2 + * @param aCharCode The char code + * @return None + */ + void SubmitL(const TDesC& aCharCode); + + /** + * Submit the candidate. + * + * @since S60 v3.2 + * @param aOldCharCode The old char code + * @param aNewCharCode The new char code + * @return None + */ + void ReplaceL(const TDesC& aOldCharCode, const TDesC& aNewCharCode); + + /** + * Delete the candidate. + * + * @since S60 v3.2 + * @param aChar The delete key code + * @return None + */ + void Delete(TInt aChar = EKeyBackspace); + + /** + * Set Layout position + * + * @since S60 v3.2 + * @return None + */ + void SetLayoutPositionL(); + +//from CFepUiLayout + + /** + * From CFepUiLayout. + * Handle layout command event + * + * @since S60 v3.2 + * @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 S60 v3.2 + * @param pData The event data. + * @return KErrNone if successfully size changing. + */ + TInt SizeChanged(const TAny* pData); + + /** + * From CFepUiLayout. + * Handle the event from control + * + * @since S60 v3.2 + * @param aEventType The event type + * @param aCtrl The sender + * @param aEventData The event data. + * @return None + */ + void HandleControlEvent(TInt aEventType, CFepUiBaseCtrl* aCtrl, const TDesC& aEventData); + + /** + * From CFepUiLayout. + * Test whether the position is valid. + * This is used to test the target position when draging controls to some place + * + * @since S60 v3.2 + * @param aRect The rect to be checked. + * @param aDragbar The dragbar being dragged + * @param aVInfo The valid information in vertial dirtection. ETrue is vertical + * moving is valid.It's only used when aRect is not valid but moving in + * vertical direction is valid. + * @param aHInfo The valid information in horizontal dirtection. ETrue is + * horizontal moving is valid.It's only used when aRect is not + * valid but moving in vertical direction is valid. + * @param aFlag ETrue if whole layout is moving, otherwise, only components moving + * @return ETue if aRect is a valid position. Otherwise, EFalse. + */ + TBool IsValidDestination(const TRect& aRect, + CDragBar* aDragBar, + TBool& aVInfo,TBool& aHInfo, + TBool aFlag); + + /** + * 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 S60 v3.2 + * @param aTotalTextLen The total editor text len + * @param aTextStartPos The position of the selection in whole editor text + * @param aCursolSel The cursor selection in the editor + * @param aText The text sent by fep. + * @return KErrNone is operation succeeded. + */ + TInt OnAppEditorTextComing( const TFepInputContextFieldData& aData); + + /** + * From CFepUiLayout. + * Handle raw event key + * + * @since S60 v3.2 + * @param aData the key raw event data + * @return ETrue if the key was handled, otherwise EFalse + */ + TBool HandleRawKeyEventL(const TRawEvent& aKeyEvent); + + /** + * From CFepUiLayout. + * Handle pointer down/up event while this event is outside of the layout + * Do nothing in default implementation + * + * @since S60 v3.2 + * @param aEvent The raw event + * @return EFalse if the event needs forward on. Otherwise ETrue. + */ + TBool OnPointerEventOutsideLayout(const TRawEvent& aEvent); + + /** + * From CFepUiLayout + * Get the layout type, vkb or hwr. It's now similar to LayoutType which defines in + * another interface. + * + * @since S60 v3.2 + * @return The layout type + */ + TInt PenInputType(); + + void SetPositionFromOutside(const TPoint& aNewPos); + +private: + + /** + * C++ default constructor + * + * @since S60 v3.2 + * @param aLafEnv The LAF enviroment + * @return None + */ + CAknFepHwrBxLayout(MLayoutOwner* aLayoutOwner); + + /** + * Symbian second-phase constructor + * + * @since S60 v3.2 + * @param aInitData Init data of layout + * @return None + */ + void ConstructL(const TAny* aInitData); + + /** + * Read layout rect from LAF and set layout self position + * + * @since S60 v3.2 + * @param aLandscapeStyle Current screen is landscape or not + * @return None + */ + void ResetLayoutRectL(); + + /** + * Go to standby state + * + * @since S60 v5.0 + * @return None + */ + void GoToStandbyStateL( TInt aOpenFlag ); +private://data + + /** + * The data store (Own) + */ + CAknFepHwrBxDataStore* iDataStore; + + /** + * The window (Own) + */ + CAknFepHwrBxWnd* iBxWindow; + + /** + * The current state (Own) + */ + CAknFepHwrBxStateBase* iCurrentState; + + /** + * Is LandscapeStyle + */ + //TBool iLandscapeStyle; + + /** + * The hwr resource id + */ + TInt iResId; + + MPenInputModeSwitchInterface* iInputModeSwitch; + + }; + +#include "peninputhwrbxlayout.inl" + +#endif // C_CAKNFEPHWRBXLAYOUT_H + +// End Of File