--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputhwrfscn/src/peninputhwrfscnwritingbox.cpp Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,312 @@
+/*
+* 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
+*
+*/
+
+#include "peninputhwrfscnwritingbox.h"
+#include "peninputhwrfscnlayout.h"
+#include "peninputhwrfscndatastore.h"
+#include "peninputhwrfscnevent.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CPeninputHwrfscnWritingBox::NewL()
+// .
+// -----------------------------------------------------------------------------
+//
+CPeninputHwrfscnWritingBox* CPeninputHwrfscnWritingBox::NewL(
+ CPeninputHwrfscnLayout* aLayout )
+ {
+ CPeninputHwrfscnWritingBox* self = new( ELeave )
+ CPeninputHwrfscnWritingBox( aLayout );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CPeninputHwrfscnWritingBox::~CPeninputHwrfscnWritingBox()
+// .
+// -----------------------------------------------------------------------------
+//
+CPeninputHwrfscnWritingBox::~CPeninputHwrfscnWritingBox()
+ {
+ iStrokeList.Reset();
+ iStrokeList.Close();
+ }
+
+// -----------------------------------------------------------------------------
+// CPeninputHwrfscnWritingBox::Show()
+// .
+// -----------------------------------------------------------------------------
+//
+void CPeninputHwrfscnWritingBox::Show( TBool /*aVisible*/ )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CPeninputHwrfscnWritingBox::Draw()
+// .
+// -----------------------------------------------------------------------------
+//
+void CPeninputHwrfscnWritingBox::Draw()
+ {
+ iHwrWnd->Draw();
+ }
+
+// -----------------------------------------------------------------------------
+// CPeninputHwrfscnWritingBox::HandleControlEvent()
+// .
+// -----------------------------------------------------------------------------
+//
+void CPeninputHwrfscnWritingBox::HandleControlEvent( TInt aEventType,
+ CFepUiBaseCtrl* /*aCtrl*/,
+ const TDesC& /*aEventData*/ )
+ {
+ switch( aEventType )
+ {
+ case EEventHwrCharacterTimerOut:
+ {
+ OnStrokeCharacterTimerOut();
+ iLayout->EnableStrokeFilter( ETrue );
+ }
+ break;
+
+ case EEventHwrStrokeStarted:
+ {
+ OnStrokeStarted();
+ iLayout->EnableStrokeFilter( EFalse );
+ }
+ break;
+
+ case EEventHwrStrokeFinished:
+ {
+ OnStrokeFinished();
+ }
+ break;
+
+ default:
+ break;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CPeninputHwrfscnWritingBox::HandleCommand()
+// .
+// -----------------------------------------------------------------------------
+//
+void CPeninputHwrfscnWritingBox::HandleCommand( TInt /*aCommand*/,
+ TUint8* /*aData*/ )
+ {
+
+ }
+
+// -----------------------------------------------------------------------------
+// CPeninputHwrfscnWritingBox::BeforePropertyChangedL()
+// .
+// -----------------------------------------------------------------------------
+//
+TBool CPeninputHwrfscnWritingBox::BeforePropertyChangedL(
+ MPeninputHwrfscnPropertySubscriber::TPeninputHwrfscnProperty /*aProptery*/ )
+ {
+ return EFalse;
+ }
+
+// -----------------------------------------------------------------------------
+// CPeninputHwrfscnWritingBox::PropertyChangedL()
+// .
+// -----------------------------------------------------------------------------
+//
+void CPeninputHwrfscnWritingBox::PropertyChangedL(
+ MPeninputHwrfscnPropertySubscriber::TPeninputHwrfscnProperty aProptery )
+ {
+ switch( aProptery )
+ {
+ case EPeninputHwrfscnPropertyWriteSpeed:
+ {
+ TTimeIntervalMicroSeconds32 speed =
+ iLayout->DataStore().WritingSpeed();
+ SetWritingSpeed( speed );
+ }
+ break;
+
+ case EPeninputHwrfscnPropertyPenSize:
+ {
+ TSize penSize = iLayout->DataStore().PenSize();
+ SetPenSize( penSize );
+ }
+ break;
+
+ case EPeninputHwrfscnPropertyPenColor:
+ {
+ TRgb& color = iLayout->DataStore().PenColor();
+ SetPenColor( color );
+ }
+ break;
+
+ default:
+ break;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CPeninputHwrfscnWritingBox::CPeninputHwrfscnWritingBox()
+// .
+// -----------------------------------------------------------------------------
+//
+CPeninputHwrfscnWritingBox::CPeninputHwrfscnWritingBox(
+ CPeninputHwrfscnLayout* aLayout )
+ :CPeninputHwrfscnBasePanel( aLayout )
+ {
+
+ }
+
+// -----------------------------------------------------------------------------
+// CPeninputHwrfscnWritingBox::ConstructL()
+// .
+// -----------------------------------------------------------------------------
+//
+void CPeninputHwrfscnWritingBox::ConstructL()
+ {
+ TRect hwrRect( TPoint( 0, 0 ), iLayout->ScreenSize() );
+
+ //create full screen hwr window
+ iHwrWnd = CTransparentHwrWnd::NewL( hwrRect, iLayout,
+ ECtrlTransparentHwrWnd, ETrue );
+ AddToRootControlL( iHwrWnd );
+
+ //add this to datastore subscriber list
+ iLayout->DataStore().AddSubscriber( this );
+
+ //load the default hwr settings: pen size, speed, color
+ iLayout->DataStore().LoadAndPublishDefaultL();
+
+ //get stroke end mark
+ TPoint strokeEndMark = iLayout->DataStore().StrokeEndMark();
+
+ //set it to window
+ iHwrWnd->SetStrokeEndMark( strokeEndMark );
+ iHwrWnd->AddEventObserver( this );
+ iHwrWnd->EnableTraceOutsideWindow( ETrue );
+
+ Draw();
+ }
+
+// -----------------------------------------------------------------------------
+// CPeninputHwrfscnWritingBox::SizeChanged()
+// .
+// -----------------------------------------------------------------------------
+//
+void CPeninputHwrfscnWritingBox::SizeChanged()
+ {
+ TRect hwrRect( TPoint( 0, 0 ), iLayout->ScreenSize() );
+ iHwrWnd->SetRect( hwrRect );
+ }
+
+// -----------------------------------------------------------------------------
+// CPeninputHwrfscnWritingBox::LafChanged()
+// .
+// -----------------------------------------------------------------------------
+//
+void CPeninputHwrfscnWritingBox::LafChanged()
+ {
+
+ }
+
+// -----------------------------------------------------------------------------
+// CPeninputHwrfscnWritingBox::OnStrokeCharacterTimerOut()
+// .
+// -----------------------------------------------------------------------------
+//
+void CPeninputHwrfscnWritingBox::OnStrokeCharacterTimerOut()
+ {
+ // Get stroke list is called by event handler
+ TPtrC ptr;
+ ptr.Set( reinterpret_cast<TText*>( &iStrokeList ),
+ sizeof( &iStrokeList ) );
+ ReportEvent( EHwrEventEndWriting, iHwrWnd, ptr );
+ }
+
+// -----------------------------------------------------------------------------
+// CPeninputHwrfscnWritingBox::OnStrokeStarted()
+// .
+// -----------------------------------------------------------------------------
+//
+void CPeninputHwrfscnWritingBox::OnStrokeStarted()
+ {
+ ReportEvent( EHwrEventBeginWriting, iHwrWnd, KNullDesC );
+ }
+
+// -----------------------------------------------------------------------------
+// CPeninputHwrfscnWritingBox::OnStrokeStarted()
+// .
+// -----------------------------------------------------------------------------
+//
+void CPeninputHwrfscnWritingBox::OnStrokeFinished()
+ {
+ // copy data from iHwrWnd's stroke list
+ iStrokeList.Reset();
+ RArray<TPoint> dataList = iHwrWnd->StrokeList();
+ for( TInt i = 0; i < dataList.Count(); i++ )
+ {
+ iStrokeList.Append( dataList[i] );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CPeninputHwrfscnWritingBox::CancelCharWriting()
+// .
+// -----------------------------------------------------------------------------
+//
+void CPeninputHwrfscnWritingBox::CancelCharWriting()
+ {
+ iLayout->EnableStrokeFilter( ETrue );
+ iHwrWnd->CancelCharWriting();
+ }
+
+// -----------------------------------------------------------------------------
+// CPeninputHwrfscnWritingBox::SetWritingSpeed()
+// .
+// -----------------------------------------------------------------------------
+//
+void CPeninputHwrfscnWritingBox::SetWritingSpeed(
+ const TTimeIntervalMicroSeconds32& aCharDelay )
+ {
+ iHwrWnd->SetCharacterDelay( aCharDelay );
+ }
+
+// -----------------------------------------------------------------------------
+// CPeninputHwrfscnWritingBox::SetBoxPenSize()
+// .
+// -----------------------------------------------------------------------------
+//
+void CPeninputHwrfscnWritingBox::SetPenSize( const TSize aSize )
+ {
+ iHwrWnd->SetPenSize( aSize );
+ }
+
+// -----------------------------------------------------------------------------
+// CPeninputHwrfscnWritingBox::SetBoxPenColor()
+// .
+// -----------------------------------------------------------------------------
+//
+void CPeninputHwrfscnWritingBox::SetPenColor( const TRgb aCol )
+ {
+ iHwrWnd->SetPenColor( aCol );
+ }
+
+//End of file