diff -r 98ccebc37403 -r dc7c549001d5 javauis/mmapi_qt/baseline/src/cmmadisplay.cpp --- a/javauis/mmapi_qt/baseline/src/cmmadisplay.cpp Fri May 14 15:47:24 2010 +0300 +++ b/javauis/mmapi_qt/baseline/src/cmmadisplay.cpp Thu May 27 12:49:31 2010 +0300 @@ -28,20 +28,20 @@ // Destructor (virtual by CBase) CMMADisplay::~CMMADisplay() { -/* - if (iDirectContainer) - { - // Remove clip rect if set - if (!iClipRect.IsEmpty()) + /* + if (iDirectContainer) { - LOG(EJavaMMAPI,EInfo,"CMMADisplay::~CMMADisplay(): Removing clip rect"); - iDirectContainer->MdcRemoveContentBounds(iClipRect); - } + // Remove clip rect if set + if (!iClipRect.IsEmpty()) + { + LOG(EJavaMMAPI,EInfo,"CMMADisplay::~CMMADisplay(): Removing clip rect"); + iDirectContainer->MdcRemoveContentBounds(iClipRect); + } - // Remove this object from MDirectContainer - iDirectContainer->MdcRemoveContent(this); - } - */ + // Remove this object from MDirectContainer + iDirectContainer->MdcRemoveContent(this); + } + */ } @@ -56,31 +56,31 @@ void CMMADisplay::Construct(MMAFunctionServer* eventSource , jobject javadisplayref) { - iEventSource = eventSource; - iJni = iEventSource->getValidJniEnv(); - iJavaDisplayObject = iJni->NewGlobalRef(javadisplayref); - iJavaDisplayClass = iJni->GetObjectClass(iJavaDisplayObject); + iEventSource = eventSource; + iJni = iEventSource->getValidJniEnv(); + iJavaDisplayObject = iJni->NewGlobalRef(javadisplayref); + iJavaDisplayClass = iJni->GetObjectClass(iJavaDisplayObject); // Components must have direct content. - /* __ASSERT_LOG(EJavaMMAPI,EInfo,"aDirectContainer, User::Invariant()); + /* __ASSERT_LOG(EJavaMMAPI,EInfo,"aDirectContainer, User::Invariant()); - // Not owned - iDirectContainer = aDirectContainer; + // Not owned + iDirectContainer = aDirectContainer; - // Get component visibility. Later visibility changes will - // be informed through MDirectContent observer. - iContainerVisible = iDirectContainer->MdcContainerVisibility(); - LOG1(EJavaMMAPI,EInfo,"MID::CMMADisplay::Construct iContainerVisible = %d", iContainerVisible); - LOG1(EJavaMMAPI,EInfo,"MID::CMMADisplay::Construct iVisible = %d", iVisible); + // Get component visibility. Later visibility changes will + // be informed through MDirectContent observer. + iContainerVisible = iDirectContainer->MdcContainerVisibility(); + LOG1(EJavaMMAPI,EInfo,"MID::CMMADisplay::Construct iContainerVisible = %d", iContainerVisible); + LOG1(EJavaMMAPI,EInfo,"MID::CMMADisplay::Construct iVisible = %d", iVisible); - // Add this MDirectContent to the MDirectContainer. Cannot fail. - iDirectContainer->MdcAddContent(this); - */ + // Add this MDirectContent to the MDirectContainer. Cannot fail. + iDirectContainer->MdcAddContent(this); + */ } TRect CMMADisplay::ScaleToFullScreen(const TSize& aFullScreenSize, const TSize& aSourceSize) { - LOG(EJavaMMAPI,EInfo,"CMMADisplay::ScaleToFullScreen() +"); + LOG(EJavaMMAPI,EInfo,"CMMADisplay::ScaleToFullScreen() +"); if ((aSourceSize.iWidth == 0) && (aSourceSize.iHeight == 0)) { @@ -147,13 +147,13 @@ (iWindow->GetDisplayWindowType() == MMMADisplayWindow::EDisplayWindowTypeIsBitmap) || iClipRect == iWindow->DrawRect() && iContainerVisible && iVisible) { - LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion before return"); - return; + LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion before return"); + return; } TBool refreshScreen(EFalse); // Remove first the current clip rect if set - LOG2(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion: iClipRect = %d X %d",iClipRect.Width(),iClipRect.Height()); + LOG2(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion: iClipRect = %d X %d",iClipRect.Width(),iClipRect.Height()); if (!iClipRect.IsEmpty()) { LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion: Removing old rect"); @@ -164,24 +164,24 @@ // If visible then set a new clip rect if (iVisible && iContainerVisible) { - LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion: inside if (iVisible && iContainerVisible)"); + LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion: inside if (iVisible && iContainerVisible)"); iClipRect = iWindow->DrawRect(); LOG2(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion: inside if (iVisible && iContainerVisible)iClipRect = %d X %d",iClipRect.Width(),iClipRect.Height()); if (!iClipRect.IsEmpty()) { LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion: Adding new rect"); // Add new clipping rect - // iDirectContainer->MdcAddContentBounds(iClipRect); - SetContentBoundToJavaControl(iClipRect); + // iDirectContainer->MdcAddContentBounds(iClipRect); + SetContentBoundToJavaControl(iClipRect); refreshScreen = ETrue; } } if (refreshScreen) { - LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion: inside if(refreshScreen)"); + LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion: inside if(refreshScreen)"); // refresh screen - // iDirectContainer->MdcFlushContainer(iWindow->WindowRect()); - RefreshJavaControl(iWindow->WindowRect()); + // iDirectContainer->MdcFlushContainer(iWindow->WindowRect()); + RefreshJavaControl(); } LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion -"); } @@ -205,7 +205,7 @@ iClipRect.SetRect(0, 0, 0, 0); // refresh screen //iDirectContainer->MdcFlushContainer(iWindow->WindowRect()); - RefreshJavaControl(iWindow->WindowRect()); + RefreshJavaControl(); } } @@ -213,8 +213,8 @@ { // Called in mmapi thread LOG(EJavaMMAPI,EInfo,"CMMADisplay::AddClippingRegion"); - LOG2(EJavaMMAPI,EInfo,"CMMADisplay::AddClippingRegion iClipRect width = %d height = %d", iClipRect.Width() , iClipRect.Height()); - + LOG2(EJavaMMAPI,EInfo,"CMMADisplay::AddClippingRegion iClipRect width = %d height = %d", iClipRect.Width() , iClipRect.Height()); + if (!iWindow || (iWindow->GetDisplayWindowType() == MMMADisplayWindow::EDisplayWindowTypeIsBitmap) || @@ -230,12 +230,12 @@ { LOG(EJavaMMAPI,EInfo,"CMMADisplay::AddClippingRegion: Adding new rect"); // Add new clipping rect - // iDirectContainer->MdcAddContentBounds(iClipRect); - SetContentBoundToJavaControl(iClipRect); + // iDirectContainer->MdcAddContentBounds(iClipRect); + SetContentBoundToJavaControl(iClipRect); // refresh screen - // iDirectContainer->MdcFlushContainer( - // iWindow->WindowRect()); - RefreshJavaControl(iWindow->WindowRect()); + // iDirectContainer->MdcFlushContainer( + // iWindow->WindowRect()); + RefreshJavaControl(); } } } @@ -257,13 +257,13 @@ void CMMADisplay::SetDisplaySizeL(const TSize& aSize) { // user rect contains size set from java. - iUserRect.SetSize(aSize); - LOG2(EJavaMMAPI,EInfo,"MID::CMMADisplay::SetDisplaySizeL iUserRect = %d X %d", iUserRect.Width() ,iUserRect.Height()); + iUserRect.SetSize(aSize); + LOG2(EJavaMMAPI,EInfo,"MID::CMMADisplay::SetDisplaySizeL iUserRect = %d X %d", iUserRect.Width() ,iUserRect.Height()); // Size change has no effect if fullscreen mode is on. // New size could be used when fullscreen is turned off. if (iContainerVisible && !iFullScreen && iWindow) { - LOG1(EJavaMMAPI,EInfo,"MID::CMMADisplay::SetVisible + iContainerVisible = %d", iContainerVisible); + LOG1(EJavaMMAPI,EInfo,"MID::CMMADisplay::SetVisible + iContainerVisible = %d", iContainerVisible); RemoveClippingRegion(); LOG2(EJavaMMAPI,EInfo,"MID::CMMADisplay::SetDisplaySizeL iUserRect after removingClipRegion = %d X %d", iUserRect.Width() ,iUserRect.Height()); iWindow->SetDrawRect(iUserRect); @@ -272,7 +272,7 @@ } else { - LOG1(EJavaMMAPI,EInfo,"MID::CMMADisplay::SetVisible + iContainerVisible = %d", iContainerVisible); + LOG1(EJavaMMAPI,EInfo,"MID::CMMADisplay::SetVisible + iContainerVisible = %d", iContainerVisible); iResetDrawRect = ETrue; } } @@ -293,24 +293,25 @@ // if not it can not be set visible. if (iWindow && iContainerVisible) { - // iWindow->SetVisible(aValue, EFalse); - //MMAPI UI 3.x req. (had to comment above line and add below line which excutes in FS thread) + // iWindow->SetVisible(aValue, EFalse); + //MMAPI UI 3.x req. (had to comment above line and add below line which excutes in FS thread) iWindow->SetVisible(aValue, ETrue); SetClippingRegion(); + LOG(EJavaMMAPI,EInfo,"MID::CMMADisplay::SetVisible -"); } } void CMMADisplay::SetContainerVisibility(TBool aValue) { - iContainerVisible = aValue; - // TODO : delete the below check once implementation is done as it is used only for testing purpose - if(iContainerVisible) - LOG(EJavaMMAPI,EInfo,"CMMADisplay:SetContainerVisibility(): Container is visible "); - else - LOG(EJavaMMAPI,EInfo,"CMMADisplay:SetContainerVisibility(): Container is not visible "); + iContainerVisible = aValue; + // TODO : delete the below check once implementation is done as it is used only for testing purpose + if (iContainerVisible) + LOG(EJavaMMAPI,EInfo,"CMMADisplay:SetContainerVisibility(): Container is visible "); + else + LOG(EJavaMMAPI,EInfo,"CMMADisplay:SetContainerVisibility(): Container is not visible "); - HandleContainerVisibilityChanged(aValue); + HandleContainerVisibilityChanged(aValue); } // from MMMADisplay void CMMADisplay::SetWindowL(MMMADisplayWindow* aWindow) @@ -341,20 +342,20 @@ TBool CMMADisplay::HasContainer() { - // return iDirectContainer != NULL; - return EFalse; // temporary + // return iDirectContainer != NULL; + return EFalse; // temporary } -void CMMADisplay::HandleContainerVisibilityChanged( TBool aVisible ) - { +void CMMADisplay::HandleContainerVisibilityChanged(TBool aVisible) +{ LOG1(EJavaMMAPI,EInfo, "CMMADisplay::HandleContainerVisibilityChanged aVisible = %d", - aVisible ); - if(!iIsForeground && aVisible) - { + aVisible); + if (!iIsForeground && aVisible) + { LOG(EJavaMMAPI,EInfo," CMMADisplay::HandleContainerVisibilityChanged Condition 1 "); return; - } + } LOG(EJavaMMAPI,EInfo," CMMADisplay::HandleContainerVisibilityChanged After condition1"); @@ -367,7 +368,7 @@ // Allow LOG(EJavaMMAPI,EInfo,"MID::CMMADisplay::MdcContainerVisibilityChanged Allow "); } - else if( iContainerVisible == aVisible ) + else if (iContainerVisible == aVisible) { LOG(EJavaMMAPI,EInfo,"MID::CMMADisplay::MdcContainerVisibilityChanged iContainerVisible == aVisible "); // if state is not changed, we do not need to do it again @@ -408,19 +409,19 @@ } void CMMADisplay::MdcContainerWindowRectChanged(const TRect& - #ifdef RD_JAVA_NGA_ENABLED - aRect - #endif - ) + #ifdef RD_JAVA_NGA_ENABLED + aRect + #endif + ) { LOG(EJavaMMAPI,EInfo,"CMMADisplay::MdcContainerWindowRectChanged +"); #ifdef RD_JAVA_NGA_ENABLED if( iWindow ) - { - LOG(EJavaMMAPI,EInfo,"CMMADisplay::MdcContainerWindowRectChanged, SetRWindowRect"); - iWindow->SetRWindowRect(aRect, MMMADisplay::EUiThread); - } + { + LOG(EJavaMMAPI,EInfo,"CMMADisplay::MdcContainerWindowRectChanged, SetRWindowRect"); + iWindow->SetRWindowRect(aRect, MMMADisplay::EUiThread); + } #endif } void CMMADisplay::MdcContainerDestroyed() @@ -467,7 +468,7 @@ void CMMADisplay::GetCallbackInUiThread(TInt placeholder) { - LOG(EJavaMMAPI,EInfo,"CMMADisplay::GetCallbackInUiThread +"); + LOG(EJavaMMAPI,EInfo,"CMMADisplay::GetCallbackInUiThread +"); @@ -476,89 +477,45 @@ - jmethodID getCallBackMethodID = iJni->GetMethodID( - iJavaDisplayClass, - "GetCallbackInUiThread", - "(I)V"); - // LOG1(EJavaMMAPI,EInfo,"CMMADisplay::GetCallbackInUiThread getCallBackMethodID = %d",getCallBackMethodID); + jmethodID getCallBackMethodID = iJni->GetMethodID( + iJavaDisplayClass, + "GetCallbackInUiThread", + "(I)V"); + // LOG1(EJavaMMAPI,EInfo,"CMMADisplay::GetCallbackInUiThread getCallBackMethodID = %d",getCallBackMethodID); iJni->CallVoidMethod(iJavaDisplayObject,getCallBackMethodID,placeholder); - LOG(EJavaMMAPI,EInfo,"CMMADisplay::GetCallbackInUiThread -"); + LOG(EJavaMMAPI,EInfo,"CMMADisplay::GetCallbackInUiThread -"); } void CMMADisplay::CalledBackInUiThread(TInt placeholder) { - LOG(EJavaMMAPI,EInfo,"CMMADisplay::CalledBackInUiThread +"); - iWindow->UICallback(placeholder); - LOG(EJavaMMAPI,EInfo,"CMMADisplay::CalledBackInUiThread -"); + LOG(EJavaMMAPI,EInfo,"CMMADisplay::CalledBackInUiThread +"); + iWindow->UICallback(placeholder); + LOG(EJavaMMAPI,EInfo,"CMMADisplay::CalledBackInUiThread -"); } -void CMMADisplay::SourceSizeChanged(TInt aJavaControlWidth, TInt aJavaControlHeight) - { - LOG2(EJavaMMAPI,EInfo,"CMMADisplay::SourceSizeChanged(aSourceSize,aJavaControlWidth,aJavaControlHeight) + aJavaControlWidth = %d ,aJavaControlHeight = %d",aJavaControlWidth,aJavaControlHeight); - iSourceSize = SourceSize(); - LOG2(EJavaMMAPI,EInfo,"CMMADisplay::SourceSizeChanged(aSourceSize,aJavaControlWidth,aJavaControlHeight) + sourcesize = %d X %d",iSourceSize.iWidth , iSourceSize.iHeight); - #ifdef RD_JAVA_NGA_ENABLED - if ( iWindow ) - { - iWindow->SetVideoCropRegion( TRect( iUserRect.iTl, iSourceSize ) ); - } - #endif + - // size of canvas in java - TSize canvasSize(aJavaControlWidth, aJavaControlHeight); - fullScreenSize = canvasSize; - TBool sourceIsBigger = (iSourceSize.iWidth > fullScreenSize.iWidth || - iSourceSize.iHeight > fullScreenSize.iHeight); - - if (sourceIsBigger) +void CMMADisplay::SetWindowResources(QWidget* qtWidget) +{ + LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetWindowResources +"); + CCoeControl* control = 0; + if (qtWidget && qtWidget ->winId()) { - // Source is larger than display area. - // Shrink draw are to fit in display. - iWindow->SetDrawRect(ScaleToFullScreen(fullScreenSize, iSourceSize)); - } - else - { - // source is smaller than display area - iWindow->SetDrawRect(TRect(iUserRect.iTl, iSourceSize)); + control = reinterpret_cast(qtWidget->winId()); } - 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,"CMMADisplay::SourceSizeChanged(aSourceSize,aJavaControlWidth,aJavaControlHeight) -"); - } - -void CMMADisplay::SetWindowResources(QWidget* qtWidget) - { - LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetWindowResources +"); - CCoeControl* control = 0; - if(qtWidget && qtWidget ->winId()) - { - control = reinterpret_cast(qtWidget->winId()); - } - - CCoeEnv *coeEnv = control->ControlEnv(); - RWsSession * iWs = &(coeEnv->WsSession()); - CWsScreenDevice* iScreenDevice = coeEnv->ScreenDevice(); + CCoeEnv *coeEnv = control->ControlEnv(); + RWsSession * iWs = &(coeEnv->WsSession()); + CWsScreenDevice* iScreenDevice = coeEnv->ScreenDevice(); RWindowBase* window = static_cast(control->DrawableWindow()); if (!iWindow) { - return; + return; } - iWindow->ProcureWindowResourcesFromQWidget(iWs,iScreenDevice,window); - LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetWindowResources -"); - } + iWindow->ProcureWindowResourcesFromQWidget(iWs,iScreenDevice,window); + LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetWindowResources -"); +} void CMMADisplay::SetForeground(TBool aForeground, TBool aUseEventServer) @@ -583,54 +540,58 @@ } TSize CMMADisplay::SourceSize() - { - LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetSourceSizeToDisplay "); - return iUiPlayer->SourceSize(); - } - +{ + LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetSourceSizeToDisplay "); + return iUiPlayer->SourceSize(); +} + void CMMADisplay::SetUIPlayer(MMMAGuiPlayer* player) - { - iUiPlayer = player; - } +{ + iUiPlayer = player; +} - + void CMMADisplay::SourceSizeChanged(const TSize& aSourceSize) { LOG(EJavaMMAPI,EInfo,"CMMADisplay::SourceSizeChanged"); - - #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; + LOG1(EJavaMMAPI,EInfo,"MMA::CMMADisplay::SourceSizeChanged %d", + aSourceSize.iWidth); + LOG1(EJavaMMAPI,EInfo,"MMA::CMMADisplay::SourceSizeChanged %d", + aSourceSize.iHeight); jmethodID getDisplayWidthID = iJni->GetMethodID( - iJavaDisplayClass, - "getDisplayWidth", - "()I"); + iJavaDisplayClass, + "getDisplayWidth", + "()I"); jmethodID getDisplayHeightID = iJni->GetMethodID( - iJavaDisplayClass, - "getDisplayHeight", - "()I"); + iJavaDisplayClass, + "getDisplayHeight", + "()I"); TInt x = iJni->CallIntMethod(iJavaDisplayObject,getDisplayWidthID); TInt y = iJni->CallIntMethod(iJavaDisplayObject,getDisplayHeightID); - LOG2(EJavaMMAPI,EInfo,"CMMADisplay.cpp : SourceSizeChanged () fullScreenSize is x = %d ,y = %d ",x,y); - // get the ScreenSize from canvas in java + LOG2(EJavaMMAPI,EInfo,"CMMADisplay.cpp : SourceSizeChanged () iFullScreenSize is x = %d ,y = %d ",x,y); + // get the ScreenSize from canvas in java TSize canvasSize(x, y); - fullScreenSize = canvasSize; - TBool sourceIsBigger = (aSourceSize.iWidth > fullScreenSize.iWidth || - aSourceSize.iHeight > fullScreenSize.iHeight); + iFullScreenSize = canvasSize; + TBool sourceIsBigger = (aSourceSize.iWidth > iFullScreenSize.iWidth || + aSourceSize.iHeight > iFullScreenSize.iHeight); if (sourceIsBigger) { // Source is larger than display area. // Shrink draw are to fit in display. - iWindow->SetDrawRect(ScaleToFullScreen(fullScreenSize, iSourceSize)); + iWindow->SetDrawRect(ScaleToFullScreen(iFullScreenSize, iSourceSize)); } else { @@ -655,98 +616,99 @@ -void CMMADisplay::SetDisplayPosition(TInt uiControlLocationX,TInt uiControlLocationY,TInt videoControlLocationX,TInt videoControlLocationY) +void CMMADisplay::SetDisplayPosition(TInt /*uiControlLocationX*/,TInt /*uiControlLocationY*/,TInt videoControlLocationX,TInt videoControlLocationY) { - LOG(EJavaMMAPI,EInfo,"CMMADisplay::SourceSizeChanged + "); - TPoint point(videoControlLocationX ,videoControlLocationY); - //calling derived class fuction - SetDisplayLocationL(point); - LOG(EJavaMMAPI,EInfo,"CMMADisplay::SourceSizeChanged - "); + LOG(EJavaMMAPI,EInfo,"CMMADisplay::SourceSizeChanged + "); + TPoint point(videoControlLocationX ,videoControlLocationY); + //calling derived class fuction + TRAP_IGNORE(SetDisplayLocationL(point)); + LOG(EJavaMMAPI,EInfo,"CMMADisplay::SourceSizeChanged - "); } void CMMADisplay::ResetJavaRectObject(const TRect& aRect) - { - LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::ResetJavaRectObject +"); - JNIEnv* validJni = iEventSource->getValidJniEnv(); - jmethodID setRectID = validJni->GetMethodID( - iJavaDisplayClass, - "setRect", - "()V"); +{ + LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::ResetJavaRectObject +"); + JNIEnv* validJni = iEventSource->getValidJniEnv(); + jmethodID setRectID = validJni->GetMethodID( + iJavaDisplayClass, + "setRect", + "()V"); - LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::ResetJavaRectObject --1"); - // set the value to java,so that we can access those from array - jfieldID field = validJni->GetFieldID(iJavaDisplayClass, "rectDimension", "[I"); - if(field == NULL) - { - // handle error - } - /* Write to the instance fields */ - jintArray javaDimensionarr = (jintArray)validJni->GetObjectField(iJavaDisplayObject, field); - LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::ResetJavaRectObject --2"); - jint* nativeRectDimensionArr = validJni->GetIntArrayElements(javaDimensionarr, NULL); - LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::ResetJavaRectObject --3"); + LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::ResetJavaRectObject --1"); + // set the value to java,so that we can access those from array + jfieldID field = validJni->GetFieldID(iJavaDisplayClass, "rectDimension", "[I"); + if (field == NULL) + { + // handle error + } + /* Write to the instance fields */ + jintArray javaDimensionarr = (jintArray)validJni->GetObjectField(iJavaDisplayObject, field); + LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::ResetJavaRectObject --2"); + jint* nativeRectDimensionArr = validJni->GetIntArrayElements(javaDimensionarr, NULL); + LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::ResetJavaRectObject --3"); if (!nativeRectDimensionArr) - { // inputBuffer was already allocated + { + // inputBuffer was already allocated validJni->ReleaseIntArrayElements(javaDimensionarr, nativeRectDimensionArr, JNI_ABORT); LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::ResetJavaRectObject Error in resetting rect dimension to java"); return; } - nativeRectDimensionArr[0] = aRect.iTl.iX; - nativeRectDimensionArr[1] = aRect.iTl.iY;; - nativeRectDimensionArr[2] = aRect.Width(); - nativeRectDimensionArr[3] = aRect.Height(); - // Now the dimension array in java is updated hence reset the java rect - validJni->CallVoidMethod(iJavaDisplayObject,setRectID); - - validJni->ReleaseIntArrayElements(javaDimensionarr, nativeRectDimensionArr, JNI_COMMIT); - LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::ResetJavaRectObject -"); + nativeRectDimensionArr[0] = aRect.iTl.iX; + nativeRectDimensionArr[1] = aRect.iTl.iY;; + nativeRectDimensionArr[2] = aRect.Width(); + nativeRectDimensionArr[3] = aRect.Height(); + // Now the dimension array in java is updated hence reset the java rect + validJni->CallVoidMethod(iJavaDisplayObject,setRectID); + + validJni->ReleaseIntArrayElements(javaDimensionarr, nativeRectDimensionArr, JNI_COMMIT); + LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::ResetJavaRectObject -"); } void CMMADisplay::SetContentBoundToJavaControl(const TRect& aRect) - { - LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::SetContentBoundToJavaControl +"); - JNIEnv* validJni = iEventSource->getValidJniEnv(); - // Reset the java rect - ResetJavaRectObject(aRect); - jmethodID setContentBoundID = validJni->GetMethodID( - iJavaDisplayClass, - "setContentBound", - "()V"); - // call java function - validJni->CallVoidMethod(iJavaDisplayObject,setContentBoundID); - LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::SetContentBoundToJavaControl -"); - } - +{ + LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::SetContentBoundToJavaControl +"); + JNIEnv* validJni = iEventSource->getValidJniEnv(); + // Reset the java rect + ResetJavaRectObject(aRect); + jmethodID setContentBoundID = validJni->GetMethodID( + iJavaDisplayClass, + "setContentBound", + "()V"); + // call java function + validJni->CallVoidMethod(iJavaDisplayObject,setContentBoundID); + LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::SetContentBoundToJavaControl -"); +} + void CMMADisplay::RemoveContentBoundFromJavaControl(const TRect& aRect) - { - LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::RemoveContentBoundFromJavaControl +"); - JNIEnv* validJni = iEventSource->getValidJniEnv(); - // Reset the java rect - ResetJavaRectObject(aRect); - jmethodID removeContentBoundID = validJni->GetMethodID( - iJavaDisplayClass, - "removeContentBound", +{ + LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::RemoveContentBoundFromJavaControl +"); + JNIEnv* validJni = iEventSource->getValidJniEnv(); + // Reset the java rect + ResetJavaRectObject(aRect); + jmethodID removeContentBoundID = validJni->GetMethodID( + iJavaDisplayClass, + "removeContentBound", "()V"); - // call java function - validJni->CallVoidMethod(iJavaDisplayObject,removeContentBoundID); - LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::RemoveContentBoundFromJavaControl -"); - } - -void CMMADisplay::RefreshJavaControl(const TRect& aRect) - { - LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::RefreshJavaControl +"); - JNIEnv* validJni = iEventSource->getValidJniEnv(); - // Reset the java rect - //ResetJavaRectObject(aRect); - jmethodID redrawControlID = validJni->GetMethodID( - iJavaDisplayClass, - "redrawControl", - "()V"); - // call java function - validJni->CallVoidMethod(iJavaDisplayObject,redrawControlID); - LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::RefreshJavaControl -"); - } - + // call java function + validJni->CallVoidMethod(iJavaDisplayObject,removeContentBoundID); + LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::RemoveContentBoundFromJavaControl -"); +} + +void CMMADisplay::RefreshJavaControl() +{ + LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::RefreshJavaControl +"); + JNIEnv* validJni = iEventSource->getValidJniEnv(); + // Reset the java rect + //ResetJavaRectObject(aRect); + jmethodID redrawControlID = validJni->GetMethodID( + iJavaDisplayClass, + "redrawControl", + "()V"); + // call java function + validJni->CallVoidMethod(iJavaDisplayObject,redrawControlID); + LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::RefreshJavaControl -"); +} + // END OF FILE