void RenderTheme::adjustRepaintRect(const RenderObject* o, IntRect& r) { #if USE(NEW_THEME) m_theme->inflateControlPaintRect(o->style()->appearance(), controlStatesForRenderer(o), r, o->style()->effectiveZoom()); #else UNUSED_PARAM(o); UNUSED_PARAM(r); #endif }
bool RenderThemeChromiumLinux::paintInnerSpinButton(RenderObject* o, const PaintInfo& i, const IntRect& rect) { PlatformSupport::ThemePaintExtraParams extraParams; extraParams.innerSpin.spinUp = (controlStatesForRenderer(o) & SpinUpState); extraParams.innerSpin.readOnly = isReadOnlyControl(o); PlatformSupport::paintThemePart(i.context, PlatformSupport::PartInnerSpinButton, getWebThemeState(this, o), rect, &extraParams); return false; }
bool RenderThemeChromiumDefault::paintInnerSpinButton(RenderObject* o, const PaintInfo& i, const IntRect& rect) { WebKit::WebThemeEngine::ExtraParams extraParams; WebKit::WebCanvas* canvas = i.context->canvas(); extraParams.innerSpin.spinUp = (controlStatesForRenderer(o) & SpinUpState); extraParams.innerSpin.readOnly = isReadOnlyControl(o); WebKit::Platform::current()->themeEngine()->paint(canvas, WebKit::WebThemeEngine::PartInnerSpinButton, getWebThemeState(this, o), WebKit::WebRect(rect), &extraParams); return false; }
bool RenderThemeChromiumLinux::paintInnerSpinButton(RenderObject* object, const PaintInfo& info, const IntRect& rect) { ControlStates northStates = controlStatesForRenderer(object); ControlStates southStates = northStates; if (northStates & SpinUpState) southStates &= ~(HoverState | PressedState); else northStates &= ~(HoverState | PressedState); IntRect half = rect; half.setHeight(rect.height() / 2); PlatformThemeChromiumGtk::paintArrowButton(info.context, half, PlatformThemeChromiumGtk::North, northStates); half.setY(rect.y() + rect.height() / 2); PlatformThemeChromiumGtk::paintArrowButton(info.context, half, PlatformThemeChromiumGtk::South, southStates); return false; }
bool RenderTheme::paint(RenderObject* o, const PaintInfo& paintInfo, const IntRect& r) { // If painting is disabled, but we aren't updating control tints, then just bail. // If we are updating control tints, just schedule a repaint if the theme supports tinting // for that control. if (paintInfo.context->updatingControlTints()) { if (controlSupportsTints(o)) o->repaint(); return false; } if (paintInfo.context->paintingDisabled()) return false; ControlPart part = o->style()->appearance(); #if USE(NEW_THEME) switch (part) { case CheckboxPart: case RadioPart: case PushButtonPart: case SquareButtonPart: case ListButtonPart: 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 ListButtonPart: case DefaultButtonPart: case ButtonPart: return paintButton(o, paintInfo, r); case InnerSpinButtonPart: return paintInnerSpinButton(o, paintInfo, r); #endif case MenulistPart: return paintMenuList(o, paintInfo, r); #if ENABLE(METER_TAG) case MeterPart: case RelevancyLevelIndicatorPart: case ContinuousCapacityLevelIndicatorPart: case DiscreteCapacityLevelIndicatorPart: case RatingLevelIndicatorPart: return paintMeter(o, paintInfo, r); #endif #if ENABLE(PROGRESS_TAG) 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 MediaFullscreenButtonPart: return paintMediaFullscreenButton(o, paintInfo, r); case MediaPlayButtonPart: return paintMediaPlayButton(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 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); #if ENABLE(INPUT_SPEECH) case InputSpeechButtonPart: return paintInputFieldSpeechButton(o, paintInfo, r); #endif default: break; } return true; // We don't support the appearance, so let the normal background/border paint. }
void RenderTheme::adjustRepaintRect(const RenderObject* o, IntRect& r) { m_theme->inflateControlPaintRect(o->style()->appearance(), controlStatesForRenderer(o), r, o->style()->effectiveZoom()); }