textinput/peninputarc/inc/pensrvcliinc/peninputuilayoutbase.h
changeset 0 eb1f2e154e89
--- /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 <peninputcmdparam.h>
+
+//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
+