Index: ui/gfx/platform_font_mac.mm |
diff --git a/ui/gfx/platform_font_mac.mm b/ui/gfx/platform_font_mac.mm |
deleted file mode 100644 |
index bec41f74882bb7627a1a8479086fc2b02aab5b2d..0000000000000000000000000000000000000000 |
--- a/ui/gfx/platform_font_mac.mm |
+++ /dev/null |
@@ -1,195 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "ui/gfx/platform_font_mac.h" |
- |
-#include <Cocoa/Cocoa.h> |
- |
-#include "base/basictypes.h" |
-#include "base/mac/scoped_nsobject.h" |
-#include "base/strings/sys_string_conversions.h" |
-#include "base/strings/utf_string_conversions.h" |
-#include "ui/gfx/canvas.h" |
-#include "ui/gfx/font.h" |
-#include "ui/gfx/font_render_params.h" |
- |
-namespace gfx { |
- |
-namespace { |
- |
-// Returns an autoreleased NSFont created with the passed-in specifications. |
-NSFont* NSFontWithSpec(const std::string& font_name, |
- int font_size, |
- int font_style) { |
- NSFontSymbolicTraits trait_bits = 0; |
- if (font_style & Font::BOLD) |
- trait_bits |= NSFontBoldTrait; |
- if (font_style & Font::ITALIC) |
- trait_bits |= NSFontItalicTrait; |
- // The Mac doesn't support underline as a font trait, so just drop it. |
- // (Underlines must be added as an attribute on an NSAttributedString.) |
- NSDictionary* traits = @{ NSFontSymbolicTrait : @(trait_bits) }; |
- |
- NSDictionary* attrs = @{ |
- NSFontFamilyAttribute : base::SysUTF8ToNSString(font_name), |
- NSFontTraitsAttribute : traits |
- }; |
- NSFontDescriptor* descriptor = |
- [NSFontDescriptor fontDescriptorWithFontAttributes:attrs]; |
- NSFont* font = [NSFont fontWithDescriptor:descriptor size:font_size]; |
- if (font) |
- return font; |
- |
- // Make one fallback attempt by looking up via font name rather than font |
- // family name. |
- attrs = @{ |
- NSFontNameAttribute : base::SysUTF8ToNSString(font_name), |
- NSFontTraitsAttribute : traits |
- }; |
- descriptor = [NSFontDescriptor fontDescriptorWithFontAttributes:attrs]; |
- return [NSFont fontWithDescriptor:descriptor size:font_size]; |
-} |
- |
-} // namespace |
- |
-//////////////////////////////////////////////////////////////////////////////// |
-// PlatformFontMac, public: |
- |
-PlatformFontMac::PlatformFontMac() |
- : native_font_([[NSFont systemFontOfSize:[NSFont systemFontSize]] retain]), |
- font_name_(base::SysNSStringToUTF8([native_font_ familyName])), |
- font_size_([NSFont systemFontSize]), |
- font_style_(Font::NORMAL) { |
- CalculateMetrics(); |
-} |
- |
-PlatformFontMac::PlatformFontMac(NativeFont native_font) |
- : native_font_([native_font retain]), |
- font_name_(base::SysNSStringToUTF8([native_font_ familyName])), |
- font_size_([native_font_ pointSize]), |
- font_style_(Font::NORMAL) { |
- NSFontSymbolicTraits traits = [[native_font fontDescriptor] symbolicTraits]; |
- if (traits & NSFontItalicTrait) |
- font_style_ |= Font::ITALIC; |
- if (traits & NSFontBoldTrait) |
- font_style_ |= Font::BOLD; |
- |
- CalculateMetrics(); |
-} |
- |
-PlatformFontMac::PlatformFontMac(const std::string& font_name, |
- int font_size) |
- : native_font_([NSFontWithSpec(font_name, font_size, Font::NORMAL) retain]), |
- font_name_(font_name), |
- font_size_(font_size), |
- font_style_(Font::NORMAL) { |
- CalculateMetrics(); |
-} |
- |
-//////////////////////////////////////////////////////////////////////////////// |
-// PlatformFontMac, PlatformFont implementation: |
- |
-Font PlatformFontMac::DeriveFont(int size_delta, int style) const { |
- return Font(new PlatformFontMac(font_name_, font_size_ + size_delta, style)); |
-} |
- |
-int PlatformFontMac::GetHeight() const { |
- return height_; |
-} |
- |
-int PlatformFontMac::GetBaseline() const { |
- return ascent_; |
-} |
- |
-int PlatformFontMac::GetCapHeight() const { |
- return cap_height_; |
-} |
- |
-int PlatformFontMac::GetExpectedTextWidth(int length) const { |
- return length * average_width_; |
-} |
- |
-int PlatformFontMac::GetStyle() const { |
- return font_style_; |
-} |
- |
-std::string PlatformFontMac::GetFontName() const { |
- return font_name_; |
-} |
- |
-std::string PlatformFontMac::GetActualFontNameForTesting() const { |
- return base::SysNSStringToUTF8([native_font_ familyName]); |
-} |
- |
-int PlatformFontMac::GetFontSize() const { |
- return font_size_; |
-} |
- |
-const FontRenderParams& PlatformFontMac::GetFontRenderParams() const { |
- NOTIMPLEMENTED(); |
- static FontRenderParams params; |
- return params; |
-} |
- |
-NativeFont PlatformFontMac::GetNativeFont() const { |
- return [[native_font_.get() retain] autorelease]; |
-} |
- |
-//////////////////////////////////////////////////////////////////////////////// |
-// PlatformFontMac, private: |
- |
-PlatformFontMac::PlatformFontMac(const std::string& font_name, |
- int font_size, |
- int font_style) |
- : native_font_([NSFontWithSpec(font_name, font_size, font_style) retain]), |
- font_name_(font_name), |
- font_size_(font_size), |
- font_style_(font_style) { |
- CalculateMetrics(); |
-} |
- |
-PlatformFontMac::~PlatformFontMac() { |
-} |
- |
-void PlatformFontMac::CalculateMetrics() { |
- NSFont* font = native_font_.get(); |
- if (!font) { |
- // This object was constructed from a font name that doesn't correspond to |
- // an actual font. Don't waste time working out metrics. |
- height_ = 0; |
- ascent_ = 0; |
- cap_height_ = 0; |
- average_width_ = 0; |
- return; |
- } |
- |
- base::scoped_nsobject<NSLayoutManager> layout_manager( |
- [[NSLayoutManager alloc] init]); |
- height_ = SkScalarCeilToInt([layout_manager defaultLineHeightForFont:font]); |
- ascent_ = SkScalarCeilToInt([font ascender]); |
- cap_height_ = SkScalarCeilToInt([font capHeight]); |
- average_width_ = |
- NSWidth([font boundingRectForGlyph:[font glyphWithName:@"x"]]); |
-} |
- |
-//////////////////////////////////////////////////////////////////////////////// |
-// PlatformFont, public: |
- |
-// static |
-PlatformFont* PlatformFont::CreateDefault() { |
- return new PlatformFontMac; |
-} |
- |
-// static |
-PlatformFont* PlatformFont::CreateFromNativeFont(NativeFont native_font) { |
- return new PlatformFontMac(native_font); |
-} |
- |
-// static |
-PlatformFont* PlatformFont::CreateFromNameAndSize(const std::string& font_name, |
- int font_size) { |
- return new PlatformFontMac(font_name, font_size); |
-} |
- |
-} // namespace gfx |