diff -r 2a9601315dfc -r 98ccebc37403 javauis/mmapi_qt/baseline/src/cmmaitemdisplay.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javauis/mmapi_qt/baseline/src/cmmaitemdisplay.cpp Fri May 14 15:47:24 2010 +0300 @@ -0,0 +1,177 @@ +/* +* Copyright (c) 2002-2009 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: Bitmap display that draws to the Java CustomItem's bitmap. +* +*/ + + +// Include Files +#include +//#include + +#include "cmmaitemdisplay.h" +#include "cmmabitmapwindow.h" + +// CONSTRUCTION +// Static constructor, leaves pointer to cleanup-stack +CMMAItemDisplay* CMMAItemDisplay::NewLC(/*MMIDCustomItem* aCustomItem*/) +{ + CMMAItemDisplay* self = new(ELeave) CMMAItemDisplay(/*aCustomItem*/); + CleanupStack::PushL(self); + // self->Construct(/*&(aCustomItem->DirectContainer())*/); + return self; +} + + +// Destructor (virtual by CBase) +CMMAItemDisplay::~CMMAItemDisplay() +{ +} + + +CMMAItemDisplay::CMMAItemDisplay(/*MMIDCustomItem* aCustomItem*/) + //: iItem(aCustomItem) +{ + iVisible = ETrue; // Item is visible at startup +} + +void CMMAItemDisplay::SizeChangedL(CMMAItemDisplay* aDisplay, + TInt /*aWidth*/, + TInt /*aHeight*/) +// currently width and height is ignored +// may be used later to layout the image. +{ + /* + if (aDisplay->iWindow) + { + CFbsBitmap* bitmap = aDisplay->iItem->FrameBuffer(); + aDisplay->iWindow->SetDestinationBitmapL(bitmap); + } + */ +} + +void CMMAItemDisplay::SetFullScreenL(TBool aFullScreen) +{ + iFullScreen = aFullScreen; + if (!iWindow) + { + return; + } + if (aFullScreen) + { + // switch to fullscreen + iWindow->SetDrawRect(ScaleToFullScreen( + iWindow->WindowSize(), iSourceSize)); + } + else + { + // switch to normal screen + iWindow->SetDrawRect(iUserRect); + } +} + +void CMMAItemDisplay::SetWindowL(MMMADisplayWindow* aWindow) +{ + CMMADisplay::SetWindowL(aWindow); + if (!iWindow) + { + LOG( EJavaMMAPI, EInfo, "CMMAItemDisplay::SetWindowL: NULL window, returning"); + return; + } + iSourceSize = iWindow->WindowSize(); + /* CFbsBitmap* bitmap = iItem->FrameBuffer(); + + if (bitmap) + { + iWindow->SetDestinationBitmapL(bitmap); + } + */ +} + +void CMMAItemDisplay::SetDisplayLocationL(const TPoint& /*aPosition*/) +{ + // In item( USE_GUI_PRIMITIVE ) mode, this call will be ignored. +} + + +TPoint CMMAItemDisplay::DisplayLocation() +{ + // Java Item's location is always 0, 0 + return TPoint(0, 0); +} + +void CMMAItemDisplay::SourceSizeChanged(const TSize& aSourceSize) +{ + LOG1(EJavaMMAPI,EInfo,"MMA::CMMAItemDisplay::SourceSizeChanged %d", + aSourceSize.iWidth); + LOG1(EJavaMMAPI,EInfo,"MMA::CMMAItemDisplay::SourceSizeChanged %d", + aSourceSize.iHeight); + + #ifdef RD_JAVA_NGA_ENABLED + if ( iWindow ) + { + iWindow->SetVideoCropRegion( TRect( iUserRect.iTl, aSourceSize ) ); + } + #endif + + iSourceSize = aSourceSize; + + if (iWindow) + { + TRect clientRect(iUserRect.iTl, aSourceSize); + + iWindow->SetDrawRect(clientRect); + // Setting initial window size if not already set, actual size will + // be set in MdcItemContentRectChanged() + if (iWindow->WindowSize() == TSize()) + { + iWindow->SetWindowRect(clientRect, MMMADisplay::EMmaThread); + } + } + + SetClippingRegion(); + + if (iUserRect.IsEmpty()) + { + // Java side hasn't set size. + iUserRect.SetSize(iSourceSize); + } +} + +void CMMAItemDisplay::StaticSourceSize(CMMAItemDisplay* aDisplay, + TSize* aSize) +{ + *aSize = aDisplay->iUserRect.Size(); +} + +/*void CMMAItemDisplay::MdcItemContentRectChanged(const TRect& aContentRect, + const TRect& aScreenRect) +{ + if (iWindow) + { + // Change windows rect. + iWindow->SetWindowRect(aScreenRect, MMMADisplay::EUiThread); + TRect drawRect = aContentRect; + drawRect.Move(- aScreenRect.iTl); + iWindow->SetDrawRectThread(drawRect); + } + SetClippingRegion(); +} +*/ +/*void CMMAItemDisplay::MdcContentBoundsChanged(const TRect& aRect) +{ + // Do nothing in Item display +} +*/ +// END OF FILE