--- a/javauis/mmapi_qt/baseline/src/cmmaitemdisplay.cpp Fri May 14 15:47:24 2010 +0300
+++ b/javauis/mmapi_qt/baseline/src/cmmaitemdisplay.cpp Thu May 27 12:49:31 2010 +0300
@@ -25,11 +25,11 @@
// CONSTRUCTION
// Static constructor, leaves pointer to cleanup-stack
-CMMAItemDisplay* CMMAItemDisplay::NewLC(/*MMIDCustomItem* aCustomItem*/)
+CMMAItemDisplay* CMMAItemDisplay::NewLC(MMAFunctionServer* aEventSource , jobject aItemDispObj)
{
- CMMAItemDisplay* self = new(ELeave) CMMAItemDisplay(/*aCustomItem*/);
+ CMMAItemDisplay* self = new(ELeave) CMMAItemDisplay();
CleanupStack::PushL(self);
- // self->Construct(/*&(aCustomItem->DirectContainer())*/);
+ self->Construct(aEventSource, aItemDispObj);
return self;
}
@@ -41,18 +41,18 @@
CMMAItemDisplay::CMMAItemDisplay(/*MMIDCustomItem* aCustomItem*/)
- //: iItem(aCustomItem)
+//: iItem(aCustomItem)
{
iVisible = ETrue; // Item is visible at startup
}
-void CMMAItemDisplay::SizeChangedL(CMMAItemDisplay* aDisplay,
+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();
@@ -86,17 +86,17 @@
CMMADisplay::SetWindowL(aWindow);
if (!iWindow)
{
- LOG( EJavaMMAPI, EInfo, "CMMAItemDisplay::SetWindowL: NULL window, returning");
+ LOG(EJavaMMAPI, EInfo, "CMMAItemDisplay::SetWindowL: NULL window, returning");
return;
}
iSourceSize = iWindow->WindowSize();
- /* CFbsBitmap* bitmap = iItem->FrameBuffer();
+ /* CFbsBitmap* bitmap = iItem->FrameBuffer();
- if (bitmap)
- {
- iWindow->SetDestinationBitmapL(bitmap);
- }
- */
+ if (bitmap)
+ {
+ iWindow->SetDestinationBitmapL(bitmap);
+ }
+ */
}
void CMMAItemDisplay::SetDisplayLocationL(const TPoint& /*aPosition*/)
@@ -111,6 +111,7 @@
return TPoint(0, 0);
}
+/*
void CMMAItemDisplay::SourceSizeChanged(const TSize& aSourceSize)
{
LOG1(EJavaMMAPI,EInfo,"MMA::CMMAItemDisplay::SourceSizeChanged %d",
@@ -118,12 +119,12 @@
LOG1(EJavaMMAPI,EInfo,"MMA::CMMAItemDisplay::SourceSizeChanged %d",
aSourceSize.iHeight);
- #ifdef RD_JAVA_NGA_ENABLED
- if ( iWindow )
- {
- iWindow->SetVideoCropRegion( TRect( iUserRect.iTl, aSourceSize ) );
- }
- #endif
+ #ifdef RD_JAVA_NGA_ENABLED
+ if ( iWindow )
+ {
+ iWindow->SetVideoCropRegion( TRect( iUserRect.iTl, aSourceSize ) );
+ }
+ #endif
iSourceSize = aSourceSize;
@@ -148,11 +149,162 @@
iUserRect.SetSize(iSourceSize);
}
}
+*/
+
+
+void CMMAItemDisplay:: SourceSizeChanged(TInt aJavaControlWidth, TInt aJavaControlHeight,TInt x, TInt y,TRect aBoundsRect)
+{
+ JELOG2(EJavaMMAPI);
+ LOG2(EJavaMMAPI,EInfo,"CMMAItemDisplay::SourceSizeChanged(aSourceSize,aJavaControlWidth,aJavaControlHeight) + aJavaControlWidth = %d ,aJavaControlHeight = %d",aJavaControlWidth,aJavaControlHeight);
+ iSourceSize = SourceSize();
+ //iUserRect = TRect(103,0,aJavaControlWidth,aJavaControlHeight);
+ //int x = 103;
+ //int y = 0;
+
+ LOG2(EJavaMMAPI,EInfo,"CMMAItemDisplay::SourceSizeChanged(aSourceSize,aJavaControlWidth,aJavaControlHeight) + sourcesize = %d X %d",iSourceSize.iWidth , iSourceSize.iHeight);
+ TSize itemSize(aJavaControlWidth, aJavaControlHeight);
+
+ //iUserRect.iTl.iX = iUserRect.iTl.iX + x;
+ //iUserRect.iTl.iY = iUserRect.iTl.iY + y;
+
+ TRect visibleRect(0,0,0,0);
+ visibleRect.iBr.iX = visibleRect.iBr.iX + aJavaControlWidth;
+ visibleRect.iBr.iY = visibleRect.iBr.iY + aJavaControlHeight;
+
+ // To Do remove adding amrgine once lcdui add them
+ /*
+ visibleRect.iTl.iX = visibleRect.iTl.iX + 5;
+ visibleRect.iTl.iY = visibleRect.iTl.iY + 8;
+ visibleRect.iBr.iX = visibleRect.iBr.iX + 5;
+ visibleRect.iBr.iY = visibleRect.iBr.iY + 8;
+ */
+
+ // Add the form top left co-od to visible rect - to avoid form title
+
+ visibleRect.iTl.iY = visibleRect.iTl.iY + aBoundsRect.iTl.iY;
+ visibleRect.iBr.iY = visibleRect.iBr.iY + aBoundsRect.iTl.iY;
+
+ // add the exact location co-od of custom item
+ visibleRect.iTl.iX = visibleRect.iTl.iX + x;
+ visibleRect.iTl.iY = visibleRect.iTl.iY + y;
+ visibleRect.iBr.iX = visibleRect.iBr.iX + x;
+ visibleRect.iBr.iY = visibleRect.iBr.iY + y;
+ LOG2(EJavaMMAPI,EInfo,"CMMAItemDisplay::SourceSizeChanged - aBoundsRect.iTl %d , %d",aBoundsRect.iTl.iX,aBoundsRect.iTl.iY);
+ LOG2(EJavaMMAPI,EInfo,"CMMAItemDisplay::SourceSizeChanged - aBoundsRect.ibr %d , %d",aBoundsRect.iBr.iX,aBoundsRect.iBr.iY);
+
+ TPoint topLeft(0,0);
+#ifdef RD_JAVA_NGA_ENABLED
+ if (iWindow)
+ {
+ //iWindow->SetVideoCropRegion( TRect( iUserRect.iTl, itemSize ) );
+ iWindow->SetVideoCropRegion(TRect(topLeft , iSourceSize));
+ }
+#endif
+
+
+
+ TBool sourceIsBigger = (iSourceSize.iWidth > itemSize.iWidth ||
+ iSourceSize.iHeight > itemSize.iHeight);
+ // size of canvas in java
+ /*TSize canvasSize(aJavaControlWidth, aJavaControlHeight);
+ iFullScreenSize = canvasSize;
+ TBool sourceIsBigger = (iSourceSize.iWidth > iFullScreenSize.iWidth ||
+ iSourceSize.iHeight > iFullScreenSize.iHeight);
+
+
+
+ if(itemSize.iWidth == 0 && itemSize.iHeight == 0)
+ {
+ LOG(EJavaMMAPI,EInfo,"CMMAItemDisplay::SourceSizeChanged - item size is (0,0)");
+ LOG1(EJavaMMAPI,EInfo,"CMMAItemDisplay::SourceSizeChanged - iUserRect.iTl.iHeight = %d",iUserRect.Size().iHeight);
+ iWindow->SetDrawRect(TRect(iUserRect.iTl, iSourceSize));
+ }
+ else
+ {
+ if (sourceIsBigger)
+ {
+ // Source is larger than display area.
+ // clip the source to fit into item
+ LOG(EJavaMMAPI,EInfo,"CMMAItemDisplay::SourceSizeChanged - source is bigger than display area");
+ iWindow->SetDrawRect(ScaleToFullScreen(iFullScreenSize, iSourceSize));
+ LOG(EJavaMMAPI,EInfo,"CMMAItemDisplay::SourceSizeChanged - source is bigger than display area - after SetDrawRect");
+
+ }
+ else
+ { */
+ // source is smaller than display area
+ if (iSourceSize.iHeight == itemSize.iHeight && iSourceSize.iWidth == itemSize.iWidth)
+ {
+ LOG(EJavaMMAPI,EInfo,"CMMAItemDisplay::SourceSizeChanged - source is smaller than display area");
+ LOG1(EJavaMMAPI,EInfo,"CMMAItemDisplay::SourceSizeChanged - iSourceSize.iWidth = %d",iSourceSize.iWidth);
+ LOG1(EJavaMMAPI,EInfo,"CMMAItemDisplay::SourceSizeChanged - iSourceSize.iHeight = %d",iSourceSize.iHeight);
+
+ //iWindow->SetWindowRect(TRect(TPoint(5,100),TPoint(133,196)),MMMADisplay::EMmaThread);
+ iWindow->SetWindowRect(visibleRect,MMMADisplay::EMmaThread);
+ iWindow->SetRWindowRect(aBoundsRect,MMMADisplay::EMmaThread);
+ //iWindow->SetRWindowRect(TRect(TPoint(0,92),TPoint(360,487)),MMMADisplay::EMmaThread);
+ iWindow->SetDrawRect(TRect(iUserRect.iTl, iSourceSize));
+ }
+ else
+ {
+ if (sourceIsBigger)
+ {
+ LOG(EJavaMMAPI,EInfo,"CMMAItemDisplay::SourceSizeChanged - SOURCE IS BIGGER");
+ TPoint temp(iUserRect.iTl.iX-x,iUserRect.iTl.iY-y);
+
+
+
+ LOG2(EJavaMMAPI,EInfo,"CMMAItemDisplay::SourceSizeChanged - visibleRect.iTl %d , %d",visibleRect.iTl.iX,visibleRect.iTl.iY);
+ LOG2(EJavaMMAPI,EInfo,"CMMAItemDisplay::SourceSizeChanged - visibleRect.iBr %d , %d",visibleRect.iBr.iX,visibleRect.iBr.iY);
+ iWindow->SetWindowRect(visibleRect,MMMADisplay::EMmaThread);
+ iWindow->SetRWindowRect(aBoundsRect,MMMADisplay::EMmaThread);
+ iWindow->SetDrawRect(TRect(iUserRect.iTl, iSourceSize));
+
+ //iWindow->SetWindowRect(TRect(iUserRect.iTl,itemSize),MMMADisplay::EMmaThread);
+ //iWindow->SetRWindowRect(TRect(temp,itemSize),MMMADisplay::EMmaThread);
+
+ //iWindow->SetWindowRect(TRect(TPoint(127,100),TPoint(255,96)),MMMADisplay::EMmaThread);
+ //iWindow->SetRWindowRect(TRect(TPoint(127,100),TPoint(255,96)),MMMADisplay::EMmaThread);
+ //iWindow->SetRWindowRect(TRect(TPoint(0,92),TPoint(360,579)),MMMADisplay::EMmaThread);
+
+
+
+
+ //iWindow->SetDrawRect(TRect(temp, iSourceSize));
+ //iWindow->SetDrawRect(TRect(TPoint(0,0), iSourceSize));
+ }
+ else
+ {
+ }
+ }
+
+
+
+ SetClippingRegion();
+
+ if (iUserRect.IsEmpty())
+ {
+ // Java side hasn't set size.
+ iUserRect = iWindow->DrawRect();
+
+ //if (!sourceIsBigger)
+ //{
+ // Addjusting rect to top left corner.
+ iUserRect = TRect(iUserRect.Size());
+ //}
+ }
+ LOG(EJavaMMAPI,EInfo,"CMMAItemDisplay::SourceSizeChanged(aJavaControlWidth,aJavaControlHeight)-");
+}
void CMMAItemDisplay::StaticSourceSize(CMMAItemDisplay* aDisplay,
TSize* aSize)
{
- *aSize = aDisplay->iUserRect.Size();
+ LOG(EJavaMMAPI,EInfo,"CMMAItemDisplay::StaticSourceSize +");
+
+ // To DO check if this is correct
+ //*aSize = aDisplay->iUserRect.Size();
+ *aSize = aDisplay->SourceSize();
+
}
/*void CMMAItemDisplay::MdcItemContentRectChanged(const TRect& aContentRect,