diff -r 000000000000 -r 5e5d6b214f4f imstutils/imconversationview/imcvuiapp/src/cimcvapppicture.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imstutils/imconversationview/imcvuiapp/src/cimcvapppicture.cpp Tue Feb 02 10:12:18 2010 +0200 @@ -0,0 +1,152 @@ +/* +* Copyright (c) 2007-2008 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: Picture wrapper for icons and smileys +* +*/ + + +// INCLUDE FILES +#include "cimcvapppicture.h" +#include "fbs.h" +#include +#include "imcvlogger.h" + +_LIT( KPanicText, "Smiley" ); + +// ----------------------------------------------------------------------------- +// CIMCVAppPicture::CIMCVAppPicture +// ----------------------------------------------------------------------------- +// +CIMCVAppPicture::CIMCVAppPicture( MGraphicsDeviceMap& aMap, CGulIcon* aIcon, + TInt aIndex /* = -1 */, TBool aExternalIcon /* = ETrue */) + : iIndex( aIndex ), + iIcon( aIcon ), + iExternalIcon( aExternalIcon ), + iGfxMap( aMap ) + { + __ASSERT_ALWAYS( iIcon, + User::Panic( KPanicText, 1 ) ); + + SetTwips(); + } + +// ----------------------------------------------------------------------------- +// CIMCVAppPicture::~CIMCVAppPicture +// ----------------------------------------------------------------------------- +// +CIMCVAppPicture::~CIMCVAppPicture() + { + if ( !iExternalIcon ) + { + delete iIcon; + } + } + +// ----------------------------------------------------------------------------- +// CIMCVAppPicture::LineBreakPossible +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +TBool CIMCVAppPicture::LineBreakPossible( TUint /*aClass*/, + TBool /*aBeforePicture*/, + TBool /*aHaveSpaces*/ ) const + { + return EFalse; + } + +// ----------------------------------------------------------------------------- +// CIMCVAppPicture::Draw +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +void CIMCVAppPicture::Draw( CGraphicsContext& aGc, + const TPoint& aTopLeft, + const TRect& aClipRect, + MGraphicsDeviceMap* /*aMap*/ ) const + { + IM_CV_LOGS(TXT("CIMCVAppPicture::Draw() start") ); + TSize size( iIcon->Bitmap()->SizeInPixels() ); + CBitmapContext& bc = static_cast( aGc ); + + + aGc.Reset(); + aGc.SetClippingRect( aClipRect ); + + if( iIcon->Mask() ) + { + bc.BitBltMasked( aTopLeft, iIcon->Bitmap(), size, iIcon->Mask(), ETrue ); + } + else + { + bc.BitBlt( aTopLeft, iIcon->Bitmap(), size ); + } + IM_CV_LOGS(TXT("CIMCVAppPicture::Draw() end") ); + } + +// ----------------------------------------------------------------------------- +// CIMCVAppPicture::ExternalizeL +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +void CIMCVAppPicture::ExternalizeL( RWriteStream& /*aStream*/ ) const + { + // nothing to be done here + } + +// ----------------------------------------------------------------------------- +// CIMCVAppPicture::GetOriginalSizeInTwips( +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +void CIMCVAppPicture::GetOriginalSizeInTwips( TSize& aSize ) const + { + IM_CV_LOGS(TXT("CIMCVAppPicture::GetOriginalSizeInTwips() start") ); + if ( iIcon->Bitmap() ) + { + aSize = iIcon->Bitmap()->SizeInTwips(); + + if( aSize.iHeight == 0 || aSize.iWidth == 0 ) + { + SetTwips(); + aSize = iIcon->Bitmap()->SizeInTwips(); + } + } + IM_CV_LOGS(TXT("CIMCVAppPicture::GetOriginalSizeInTwips() end") ); + } + +// ----------------------------------------------------------------------------- +// CIMCVAppPicture::Index +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +TInt CIMCVAppPicture::Index() const + { + return iIndex; + } + +// ----------------------------------------------------------------------------- +// CIMCVAppPicture::SetTwips +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +void CIMCVAppPicture::SetTwips() const + { + IM_CV_LOGS(TXT("CIMCVAppPicture::SetTwips() start") ); + TSize sizeP( iIcon->Bitmap()->SizeInPixels() ); + TSize sizeT( iGfxMap.HorizontalPixelsToTwips( sizeP.iWidth ), + iGfxMap.VerticalPixelsToTwips( sizeP.iHeight ) ); + iIcon->Bitmap()->SetSizeInTwips( sizeT ); + + IM_CV_LOGS(TXT("CIMCVAppPicture::SetTwips() end") ); + }