Encode method and error message inside LevelDB::Status message
[chromium-blink-merge.git] / ui / gfx / platform_font_mac.h
blob42bbd9a96d79e0ed3242d417c39a2c8e1d6f810f
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef UI_GFX_PLATFORM_FONT_MAC_H_
6 #define UI_GFX_PLATFORM_FONT_MAC_H_
8 #include "base/compiler_specific.h"
9 #include "ui/gfx/platform_font.h"
11 namespace gfx {
13 class PlatformFontMac : public PlatformFont {
14 public:
15 PlatformFontMac();
16 explicit PlatformFontMac(NativeFont native_font);
17 PlatformFontMac(const std::string& font_name,
18 int font_size);
20 // Overridden from PlatformFont:
21 virtual Font DeriveFont(int size_delta, int style) const OVERRIDE;
22 virtual int GetHeight() const OVERRIDE;
23 virtual int GetBaseline() const OVERRIDE;
24 virtual int GetAverageCharacterWidth() const OVERRIDE;
25 virtual int GetStringWidth(const string16& text) const OVERRIDE;
26 virtual int GetExpectedTextWidth(int length) const OVERRIDE;
27 virtual int GetStyle() const OVERRIDE;
28 virtual std::string GetFontName() const OVERRIDE;
29 virtual int GetFontSize() const OVERRIDE;
30 virtual NativeFont GetNativeFont() const OVERRIDE;
32 private:
33 PlatformFontMac(const std::string& font_name, int font_size, int style);
34 virtual ~PlatformFontMac() {}
36 // Initialize the object with the specified parameters.
37 void InitWithNameSizeAndStyle(const std::string& font_name,
38 int font_size,
39 int style);
41 // Calculate and cache the font metrics.
42 void CalculateMetrics();
44 std::string font_name_;
45 int font_size_;
46 int style_;
48 // Cached metrics, generated at construction.
49 int height_;
50 int ascent_;
51 int average_width_;
53 DISALLOW_COPY_AND_ASSIGN(PlatformFontMac);
56 } // namespace gfx
58 #endif // UI_GFX_PLATFORM_FONT_MAC_H_