| // Copyright (c) 2010 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. |
| |
| #ifndef GFX_PLATFORM_FONT_MAC_ |
| #define GFX_PLATFORM_FONT_MAC_ |
| #pragma once |
| |
| #include "gfx/platform_font.h" |
| |
| namespace gfx { |
| |
| class PlatformFontMac : public PlatformFont { |
| public: |
| PlatformFontMac(); |
| explicit PlatformFontMac(const Font& other); |
| explicit PlatformFontMac(NativeFont native_font); |
| PlatformFontMac(const std::wstring& font_name, |
| int font_size); |
| |
| // Overridden from PlatformFont: |
| virtual Font DeriveFont(int size_delta, int style) const; |
| virtual int GetHeight() const; |
| virtual int GetBaseline() const; |
| virtual int GetAverageCharacterWidth() const; |
| virtual int GetStringWidth(const std::wstring& text) const; |
| virtual int GetExpectedTextWidth(int length) const; |
| virtual int GetStyle() const; |
| virtual const std::wstring& GetFontName() const; |
| virtual int GetFontSize() const; |
| virtual NativeFont GetNativeFont() const; |
| |
| private: |
| PlatformFontMac(const std::wstring& font_name, int font_size, int style); |
| virtual ~PlatformFontMac() {} |
| |
| // Initialize the object with the specified parameters. |
| void InitWithNameSizeAndStyle(const std::wstring& font_name, |
| int font_size, |
| int style); |
| |
| // Calculate and cache the font metrics. |
| void CalculateMetrics(); |
| |
| std::wstring font_name_; |
| int font_size_; |
| int style_; |
| |
| // Cached metrics, generated at construction |
| int height_; |
| int ascent_; |
| int average_width_; |
| }; |
| |
| } // namespace gfx |
| |
| #endif // GFX_PLATFORM_FONT_MAC_ |