summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/RenderTheme.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2013-09-13 12:51:20 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-19 20:50:05 +0200
commitd441d6f39bb846989d95bcf5caf387b42414718d (patch)
treee367e64a75991c554930278175d403c072de6bb8 /Source/WebCore/rendering/RenderTheme.cpp
parent0060b2994c07842f4c59de64b5e3e430525c4b90 (diff)
downloadqtwebkit-d441d6f39bb846989d95bcf5caf387b42414718d.tar.gz
Import Qt5x2 branch of QtWebkit for Qt 5.2
Importing a new snapshot of webkit. Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Source/WebCore/rendering/RenderTheme.cpp')
-rw-r--r--Source/WebCore/rendering/RenderTheme.cpp813
1 files changed, 405 insertions, 408 deletions
diff --git a/Source/WebCore/rendering/RenderTheme.cpp b/Source/WebCore/rendering/RenderTheme.cpp
index 0432dc32b..c0c584ddc 100644
--- a/Source/WebCore/rendering/RenderTheme.cpp
+++ b/Source/WebCore/rendering/RenderTheme.cpp
@@ -81,15 +81,14 @@ RenderTheme::RenderTheme()
{
}
-void RenderTheme::adjustStyle(StyleResolver* styleResolver, RenderStyle* style, Element* e,
- bool UAHasAppearance, const BorderData& border, const FillLayer& background, const Color& backgroundColor)
+void RenderTheme::adjustStyle(StyleResolver* styleResolver, RenderStyle* style, Element* e, bool UAHasAppearance, const BorderData& border, const FillLayer& background, const Color& backgroundColor)
{
// Force inline and table display styles to be inline-block (except for table- which is block)
ControlPart part = style->appearance();
- if (style->display() == INLINE || style->display() == INLINE_TABLE || style->display() == TABLE_ROW_GROUP ||
- style->display() == TABLE_HEADER_GROUP || style->display() == TABLE_FOOTER_GROUP ||
- style->display() == TABLE_ROW || style->display() == TABLE_COLUMN_GROUP || style->display() == TABLE_COLUMN ||
- style->display() == TABLE_CELL || style->display() == TABLE_CAPTION)
+ if (style->display() == INLINE || style->display() == INLINE_TABLE || style->display() == TABLE_ROW_GROUP
+ || style->display() == TABLE_HEADER_GROUP || style->display() == TABLE_FOOTER_GROUP
+ || style->display() == TABLE_ROW || style->display() == TABLE_COLUMN_GROUP || style->display() == TABLE_COLUMN
+ || style->display() == TABLE_CELL || style->display() == TABLE_CAPTION)
style->setDisplay(INLINE_BLOCK);
else if (style->display() == COMPACT || style->display() == RUN_IN || style->display() == LIST_ITEM || style->display() == TABLE)
style->setDisplay(BLOCK);
@@ -110,152 +109,152 @@ void RenderTheme::adjustStyle(StyleResolver* styleResolver, RenderStyle* style,
#if USE(NEW_THEME)
switch (part) {
- case CheckboxPart:
- case InnerSpinButtonPart:
- case RadioPart:
- case PushButtonPart:
- case SquareButtonPart:
- case DefaultButtonPart:
- case ButtonPart: {
- // Border
- LengthBox borderBox(style->borderTopWidth(), style->borderRightWidth(), style->borderBottomWidth(), style->borderLeftWidth());
- borderBox = m_theme->controlBorder(part, style->font(), borderBox, style->effectiveZoom());
- if (borderBox.top().value() != static_cast<int>(style->borderTopWidth())) {
- if (borderBox.top().value())
- style->setBorderTopWidth(borderBox.top().value());
- else
- style->resetBorderTop();
- }
- if (borderBox.right().value() != static_cast<int>(style->borderRightWidth())) {
- if (borderBox.right().value())
- style->setBorderRightWidth(borderBox.right().value());
- else
- style->resetBorderRight();
- }
- if (borderBox.bottom().value() != static_cast<int>(style->borderBottomWidth())) {
+ case CheckboxPart:
+ case InnerSpinButtonPart:
+ case RadioPart:
+ case PushButtonPart:
+ case SquareButtonPart:
+ case DefaultButtonPart:
+ case ButtonPart: {
+ // Border
+ LengthBox borderBox(style->borderTopWidth(), style->borderRightWidth(), style->borderBottomWidth(), style->borderLeftWidth());
+ borderBox = m_theme->controlBorder(part, style->font(), borderBox, style->effectiveZoom());
+ if (borderBox.top().value() != static_cast<int>(style->borderTopWidth())) {
+ if (borderBox.top().value())
+ style->setBorderTopWidth(borderBox.top().value());
+ else
+ style->resetBorderTop();
+ }
+ if (borderBox.right().value() != static_cast<int>(style->borderRightWidth())) {
+ if (borderBox.right().value())
+ style->setBorderRightWidth(borderBox.right().value());
+ else
+ style->resetBorderRight();
+ }
+ if (borderBox.bottom().value() != static_cast<int>(style->borderBottomWidth())) {
+ style->setBorderBottomWidth(borderBox.bottom().value());
+ if (borderBox.bottom().value())
style->setBorderBottomWidth(borderBox.bottom().value());
- if (borderBox.bottom().value())
- style->setBorderBottomWidth(borderBox.bottom().value());
- else
- style->resetBorderBottom();
- }
- if (borderBox.left().value() != static_cast<int>(style->borderLeftWidth())) {
+ else
+ style->resetBorderBottom();
+ }
+ if (borderBox.left().value() != static_cast<int>(style->borderLeftWidth())) {
+ style->setBorderLeftWidth(borderBox.left().value());
+ if (borderBox.left().value())
style->setBorderLeftWidth(borderBox.left().value());
- if (borderBox.left().value())
- style->setBorderLeftWidth(borderBox.left().value());
- else
- style->resetBorderLeft();
- }
-
- // Padding
- LengthBox paddingBox = m_theme->controlPadding(part, style->font(), style->paddingBox(), style->effectiveZoom());
- if (paddingBox != style->paddingBox())
- style->setPaddingBox(paddingBox);
-
- // Whitespace
- if (m_theme->controlRequiresPreWhiteSpace(part))
- style->setWhiteSpace(PRE);
+ else
+ style->resetBorderLeft();
+ }
+
+ // Padding
+ LengthBox paddingBox = m_theme->controlPadding(part, style->font(), style->paddingBox(), style->effectiveZoom());
+ if (paddingBox != style->paddingBox())
+ style->setPaddingBox(paddingBox);
+
+ // Whitespace
+ if (m_theme->controlRequiresPreWhiteSpace(part))
+ style->setWhiteSpace(PRE);
- // Width / Height
- // The width and height here are affected by the zoom.
- // FIXME: Check is flawed, since it doesn't take min-width/max-width into account.
- LengthSize controlSize = m_theme->controlSize(part, style->font(), LengthSize(style->width(), style->height()), style->effectiveZoom());
- if (controlSize.width() != style->width())
- style->setWidth(controlSize.width());
- if (controlSize.height() != style->height())
- style->setHeight(controlSize.height());
-
- // Min-Width / Min-Height
- LengthSize minControlSize = m_theme->minimumControlSize(part, style->font(), style->effectiveZoom());
- if (minControlSize.width() != style->minWidth())
- style->setMinWidth(minControlSize.width());
- if (minControlSize.height() != style->minHeight())
- style->setMinHeight(minControlSize.height());
+ // Width / Height
+ // The width and height here are affected by the zoom.
+ // FIXME: Check is flawed, since it doesn't take min-width/max-width into account.
+ LengthSize controlSize = m_theme->controlSize(part, style->font(), LengthSize(style->width(), style->height()), style->effectiveZoom());
+ if (controlSize.width() != style->width())
+ style->setWidth(controlSize.width());
+ if (controlSize.height() != style->height())
+ style->setHeight(controlSize.height());
- // Font
- FontDescription controlFont = m_theme->controlFont(part, style->font(), style->effectiveZoom());
- if (controlFont != style->font().fontDescription()) {
- // Reset our line-height
- style->setLineHeight(RenderStyle::initialLineHeight());
+ // Min-Width / Min-Height
+ LengthSize minControlSize = m_theme->minimumControlSize(part, style->font(), style->effectiveZoom());
+ if (minControlSize.width() != style->minWidth())
+ style->setMinWidth(minControlSize.width());
+ if (minControlSize.height() != style->minHeight())
+ style->setMinHeight(minControlSize.height());
- // Now update our font.
- if (style->setFontDescription(controlFont))
- style->font().update(0);
- }
+ // Font
+ FontDescription controlFont = m_theme->controlFont(part, style->font(), style->effectiveZoom());
+ if (controlFont != style->font().fontDescription()) {
+ // Reset our line-height
+ style->setLineHeight(RenderStyle::initialLineHeight());
+
+ // Now update our font.
+ if (style->setFontDescription(controlFont))
+ style->font().update(0);
}
- default:
- break;
+ }
+ default:
+ break;
}
#endif
// Call the appropriate style adjustment method based off the appearance value.
switch (style->appearance()) {
#if !USE(NEW_THEME)
- case CheckboxPart:
- return adjustCheckboxStyle(styleResolver, style, e);
- case RadioPart:
- return adjustRadioStyle(styleResolver, style, e);
- case PushButtonPart:
- case SquareButtonPart:
- case DefaultButtonPart:
- case ButtonPart:
- return adjustButtonStyle(styleResolver, style, e);
- case InnerSpinButtonPart:
- return adjustInnerSpinButtonStyle(styleResolver, style, e);
+ case CheckboxPart:
+ return adjustCheckboxStyle(styleResolver, style, e);
+ case RadioPart:
+ return adjustRadioStyle(styleResolver, style, e);
+ case PushButtonPart:
+ case SquareButtonPart:
+ case DefaultButtonPart:
+ case ButtonPart:
+ return adjustButtonStyle(styleResolver, style, e);
+ case InnerSpinButtonPart:
+ return adjustInnerSpinButtonStyle(styleResolver, style, e);
#endif
- case TextFieldPart:
- return adjustTextFieldStyle(styleResolver, style, e);
- case TextAreaPart:
- return adjustTextAreaStyle(styleResolver, style, e);
- case MenulistPart:
- return adjustMenuListStyle(styleResolver, style, e);
- case MenulistButtonPart:
- return adjustMenuListButtonStyle(styleResolver, style, e);
- case MediaPlayButtonPart:
- case MediaCurrentTimePart:
- case MediaTimeRemainingPart:
- case MediaEnterFullscreenButtonPart:
- case MediaExitFullscreenButtonPart:
- case MediaMuteButtonPart:
- case MediaVolumeSliderContainerPart:
- return adjustMediaControlStyle(styleResolver, style, e);
- case MediaSliderPart:
- case MediaVolumeSliderPart:
- case MediaFullScreenVolumeSliderPart:
- case SliderHorizontalPart:
- case SliderVerticalPart:
- return adjustSliderTrackStyle(styleResolver, style, e);
- case SliderThumbHorizontalPart:
- case SliderThumbVerticalPart:
- return adjustSliderThumbStyle(styleResolver, style, e);
- case SearchFieldPart:
- return adjustSearchFieldStyle(styleResolver, style, e);
- case SearchFieldCancelButtonPart:
- return adjustSearchFieldCancelButtonStyle(styleResolver, style, e);
- case SearchFieldDecorationPart:
- return adjustSearchFieldDecorationStyle(styleResolver, style, e);
- case SearchFieldResultsDecorationPart:
- return adjustSearchFieldResultsDecorationStyle(styleResolver, style, e);
- case SearchFieldResultsButtonPart:
- return adjustSearchFieldResultsButtonStyle(styleResolver, style, e);
+ case TextFieldPart:
+ return adjustTextFieldStyle(styleResolver, style, e);
+ case TextAreaPart:
+ return adjustTextAreaStyle(styleResolver, style, e);
+ case MenulistPart:
+ return adjustMenuListStyle(styleResolver, style, e);
+ case MenulistButtonPart:
+ return adjustMenuListButtonStyle(styleResolver, style, e);
+ case MediaPlayButtonPart:
+ case MediaCurrentTimePart:
+ case MediaTimeRemainingPart:
+ case MediaEnterFullscreenButtonPart:
+ case MediaExitFullscreenButtonPart:
+ case MediaMuteButtonPart:
+ case MediaVolumeSliderContainerPart:
+ return adjustMediaControlStyle(styleResolver, style, e);
+ case MediaSliderPart:
+ case MediaVolumeSliderPart:
+ case MediaFullScreenVolumeSliderPart:
+ case SliderHorizontalPart:
+ case SliderVerticalPart:
+ return adjustSliderTrackStyle(styleResolver, style, e);
+ case SliderThumbHorizontalPart:
+ case SliderThumbVerticalPart:
+ return adjustSliderThumbStyle(styleResolver, style, e);
+ case SearchFieldPart:
+ return adjustSearchFieldStyle(styleResolver, style, e);
+ case SearchFieldCancelButtonPart:
+ return adjustSearchFieldCancelButtonStyle(styleResolver, style, e);
+ case SearchFieldDecorationPart:
+ return adjustSearchFieldDecorationStyle(styleResolver, style, e);
+ case SearchFieldResultsDecorationPart:
+ return adjustSearchFieldResultsDecorationStyle(styleResolver, style, e);
+ case SearchFieldResultsButtonPart:
+ return adjustSearchFieldResultsButtonStyle(styleResolver, style, e);
#if ENABLE(PROGRESS_ELEMENT)
- case ProgressBarPart:
- return adjustProgressBarStyle(styleResolver, style, e);
+ case ProgressBarPart:
+ return adjustProgressBarStyle(styleResolver, style, e);
#endif
#if ENABLE(METER_ELEMENT)
- case MeterPart:
- case RelevancyLevelIndicatorPart:
- case ContinuousCapacityLevelIndicatorPart:
- case DiscreteCapacityLevelIndicatorPart:
- case RatingLevelIndicatorPart:
- return adjustMeterStyle(styleResolver, style, e);
+ case MeterPart:
+ case RelevancyLevelIndicatorPart:
+ case ContinuousCapacityLevelIndicatorPart:
+ case DiscreteCapacityLevelIndicatorPart:
+ case RatingLevelIndicatorPart:
+ return adjustMeterStyle(styleResolver, style, e);
#endif
#if ENABLE(INPUT_SPEECH)
- case InputSpeechButtonPart:
- return adjustInputFieldSpeechButtonStyle(styleResolver, style, e);
+ case InputSpeechButtonPart:
+ return adjustInputFieldSpeechButtonStyle(styleResolver, style, e);
#endif
- default:
- break;
+ default:
+ break;
}
}
@@ -276,117 +275,119 @@ bool RenderTheme::paint(RenderObject* o, const PaintInfo& paintInfo, const IntRe
#if USE(NEW_THEME)
switch (part) {
- case CheckboxPart:
- case RadioPart:
- case PushButtonPart:
- case SquareButtonPart:
- case DefaultButtonPart:
- case ButtonPart:
- case InnerSpinButtonPart:
- m_theme->paint(part, controlStatesForRenderer(o), const_cast<GraphicsContext*>(paintInfo.context), r, o->style()->effectiveZoom(), o->view()->frameView());
- return false;
- default:
- break;
+ case CheckboxPart:
+ case RadioPart:
+ case PushButtonPart:
+ case SquareButtonPart:
+ case DefaultButtonPart:
+ case ButtonPart:
+ case InnerSpinButtonPart:
+ m_theme->paint(part, controlStatesForRenderer(o), const_cast<GraphicsContext*>(paintInfo.context), r, o->style()->effectiveZoom(), o->view()->frameView());
+ return false;
+ default:
+ break;
}
#endif
// Call the appropriate paint method based off the appearance value.
switch (part) {
#if !USE(NEW_THEME)
- case CheckboxPart:
- return paintCheckbox(o, paintInfo, r);
- case RadioPart:
- return paintRadio(o, paintInfo, r);
- case PushButtonPart:
- case SquareButtonPart:
- case DefaultButtonPart:
- case ButtonPart:
- return paintButton(o, paintInfo, r);
- case InnerSpinButtonPart:
- return paintInnerSpinButton(o, paintInfo, r);
+ case CheckboxPart:
+ return paintCheckbox(o, paintInfo, r);
+ case RadioPart:
+ return paintRadio(o, paintInfo, r);
+ case PushButtonPart:
+ case SquareButtonPart:
+ case DefaultButtonPart:
+ case ButtonPart:
+ return paintButton(o, paintInfo, r);
+ case InnerSpinButtonPart:
+ return paintInnerSpinButton(o, paintInfo, r);
#endif
- case MenulistPart:
- return paintMenuList(o, paintInfo, r);
+ case MenulistPart:
+ return paintMenuList(o, paintInfo, r);
#if ENABLE(METER_ELEMENT)
- case MeterPart:
- case RelevancyLevelIndicatorPart:
- case ContinuousCapacityLevelIndicatorPart:
- case DiscreteCapacityLevelIndicatorPart:
- case RatingLevelIndicatorPart:
- return paintMeter(o, paintInfo, r);
+ case MeterPart:
+ case RelevancyLevelIndicatorPart:
+ case ContinuousCapacityLevelIndicatorPart:
+ case DiscreteCapacityLevelIndicatorPart:
+ case RatingLevelIndicatorPart:
+ return paintMeter(o, paintInfo, r);
#endif
#if ENABLE(PROGRESS_ELEMENT)
- case ProgressBarPart:
- return paintProgressBar(o, paintInfo, r);
+ case ProgressBarPart:
+ return paintProgressBar(o, paintInfo, r);
#endif
- case SliderHorizontalPart:
- case SliderVerticalPart:
- return paintSliderTrack(o, paintInfo, r);
- case SliderThumbHorizontalPart:
- case SliderThumbVerticalPart:
- return paintSliderThumb(o, paintInfo, r);
- case MediaEnterFullscreenButtonPart:
- case MediaExitFullscreenButtonPart:
- return paintMediaFullscreenButton(o, paintInfo, r);
- case MediaPlayButtonPart:
- return paintMediaPlayButton(o, paintInfo, r);
- case MediaOverlayPlayButtonPart:
- return paintMediaOverlayPlayButton(o, paintInfo, r);
- case MediaMuteButtonPart:
- return paintMediaMuteButton(o, paintInfo, r);
- case MediaSeekBackButtonPart:
- return paintMediaSeekBackButton(o, paintInfo, r);
- case MediaSeekForwardButtonPart:
- return paintMediaSeekForwardButton(o, paintInfo, r);
- case MediaRewindButtonPart:
- return paintMediaRewindButton(o, paintInfo, r);
- case MediaReturnToRealtimeButtonPart:
- return paintMediaReturnToRealtimeButton(o, paintInfo, r);
- case MediaToggleClosedCaptionsButtonPart:
- return paintMediaToggleClosedCaptionsButton(o, paintInfo, r);
- case MediaSliderPart:
- return paintMediaSliderTrack(o, paintInfo, r);
- case MediaSliderThumbPart:
- return paintMediaSliderThumb(o, paintInfo, r);
- case MediaVolumeSliderMuteButtonPart:
- return paintMediaMuteButton(o, paintInfo, r);
- case MediaVolumeSliderContainerPart:
- return paintMediaVolumeSliderContainer(o, paintInfo, r);
- case MediaVolumeSliderPart:
- return paintMediaVolumeSliderTrack(o, paintInfo, r);
- case MediaVolumeSliderThumbPart:
- return paintMediaVolumeSliderThumb(o, paintInfo, r);
- case MediaFullScreenVolumeSliderPart:
- return paintMediaFullScreenVolumeSliderTrack(o, paintInfo, r);
- case MediaFullScreenVolumeSliderThumbPart:
- return paintMediaFullScreenVolumeSliderThumb(o, paintInfo, r);
- case MediaTimeRemainingPart:
- return paintMediaTimeRemaining(o, paintInfo, r);
- case MediaCurrentTimePart:
- return paintMediaCurrentTime(o, paintInfo, r);
- case MediaControlsBackgroundPart:
- return paintMediaControlsBackground(o, paintInfo, r);
- case MenulistButtonPart:
- case TextFieldPart:
- case TextAreaPart:
- case ListboxPart:
- return true;
- case SearchFieldPart:
- return paintSearchField(o, paintInfo, r);
- case SearchFieldCancelButtonPart:
- return paintSearchFieldCancelButton(o, paintInfo, r);
- case SearchFieldDecorationPart:
- return paintSearchFieldDecoration(o, paintInfo, r);
- case SearchFieldResultsDecorationPart:
- return paintSearchFieldResultsDecoration(o, paintInfo, r);
- case SearchFieldResultsButtonPart:
- return paintSearchFieldResultsButton(o, paintInfo, r);
+ case SliderHorizontalPart:
+ case SliderVerticalPart:
+ return paintSliderTrack(o, paintInfo, r);
+ case SliderThumbHorizontalPart:
+ case SliderThumbVerticalPart:
+ return paintSliderThumb(o, paintInfo, r);
+ case MediaEnterFullscreenButtonPart:
+ case MediaExitFullscreenButtonPart:
+ return paintMediaFullscreenButton(o, paintInfo, r);
+ case MediaPlayButtonPart:
+ return paintMediaPlayButton(o, paintInfo, r);
+ case MediaOverlayPlayButtonPart:
+ return paintMediaOverlayPlayButton(o, paintInfo, r);
+ case MediaMuteButtonPart:
+ return paintMediaMuteButton(o, paintInfo, r);
+ case MediaSeekBackButtonPart:
+ return paintMediaSeekBackButton(o, paintInfo, r);
+ case MediaSeekForwardButtonPart:
+ return paintMediaSeekForwardButton(o, paintInfo, r);
+ case MediaRewindButtonPart:
+ return paintMediaRewindButton(o, paintInfo, r);
+ case MediaReturnToRealtimeButtonPart:
+ return paintMediaReturnToRealtimeButton(o, paintInfo, r);
+ case MediaToggleClosedCaptionsButtonPart:
+ return paintMediaToggleClosedCaptionsButton(o, paintInfo, r);
+ case MediaSliderPart:
+ return paintMediaSliderTrack(o, paintInfo, r);
+ case MediaSliderThumbPart:
+ return paintMediaSliderThumb(o, paintInfo, r);
+ case MediaVolumeSliderMuteButtonPart:
+ return paintMediaMuteButton(o, paintInfo, r);
+ case MediaVolumeSliderContainerPart:
+ return paintMediaVolumeSliderContainer(o, paintInfo, r);
+ case MediaVolumeSliderPart:
+ return paintMediaVolumeSliderTrack(o, paintInfo, r);
+ case MediaVolumeSliderThumbPart:
+ return paintMediaVolumeSliderThumb(o, paintInfo, r);
+ case MediaFullScreenVolumeSliderPart:
+ return paintMediaFullScreenVolumeSliderTrack(o, paintInfo, r);
+ case MediaFullScreenVolumeSliderThumbPart:
+ return paintMediaFullScreenVolumeSliderThumb(o, paintInfo, r);
+ case MediaTimeRemainingPart:
+ return paintMediaTimeRemaining(o, paintInfo, r);
+ case MediaCurrentTimePart:
+ return paintMediaCurrentTime(o, paintInfo, r);
+ case MediaControlsBackgroundPart:
+ return paintMediaControlsBackground(o, paintInfo, r);
+ case MenulistButtonPart:
+ case TextFieldPart:
+ case TextAreaPart:
+ case ListboxPart:
+ return true;
+ case SearchFieldPart:
+ return paintSearchField(o, paintInfo, r);
+ case SearchFieldCancelButtonPart:
+ return paintSearchFieldCancelButton(o, paintInfo, r);
+ case SearchFieldDecorationPart:
+ return paintSearchFieldDecoration(o, paintInfo, r);
+ case SearchFieldResultsDecorationPart:
+ return paintSearchFieldResultsDecoration(o, paintInfo, r);
+ case SearchFieldResultsButtonPart:
+ return paintSearchFieldResultsButton(o, paintInfo, r);
+ case SnapshottedPluginOverlayPart:
+ return paintSnapshottedPluginOverlay(o, paintInfo, r);
#if ENABLE(INPUT_SPEECH)
- case InputSpeechButtonPart:
- return paintInputFieldSpeechButton(o, paintInfo, r);
+ case InputSpeechButtonPart:
+ return paintInputFieldSpeechButton(o, paintInfo, r);
#endif
- default:
- break;
+ default:
+ break;
}
return true; // We don't support the appearance, so let the normal background/border paint.
@@ -399,44 +400,44 @@ bool RenderTheme::paintBorderOnly(RenderObject* o, const PaintInfo& paintInfo, c
// Call the appropriate paint method based off the appearance value.
switch (o->style()->appearance()) {
- case TextFieldPart:
- return paintTextField(o, paintInfo, r);
- case ListboxPart:
- case TextAreaPart:
- return paintTextArea(o, paintInfo, r);
- case MenulistButtonPart:
- case SearchFieldPart:
- return true;
- case CheckboxPart:
- case RadioPart:
- case PushButtonPart:
- case SquareButtonPart:
- case DefaultButtonPart:
- case ButtonPart:
- case MenulistPart:
+ case TextFieldPart:
+ return paintTextField(o, paintInfo, r);
+ case ListboxPart:
+ case TextAreaPart:
+ return paintTextArea(o, paintInfo, r);
+ case MenulistButtonPart:
+ case SearchFieldPart:
+ return true;
+ case CheckboxPart:
+ case RadioPart:
+ case PushButtonPart:
+ case SquareButtonPart:
+ case DefaultButtonPart:
+ case ButtonPart:
+ case MenulistPart:
#if ENABLE(METER_ELEMENT)
- case MeterPart:
- case RelevancyLevelIndicatorPart:
- case ContinuousCapacityLevelIndicatorPart:
- case DiscreteCapacityLevelIndicatorPart:
- case RatingLevelIndicatorPart:
+ case MeterPart:
+ case RelevancyLevelIndicatorPart:
+ case ContinuousCapacityLevelIndicatorPart:
+ case DiscreteCapacityLevelIndicatorPart:
+ case RatingLevelIndicatorPart:
#endif
#if ENABLE(PROGRESS_ELEMENT)
- case ProgressBarPart:
+ case ProgressBarPart:
#endif
- case SliderHorizontalPart:
- case SliderVerticalPart:
- case SliderThumbHorizontalPart:
- case SliderThumbVerticalPart:
- case SearchFieldCancelButtonPart:
- case SearchFieldDecorationPart:
- case SearchFieldResultsDecorationPart:
- case SearchFieldResultsButtonPart:
+ case SliderHorizontalPart:
+ case SliderVerticalPart:
+ case SliderThumbHorizontalPart:
+ case SliderThumbVerticalPart:
+ case SearchFieldCancelButtonPart:
+ case SearchFieldDecorationPart:
+ case SearchFieldResultsDecorationPart:
+ case SearchFieldResultsButtonPart:
#if ENABLE(INPUT_SPEECH)
- case InputSpeechButtonPart:
+ case InputSpeechButtonPart:
#endif
- default:
- break;
+ default:
+ break;
}
return false;
@@ -449,42 +450,42 @@ bool RenderTheme::paintDecorations(RenderObject* o, const PaintInfo& paintInfo,
// Call the appropriate paint method based off the appearance value.
switch (o->style()->appearance()) {
- case MenulistButtonPart:
- return paintMenuListButton(o, paintInfo, r);
- case TextFieldPart:
- case TextAreaPart:
- case ListboxPart:
- case CheckboxPart:
- case RadioPart:
- case PushButtonPart:
- case SquareButtonPart:
- case DefaultButtonPart:
- case ButtonPart:
- case MenulistPart:
+ case MenulistButtonPart:
+ return paintMenuListButton(o, paintInfo, r);
+ case TextFieldPart:
+ case TextAreaPart:
+ case ListboxPart:
+ case CheckboxPart:
+ case RadioPart:
+ case PushButtonPart:
+ case SquareButtonPart:
+ case DefaultButtonPart:
+ case ButtonPart:
+ case MenulistPart:
#if ENABLE(METER_ELEMENT)
- case MeterPart:
- case RelevancyLevelIndicatorPart:
- case ContinuousCapacityLevelIndicatorPart:
- case DiscreteCapacityLevelIndicatorPart:
- case RatingLevelIndicatorPart:
+ case MeterPart:
+ case RelevancyLevelIndicatorPart:
+ case ContinuousCapacityLevelIndicatorPart:
+ case DiscreteCapacityLevelIndicatorPart:
+ case RatingLevelIndicatorPart:
#endif
#if ENABLE(PROGRESS_ELEMENT)
- case ProgressBarPart:
+ case ProgressBarPart:
#endif
- case SliderHorizontalPart:
- case SliderVerticalPart:
- case SliderThumbHorizontalPart:
- case SliderThumbVerticalPart:
- case SearchFieldPart:
- case SearchFieldCancelButtonPart:
- case SearchFieldDecorationPart:
- case SearchFieldResultsDecorationPart:
- case SearchFieldResultsButtonPart:
+ case SliderHorizontalPart:
+ case SliderVerticalPart:
+ case SliderThumbHorizontalPart:
+ case SliderThumbVerticalPart:
+ case SearchFieldPart:
+ case SearchFieldCancelButtonPart:
+ case SearchFieldDecorationPart:
+ case SearchFieldResultsDecorationPart:
+ case SearchFieldResultsButtonPart:
#if ENABLE(INPUT_SPEECH)
- case InputSpeechButtonPart:
+ case InputSpeechButtonPart:
#endif
- default:
- break;
+ default:
+ break;
}
return false;
@@ -494,7 +495,7 @@ bool RenderTheme::paintDecorations(RenderObject* o, const PaintInfo& paintInfo,
String RenderTheme::formatMediaControlsTime(float time) const
{
- if (!isfinite(time))
+ if (!std::isfinite(time))
time = 0;
int seconds = (int)fabsf(time);
int hours = seconds / (60 * 60);
@@ -523,7 +524,7 @@ String RenderTheme::formatMediaControlsRemainingTime(float currentTime, float du
IntPoint RenderTheme::volumeSliderOffsetFromMuteButton(RenderBox* muteButtonBox, const IntSize& size) const
{
int y = -size.height();
- FloatPoint absPoint = muteButtonBox->localToAbsolute(FloatPoint(muteButtonBox->pixelSnappedOffsetLeft(), y), IsFixed | UseTransforms | SnapOffsetForTransforms);
+ FloatPoint absPoint = muteButtonBox->localToAbsolute(FloatPoint(muteButtonBox->pixelSnappedOffsetLeft(), y), IsFixed | UseTransforms);
if (absPoint.y() < 0)
y = muteButtonBox->height();
return IntPoint(0, y);
@@ -632,13 +633,6 @@ Color RenderTheme::platformInactiveListBoxSelectionForegroundColor() const
return platformInactiveSelectionForegroundColor();
}
-#if ENABLE(CALENDAR_PICKER)
-CString RenderTheme::extraCalendarPickerStyleSheet()
-{
- return CString();
-}
-#endif
-
int RenderTheme::baselinePosition(const RenderObject* o) const
{
if (!o->isBox())
@@ -660,32 +654,31 @@ bool RenderTheme::isControlContainer(ControlPart appearance) const
return appearance != CheckboxPart && appearance != RadioPart;
}
-bool RenderTheme::isControlStyled(const RenderStyle* style, const BorderData& border, const FillLayer& background,
- const Color& backgroundColor) const
+bool RenderTheme::isControlStyled(const RenderStyle* style, const BorderData& border, const FillLayer& background, const Color& backgroundColor) const
{
switch (style->appearance()) {
- case PushButtonPart:
- case SquareButtonPart:
- case DefaultButtonPart:
- case ButtonPart:
- case ListboxPart:
- case MenulistPart:
- case ProgressBarPart:
- case MeterPart:
- case RelevancyLevelIndicatorPart:
- case ContinuousCapacityLevelIndicatorPart:
- case DiscreteCapacityLevelIndicatorPart:
- case RatingLevelIndicatorPart:
- // FIXME: Uncomment this when making search fields style-able.
- // case SearchFieldPart:
- case TextFieldPart:
- case TextAreaPart:
- // Test the style to see if the UA border and background match.
- return (style->border() != border ||
- *style->backgroundLayers() != background ||
- style->visitedDependentColor(CSSPropertyBackgroundColor) != backgroundColor);
- default:
- return false;
+ case PushButtonPart:
+ case SquareButtonPart:
+ case DefaultButtonPart:
+ case ButtonPart:
+ case ListboxPart:
+ case MenulistPart:
+ case ProgressBarPart:
+ case MeterPart:
+ case RelevancyLevelIndicatorPart:
+ case ContinuousCapacityLevelIndicatorPart:
+ case DiscreteCapacityLevelIndicatorPart:
+ case RatingLevelIndicatorPart:
+ // FIXME: Uncomment this when making search fields style-able.
+ // case SearchFieldPart:
+ case TextFieldPart:
+ case TextAreaPart:
+ // Test the style to see if the UA border and background match.
+ return (style->border() != border
+ || *style->backgroundLayers() != background
+ || style->visitedDependentColor(CSSPropertyBackgroundColor) != backgroundColor);
+ default:
+ return false;
}
}
@@ -787,7 +780,7 @@ bool RenderTheme::isIndeterminate(const RenderObject* o) const
if (!inputElement)
return false;
- return inputElement->isIndeterminate();
+ return inputElement->shouldAppearIndeterminate();
}
bool RenderTheme::isEnabled(const RenderObject* o) const
@@ -795,36 +788,37 @@ bool RenderTheme::isEnabled(const RenderObject* o) const
Node* node = o->node();
if (!node || !node->isElementNode())
return true;
- return static_cast<Element*>(node)->isEnabledFormControl();
+ return !toElement(node)->isDisabledFormControl();
}
bool RenderTheme::isFocused(const RenderObject* o) const
{
Node* node = o->node();
- if (!node)
+ if (!node || !node->isElementNode())
return false;
- node = node->focusDelegate();
- Document* document = node->document();
+ Element* focusDelegate = toElement(node)->focusDelegate();
+ Document* document = focusDelegate->document();
Frame* frame = document->frame();
- return node == document->focusedNode() && frame && frame->selection()->isFocusedAndActive();
+ return focusDelegate == document->focusedElement() && frame && frame->selection()->isFocusedAndActive();
}
bool RenderTheme::isPressed(const RenderObject* o) const
{
- if (!o->node())
+ if (!o->node() || !o->node()->isElementNode())
return false;
- return o->node()->active();
+ return toElement(o->node())->active();
}
bool RenderTheme::isSpinUpButtonPartPressed(const RenderObject* o) const
{
Node* node = o->node();
- if (!node || !node->active() || !node->isElementNode()
- || !static_cast<Element*>(node)->isSpinButtonElement())
+ if (!node || !node->isElementNode())
return false;
- SpinButtonElement* element = static_cast<SpinButtonElement*>(node);
- return element->upDownState() == SpinButtonElement::Up;
+ Element* element = toElement(node);
+ if (!element->active() || !element->isSpinButtonElement())
+ return false;
+ return static_cast<SpinButtonElement*>(element)->upDownState() == SpinButtonElement::Up;
}
bool RenderTheme::isReadOnlyControl(const RenderObject* o) const
@@ -832,16 +826,16 @@ bool RenderTheme::isReadOnlyControl(const RenderObject* o) const
Node* node = o->node();
if (!node || !node->isElementNode())
return false;
- return static_cast<Element*>(node)->shouldMatchReadOnlySelector();
+ return toElement(node)->matchesReadOnlyPseudoClass();
}
bool RenderTheme::isHovered(const RenderObject* o) const
{
Node* node = o->node();
- if (!node)
+ if (!node || !node->isElementNode())
return false;
- if (!node->isElementNode() || !static_cast<Element*>(node)->isSpinButtonElement())
- return node->hovered();
+ if (!toElement(node)->isSpinButtonElement())
+ return toElement(node)->hovered();
SpinButtonElement* element = static_cast<SpinButtonElement*>(node);
return element->hovered() && element->upDownState() != SpinButtonElement::Indeterminate;
}
@@ -849,7 +843,7 @@ bool RenderTheme::isHovered(const RenderObject* o) const
bool RenderTheme::isSpinUpButtonPartHovered(const RenderObject* o) const
{
Node* node = o->node();
- if (!node || !node->isElementNode() || !static_cast<Element*>(node)->isSpinButtonElement())
+ if (!node || !node->isElementNode() || !toElement(node)->isSpinButtonElement())
return false;
SpinButtonElement* element = static_cast<SpinButtonElement*>(node);
return element->upDownState() == SpinButtonElement::Up;
@@ -865,7 +859,7 @@ bool RenderTheme::isDefault(const RenderObject* o) const
return false;
Settings* settings = o->document()->settings();
- if (!settings || !settings->inApplicationChromeMode())
+ if (!settings || !settings->applicationChromeMode())
return false;
return o->style()->appearance() == DefaultButtonPart;
@@ -909,8 +903,9 @@ void RenderTheme::adjustRadioStyle(StyleResolver*, RenderStyle* style, Element*)
void RenderTheme::adjustButtonStyle(StyleResolver*, RenderStyle* style, Element*) const
{
- // Most platforms will completely honor all CSS, and so we have no need to adjust the style
- // at all by default. We will still allow the theme a crack at setting up a desired vertical size.
+ // Most platforms will completely honor all CSS, and so we have no need to
+ // adjust the style at all by default. We will still allow the theme a crack
+ // at setting up a desired vertical size.
setButtonSize(style);
}
@@ -1037,8 +1032,8 @@ void RenderTheme::paintSliderTicks(RenderObject* o, const PaintInfo& paintInfo,
GraphicsContextStateSaver stateSaver(*paintInfo.context);
paintInfo.context->setFillColor(o->style()->visitedDependentColor(CSSPropertyColor), ColorSpaceDeviceRGB);
for (unsigned i = 0; Node* node = options->item(i); i++) {
- ASSERT(node->hasTagName(optionTag));
- HTMLOptionElement* optionElement = static_cast<HTMLOptionElement*>(node);
+ ASSERT(isHTMLOptionElement(node));
+ HTMLOptionElement* optionElement = toHTMLOptionElement(node);
String value = optionElement->value();
if (!input->isValidValue(value))
continue;
@@ -1129,70 +1124,72 @@ void RenderTheme::platformColorsDidChange()
m_activeListBoxSelectionBackgroundColor = Color();
m_inactiveListBoxSelectionForegroundColor = Color();
- Page::scheduleForcedStyleRecalcForAllPages();
+ Page::updateStyleForAllPagesAfterGlobalChangeInEnvironment();
}
-Color RenderTheme::systemColor(int cssValueId) const
+Color RenderTheme::systemColor(CSSValueID cssValueId) const
{
switch (cssValueId) {
- case CSSValueActiveborder:
- return 0xFFFFFFFF;
- case CSSValueActivecaption:
- return 0xFFCCCCCC;
- case CSSValueAppworkspace:
- return 0xFFFFFFFF;
- case CSSValueBackground:
- return 0xFF6363CE;
- case CSSValueButtonface:
- return 0xFFC0C0C0;
- case CSSValueButtonhighlight:
- return 0xFFDDDDDD;
- case CSSValueButtonshadow:
- return 0xFF888888;
- case CSSValueButtontext:
- return 0xFF000000;
- case CSSValueCaptiontext:
- return 0xFF000000;
- case CSSValueGraytext:
- return 0xFF808080;
- case CSSValueHighlight:
- return 0xFFB5D5FF;
- case CSSValueHighlighttext:
- return 0xFF000000;
- case CSSValueInactiveborder:
- return 0xFFFFFFFF;
- case CSSValueInactivecaption:
- return 0xFFFFFFFF;
- case CSSValueInactivecaptiontext:
- return 0xFF7F7F7F;
- case CSSValueInfobackground:
- return 0xFFFBFCC5;
- case CSSValueInfotext:
- return 0xFF000000;
- case CSSValueMenu:
- return 0xFFC0C0C0;
- case CSSValueMenutext:
- return 0xFF000000;
- case CSSValueScrollbar:
- return 0xFFFFFFFF;
- case CSSValueText:
- return 0xFF000000;
- case CSSValueThreeddarkshadow:
- return 0xFF666666;
- case CSSValueThreedface:
- return 0xFFC0C0C0;
- case CSSValueThreedhighlight:
- return 0xFFDDDDDD;
- case CSSValueThreedlightshadow:
- return 0xFFC0C0C0;
- case CSSValueThreedshadow:
- return 0xFF888888;
- case CSSValueWindow:
- return 0xFFFFFFFF;
- case CSSValueWindowframe:
- return 0xFFCCCCCC;
- case CSSValueWindowtext:
- return 0xFF000000;
+ case CSSValueActiveborder:
+ return 0xFFFFFFFF;
+ case CSSValueActivecaption:
+ return 0xFFCCCCCC;
+ case CSSValueAppworkspace:
+ return 0xFFFFFFFF;
+ case CSSValueBackground:
+ return 0xFF6363CE;
+ case CSSValueButtonface:
+ return 0xFFC0C0C0;
+ case CSSValueButtonhighlight:
+ return 0xFFDDDDDD;
+ case CSSValueButtonshadow:
+ return 0xFF888888;
+ case CSSValueButtontext:
+ return 0xFF000000;
+ case CSSValueCaptiontext:
+ return 0xFF000000;
+ case CSSValueGraytext:
+ return 0xFF808080;
+ case CSSValueHighlight:
+ return 0xFFB5D5FF;
+ case CSSValueHighlighttext:
+ return 0xFF000000;
+ case CSSValueInactiveborder:
+ return 0xFFFFFFFF;
+ case CSSValueInactivecaption:
+ return 0xFFFFFFFF;
+ case CSSValueInactivecaptiontext:
+ return 0xFF7F7F7F;
+ case CSSValueInfobackground:
+ return 0xFFFBFCC5;
+ case CSSValueInfotext:
+ return 0xFF000000;
+ case CSSValueMenu:
+ return 0xFFC0C0C0;
+ case CSSValueMenutext:
+ return 0xFF000000;
+ case CSSValueScrollbar:
+ return 0xFFFFFFFF;
+ case CSSValueText:
+ return 0xFF000000;
+ case CSSValueThreeddarkshadow:
+ return 0xFF666666;
+ case CSSValueThreedface:
+ return 0xFFC0C0C0;
+ case CSSValueThreedhighlight:
+ return 0xFFDDDDDD;
+ case CSSValueThreedlightshadow:
+ return 0xFFC0C0C0;
+ case CSSValueThreedshadow:
+ return 0xFF888888;
+ case CSSValueWindow:
+ return 0xFFFFFFFF;
+ case CSSValueWindowframe:
+ return 0xFFCCCCCC;
+ case CSSValueWindowtext:
+ return 0xFF000000;
+ default:
+ break;
}
return Color();
}