diff -r edfc90759b9f -r 18b321db4884 imageeditor/plugins/DrawPlugin/src/CustomerComponet.cpp --- /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 +#include "imageditorfilterdraw.mbg" +#include +#include +#include + +// --------------------------------------------------------------------------- +// 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; + }