diff -r 000000000000 -r 15bf7259bb7c uiacceltk/hitchcock/Client/src/alfframebrush.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiacceltk/hitchcock/Client/src/alfframebrush.cpp Tue Feb 02 07:56:43 2010 +0200 @@ -0,0 +1,327 @@ +/* +* Copyright (c) 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: Frame brush +* +*/ + + + +#include "alf/alfframebrush.h" +#include "alf/alfenv.h" +#include "alf/alfgencomponent.h" +#include "alf/alfconstants.h" +#include "alflogger.h" +#include "alfskinnableimage.h" + +const TInt KNumberOfFrameParts = 9; + +// Private data structure +struct CAlfFrameBrush::TFrameBrushPrivateData + { + CAlfSkinnableImage* iImage; + CAlfSkinnableImage* iFramePartImages[KNumberOfFrameParts]; + }; + + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// Constructor +// --------------------------------------------------------------------------- +// +CAlfFrameBrush::CAlfFrameBrush() + : CAlfBrush() + { + } + +// --------------------------------------------------------------------------- +// ConstructL +// --------------------------------------------------------------------------- +// +void CAlfFrameBrush::ConstructL(CAlfEnv& aEnv, const TAknsItemID& aIID, + const TAlfXYMetric& aEdgeOffset) + { + iFrameBrushData = new (ELeave) TFrameBrushPrivateData; + iFrameBrushData->iImage = NULL; + Mem::FillZ(iFrameBrushData->iFramePartImages, (sizeof(TInt)*KNumberOfFrameParts)); + + iFrameBrushData->iImage = new (ELeave) CAlfSkinnableImage(&aEnv); + + for (TInt i=0; iiFramePartImages[i] = new (ELeave) CAlfSkinnableImage(&aEnv); + } + + TAlfFrameBrushMetricParams params; + params.iInnerRect = TRect(0,0,0,0); + params.iOuterRect = TRect(0,0,0,0); + params.iFrameIID = aIID; + params.iEdgeOffset = aEdgeOffset; + + TPckgC paramsPckg(params); + + CAlfBrush::ConstructL( + aEnv, + EAlfFrameBrushCreateMetric, + 0, + paramsPckg + ); + } + +// --------------------------------------------------------------------------- +// ConstructL +// --------------------------------------------------------------------------- +// +void CAlfFrameBrush::ConstructL(CAlfEnv& aEnv, const TAknsItemID& aIID, + TInt aEdgeOffsetX, TInt aEdgeOffsetY) + { + iFrameBrushData = new (ELeave) TFrameBrushPrivateData; + iFrameBrushData->iImage = NULL; + Mem::FillZ(iFrameBrushData->iFramePartImages, (sizeof(TInt)*KNumberOfFrameParts)); + + iFrameBrushData->iImage = new (ELeave) CAlfSkinnableImage(&aEnv); + + for (TInt i=0; iiFramePartImages[i] = new (ELeave) CAlfSkinnableImage(&aEnv); + } + + TAlfFrameBrushParams params; + params.iInnerRect = TRect(0,0,0,0); + params.iOuterRect = TRect(0,0,0,0); + params.iFrameIID = aIID; + params.iEdgeOffsetX = aEdgeOffsetX; + params.iEdgeOffsetY = aEdgeOffsetY; + + TPckgC paramsPckg(params); + + CAlfBrush::ConstructL( + aEnv, + EAlfFrameBrushCreate, + 0, + paramsPckg + ); + } + +// --------------------------------------------------------------------------- +// ConstructL +// --------------------------------------------------------------------------- +// +void CAlfFrameBrush::ConstructL(CAlfEnv& aEnv, const TAlfImage& aImage, const TAlfXYMetric& aEdgeOffset) + { + iFrameBrushData = new (ELeave) TFrameBrushPrivateData; + iFrameBrushData->iImage = NULL; + Mem::FillZ(iFrameBrushData->iFramePartImages, (sizeof(TInt)*KNumberOfFrameParts)); + + iFrameBrushData->iImage = new (ELeave) CAlfSkinnableImage(&aEnv); + for (TInt i=0; iiFramePartImages[i] = new (ELeave) CAlfSkinnableImage(&aEnv); + } + + iFrameBrushData->iImage->SetImage(aImage); // This texturizes skin graphics if needed + + TAlfFrameBrushImageParams params; + params.iEdgeOffset = aEdgeOffset; + params.iImage = TAlfImageParams(iFrameBrushData->iImage->Image()); + + TPckgC paramsPckg(params); + + CAlfBrush::ConstructL( + aEnv, + EAlfFrameBrushCreateImage, + 0, + paramsPckg + ); + } + +// --------------------------------------------------------------------------- +// Constructor +// --------------------------------------------------------------------------- +// +EXPORT_C CAlfFrameBrush* CAlfFrameBrush::NewL(CAlfEnv& aEnv, + const TAknsItemID& aIID, TInt aEdgeOffsetX, TInt aEdgeOffsetY) + { + CAlfFrameBrush* self = CAlfFrameBrush::NewLC( aEnv, aIID, aEdgeOffsetX, aEdgeOffsetY ); + CleanupStack::Pop( self ); + return self; + } + + +// --------------------------------------------------------------------------- +// Constructor +// --------------------------------------------------------------------------- +// +EXPORT_C CAlfFrameBrush* CAlfFrameBrush::NewLC(CAlfEnv& aEnv, + const TAknsItemID& aIID, TInt aEdgeOffsetX, TInt aEdgeOffsetY) + { + CAlfFrameBrush* self = new( ELeave ) CAlfFrameBrush; + CleanupStack::PushL( self ); + self->ConstructL(aEnv, aIID, aEdgeOffsetX, aEdgeOffsetY); + return self; + } + + +// --------------------------------------------------------------------------- +// Constructor +// --------------------------------------------------------------------------- +// +EXPORT_C CAlfFrameBrush* CAlfFrameBrush::NewL(CAlfEnv& aEnv, + const TAknsItemID& aIID, const TAlfXYMetric& aEdgeOffset) + { + CAlfFrameBrush* self = CAlfFrameBrush::NewLC( aEnv, aIID, aEdgeOffset ); + CleanupStack::Pop( self ); + return self; + } + + +// --------------------------------------------------------------------------- +// Constructor +// --------------------------------------------------------------------------- +// +EXPORT_C CAlfFrameBrush* CAlfFrameBrush::NewLC(CAlfEnv& aEnv, + const TAknsItemID& aIID, const TAlfXYMetric& aEdgeOffset) + { + CAlfFrameBrush* self = new( ELeave ) CAlfFrameBrush; + CleanupStack::PushL( self ); + self->ConstructL( aEnv, aIID, aEdgeOffset ); + return self; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +EXPORT_C void CAlfFrameBrush::SetFrameRectsL(const TRect& aInnerRect, const TRect& aOuterRect) + { + TAlfFrameBrushParams params; + params.iInnerRect = aInnerRect; + params.iOuterRect = aOuterRect; + + TPckgC paramsPckg(params); + + TInt err = Comms()->DoCmdNoReply(EAlfFrameBrushSetFrameRects, paramsPckg ); + + if ( err ) + { + __ALFLOGSTRING1( "CAlfFrameBrush::SetFrameRectsL ignore error %d", err ) + } + + } + + +// --------------------------------------------------------------------------- +// Destructor. +// --------------------------------------------------------------------------- +// +CAlfFrameBrush::~CAlfFrameBrush() + { + if ( iFrameBrushData ) + { + delete iFrameBrushData->iImage; + iFrameBrushData->iImage = NULL; + + for (TInt i=0; iiFramePartImages[i]; + iFrameBrushData->iFramePartImages[i] = NULL; + } + } + delete iFrameBrushData; + iFrameBrushData = NULL; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +EXPORT_C void CAlfFrameBrush::SetEdgeOffset(const TAlfXYMetric& aEdgeOffset) + { + TPckgC paramsPckg(aEdgeOffset); + + TInt err = Comms()->DoCmdNoReply(EAlfFrameBrushSetEdgeOffsetMetric, paramsPckg); + + if ( err ) + { + __ALFLOGSTRING1( "CAlfFrameBrush::SetEdgeOffset (TAlfXYMetric) ignore error %d", err ) + } + } + + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +EXPORT_C void CAlfFrameBrush::SetImage(const TAlfImage& aImage) + { + iFrameBrushData->iImage->SetImage(aImage); // This texturizes skin graphics if needed + + TAlfImageParams params = TAlfImageParams(iFrameBrushData->iImage->Image()); + TPckgC paramsPckg(params); + + TInt err = Comms()->DoCmdNoReply(EAlfFrameBrushSetImage, paramsPckg ); + + if ( err ) + { + __ALFLOGSTRING1( "CAlfFrameBrush::SetImage ignore error %d", err ) + } + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +EXPORT_C CAlfFrameBrush* CAlfFrameBrush::NewL(CAlfEnv& aEnv, const TAlfImage& aImage, const TAlfXYMetric& aEdgeOffset) + { + CAlfFrameBrush* self = CAlfFrameBrush::NewLC( aEnv, aImage, aEdgeOffset ); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +EXPORT_C CAlfFrameBrush* CAlfFrameBrush::NewLC(CAlfEnv& aEnv, const TAlfImage& aImage, const TAlfXYMetric& aEdgeOffset) + { + CAlfFrameBrush* self = new( ELeave ) CAlfFrameBrush; + CleanupStack::PushL( self ); + self->ConstructL( aEnv, aImage, aEdgeOffset ); + return self; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +EXPORT_C void CAlfFrameBrush::SetImage(TFrameParts aFramePart, const TAlfImage& aImage) + { + iFrameBrushData->iFramePartImages[aFramePart]->SetImage(aImage); // This texturizes skin graphics if needed + + TAlfImageParams imageparams = TAlfImageParams(iFrameBrushData->iFramePartImages[aFramePart]->Image()); + + TAlfFrameBrushFramePartImageParams params; + params.iImage = imageparams; + params.iFramePart = aFramePart; + + TPckgC paramsPckg(params); + + TInt err = Comms()->DoCmdNoReply(EAlfFrameBrushSetFramePartImage, paramsPckg ); + + if ( err ) + { + __ALFLOGSTRING1( "CAlfFrameBrush::SetImage () ignore error %d", err ) + } + } +