diff options
| author | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2013-09-13 12:51:20 +0200 |
|---|---|---|
| committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-19 20:50:05 +0200 |
| commit | d441d6f39bb846989d95bcf5caf387b42414718d (patch) | |
| tree | e367e64a75991c554930278175d403c072de6bb8 /Source/WebCore/rendering/RenderTheme.cpp | |
| parent | 0060b2994c07842f4c59de64b5e3e430525c4b90 (diff) | |
| download | qtwebkit-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.cpp | 813 |
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(); } |
