diff options
Diffstat (limited to 'WebCore/rendering/RenderThemeChromiumMac.mm')
| -rw-r--r-- | WebCore/rendering/RenderThemeChromiumMac.mm | 57 |
1 files changed, 45 insertions, 12 deletions
diff --git a/WebCore/rendering/RenderThemeChromiumMac.mm b/WebCore/rendering/RenderThemeChromiumMac.mm index f6081a5..23201c9 100644 --- a/WebCore/rendering/RenderThemeChromiumMac.mm +++ b/WebCore/rendering/RenderThemeChromiumMac.mm @@ -1,6 +1,7 @@ /* * Copyright (C) 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. * Copyright (C) 2008, 2009 Google, Inc. + * Copyright (C) 2009 Kenneth Rohde Christiansen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -31,6 +32,8 @@ #import <math.h> #import "BitmapImage.h" +#import "ChromiumBridge.h" +#import "ColorMac.h" #import "CSSStyleSelector.h" #import "CSSValueKeywords.h" #import "Element.h" @@ -43,6 +46,7 @@ #import "Image.h" #import "LocalCurrentGraphicsContext.h" #import "MediaControlElements.h" +#import "RenderMedia.h" #import "RenderSlider.h" #import "RenderView.h" #import "SharedBuffer.h" @@ -124,10 +128,15 @@ IntRect NSRectToIntRect(const NSRect & rect) return IntRect(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height); } -RenderTheme* theme() +PassRefPtr<RenderTheme> RenderThemeChromiumMac::create() { - static RenderThemeChromiumMac* macTheme = new RenderThemeChromiumMac; - return macTheme; + return adoptRef(new RenderThemeChromiumMac); +} + +PassRefPtr<RenderTheme> RenderTheme::themeForPage(Page* page) +{ + static RenderTheme* rt = RenderThemeChromiumMac::create().releaseRef(); + return rt; } RenderThemeChromiumMac::RenderThemeChromiumMac() @@ -158,12 +167,20 @@ Color RenderThemeChromiumMac::platformInactiveSelectionBackgroundColor() const return Color(static_cast<int>(255.0 * [color redComponent]), static_cast<int>(255.0 * [color greenComponent]), static_cast<int>(255.0 * [color blueComponent])); } -Color RenderThemeChromiumMac::activeListBoxSelectionBackgroundColor() const +Color RenderThemeChromiumMac::platformActiveListBoxSelectionBackgroundColor() const { NSColor* color = [[NSColor alternateSelectedControlColor] colorUsingColorSpaceName:NSDeviceRGBColorSpace]; return Color(static_cast<int>(255.0 * [color redComponent]), static_cast<int>(255.0 * [color greenComponent]), static_cast<int>(255.0 * [color blueComponent])); } +Color RenderThemeChromiumMac::platformFocusRingColor() const +{ + if (ChromiumBridge::layoutTestMode()) + return oldAquaFocusRingColor(); + + return systemColor(CSSValueWebkitFocusRingColor); +} + static FontWeight toFontWeight(NSInteger appKitFontWeight) { ASSERT(appKitFontWeight > 0 && appKitFontWeight < 15); @@ -416,6 +433,9 @@ Color RenderThemeChromiumMac::systemColor(int cssValueId) const case CSSValueThreedlightshadow: color = convertNSColorToColor([NSColor controlLightHighlightColor]); break; + case CSSValueWebkitFocusRingColor: + color = convertNSColorToColor([NSColor keyboardFocusIndicatorColor]); + break; case CSSValueWindow: color = convertNSColorToColor([NSColor windowBackgroundColor]); break; @@ -1486,7 +1506,7 @@ bool RenderThemeChromiumMac::paintSliderThumb(RenderObject* o, const RenderObjec else oldPressed = m_isSliderThumbHorizontalPressed; - bool pressed = static_cast<RenderSlider*>(o->parent())->inDragMode(); + bool pressed = toRenderSlider(o->parent())->inDragMode(); if (o->style()->appearance() == SliderThumbVerticalPart) m_isSliderThumbVerticalPressed = pressed; @@ -1781,6 +1801,12 @@ typedef enum { MediaControllerThemeClassic = 1, MediaControllerThemeQT = 2 } MediaControllerThemeStyle; + +enum WKMediaControllerThemeState { + MediaUIPartDisabledFlag = 1 << 0, + MediaUIPartPressedFlag = 1 << 1, + MediaUIPartDrawEndCapsFlag = 1 << 3, +}; #endif bool RenderThemeChromiumMac::paintMediaFullscreenButton(RenderObject* o, const RenderObject::PaintInfo& paintInfo, const IntRect& r) @@ -1791,7 +1817,8 @@ bool RenderThemeChromiumMac::paintMediaFullscreenButton(RenderObject* o, const R return false; LocalCurrentGraphicsContext localContext(paintInfo.context); - wkDrawMediaUIPart(MediaFullscreenButton, MediaControllerThemeClassic, paintInfo.context->platformContext(), r, node->active()); + wkDrawMediaUIPart(MediaFullscreenButton, MediaControllerThemeClassic, paintInfo.context->platformContext(), r, + node->active() ? MediaUIPartPressedFlag : 0); #endif return false; } @@ -1809,7 +1836,8 @@ bool RenderThemeChromiumMac::paintMediaMuteButton(RenderObject* o, const RenderO return false; LocalCurrentGraphicsContext localContext(paintInfo.context); - wkDrawMediaUIPart(mediaElement->muted() ? MediaUnMuteButton : MediaMuteButton, MediaControllerThemeClassic, paintInfo.context->platformContext(), r, node->active()); + wkDrawMediaUIPart(mediaElement->muted() ? MediaUnMuteButton : MediaMuteButton, MediaControllerThemeClassic, paintInfo.context->platformContext(), r, + node->active() ? MediaUIPartPressedFlag : 0); #endif return false; } @@ -1827,7 +1855,8 @@ bool RenderThemeChromiumMac::paintMediaPlayButton(RenderObject* o, const RenderO return false; LocalCurrentGraphicsContext localContext(paintInfo.context); - wkDrawMediaUIPart(mediaElement->canPlay() ? MediaPlayButton : MediaPauseButton, MediaControllerThemeClassic, paintInfo.context->platformContext(), r, node->active()); + wkDrawMediaUIPart(mediaElement->canPlay() ? MediaPlayButton : MediaPauseButton, MediaControllerThemeClassic, paintInfo.context->platformContext(), r, + node->active() ? MediaUIPartPressedFlag : 0); #endif return false; } @@ -1840,7 +1869,8 @@ bool RenderThemeChromiumMac::paintMediaSeekBackButton(RenderObject* o, const Ren return false; LocalCurrentGraphicsContext localContext(paintInfo.context); - wkDrawMediaUIPart(MediaSeekBackButton, MediaControllerThemeClassic, paintInfo.context->platformContext(), r, node->active()); + wkDrawMediaUIPart(MediaSeekBackButton, MediaControllerThemeClassic, paintInfo.context->platformContext(), r, + node->active() ? MediaUIPartPressedFlag : 0); #endif return false; } @@ -1853,7 +1883,8 @@ bool RenderThemeChromiumMac::paintMediaSeekForwardButton(RenderObject* o, const return false; LocalCurrentGraphicsContext localContext(paintInfo.context); - wkDrawMediaUIPart(MediaSeekForwardButton, MediaControllerThemeClassic, paintInfo.context->platformContext(), r, node->active()); + wkDrawMediaUIPart(MediaSeekForwardButton, MediaControllerThemeClassic, paintInfo.context->platformContext(), r, + node->active() ? MediaUIPartPressedFlag : 0); #endif return false; } @@ -1879,7 +1910,8 @@ bool RenderThemeChromiumMac::paintMediaSliderTrack(RenderObject* o, const Render currentTime = player->currentTime(); } - wkDrawMediaSliderTrack(MediaControllerThemeClassic, paintInfo.context->platformContext(), r, timeLoaded, currentTime, duration); + bool shouldDrawEndCaps = !toRenderMedia(mediaElement->renderer())->shouldShowTimeDisplayControls(); + wkDrawMediaSliderTrack(MediaControllerThemeClassic, paintInfo.context->platformContext(), r, timeLoaded, currentTime, duration, shouldDrawEndCaps ? MediaUIPartDrawEndCapsFlag : 0); #endif return false; } @@ -1892,7 +1924,8 @@ bool RenderThemeChromiumMac::paintMediaSliderThumb(RenderObject* o, const Render return false; LocalCurrentGraphicsContext localContext(paintInfo.context); - wkDrawMediaUIPart(MediaSliderThumb, MediaControllerThemeClassic, paintInfo.context->platformContext(), r, node->active()); + wkDrawMediaUIPart(MediaSliderThumb, MediaControllerThemeClassic, paintInfo.context->platformContext(), r, + node->active() ? MediaUIPartPressedFlag : 0); #endif return false; } |
