Add an override point for drawing named images in ThemeCocoa
https://bugs.webkit.org/show_bug.cgi?id=157357
rdar://problem/25878445
Reviewed by Dean Jackson.
Rename ThemeCocoa.cpp to ThemeCocoa.mm and rearrange the code that draws the wireless-playback image
so we can import ThemeCocoaDrawNamedImage.mm below.
* WebCore.xcodeproj/project.pbxproj:
* platform/cocoa/ThemeCocoa.cpp:
(WebCore::fitContextToBox): Deleted.
(WebCore::ThemeCocoa::drawNamedImage): Deleted.
* platform/cocoa/ThemeCocoa.mm: Renamed from Source/WebCore/platform/cocoa/ThemeCocoa.cpp.
(WebCore::fitContextToBox):
(WebCore::ThemeCocoa::drawNamedImage):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@200433 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index bec4cb1..639ff6a 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,22 @@
+2016-05-04 Anders Carlsson <andersca@apple.com>
+
+ Add an override point for drawing named images in ThemeCocoa
+ https://bugs.webkit.org/show_bug.cgi?id=157357
+ rdar://problem/25878445
+
+ Reviewed by Dean Jackson.
+
+ Rename ThemeCocoa.cpp to ThemeCocoa.mm and rearrange the code that draws the wireless-playback image
+ so we can import ThemeCocoaDrawNamedImage.mm below.
+
+ * WebCore.xcodeproj/project.pbxproj:
+ * platform/cocoa/ThemeCocoa.cpp:
+ (WebCore::fitContextToBox): Deleted.
+ (WebCore::ThemeCocoa::drawNamedImage): Deleted.
+ * platform/cocoa/ThemeCocoa.mm: Renamed from Source/WebCore/platform/cocoa/ThemeCocoa.cpp.
+ (WebCore::fitContextToBox):
+ (WebCore::ThemeCocoa::drawNamedImage):
+
2016-05-04 Jeremy Jones <jeremyj@apple.com>
Don't disconnect WebAVPlayerController from its delegate since there is no way to reconnect it.
diff --git a/Source/WebCore/WebCore.xcodeproj/project.pbxproj b/Source/WebCore/WebCore.xcodeproj/project.pbxproj
index f1b9e62..06bbd73 100644
--- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj
+++ b/Source/WebCore/WebCore.xcodeproj/project.pbxproj
@@ -1295,7 +1295,7 @@
31078CC81880AABB008099DC /* OESTextureHalfFloatLinear.h in Headers */ = {isa = PBXBuildFile; fileRef = 31078CC31880A6A6008099DC /* OESTextureHalfFloatLinear.h */; };
31078CC91880AAC9008099DC /* JSOESTextureHalfFloatLinear.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31078CC51880AAAA008099DC /* JSOESTextureHalfFloatLinear.cpp */; };
31078CCA1880AACE008099DC /* JSOESTextureHalfFloatLinear.h in Headers */ = {isa = PBXBuildFile; fileRef = 31078CC61880AAAA008099DC /* JSOESTextureHalfFloatLinear.h */; };
- 310D71951B335C9D009C7B73 /* ThemeCocoa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 310D71931B335C9D009C7B73 /* ThemeCocoa.cpp */; };
+ 310D71951B335C9D009C7B73 /* ThemeCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 310D71931B335C9D009C7B73 /* ThemeCocoa.mm */; };
310D71961B335C9E009C7B73 /* ThemeCocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = 310D71941B335C9D009C7B73 /* ThemeCocoa.h */; };
311C08BD18EB7CAF00B65615 /* mediaControlsApple.css in Resources */ = {isa = PBXBuildFile; fileRef = CDC1DD4117CC2C48008CB55D /* mediaControlsApple.css */; };
311C08BE18EB7CAF00B65615 /* mediaControlsApple.js in Resources */ = {isa = PBXBuildFile; fileRef = CDE6560E17CA6E7600526BA7 /* mediaControlsApple.js */; };
@@ -8790,7 +8790,7 @@
31078CC41880A6A6008099DC /* OESTextureHalfFloatLinear.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = OESTextureHalfFloatLinear.idl; sourceTree = "<group>"; };
31078CC51880AAAA008099DC /* JSOESTextureHalfFloatLinear.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSOESTextureHalfFloatLinear.cpp; sourceTree = "<group>"; };
31078CC61880AAAA008099DC /* JSOESTextureHalfFloatLinear.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSOESTextureHalfFloatLinear.h; sourceTree = "<group>"; };
- 310D71931B335C9D009C7B73 /* ThemeCocoa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ThemeCocoa.cpp; sourceTree = "<group>"; };
+ 310D71931B335C9D009C7B73 /* ThemeCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ThemeCocoa.mm; sourceTree = "<group>"; };
310D71941B335C9D009C7B73 /* ThemeCocoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThemeCocoa.h; sourceTree = "<group>"; };
311C08BC18E35D6800B65615 /* ControlStates.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ControlStates.h; sourceTree = "<group>"; };
31288E6E0E3005D6003619AE /* CSSKeyframeRule.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CSSKeyframeRule.cpp; sourceTree = "<group>"; };
@@ -20064,8 +20064,8 @@
5D5975B119635F1100D00878 /* SystemVersion.h */,
5D5975B219635F1100D00878 /* SystemVersion.mm */,
7CC564B918BAC720001B9652 /* TelephoneNumberDetectorCocoa.cpp */,
- 310D71931B335C9D009C7B73 /* ThemeCocoa.cpp */,
310D71941B335C9D009C7B73 /* ThemeCocoa.h */,
+ 310D71931B335C9D009C7B73 /* ThemeCocoa.mm */,
46DB7D561B20FE3C005651B2 /* VNodeTrackerCocoa.cpp */,
CDC979F31C498C0900DB50D4 /* WebCoreNSErrorExtras.h */,
CDC979F21C498C0900DB50D4 /* WebCoreNSErrorExtras.mm */,
@@ -31893,7 +31893,7 @@
498770F01242C535002226BA /* Texture.cpp in Sources */,
CD9D82751C7AE535006FF066 /* TextureCacheCV.mm in Sources */,
BCE65D320EAD1211007E4533 /* Theme.cpp in Sources */,
- 310D71951B335C9D009C7B73 /* ThemeCocoa.cpp in Sources */,
+ 310D71951B335C9D009C7B73 /* ThemeCocoa.mm in Sources */,
44C991A00F3D210E00586670 /* ThemeIOS.mm in Sources */,
BCE659E90EA92FFA007E4533 /* ThemeMac.mm in Sources */,
976D6C94122B8A3D001FD1F7 /* ThreadableBlobRegistry.cpp in Sources */,
diff --git a/Source/WebCore/platform/cocoa/ThemeCocoa.cpp b/Source/WebCore/platform/cocoa/ThemeCocoa.mm
similarity index 62%
rename from Source/WebCore/platform/cocoa/ThemeCocoa.cpp
rename to Source/WebCore/platform/cocoa/ThemeCocoa.mm
index 314eed5..03ff28a 100644
--- a/Source/WebCore/platform/cocoa/ThemeCocoa.cpp
+++ b/Source/WebCore/platform/cocoa/ThemeCocoa.mm
@@ -52,39 +52,43 @@
void ThemeCocoa::drawNamedImage(const String& name, GraphicsContext& context, const FloatRect& rect) const
{
// We only handle one icon at the moment.
- if (name != "wireless-playback") {
- Theme::drawNamedImage(name, context, rect);
+ if (name == "wireless-playback") {
+ GraphicsContextStateSaver stateSaver(context);
+ context.setFillColor(Color::black);
+
+ FloatSize wirelessPlaybackSrcSize(32, 24.016);
+ fitContextToBox(context, wirelessPlaybackSrcSize, rect.size());
+
+ Path outline;
+ outline.moveTo(FloatPoint(24.066, 18));
+ outline.addLineTo(FloatPoint(22.111, 16));
+ outline.addLineTo(FloatPoint(30, 16));
+ outline.addLineTo(FloatPoint(30, 2));
+ outline.addLineTo(FloatPoint(2, 2));
+ outline.addLineTo(FloatPoint(2, 16));
+ outline.addLineTo(FloatPoint(9.908, 16));
+ outline.addLineTo(FloatPoint(7.953, 18));
+ outline.addLineTo(FloatPoint(0, 18));
+ outline.addLineTo(FloatPoint(0, 0));
+ outline.addLineTo(FloatPoint(32, 0));
+ outline.addLineTo(FloatPoint(32, 18));
+ outline.addLineTo(FloatPoint(24.066, 18));
+ outline.closeSubpath();
+ outline.moveTo(FloatPoint(26.917, 24.016));
+ outline.addLineTo(FloatPoint(5.040, 24.016));
+ outline.addLineTo(FloatPoint(15.978, 12.828));
+ outline.addLineTo(FloatPoint(26.917, 24.016));
+ outline.closeSubpath();
+
+ context.fillPath(outline);
return;
}
- GraphicsContextStateSaver stateSaver(context);
- context.setFillColor(Color::black);
+#if USE(APPLE_INTERNAL_SDK)
+#include <WebKitAdditions/ThemeCocoaDrawNamedImage.mm>
+#endif
- FloatSize wirelessPlaybackSrcSize(32, 24.016);
- fitContextToBox(context, wirelessPlaybackSrcSize, rect.size());
-
- Path outline;
- outline.moveTo(FloatPoint(24.066, 18));
- outline.addLineTo(FloatPoint(22.111, 16));
- outline.addLineTo(FloatPoint(30, 16));
- outline.addLineTo(FloatPoint(30, 2));
- outline.addLineTo(FloatPoint(2, 2));
- outline.addLineTo(FloatPoint(2, 16));
- outline.addLineTo(FloatPoint(9.908, 16));
- outline.addLineTo(FloatPoint(7.953, 18));
- outline.addLineTo(FloatPoint(0, 18));
- outline.addLineTo(FloatPoint(0, 0));
- outline.addLineTo(FloatPoint(32, 0));
- outline.addLineTo(FloatPoint(32, 18));
- outline.addLineTo(FloatPoint(24.066, 18));
- outline.closeSubpath();
- outline.moveTo(FloatPoint(26.917, 24.016));
- outline.addLineTo(FloatPoint(5.040, 24.016));
- outline.addLineTo(FloatPoint(15.978, 12.828));
- outline.addLineTo(FloatPoint(26.917, 24.016));
- outline.closeSubpath();
-
- context.fillPath(outline);
+ Theme::drawNamedImage(name, context, rect);
}
}