< prev index next >

modules/javafx.web/src/main/native/Source/WebCore/platform/java/RenderThemeJava.cpp

Print this page
rev 11070 : imported patch 12.patch


 160     // platformContext() returns 0 when printing
 161     if (paintInfo.context().paintingDisabled() || !paintInfo.context().platformContext()) {
 162         return false;
 163     }
 164 
 165     auto jRenderTheme = paintInfo.context().platformContext()->jRenderTheme();
 166     if (!jRenderTheme) {
 167         return false;
 168     }
 169 
 170     int state = createWidgetState(object);
 171     RGBA32 bgColor = object.style().visitedDependentColor(
 172         widgetIndex == JNI_EXPAND(MENU_LIST_BUTTON)
 173             ? CSSPropertyColor
 174             : CSSPropertyBackgroundColor
 175     ).rgb();
 176 
 177     JNIEnv* env = WebCore_GetJavaEnv();
 178 
 179     WTF::Vector<jbyte> extParams;
 180     if (JNI_EXPAND(SLIDER) == widgetIndex) {
 181         HTMLInputElement& input = downcast<RenderSlider>(object).element();
 182 
 183         extParams.grow(sizeof(jint) + 3 * sizeof(jfloat));
 184         jbyte *data = extParams.data();
 185         auto isVertical = jint((object.style().appearance() == SliderHorizontalPart)
 186             ? 0
 187             : 1);
 188         memcpy(data, &isVertical, sizeof(isVertical));
 189         data += sizeof(jint);
 190 
 191         auto maximum = jfloat(input.maximum());
 192         memcpy(data, &maximum, sizeof(maximum));
 193         data += sizeof(jfloat);
 194 
 195         auto minimum = jfloat(input.minimum());
 196         memcpy(data, &minimum, sizeof(minimum));
 197         data += sizeof(jfloat);
 198 
 199         auto valueAsNumber = jfloat(input.valueAsNumber());
 200         memcpy(data, &valueAsNumber, sizeof(valueAsNumber));
 201     } else if (JNI_EXPAND(PROGRESS_BAR) == widgetIndex) {
 202 #if ENABLE(PROGRESS_ELEMENT)

 203         RenderProgress& renderProgress = downcast<RenderProgress>(object);
 204 
 205         extParams.grow(sizeof(jint) + 3*sizeof(jfloat));
 206         jbyte *data = extParams.data();
 207         auto isDeterminate = jint(renderProgress.isDeterminate() ? 1 : 0);
 208         memcpy(data, &isDeterminate, sizeof(isDeterminate));
 209         data += sizeof(jint);
 210 
 211         auto position = jfloat(renderProgress.position());
 212         memcpy(data, &position, sizeof(position));
 213         data += sizeof(jfloat);
 214 
 215         auto animationProgress = jfloat(renderProgress.animationProgress());
 216         memcpy(data, &animationProgress, sizeof(animationProgress));
 217         data += sizeof(jfloat);
 218 
 219         auto animationStartTime = jfloat(renderProgress.animationStartTime());
 220         memcpy(data, &animationStartTime, sizeof(animationStartTime));

 221 #endif
 222 #if ENABLE(METER_ELEMENT)
 223     } else if (JNI_EXPAND(METER) == widgetIndex) {
 224         jfloat value = 0;
 225         jint region = 0;
 226         if (object.isMeter()) {
 227             HTMLMeterElement* meter = static_cast<HTMLMeterElement*>(object.node());
 228             value = meter->valueRatio();
 229             region = meter->gaugeRegion();
 230 #if ENABLE(PROGRESS_ELEMENT)
 231         } else if (object.isProgress()) {
 232             RenderProgress& renderProgress = downcast<RenderProgress>(object);
 233             value = jfloat(renderProgress.position());
 234 #endif
 235         }
 236 
 237         extParams.grow(sizeof(jfloat) + sizeof(jint));
 238         jbyte *data = extParams.data();
 239         memcpy(data, &value, sizeof(value));
 240         data += sizeof(jfloat);
 241 
 242         memcpy(data, &region, sizeof(region));
 243 #endif
 244     }
 245 
 246     static jmethodID mid = env->GetMethodID(getJRenderThemeClass(), "createWidget",
 247             "(JIIIIILjava/nio/ByteBuffer;)Lcom/sun/webkit/graphics/Ref;");
 248     ASSERT(mid);
 249 
 250     RefPtr<RQRef> widgetRef = RQRef::create(
 251         env->CallObjectMethod(jobject(*jRenderTheme), mid,




 160     // platformContext() returns 0 when printing
 161     if (paintInfo.context().paintingDisabled() || !paintInfo.context().platformContext()) {
 162         return false;
 163     }
 164 
 165     auto jRenderTheme = paintInfo.context().platformContext()->jRenderTheme();
 166     if (!jRenderTheme) {
 167         return false;
 168     }
 169 
 170     int state = createWidgetState(object);
 171     RGBA32 bgColor = object.style().visitedDependentColor(
 172         widgetIndex == JNI_EXPAND(MENU_LIST_BUTTON)
 173             ? CSSPropertyColor
 174             : CSSPropertyBackgroundColor
 175     ).rgb();
 176 
 177     JNIEnv* env = WebCore_GetJavaEnv();
 178 
 179     WTF::Vector<jbyte> extParams;
 180     if (JNI_EXPAND(SLIDER) == widgetIndex && is<RenderSlider>(object)) {
 181         HTMLInputElement& input = downcast<RenderSlider>(object).element();
 182 
 183         extParams.grow(sizeof(jint) + 3 * sizeof(jfloat));
 184         jbyte *data = extParams.data();
 185         auto isVertical = jint((object.style().appearance() == SliderHorizontalPart)
 186             ? 0
 187             : 1);
 188         memcpy(data, &isVertical, sizeof(isVertical));
 189         data += sizeof(jint);
 190 
 191         auto maximum = jfloat(input.maximum());
 192         memcpy(data, &maximum, sizeof(maximum));
 193         data += sizeof(jfloat);
 194 
 195         auto minimum = jfloat(input.minimum());
 196         memcpy(data, &minimum, sizeof(minimum));
 197         data += sizeof(jfloat);
 198 
 199         auto valueAsNumber = jfloat(input.valueAsNumber());
 200         memcpy(data, &valueAsNumber, sizeof(valueAsNumber));
 201     } else if (JNI_EXPAND(PROGRESS_BAR) == widgetIndex) {
 202 #if ENABLE(PROGRESS_ELEMENT)
 203         if (is<RenderProgress>(object)) {
 204             RenderProgress& renderProgress = downcast<RenderProgress>(object);
 205 
 206             extParams.grow(sizeof(jint) + 3*sizeof(jfloat));
 207             jbyte *data = extParams.data();
 208             auto isDeterminate = jint(renderProgress.isDeterminate() ? 1 : 0);
 209             memcpy(data, &isDeterminate, sizeof(isDeterminate));
 210             data += sizeof(jint);
 211 
 212             auto position = jfloat(renderProgress.position());
 213             memcpy(data, &position, sizeof(position));
 214             data += sizeof(jfloat);
 215 
 216             auto animationProgress = jfloat(renderProgress.animationProgress());
 217             memcpy(data, &animationProgress, sizeof(animationProgress));
 218             data += sizeof(jfloat);
 219 
 220             auto animationStartTime = jfloat(renderProgress.animationStartTime());
 221             memcpy(data, &animationStartTime, sizeof(animationStartTime));
 222         }
 223 #endif
 224 #if ENABLE(METER_ELEMENT)
 225     } else if (JNI_EXPAND(METER) == widgetIndex) {
 226         jfloat value = 0;
 227         jint region = 0;
 228         if (object.isMeter()) {
 229             HTMLMeterElement* meter = static_cast<HTMLMeterElement*>(object.node());
 230             value = meter->valueRatio();
 231             region = meter->gaugeRegion();
 232 #if ENABLE(PROGRESS_ELEMENT)
 233         } else if (is<RenderProgress>(object>)) {
 234             RenderProgress& renderProgress = downcast<RenderProgress>(object);
 235             value = jfloat(renderProgress.position());
 236 #endif
 237         }
 238 
 239         extParams.grow(sizeof(jfloat) + sizeof(jint));
 240         jbyte *data = extParams.data();
 241         memcpy(data, &value, sizeof(value));
 242         data += sizeof(jfloat);
 243 
 244         memcpy(data, &region, sizeof(region));
 245 #endif
 246     }
 247 
 248     static jmethodID mid = env->GetMethodID(getJRenderThemeClass(), "createWidget",
 249             "(JIIIIILjava/nio/ByteBuffer;)Lcom/sun/webkit/graphics/Ref;");
 250     ASSERT(mid);
 251 
 252     RefPtr<RQRef> widgetRef = RQRef::create(
 253         env->CallObjectMethod(jobject(*jRenderTheme), mid,


< prev index next >