Home | History | Annotate | Download | only in gfx
      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_
     60