diff -r 61bc0f252b2b -r bac7acad7cb3 camerauis/activepalette/Src/ActivePalette2GenericPlugin.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/activepalette/Src/ActivePalette2GenericPlugin.cpp Wed Sep 01 12:30:54 2010 +0100 @@ -0,0 +1,244 @@ +/* +* Copyright (c) 2007 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: Active Palette 2 Generic Plugin* +*/ + + +/** + * @file ActivePalette2GenericPlugin.cpp + * Active Palette 2 Generic Plugin + */ + +// INCLUDE FILES +#include "ActivePalette2GenericPlugin.h" +#include "ActivePalette2Const.h" +#include "ActivePalette2Cfg.h" + +#include +#include + +// ================= MEMBER FUNCTIONS ======================= + +// ----------------------------------------------------------------------------- +// TAPGenericPluginParams::TAPGenericPluginParams() +// C++ Constructor +// ----------------------------------------------------------------------------- +// +TAP2GenericPluginParams::TAP2GenericPluginParams() : + iResFileType(EGenericStdResFile), + iGraphicsFileName(KNullDesC), + iIconId(0), + iMaskId(0), + iTooltipText(KNullDesC), + iMessageId(KActivePaletteNoDataInt), + iMsgCustomParam(KActivePaletteNoDataInt) + { + } + +// ----------------------------------------------------------------------------- +// TAPGenericPluginParams::TAPGenericPluginParams() +// C++ Constructor +// ----------------------------------------------------------------------------- +// +EXPORT_C TAP2GenericPluginParams::TAP2GenericPluginParams(const TInt aResFileType, + const TDesC& aGraphicsFileName, + const TInt aIconId, + const TInt aMaskId, + const TDesC& aTooltipText, + const TInt aMessageId, + const TInt aMsgCustomParam): + iResFileType(aResFileType), + iGraphicsFileName(aGraphicsFileName), + iIconId(aIconId), + iMaskId(aMaskId), + iTooltipText(aTooltipText), + iMessageId(aMessageId), + iMsgCustomParam(aMsgCustomParam) + { + } + +// ----------------------------------------------------------------------------- +// TAPGenericPluginIcon::TAPGenericPluginIcon() +// C++ Constructor +// ----------------------------------------------------------------------------- +// +TAP2GenericPluginIcon::TAP2GenericPluginIcon() : + iIconId(0), + iMaskId(0) + { + } + +// ----------------------------------------------------------------------------- +// TAPGenericPluginIcon::TAPGenericPluginIcon() +// C++ Constructor +// ----------------------------------------------------------------------------- +// +EXPORT_C TAP2GenericPluginIcon::TAP2GenericPluginIcon(const TInt aIconId, + const TInt aMaskId): + iIconId(aIconId), + iMaskId(aMaskId) + { + } + +// ----------------------------------------------------------------------------- +// CAP2GenericPlugin::CAP2GenericPlugin() +// C++ Constructor +// ----------------------------------------------------------------------------- +// +CAP2GenericPlugin::CAP2GenericPlugin(const NActivePalettePluginFactory::TPluginCreationParams& aCreationParams): +CActivePalettePluginBase(aCreationParams) + { + } + +// ----------------------------------------------------------------------------- +// CAP2GenericPlugin::CAP2GenericPlugin() +// Destructor +// ----------------------------------------------------------------------------- +// +CAP2GenericPlugin::~CAP2GenericPlugin() + { + } + +// ----------------------------------------------------------------------------- +// CAP2GenericPlugin::HandleItemSelectedL() +// ----------------------------------------------------------------------------- +// +void CAP2GenericPlugin::HandleItemSelectedL(void) + { + PluginObserver().SendMessage(iMessageId,iMsgCustomParam); + PluginObserver().NotifyItemComplete(KActivePaletteNoDataInt); + } + +// ----------------------------------------------------------------------------- +// CAP2GenericPlugin::ConstructL() +// ----------------------------------------------------------------------------- +// +void CAP2GenericPlugin::ConstructL(const NActivePalettePluginFactory::TPluginCreationParams& aCreationParams, + const TDesC8& aCustomDataDes, const TInt aCustomDataInt) + { + CActivePalettePluginBase::ConstructL(aCreationParams, aCustomDataDes, aCustomDataInt); + + iDimensions = aCreationParams.Dimensions(); + + // unpack creation params + TAP2GenericPluginParams params; + TPckg paramsPckg(params); + if (aCustomDataDes.Length()) + { + paramsPckg.Copy(aCustomDataDes); + SetIconAndTooltipL(params); + } + } + +// ----------------------------------------------------------------------------- +// CAP2GenericPlugin::SetIconAndTooltipL() +// ----------------------------------------------------------------------------- +// +void CAP2GenericPlugin::SetIconAndTooltipL(TAP2GenericPluginParams& aParams) + { + iMessageId = aParams.iMessageId; + iMsgCustomParam = aParams.iMsgCustomParam; + + iGraphicsFileName = aParams.iGraphicsFileName; + + CGulIcon* icon = CreateIconL(aParams.iIconId, aParams.iMaskId); + CleanupStack::PushL(icon); + + // Don't need to worry about the CGulIcon object from now on + // as we are transferring ownership of it to the active palette. + PluginObserver().SetItemIconAndTooltipL(icon, ETrue, aParams.iTooltipText); + + CleanupStack::Pop(icon); + } + +// ----------------------------------------------------------------------------- +// CAP2GenericPlugin::CreateIconL() +// ----------------------------------------------------------------------------- +// +CGulIcon* CAP2GenericPlugin::CreateIconL(TInt aIconId, TInt aMaskId) + { + CFbsBitmap* picture; + CFbsBitmap* mask; + + AknIconUtils::CreateIconLC(picture, mask, iGraphicsFileName, aIconId, aMaskId); + AknIconUtils::SetSize(picture, iDimensions); + AknIconUtils::SetSize(mask, iDimensions); + + CGulIcon* icon = CGulIcon::NewL(picture,mask); + + // Can now take the bitmaps off the cleanup stack as we have + // transferred ownership to the CGulIcon object + CleanupStack::Pop(mask); + CleanupStack::Pop(picture); + + return icon; + } + +// ----------------------------------------------------------------------------- +// CAP2GenericPlugin::HandleMessageL() +// ----------------------------------------------------------------------------- +// +void CAP2GenericPlugin::HandleMessageL(const TInt aMessageID, const TDesC8& aDataDes, const TInt /* aDataInt */) + { + switch (aMessageID) + { + case EAPGenericPluginChangeIcon: + { + TAP2GenericPluginIcon iconParams; + TPckg iconParamsPckg(iconParams); + if (aDataDes.Length()) + { + iconParamsPckg.Copy(aDataDes); + CGulIcon* icon = CreateIconL(iconParams.iIconId, iconParams.iMaskId); + // Ownership of icon is transferred to the Active Palette + PluginObserver().SetItemIcon(icon, ETrue); + } + } + break; + + case EAPGenericPluginChangeParams: + { + TAP2GenericPluginParams params; + TPckg paramsPckg(params); + if (aDataDes.Length()) + { + paramsPckg.Copy(aDataDes); + SetIconAndTooltipL(params); + } + break; + } + + default: + break; + } + } + +// ----------------------------------------------------------------------------- +// InstantiateGenericPluginL() +// ----------------------------------------------------------------------------- +// +CActivePalettePluginBase* InstantiateGenericPluginL( + const TUid& aPluginUid, + const NActivePalettePluginFactory::TPluginCreationParams& aCreationParams) + { + if (TUid::Uid(KActivePalette2GenericPluginUID) != aPluginUid) + { + User::Leave(KErrNotSupported); + } + + CActivePalettePluginBase* self = new (ELeave) CAP2GenericPlugin(aCreationParams); + return self; + } + +// End of File