Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / ui / gfx / platform_font_ios.h
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.
4
5 #ifndef UI_GFX_PLATFORM_FONT_IOS_H_
6 #define UI_GFX_PLATFORM_FONT_IOS_H_
7
8 #include "ui/gfx/platform_font.h"
9
10 namespace gfx {
11
12 class PlatformFontIOS : public PlatformFont {
13  public:
14   PlatformFontIOS();
15   explicit PlatformFontIOS(NativeFont native_font);
16   PlatformFontIOS(const std::string& font_name,
17                   int font_size);
18
19   // Overridden from PlatformFont:
20   virtual Font DeriveFont(int size_delta, int style) const OVERRIDE;
21   virtual int GetHeight() const OVERRIDE;
22   virtual int GetBaseline() const OVERRIDE;
23   virtual int GetCapHeight() const OVERRIDE;
24   virtual int GetExpectedTextWidth(int length) const OVERRIDE;
25   virtual int GetStyle() const OVERRIDE;
26   virtual std::string GetFontName() const OVERRIDE;
27   virtual std::string GetActualFontNameForTesting() const OVERRIDE;
28   virtual int GetFontSize() const OVERRIDE;
29   virtual const FontRenderParams& GetFontRenderParams() const OVERRIDE;
30   virtual NativeFont GetNativeFont() const OVERRIDE;
31
32  private:
33   PlatformFontIOS(const std::string& font_name, int font_size, int style);
34   virtual ~PlatformFontIOS() {}
35
36   // Initialize the object with the specified parameters.
37   void InitWithNameSizeAndStyle(const std::string& font_name,
38                                 int font_size,
39                                 int style);
40
41   // Calculate and cache the font metrics.
42   void CalculateMetrics();
43
44   std::string font_name_;
45   int font_size_;
46   int style_;
47
48   // Cached metrics, generated at construction.
49   int height_;
50   int ascent_;
51   int cap_height_;
52   int average_width_;
53
54   DISALLOW_COPY_AND_ASSIGN(PlatformFontIOS);
55 };
56
57 }  // namespace gfx
58
59 #endif  // UI_GFX_PLATFORM_FONT_IOS_H_