--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputarc/inc/peninputlayoutcontrolinc/peninputfullscrlayout.h Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,227 @@
+/*
+* 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: header file of peninput fullscreen HWR ui layout
+*
+*/
+
+
+#ifndef C_CFEPUI_FULLSCREEN_LAYOUT_H
+#define C_CFEPUI_FULLSCREEN_LAYOUT_H
+
+#include "peninputlayout.h"
+// INCLUDES
+class CLayoutTimer;
+class CHwrWndBase;
+
+const TInt KMaxBufferEventNum = 30;
+
+class CFepFullScreenLayout : public CFepUiLayout,public MTimerHandler
+ {
+public:
+ /**
+ * Destructor.
+ *
+ * @since S60 v4.0
+ */
+ IMPORT_C virtual ~CFepFullScreenLayout();
+
+ /**
+ * BaseConstructL
+ * Does the base construction. Derivated class must call this when constructed.
+ *
+ * @since S60 v4.0
+ */
+ IMPORT_C virtual void BaseConstructL();
+
+ /**
+ * Constructor
+ *
+ * @since S60 v4.0
+ * @param aLayoutOwner The layout owner
+ * @param aDuration The maximum time to buffer the event.
+ */
+ IMPORT_C CFepFullScreenLayout(MLayoutOwner* aLayoutOwner,
+ TInt aDuration = 0);
+
+ /**
+ * Get the buffered event
+ *
+ * @since S60 v4.0
+ * @return The buffered event
+ */
+ inline const RArray<TRawEvent>& BufferedEvent();
+
+ /**
+ * From MPenUiLayoutBase
+ * Init.
+ * Do layout initialization. It's called by layout owner
+ *
+ * @since S60 v4.0
+ * @return The layout rect including the shadow rect
+ */
+ IMPORT_C TRect Init();
+
+ /**
+ * From MPenUiLayoutBase
+ * 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 The control which processes the event
+ */
+ IMPORT_C TBool HandleEventL(TEventType aType, const TAny* aEventData);
+
+ /**
+ * SemiTransparencyRequired. Tell whether this layout requires semi-transparency.
+ * This is to save memory used in mask bitmap. If transparency not deeded,
+ * We use black-white bitmap.
+ *
+ * @since S60 v4.0
+ * @return ETrue if layout require transparency, otherwise EFalse.
+ */
+ IMPORT_C TBool SemiTransparencyRequired();
+
+ //from base class MTimerHandler
+ /**
+ * From MTimerHandler
+ * HandleTimerOut. Handling time out event
+ * @since S60 v4.0
+ * @param aTimeType The timer type
+ */
+ IMPORT_C void HandleTimerOut(TInt aTimeType);
+
+protected:
+ /**
+ * Test whether the buffered event is valid for a trace
+ *
+ * @since S60 v4.0
+ * @return ETrue if buffered event consists of a valid stroke. Otherwise EFalse.
+ */
+ IMPORT_C virtual TBool IsValidStroke();
+
+ /**
+ * Test whether a new character starts. Default implementation is checking the
+ * HWR window stroke list
+ *
+ * @since S60 v4.0
+ * @return ETrue if a new character starts. Otherwise EFalse.
+ */
+ IMPORT_C virtual TBool IsHwrNewCharacter();
+
+private:
+
+ /**
+ * Start to buffer event
+ *
+ * @since S60 v4.0
+ * @param aEvent The event to be buffered
+ */
+ void StartBufferEvent(TRawEvent& aEvent);
+
+ /**
+ * buffer event
+ *
+ * @since S60 v4.0
+ * @param aEvent The event to be buffered
+ */
+ void BufferEventL(TRawEvent& aEvent);
+
+ /**
+ * Forward the bufferred event to input UI.
+ *
+ * @since S60 v4.0
+ */
+ void HandleBufferedEventL();
+
+ /**
+ * Simulates the buffered event to other apps
+ *
+ * @since S60 v4.0
+ */
+ void SimulateEvent();
+
+private:
+ /**
+ * Timer to check whether event needs simulatation or handling.
+ * Own.
+ */
+ CLayoutTimer* iBufferTimer;
+
+ /**
+ * Full-screen HWR window.
+ * Not own.
+ */
+ CHwrWndBase* iHwrWnd;
+
+ /*
+ * Flag to tell whether current event should be buffered.
+ */
+ TBool iBufferEvent;
+
+ /*
+ * The left most position in current event buffer.
+ */
+ TInt iXLeftPos;
+
+ /*
+ * The right most position in current event buffer.
+ */
+ TInt iXRightPos;
+
+ /*
+ * The top most position in current event buffer.
+ */
+ TInt iYTopPos;
+
+ /*
+ * The bottom most position in current event buffer.
+ */
+ TInt iYBottomPos;
+
+ /*
+ * pen size for Full-screen HWR window. It's used to keep the value.
+ * pen size is set to 0 when event is bufferring.
+ */
+ TSize iHwrWndPenSize;
+
+ /*
+ * Event buffer.
+ */
+ RArray<TRawEvent> iEventBuf;//[KMaxBufferEventNum+1];
+
+ /*
+ * The buffering duration after pen down event. If pen is up within this duration,
+ * The pen operation is considering to be a clicking instead of a writting.
+ * The value is in micro-second unit.
+ */
+ TInt iEventBufDruation;
+
+ /**
+ * Reserved item1
+ */
+ TInt iReserved1;
+
+ /**
+ * Reserved item2
+ */
+ TInt iReserved2;
+ };
+
+#include "peninputfullscrlayout.inl"
+#endif C_CFEPUI_FULLSCREEN_LAYOUT_H
+
+// End of file