57 aAttribs->iSize = canvas->ContentSize(); |
56 aAttribs->iSize = canvas->ContentSize(); |
58 aAttribs->iFrameBuffer = static_cast< TBool >(canvas->FrameBuffer() != NULL); |
57 aAttribs->iFrameBuffer = static_cast< TBool >(canvas->FrameBuffer() != NULL); |
59 |
58 |
60 // Check from a MMIDEnv object if the canvas object has a background or not |
59 // Check from a MMIDEnv object if the canvas object has a background or not |
61 aAttribs->iHasBackground = aToolkit->Env()->CanvasHasBackground(*canvas); |
60 aAttribs->iHasBackground = aToolkit->Env()->CanvasHasBackground(*canvas); |
62 aAttribs->iVideoOverlayEnabled = aToolkit->Env()->VideoOverlayEnabled(); |
61 |
63 } |
62 } |
64 |
63 |
65 JNIEXPORT jint JNICALL Java_javax_microedition_lcdui_Canvas__1create |
64 JNIEXPORT jint JNICALL Java_javax_microedition_lcdui_Canvas__1create |
66 ( |
65 ( |
67 JNIEnv* aJni, |
66 JNIEnv* aJni, |
76 |
75 |
77 TCanvasCreate create; |
76 TCanvasCreate create; |
78 create.iDisplayable=aDisplayable; |
77 create.iDisplayable=aDisplayable; |
79 create.iRef= aJni->NewWeakGlobalRef(aCanvas); |
78 create.iRef= aJni->NewWeakGlobalRef(aCanvas); |
80 create.iIsGameCanvas = aIsGameCanvas; |
79 create.iIsGameCanvas = aIsGameCanvas; |
81 |
|
82 TCanvasAttribs attribs; |
80 TCanvasAttribs attribs; |
83 attribs.iFrameBuffer=EFalse; |
81 attribs.iFrameBuffer=EFalse; |
|
82 |
84 attribs.iHasBackground = EFalse; |
83 attribs.iHasBackground = EFalse; |
85 attribs.iVideoOverlayEnabled = EFalse; |
|
86 |
|
87 jint error; |
84 jint error; |
88 if (create.iRef) |
85 if (create.iRef) |
89 { |
86 { |
90 error = toolkit->ExecuteTrap(&CreateCanvasL, toolkit, &create, &attribs); |
87 error = toolkit->ExecuteTrap(&CreateCanvasL, toolkit, &create, &attribs); |
91 } |
88 } |
98 { |
95 { |
99 // should be cleared in CreateCanvasL if no error |
96 // should be cleared in CreateCanvasL if no error |
100 aJni->DeleteWeakGlobalRef(create.iRef); |
97 aJni->DeleteWeakGlobalRef(create.iRef); |
101 } |
98 } |
102 |
99 |
103 ASSERT(aJni->GetArrayLength(aAttribsReturn) == 6); |
100 ASSERT(aJni->GetArrayLength(aAttribsReturn) == 5); |
104 jint attribsArray[6]; |
101 jint attribsArray[5]; |
105 attribsArray[0] = static_cast< jint >(attribs.iHandle); |
102 attribsArray[0] = static_cast< jint >(attribs.iHandle); |
106 attribsArray[1] = static_cast< jint >(attribs.iSize.iWidth); |
103 attribsArray[1] = static_cast< jint >(attribs.iSize.iWidth); |
107 attribsArray[2] = static_cast< jint >(attribs.iSize.iHeight); |
104 attribsArray[2] = static_cast< jint >(attribs.iSize.iHeight); |
108 attribsArray[3] = static_cast< jint >(attribs.iFrameBuffer); |
105 attribsArray[3] = static_cast< jint >(attribs.iFrameBuffer); |
109 attribsArray[4] = static_cast< jint >(attribs.iHasBackground); |
106 attribsArray[4] = static_cast< jint >(attribs.iHasBackground); |
110 attribsArray[5] = static_cast< jint >(attribs.iVideoOverlayEnabled); |
107 aJni->SetIntArrayRegion(aAttribsReturn, 0, 5, &attribsArray[0]); |
111 aJni->SetIntArrayRegion(aAttribsReturn, 0, 6, &attribsArray[0]); |
|
112 |
108 |
113 LCDUI_DEBUG_INT2("Canvas_create(%x == %x)", handle, (TInt)MIDUnhandObject<MMIDCanvas>(handle)); |
109 LCDUI_DEBUG_INT2("Canvas_create(%x == %x)", handle, (TInt)MIDUnhandObject<MMIDCanvas>(handle)); |
114 return error; |
110 return error; |
115 } |
111 } |
116 |
112 |