diff options
author | sail@chromium.org <sail@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-02 23:03:07 +0000 |
---|---|---|
committer | sail@chromium.org <sail@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-02 23:03:07 +0000 |
commit | 267c03d478d9c83ef8c37999f3abb1cd822881ff (patch) | |
tree | 6286c650d0ec58cdee9c7482fda929252bd985b5 /ui/gfx/platform_font.h | |
parent | 7c085463177741a3844215675577bba3de1be836 (diff) | |
download | chromium_src-267c03d478d9c83ef8c37999f3abb1cd822881ff.zip chromium_src-267c03d478d9c83ef8c37999f3abb1cd822881ff.tar.gz chromium_src-267c03d478d9c83ef8c37999f3abb1cd822881ff.tar.bz2 |
Move src/gfx/ to src/ui/gfx
To reduce the size of this change I've left stub header files in src/gfx/. Once all includes have been updated I'll delete the stub files.
BUG=71063
TEST=Still doing test builds.
Review URL: http://codereview.chromium.org/6246027
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73530 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/gfx/platform_font.h')
-rw-r--r-- | ui/gfx/platform_font.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/ui/gfx/platform_font.h b/ui/gfx/platform_font.h new file mode 100644 index 0000000..32cba2c --- /dev/null +++ b/ui/gfx/platform_font.h @@ -0,0 +1,79 @@ +// 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 UI_GFX_PLATFORM_FONT_ +#define UI_GFX_PLATFORM_FONT_ +#pragma once + +#include <string> + +#include "base/ref_counted.h" +#include "base/string16.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 string16& 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 string16& 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 string16 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 // UI_GFX_PLATFORM_FONT_ + |