diff -r 000000000000 -r eb1f2e154e89 textinput/peninputhwrfscn/src/peninputhwrfscnwritingbox.cpp --- /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( &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 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