diff -r 000000000000 -r f72a12da539e idlehomescreen/nativeuicontroller/src/aitoolbarbutton.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/nativeuicontroller/src/aitoolbarbutton.cpp Thu Dec 17 08:40:49 2009 +0200 @@ -0,0 +1,121 @@ +/* +* Copyright (c) 2005-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: Touch Toolbar button +* +*/ + + +#include +#include + +#include "aitoolbarbutton.h" + +using namespace AiNativeUiController; + +CAiToolbarButton* CAiToolbarButton::NewL() + { + CAiToolbarButton* self = new (ELeave) CAiToolbarButton; + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +void CAiToolbarButton::ConstructL() + { + iIconNotOwned = EFalse; + iTooltip = KNullDesC().AllocL(); + } + +CAiToolbarButton::~CAiToolbarButton() + { + + if ( !iIconNotOwned ) + { + delete iIcon; + iIcon = NULL; + } + delete iTooltip; + iTooltip = NULL; + } + +CAiToolbarButton::CAiToolbarButton() + { + // no implementation + } + +void CAiToolbarButton::SetShortcutId( TInt aId ) + { + iShortcutId = aId; + } + +TInt CAiToolbarButton::ShortcutId() + { + return iShortcutId; + } + +TDesC& CAiToolbarButton::Tooltip() + { + return *iTooltip; + } + + +CGulIcon* CAiToolbarButton::Icon( TBool aTransferOwnership ) + { + iIconNotOwned = aTransferOwnership; + CGulIcon* icon = iIcon; + if(iIconNotOwned) + { + iIcon = NULL; + } + + return icon; + } + +void CAiToolbarButton::SetTooltipL( const TDesC& aTooltip ) + { + HBufC *temp = aTooltip.AllocL(); + delete iTooltip; + iTooltip = temp; + } + +void CAiToolbarButton::SetIcon( CGulIcon *aIcon, TBool aTransferOwnership ) + { + if ( !iIconNotOwned ) + { + delete iIcon; + iIcon = NULL; + } + iIconNotOwned = aTransferOwnership; + iIcon = aIcon; + } + +void CAiToolbarButton::SetIconExternallyOwned( TBool aValue ) + { + iIconNotOwned = aValue; + } + +CAknButton* CAiToolbarButton::ButtonL() + { + // Icon ownership transferred to CAknButton + return CAknButton::NewL( Icon( ETrue ), + NULL, + NULL, + NULL, + KNullDesC, + Tooltip(), + KAknButtonSizeFitText | KAknButtonReportOnLongPress, + 0 ); + } +