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 GetAverageCharacterWidth() const OVERRIDE;
     25   virtual int GetStringWidth(const base::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 std::string GetActualFontNameForTesting() const OVERRIDE;
     30   virtual int GetFontSize() const OVERRIDE;
     31   virtual NativeFont GetNativeFont() const OVERRIDE;
     32 
     33  private:
     34   PlatformFontIOS(const std::string& font_name, int font_size, int style);
     35   virtual ~PlatformFontIOS() {}
     36 
     37   // Initialize the object with the specified parameters.
     38   void InitWithNameSizeAndStyle(const std::string& font_name,
     39                                 int font_size,
     40                                 int style);
     41 
     42   // Calculate and cache the font metrics.
     43   void CalculateMetrics();
     44 
     45   std::string font_name_;
     46   int font_size_;
     47   int style_;
     48 
     49   // Cached metrics, generated at construction.
     50   int height_;
     51   int ascent_;
     52   int cap_height_;
     53   int average_width_;
     54 
     55   DISALLOW_COPY_AND_ASSIGN(PlatformFontIOS);
     56 };
     57 
     58 }  // namespace gfx
     59 
     60 #endif  // UI_GFX_PLATFORM_FONT_IOS_H_
     61