if (!marqueeStyleCssSupported && behaviourSupported) {
// This renderer must be added before the other marquee
// renderers; it ensures there is a marquee element, and the
// others will not add attribute values to any other element
AttributeAndOrElementStyleEmulationPropertyRenderer renderer =
new AttributeAndOrElementStyleEmulationPropertyRenderer(
new MarqueeEmulationRenderer(
DeviceCapabilityConstants.MARQUEE_BEHAVIOR_ATT, false));
styleEmulationPropertyRendererSelector.register(
StylePropertyDetails.MCS_MARQUEE_STYLE, renderer);
// If we're going to be rendering this element, then need
// to support it when transforming...
fakePermittedChildren.add("marquee");
// The rest of the marquee styles must be emulated if the
// marquee style is emulated (and cannot be if it is not).
// Marquee repetition.
boolean marqueeLoopCssSupported = marqueeStyleCssSupported &&
(cssVersion.getProperty(
StylePropertyDetails.MCS_MARQUEE_REPETITION) != null);
boolean loopSupported = CapabilitySupportLevel.FULL.equals(
dec.getSupportType(DeviceCapabilityConstants.MARQUEE_LOOP_ATT));
if (!marqueeLoopCssSupported && loopSupported) {
AttributeAndOrElementStyleEmulationPropertyRenderer loopRenderer =
new AttributeAndOrElementStyleEmulationPropertyRenderer(
new MarqueeEmulationAttributePropertyRenderer(
DeviceCapabilityConstants.MARQUEE_LOOP_ATT, false));
styleEmulationPropertyRendererSelector.register(
StylePropertyDetails.MCS_MARQUEE_REPETITION,
loopRenderer);
}
// Marquee direction.
boolean marqueeDirCssSupported = marqueeStyleCssSupported &&
(cssVersion.getProperty(StylePropertyDetails.MCS_MARQUEE_DIRECTION) != null);
boolean directionSupported = CapabilitySupportLevel.FULL.equals(
dec.getSupportType(DeviceCapabilityConstants.MARQUEE_DIRECTION_ATT));
if (!marqueeDirCssSupported && directionSupported) {
AttributeAndOrElementStyleEmulationPropertyRenderer dirRenderer =
new AttributeAndOrElementStyleEmulationPropertyRenderer(
new MarqueeEmulationAttributePropertyRenderer(
DeviceCapabilityConstants.MARQUEE_DIRECTION_ATT, false));
styleEmulationPropertyRendererSelector.register(
StylePropertyDetails.MCS_MARQUEE_DIRECTION, dirRenderer);
}
// Marquee background colour.
if (!supportsDisplayKeyword &&
CapabilitySupportLevel.FULL.equals(dec.getSupportType(
DeviceCapabilityConstants.MARQUEE_BGCOLOR_ATT))) {
AttributeAndOrElementStyleEmulationPropertyRenderer bgColorRenderer
= new AttributeAndOrElementStyleEmulationPropertyRenderer(
new MarqueeEmulationAttributePropertyRenderer(
DeviceCapabilityConstants.MARQUEE_BGCOLOR_ATT, false));
styleEmulationPropertyRendererSelector.register(
StylePropertyDetails.BACKGROUND_COLOR, bgColorRenderer);
}