void PopupMenuImpl::addElementStyle(HTMLElement& element, bool enableExtraStyling, SharedBuffer* data) { const ComputedStyle* style = m_client->computedStyleForItem(element); ASSERT(style); PagePopupClient::addString("style: {\n", data); addProperty("visibility", String(style->visibility() == HIDDEN ? "hidden" : ""), data); addProperty("display", String(style->display() == NONE ? "none" : ""), data); addProperty("direction", String(style->direction() == RTL ? "rtl" : "ltr"), data); addProperty("unicodeBidi", String(isOverride(style->unicodeBidi()) ? "bidi-override" : "normal"), data); if (enableExtraStyling) { addProperty("color", style->visitedDependentColor(CSSPropertyColor).serialized(), data); addProperty("backgroundColor", style->visitedDependentColor(CSSPropertyBackgroundColor).serialized(), data); const FontDescription& fontDescription = style->font().fontDescription(); addProperty("fontSize", fontDescription.computedPixelSize(), data); addProperty("fontWeight", String(fontWeightToString(fontDescription.weight())), data); PagePopupClient::addString("fontFamily: [\n", data); for (const FontFamily* f = &fontDescription.family(); f; f = f->next()) { addJavaScriptString(f->family().string(), data); if (f->next()) PagePopupClient::addString(",\n", data); } PagePopupClient::addString("],\n", data); addProperty("fontStyle", String(fontStyleToString(fontDescription.style())), data); addProperty("fontVariant", String(fontVariantToString(fontDescription.variant())), data); addProperty("textTransform", String(textTransformToString(style->textTransform())), data); } PagePopupClient::addString("},\n", data); }
void serializeBaseStyle() { DCHECK(!m_isInGroup); PagePopupClient::addString("baseStyle: {", m_buffer); addProperty("backgroundColor", m_backgroundColor.serialized(), m_buffer); addProperty( "color", baseStyle().visitedDependentColor(CSSPropertyColor).serialized(), m_buffer); addProperty("textTransform", String(textTransformToString(baseStyle().textTransform())), m_buffer); addProperty("fontSize", baseFont().specifiedSize(), m_buffer); addProperty("fontStyle", String(fontStyleToString(baseFont().style())), m_buffer); addProperty("fontVariant", baseFont().variantCaps() == FontDescription::SmallCaps ? String("small-caps") : String(), m_buffer); PagePopupClient::addString("fontFamily: [", m_buffer); for (const FontFamily* f = &baseFont().family(); f; f = f->next()) { addJavaScriptString(f->family().getString(), m_buffer); if (f->next()) PagePopupClient::addString(",", m_buffer); } PagePopupClient::addString("]", m_buffer); PagePopupClient::addString("},\n", m_buffer); }
void PopupMenuImpl::addElementStyle(ItemIterationContext& context, HTMLElement& element) { const ComputedStyle* style = m_ownerElement->itemComputedStyle(element); ASSERT(style); SharedBuffer* data = context.m_buffer; // TODO(tkent): We generate unnecessary "style: {\n},\n" even if no // additional style. PagePopupClient::addString("style: {\n", data); if (style->visibility() == HIDDEN) addProperty("visibility", String("hidden"), data); if (style->display() == NONE) addProperty("display", String("none"), data); const ComputedStyle& baseStyle = context.baseStyle(); if (baseStyle.direction() != style->direction()) addProperty("direction", String(style->direction() == RTL ? "rtl" : "ltr"), data); if (isOverride(style->unicodeBidi())) addProperty("unicodeBidi", String("bidi-override"), data); Color foregroundColor = style->visitedDependentColor(CSSPropertyColor); if (baseStyle.visitedDependentColor(CSSPropertyColor) != foregroundColor) addProperty("color", foregroundColor.serialized(), data); Color backgroundColor = style->visitedDependentColor(CSSPropertyBackgroundColor); if (context.backgroundColor() != backgroundColor && backgroundColor != Color::transparent) addProperty("backgroundColor", backgroundColor.serialized(), data); const FontDescription& baseFont = context.baseFont(); const FontDescription& fontDescription = style->font().fontDescription(); if (baseFont.computedPixelSize() != fontDescription.computedPixelSize()) { // We don't use FontDescription::specifiedSize() because this element // might have its own zoom level. addProperty("fontSize", fontDescription.computedSize() / zoomFactor(), data); } // Our UA stylesheet has font-weight:normal for OPTION. if (FontWeightNormal != fontDescription.weight()) addProperty("fontWeight", String(fontWeightToString(fontDescription.weight())), data); if (baseFont.family() != fontDescription.family()) { PagePopupClient::addString("fontFamily: [\n", data); for (const FontFamily* f = &fontDescription.family(); f; f = f->next()) { addJavaScriptString(f->family().string(), data); if (f->next()) PagePopupClient::addString(",\n", data); } PagePopupClient::addString("],\n", data); } if (baseFont.style() != fontDescription.style()) addProperty("fontStyle", String(fontStyleToString(fontDescription.style())), data); if (baseFont.variant() != fontDescription.variant()) addProperty("fontVariant", String(fontVariantToString(fontDescription.variant())), data); if (baseStyle.textTransform() != style->textTransform()) addProperty("textTransform", String(textTransformToString(style->textTransform())), data); PagePopupClient::addString("},\n", data); }
void serializeBaseStyle() { PagePopupClient::addString("baseStyle: {", m_buffer); addProperty("backgroundColor", m_backgroundColor.serialized(), m_buffer); addProperty("color", m_foregroundColor.serialized(), m_buffer); addProperty("textTransform", String(textTransformToString(m_textTransform)), m_buffer); addProperty("fontSize", fontSize(), m_buffer); addProperty("fontStyle", String(fontStyleToString(fontStyle())), m_buffer); addProperty("fontVariant", String(fontVariantToString(fontVariant())), m_buffer); PagePopupClient::addString("fontFamily: [", m_buffer); for (const FontFamily* f = &fontFamily(); f; f = f->next()) { addJavaScriptString(f->family().string(), m_buffer); if (f->next()) PagePopupClient::addString(",", m_buffer); } PagePopupClient::addString("]", m_buffer); PagePopupClient::addString("},\n", m_buffer); }
void serializeBaseStyle() { ASSERT(!m_isInGroup); PagePopupClient::addString("baseStyle: {", m_buffer); addProperty("backgroundColor", m_backgroundColor.serialized(), m_buffer); addProperty("color", baseStyle().visitedDependentColor(CSSPropertyColor).serialized(), m_buffer); addProperty("textTransform", String(textTransformToString(baseStyle().textTransform())), m_buffer); addProperty("fontSize", baseFont().computedPixelSize(), m_buffer); addProperty("fontStyle", String(fontStyleToString(baseFont().style())), m_buffer); addProperty("fontVariant", String(fontVariantToString(baseFont().variant())), m_buffer); PagePopupClient::addString("fontFamily: [", m_buffer); for (const FontFamily* f = &baseFont().family(); f; f = f->next()) { addJavaScriptString(f->family().string(), m_buffer); if (f->next()) PagePopupClient::addString(",", m_buffer); } PagePopupClient::addString("]", m_buffer); PagePopupClient::addString("},\n", m_buffer); }