--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imageeditorengine/filters/FilterCrop/Src/CFilterCrop.cpp Fri Jan 29 13:53:17 2010 +0200
@@ -0,0 +1,179 @@
+/*
+* Copyright (c) 2010 Ixonos Plc.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "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:
+* Ixonos Plc
+*
+* Description:
+*
+*/
+
+
+#include "CFilterCrop.h"
+
+EXPORT_C TInt CFilterCrop::Create()
+ {
+ CFilterCrop* ptr = NULL;
+ TRAPD( error, ptr = NewL(); );
+ if( error != KErrNone )
+ {
+ ptr = NULL;
+ }
+ return (TInt)((MImageFilter*)ptr);
+ }
+
+
+
+CFilterCrop* CFilterCrop::NewL()
+ {
+ CFilterCrop* self = new( ELeave )CFilterCrop();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+
+
+CFilterCrop::~CFilterCrop()
+ {
+ }
+
+
+
+CFilterCrop::CFilterCrop()
+ {
+
+ }
+
+
+
+void CFilterCrop::ConstructL()
+ {
+
+ }
+
+
+
+TRect CFilterCrop::Rect()
+ {
+
+ if ( iRect == TRect(0,0,0,0) )
+ {
+ return iChild->Rect();
+ }
+ else
+ {
+ TReal relscale = iChild->Scale();
+ TRect rect;
+ rect.iTl.iX = (TInt)(iRect.iTl.iX * relscale + 0.5);
+ rect.iTl.iY = (TInt)(iRect.iTl.iY * relscale + 0.5);
+ rect.iBr.iX = (TInt)(iRect.iBr.iX * relscale + 0.5);
+ rect.iBr.iY = (TInt)(iRect.iBr.iY * relscale + 0.5);
+ rect.Intersection( iChild->Rect() );
+ return rect;
+ }
+ }
+
+TReal CFilterCrop::Scale()
+ {
+ return iChild->Scale();
+ }
+
+TSize CFilterCrop::ViewPortSize()
+ {
+ if (iRect == TRect(0,0,0,0))
+ {
+ return iChild->ViewPortSize();
+ }
+ else
+ {
+ return iRect.Size();
+ }
+ }
+
+TBlock * CFilterCrop::GetBlockL ( const TRect & aRect )
+ {
+ return iChild->GetBlockL (aRect);
+ }
+
+
+void CFilterCrop::SetParent( MImageFilter* aParent )
+ {
+ iParent = aParent;
+ }
+
+
+
+
+void CFilterCrop::SetChild( MImageFilter* aChild )
+ {
+ iChild = aChild;
+ }
+
+
+
+TInt CFilterCrop::CmdL( const TDesC16& aCmd )
+ {
+ TLex lex( aCmd );
+
+ while( ! lex.Eos() )
+ {
+ TPtrC token = lex.NextToken();
+ if( token.Compare( _L("x1") ) == 0 )
+ {
+ TReal relscale = iChild->Scale();
+ TInt param = 0;
+ lex.Inc ();
+ lex.Val (param);
+ iRect.iTl.iX = (TInt)((param / relscale) + 0.5);
+ }
+ else if( token.Compare( _L("y1") ) == 0 )
+ {
+ TReal relscale = iChild->Scale();
+ TInt param = 0;
+ lex.Inc ();
+ lex.Val (param);
+ iRect.iTl.iY = (TInt)((param / relscale) + 0.5);
+ }
+ else if( token.Compare( _L("x2") ) == 0 )
+ {
+ TReal relscale = iChild->Scale();
+ TInt param = 0;
+ lex.Inc ();
+ lex.Val (param);
+ iRect.iBr.iX = (TInt)((param / relscale) + 0.5);
+ }
+ else if( token.Compare( _L("y2") ) == 0 )
+ {
+ TReal relscale = iChild->Scale();
+ TInt param = 0;
+ lex.Inc ();
+ lex.Val (param);
+ iRect.iBr.iY = (TInt)((param / relscale) + 0.5);
+ }
+ }
+ return 0;
+ }
+
+
+
+const char* CFilterCrop::Type()
+ {
+ return "crop";
+ }
+
+#if !defined(EKA2)
+GLDEF_C TInt E32Dll( TDllReason )
+ {
+ return KErrNone;
+ }
+#endif