| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef APP_GFX_FONT_H_ | 5 #ifndef APP_GFX_FONT_H_ |
| 6 #define APP_GFX_FONT_H_ | 6 #define APP_GFX_FONT_H_ |
| 7 | 7 |
| 8 #include "build/build_config.h" | 8 #include "build/build_config.h" |
| 9 | 9 |
| 10 #include <string> | 10 #include <string> |
| 11 | 11 |
| 12 #if defined(OS_WIN) | 12 #if defined(OS_WIN) |
| 13 typedef struct HFONT__* HFONT; | 13 typedef struct HFONT__* HFONT; |
| 14 #elif defined(OS_LINUX) | 14 #elif defined(USE_X11) |
| 15 #include "third_party/skia/include/core/SkRefCnt.h" | 15 #include "third_party/skia/include/core/SkRefCnt.h" |
| 16 class SkPaint; | 16 class SkPaint; |
| 17 class SkTypeface; | 17 class SkTypeface; |
| 18 #endif | 18 #endif |
| 19 | 19 |
| 20 #if defined(OS_WIN) | 20 #if defined(OS_WIN) |
| 21 typedef struct HFONT__* NativeFont; | 21 typedef struct HFONT__* NativeFont; |
| 22 #elif defined(OS_MACOSX) | 22 #elif defined(OS_MACOSX) |
| 23 #ifdef __OBJC__ | 23 #ifdef __OBJC__ |
| 24 @class NSFont; | 24 @class NSFont; |
| 25 #else | 25 #else |
| 26 class NSFont; | 26 class NSFont; |
| 27 #endif | 27 #endif |
| 28 typedef NSFont* NativeFont; | 28 typedef NSFont* NativeFont; |
| 29 #elif defined(OS_LINUX) | 29 #elif defined(USE_X11) |
| 30 typedef struct _PangoFontDescription PangoFontDescription; | 30 typedef struct _PangoFontDescription PangoFontDescription; |
| 31 class SkTypeface; | 31 class SkTypeface; |
| 32 typedef SkTypeface* NativeFont; | 32 typedef SkTypeface* NativeFont; |
| 33 #else // null port. | 33 #else // null port. |
| 34 #error No known OS defined | 34 #error No known OS defined |
| 35 #endif | 35 #endif |
| 36 | 36 |
| 37 #include "base/basictypes.h" | 37 #include "base/basictypes.h" |
| 38 #include "base/ref_counted.h" | 38 #include "base/ref_counted.h" |
| 39 #include "base/scoped_ptr.h" | 39 #include "base/scoped_ptr.h" |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 117 HFONT hfont() const { return font_ref_->hfont(); } | 117 HFONT hfont() const { return font_ref_->hfont(); } |
| 118 | 118 |
| 119 // Dialog units to pixels conversion. | 119 // Dialog units to pixels conversion. |
| 120 // See http://support.microsoft.com/kb/145994 for details. | 120 // See http://support.microsoft.com/kb/145994 for details. |
| 121 int horizontal_dlus_to_pixels(int dlus) { | 121 int horizontal_dlus_to_pixels(int dlus) { |
| 122 return dlus * font_ref_->dlu_base_x() / 4; | 122 return dlus * font_ref_->dlu_base_x() / 4; |
| 123 } | 123 } |
| 124 int vertical_dlus_to_pixels(int dlus) { | 124 int vertical_dlus_to_pixels(int dlus) { |
| 125 return dlus * font_ref_->height() / 8; | 125 return dlus * font_ref_->height() / 8; |
| 126 } | 126 } |
| 127 #elif defined(OS_LINUX) | 127 #elif defined(USE_X11) |
| 128 static Font CreateFont(PangoFontDescription* desc); | 128 static Font CreateFont(PangoFontDescription* desc); |
| 129 // We need a copy constructor and assignment operator to deal with | 129 // We need a copy constructor and assignment operator to deal with |
| 130 // the Skia reference counting. | 130 // the Skia reference counting. |
| 131 Font(const Font& other); | 131 Font(const Font& other); |
| 132 Font& operator=(const Font& other); | 132 Font& operator=(const Font& other); |
| 133 // Setup a Skia context to use the current typeface | 133 // Setup a Skia context to use the current typeface |
| 134 void PaintSetup(SkPaint* paint) const; | 134 void PaintSetup(SkPaint* paint) const; |
| 135 | 135 |
| 136 // Converts |gfx_font| to a new pango font. Free the returned font with | 136 // Converts |gfx_font| to a new pango font. Free the returned font with |
| 137 // pango_font_description_free(). | 137 // pango_font_description_free(). |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 188 // Creates and returns a new HFONTRef from the specified HFONT. | 188 // Creates and returns a new HFONTRef from the specified HFONT. |
| 189 static HFontRef* CreateHFontRef(HFONT font); | 189 static HFontRef* CreateHFontRef(HFONT font); |
| 190 | 190 |
| 191 explicit Font(HFontRef* font_ref) : font_ref_(font_ref) { } | 191 explicit Font(HFontRef* font_ref) : font_ref_(font_ref) { } |
| 192 | 192 |
| 193 // Reference to the base font all fonts are derived from. | 193 // Reference to the base font all fonts are derived from. |
| 194 static HFontRef* base_font_ref_; | 194 static HFontRef* base_font_ref_; |
| 195 | 195 |
| 196 // Indirect reference to the HFontRef, which references the underlying HFONT. | 196 // Indirect reference to the HFontRef, which references the underlying HFONT. |
| 197 scoped_refptr<HFontRef> font_ref_; | 197 scoped_refptr<HFontRef> font_ref_; |
| 198 #elif defined(OS_LINUX) | 198 #elif defined(USE_X11) |
| 199 explicit Font(SkTypeface* typeface, const std::wstring& name, | 199 explicit Font(SkTypeface* typeface, const std::wstring& name, |
| 200 int size, int style); | 200 int size, int style); |
| 201 // Calculate and cache the font metrics. | 201 // Calculate and cache the font metrics. |
| 202 void calculateMetrics(); | 202 void calculateMetrics(); |
| 203 // Make |this| a copy of |other|. | 203 // Make |this| a copy of |other|. |
| 204 void CopyFont(const Font& other); | 204 void CopyFont(const Font& other); |
| 205 | 205 |
| 206 // The default font, used for the default constructor. | 206 // The default font, used for the default constructor. |
| 207 static Font* default_font_; | 207 static Font* default_font_; |
| 208 | 208 |
| (...skipping 27 matching lines...) Expand all Loading... |
| 236 int height_; | 236 int height_; |
| 237 int ascent_; | 237 int ascent_; |
| 238 int avg_width_; | 238 int avg_width_; |
| 239 #endif | 239 #endif |
| 240 | 240 |
| 241 }; | 241 }; |
| 242 | 242 |
| 243 } // namespace gfx | 243 } // namespace gfx |
| 244 | 244 |
| 245 #endif // APP_GFX_FONT_H_ | 245 #endif // APP_GFX_FONT_H_ |
| OLD | NEW |