--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/mmapi_qt/baseline/src/cmmaitemdisplay.cpp Tue May 11 16:07:20 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 <logger.h>
+//#include <lcdui.h>
+
+#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