diff -r 000000000000 -r eb1f2e154e89 textinput/peninputarc/inc/pensrvcliinc/peninputuilayoutbase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textinput/peninputarc/inc/pensrvcliinc/peninputuilayoutbase.h Tue Feb 02 01:02:04 2010 +0200 @@ -0,0 +1,170 @@ +/* +* Copyright (c) 2006-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: interface for pen input ui layout base +* +*/ + + + +#ifndef M_PENUILAYOUTBASE_H +#define M_PENUILAYOUTBASE_H + +#include + +//event type +enum TEventType + { + EPointerEvent, //Pointer event + EPointerBufferEvent, //Pointer buffer event. This is used only for window based. + ERawEvent, //Raw event from window server + //Event indicates the pointer up event happens to another control + //Which does not has the pointer down event. + EEventCancelPointerDown, //Pointer is up in other control, cancel the down event + ERawEventBuffer, //raw event buffer. A collection of event buffered by server. + //The event is starts by a point down event, then followed + // by serveral move events. It will ends either by a move event + // or a point up event. + // The count of event number is set in the buffer header. + // The buffer structure is: + /* + { + TInt nEventCount; + TRawEvent event[1]; + } + */ + }; + + +/** + * Class MPenUiLayoutBase. + * + * Interface for fep layout base + * + * @since S60 V4.0 + */ +class MPenUiLayoutBase + { +public: + /** + * InitL. + * Do layout initialization. It's called by layout owner + * + * @since S60 v4.0 + * @retutn The layout rect including the shadow. + */ + virtual TRect Init() = 0; + + /** + * HandleEventL. Handle UI event. + * There are only 3 kinds of UI event right now: raw event, + * pointer and pointer buffer event. + * + * @since S60 v4.0 + * @param aType The event type. See TEventType + * @param aEventData The event data. + * @return ETrue if layout has processed the event, otherwise EFalse + */ + virtual TBool HandleEventL(TEventType aType, + const TAny* aEventData) = 0; + + /** + * HandleCommand. Handle layout command event. + * + * @since S60 v4.0 + * @param aCmd Command Id. + * @param aData Data for command. + * @return precessing result. Errors when return value small than 0. + */ + virtual TInt HandleCommand(TInt aCmd, TUint8* aData) = 0; + + /** + * Draw layout. + * + * @since S60 v4.0 + */ + virtual void Draw() = 0; + + /** + * SizeChanged. Inform layout the size changing event. + * + * @since S60 v4.0 + * @param aType The event type + * @return KErrNone if successfully size changing. + */ + virtual TInt OnResourceChange(TInt aEventType) = 0; + + /** + * Handle editor text coming + * Called by animation dll when app editor text is coming. + + /** + * Destroy layout + * + * @since S60 v4.0 + */ + virtual void Destroy() = 0; + + /** + * OnActivate. Called by owner when the layout is going to be shown. + * + * @since S60 v4.0 + */ + virtual void OnActivate() = 0; + + /** + * OnDeActivate. Called by owner when the layout is going to be hidden + * + * @since S60 v4.0 + */ + virtual void OnDeActivate() = 0; + + /** + * SemiTransparencyRequired. Tell whether this layout requires semi-transparency. + * This is to save memory used in mask bitmap. If semi-transparency not deeded, + * We use black-white bitmap. + * + * @since S60 v4.0 + * @return ETrue if layout require transparency, otherwise EFalse. + */ + virtual TBool SemiTransparencyRequired() = 0; + + /** + * Get current input UI type + * + * @since S60 v4.0 + * @return Current input UI type + */ + virtual TInt PenInputType() = 0; + + /** + * HandleAppInfoChange. Inform UI that application infomation changed. + * + * @since S60 v5.0 + * @param aInfo The information. + * @param aType The information type + */ + virtual void HandleAppInfoChange(const TDesC& aInfo, TPeninputAppInfo aType) = 0; + + /** + * SetPositionFromOutside. Inform UI that the position is change from outside of UI. + * + * @since S60 v5.0 + * @param aInfo The information. + * @param aType The information type + */ + virtual void SetPositionFromOutside(const TPoint& aNewPos) = 0; + }; + +#endif //M_PENUILAYOUTBASE_H +