Index: gfx/platform_font.h |
=================================================================== |
--- gfx/platform_font.h (revision 0) |
+++ gfx/platform_font.h (revision 0) |
@@ -0,0 +1,78 @@ |
+// 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_ |
+#define GFX_PLATFORM_FONT_ |
+#pragma once |
+ |
+#include <string> |
+ |
+#include "base/ref_counted.h" |
+#include "gfx/native_widget_types.h" |
+ |
+namespace gfx { |
+ |
+class Font; |
+ |
+class PlatformFont : public base::RefCounted<PlatformFont> { |
+ public: |
+ // Create an appropriate PlatformFont implementation. |
+ static PlatformFont* CreateDefault(); |
+ static PlatformFont* CreateFromFont(const Font& other); |
+ static PlatformFont* CreateFromNativeFont(NativeFont native_font); |
+ static PlatformFont* CreateFromNameAndSize(const std::wstring& font_name, |
+ int font_size); |
+ |
+ // Returns a new Font derived from the existing font. |
+ // size_delta is the size to add to the current font. See the single |
+ // argument version of this method for an example. |
+ // The style parameter specifies the new style for the font, and is a |
+ // bitmask of the values: BOLD, ITALIC and UNDERLINED. |
+ virtual Font DeriveFont(int size_delta, int style) const = 0; |
+ |
+ // Returns the number of vertical pixels needed to display characters from |
+ // the specified font. This may include some leading, i.e. height may be |
+ // greater than just ascent + descent. Specifically, the Windows and Mac |
+ // implementations include leading and the Linux one does not. This may |
+ // need to be revisited in the future. |
+ virtual int GetHeight() const = 0; |
+ |
+ // Returns the baseline, or ascent, of the font. |
+ virtual int GetBaseline() const = 0; |
+ |
+ // Returns the average character width for the font. |
+ virtual int GetAverageCharacterWidth() const = 0; |
+ |
+ // Returns the number of horizontal pixels needed to display the specified |
+ // string. |
+ virtual int GetStringWidth(const std::wstring& text) const = 0; |
+ |
+ // Returns the expected number of horizontal pixels needed to display the |
+ // specified length of characters. Call GetStringWidth() to retrieve the |
+ // actual number. |
+ virtual int GetExpectedTextWidth(int length) const = 0; |
+ |
+ // Returns the style of the font. |
+ virtual int GetStyle() const = 0; |
+ |
+ // Returns the font name. |
+ virtual const std::wstring& GetFontName() const = 0; |
+ |
+ // Returns the font size in pixels. |
+ virtual int GetFontSize() const = 0; |
+ |
+ // Returns the native font handle. |
+ virtual NativeFont GetNativeFont() const = 0; |
+ |
+ protected: |
+ virtual ~PlatformFont() {} |
+ |
+ private: |
+ friend class base::RefCounted<PlatformFont>; |
+}; |
+ |
+} // namespace gfx |
+ |
+#endif // GFX_PLATFORM_FONT_ |
+ |