imageeditor/plugins/DrawPlugin/src/CustomerComponet.cpp
changeset 12 18b321db4884
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imageeditor/plugins/DrawPlugin/src/CustomerComponet.cpp	Thu Jun 03 18:57:10 2010 +0800
@@ -0,0 +1,271 @@
+/*
+ ============================================================================
+ Name		: CustomerComponet.cpp
+ Author	  : henry
+ Version	 : 1.0
+ Copyright   : Your copyright notice
+ Description : CCustomerComponet implementation
+ ============================================================================
+ */
+
+#include "CustomerComponet.h"
+#include "gdi.h"
+#include <eikdef.h>
+#include "imageditorfilterdraw.mbg"
+#include <eikenv.h>
+#include <akniconutils.h>
+#include <aknnotewrappers.h>
+
+// ---------------------------------------------------------------------------
+// Default constructer
+// ---------------------------------------------------------------------------
+//
+CCustomerComponet::CCustomerComponet()
+	{
+	// No implementation required
+	}
+
+CCustomerComponet::~CCustomerComponet()
+	{
+	if (iMenu)
+		{
+		delete iMenu;
+		iMenu = NULL;
+		}
+	if (iRight)
+		{
+		delete iRight;
+		iRight = NULL;
+		}
+	if (iLeft)
+		{
+		delete iLeft;
+		iLeft = NULL;
+		}
+	if (iTop)
+		{
+		delete iTop;
+		iTop = NULL;
+		}
+	if (iBottom)
+		{
+		delete iBottom;
+		iBottom = NULL;
+		}
+	if (iMenuMask)
+		{
+		delete iMenuMask;
+		iMenuMask = NULL;
+		}
+	if (iRightMask)
+		{
+		delete iRightMask;
+		iRightMask = NULL;
+		}
+	if (iLeftMask)
+		{
+		delete iLeftMask;
+		iLeftMask = NULL;
+		}
+	if (iTopMask)
+		{
+		delete iTopMask;
+		iTopMask = NULL;
+		}
+	if (iBottomMask)
+		{
+		delete iBottomMask;
+		iBottomMask = NULL;
+		}
+	}
+// ---------------------------------------------------------------------------
+// NewLC
+// ---------------------------------------------------------------------------
+//
+CCustomerComponet* CCustomerComponet::NewLC(TRect & aRect, CCoeControl* aParent)
+	{
+	CCustomerComponet* self = new (ELeave) CCustomerComponet();
+	CleanupStack::PushL(self);
+	self->ConstructL(aRect, aParent);
+	return self;
+	}
+// ---------------------------------------------------------------------------
+// NewL
+// ---------------------------------------------------------------------------
+//
+CCustomerComponet* CCustomerComponet::NewL(TRect & aRect, CCoeControl* aParent)
+	{
+	CCustomerComponet* self = CCustomerComponet::NewLC(aRect, aParent);
+	CleanupStack::Pop(); // self;
+	return self;
+	}
+// ---------------------------------------------------------------------------
+// ConstructL()
+// ---------------------------------------------------------------------------
+//
+void CCustomerComponet::ConstructL(TRect & aRect, CCoeControl* aParent)
+	{
+	SetContainerWindowL(*aParent);
+	EnableDragEvents();
+	SetRect(aRect);
+	TRgb color = KRgbBlue;
+	//Set transparent effect
+	if (KErrNone == Window().SetTransparencyAlphaChannel())
+		{
+		color.SetAlpha(0);
+		}
+	Window().SetBackgroundColor(color);
+
+	iDrawDirection = EFalse;
+	
+	//Load pictures and mask
+	_LIT(iconFileName, "\\resource\\apps\\imageditorfilterdraw.mbm");
+	TFileName iconFile(iconFileName);
+	//Menu
+	AknIconUtils::CreateIconL(iMenu, iMenuMask, iconFileName,
+			EMbmImageditorfilterdraw15a, EMbmImageditorfilterdrawMenumask);
+	//Right
+	AknIconUtils::CreateIconL(iRight, iRightMask, iconFileName,
+			EMbmImageditorfilterdrawRight, EMbmImageditorfilterdrawRightmask);
+	//Left
+	AknIconUtils::CreateIconL(iLeft, iLeftMask, iconFileName,
+			EMbmImageditorfilterdrawLeft, EMbmImageditorfilterdrawLeftmask);
+	//Top
+	AknIconUtils::CreateIconL(iTop, iTopMask, iconFileName,
+			EMbmImageditorfilterdrawTop, EMbmImageditorfilterdrawTopmask);
+	//Bottom
+	AknIconUtils::CreateIconL(iBottom, iBottomMask, iconFileName,
+			EMbmImageditorfilterdrawBottom, EMbmImageditorfilterdrawBottommask);
+	
+	ActivateL();
+	}
+// ---------------------------------------------------------------------------
+// Draw
+// ---------------------------------------------------------------------------
+//
+void CCustomerComponet::Draw(const TRect& aRect) const
+	{
+	CWindowGc& gc = SystemGc();
+	gc.Clear(aRect);
+	//Create rect for showing pictures.
+	TRect menuRect, topRect, bottomRect, rightRect, leftRect;
+
+	menuRect = aRect;
+	//get the width of the rect
+	TInt wx = aRect.iBr.iX - aRect.iTl.iX;
+	// get the height of the screen
+	TInt hy = aRect.iBr.iY - aRect.iTl.iY;
+	//Set top rect.
+	topRect.SetRect(TPoint(wx / 3 + aRect.iTl.iX, aRect.iTl.iY), TPoint(
+			(wx / 3) * 2 + aRect.iTl.iX, hy / 3 + aRect.iTl.iY));
+	//Set bottom rect
+	bottomRect.SetRect(TPoint((wx/3)+aRect.iTl.iX,(hy/3)*2+aRect.iTl.iY),
+			TPoint((wx/3)*2+aRect.iTl.iX,aRect.iBr.iY));
+	//set right rect.
+	rightRect.SetRect(TPoint(aRect.iTl.iX,hy/3+aRect.iTl.iY), TPoint(wx/3+aRect.iTl.iX,(hy/3)*2+aRect.iTl.iY));
+
+	//set left  rect.
+	leftRect.SetRect(TPoint((wx/3)*2+aRect.iTl.iX,hy/3+aRect.iTl.iY),
+			TPoint(aRect.iBr.iX,(hy/3)*2+aRect.iTl.iY));
+	//Set set size for pictures
+	
+	AknIconUtils::SetSize(iMenu, aRect.Size(), EAspectRatioPreserved);
+	AknIconUtils::SetSize(iMenuMask, aRect.Size(), EAspectRatioPreserved);
+
+	AknIconUtils::SetSize(iTop, topRect.Size(), EAspectRatioPreserved);
+	AknIconUtils::SetSize(iTopMask, topRect.Size(), EAspectRatioPreserved);
+
+	AknIconUtils::SetSize(iBottom, bottomRect.Size(), EAspectRatioPreserved);
+	AknIconUtils::SetSize(iBottomMask, bottomRect.Size(), EAspectRatioPreserved);
+
+	AknIconUtils::SetSize(iRight, rightRect.Size(), EAspectRatioPreserved);
+	AknIconUtils::SetSize(iRightMask, rightRect.Size(), EAspectRatioPreserved);
+
+	AknIconUtils::SetSize(iLeft, leftRect.Size(), EAspectRatioPreserved);
+	AknIconUtils::SetSize(iLeftMask, leftRect.Size(), EAspectRatioPreserved);
+	
+	//Draw menu
+	gc.DrawBitmapMasked(menuRect, iMenu, TRect(TPoint(0, 0),
+			iMenu->SizeInPixels()), iMenuMask, ETrue);
+	//if the user press the menu bottom show direction rect.
+	if (iDrawDirection)
+		{
+		gc.DrawBitmapMasked(topRect, iTop, TRect(TPoint(0, 0),
+				iTop->SizeInPixels()), iTopMask, ETrue);
+
+		gc.DrawBitmapMasked(bottomRect, iBottom, TRect(TPoint(0, 0),
+				iBottom->SizeInPixels()), iBottomMask, ETrue);
+		gc.DrawBitmapMasked(leftRect, iRight, TRect(TPoint(0, 0),
+				iRight->SizeInPixels()), iRightMask, ETrue);
+		gc .DrawBitmapMasked(rightRect, iLeft, TRect(TPoint(0, 0),
+				iLeft->SizeInPixels()), iLeftMask, ETrue);
+		}
+	}
+// ---------------------------------------------------------------------------
+// SetRect
+// ---------------------------------------------------------------------------
+//
+void CCustomerComponet::SetRect(TRect& aRect)
+	{
+	DrawNow(aRect);
+	}
+// ---------------------------------------------------------------------------
+// SizeChanged()
+// ---------------------------------------------------------------------------
+//
+void CCustomerComponet::SizeChanged()
+	{
+//Nothing done here.
+	}
+// ---------------------------------------------------------------------------
+// HandlePointerEventL()
+// ---------------------------------------------------------------------------
+//
+void CCustomerComponet::HandlePointerEventL(const TPointerEvent& aPointerEvent)
+	{
+	switch (aPointerEvent.iType)
+		{
+		
+		case TPointerEvent::EButton1Down:
+			{
+			iDrawDirection = ETrue;
+			iButtonFlag = ETrue;
+			iPointerObserver->HandlePointerNotify(this);
+			DrawNow();
+			}
+			break;
+		case TPointerEvent::EButton1Up:
+			{
+			iDrawDirection = EFalse;
+			iButtonFlag = EFalse;
+			iPointerObserver->HandlePointerNotify(this);
+			DrawNow();
+			}
+			break;
+		case TPointerEvent::EDrag:
+			{
+			DrawNow();
+			}
+			break;
+		default:
+			break;
+		}
+	}
+// ---------------------------------------------------------------------------
+// SetHandlePointerObserver()
+// ---------------------------------------------------------------------------
+//
+void CCustomerComponet::SetHandlePointerObserver(
+		MHandlePointerObserver* aHandlePointerObserver)
+	{
+	iPointerObserver = aHandlePointerObserver;
+
+	}
+// ---------------------------------------------------------------------------
+// GetButtonType()
+// ---------------------------------------------------------------------------
+//
+TBool CCustomerComponet::GetButtonType()
+	{
+	return iButtonFlag;
+	}