Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(488)

Side by Side Diff: ui/gfx/font_list.h

Issue 21868004: Supports FontList::DeriveFontListWithSizeDeltaAndStyle, etc. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixes based on review comments. Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 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 UI_GFX_FONT_LIST_H_ 5 #ifndef UI_GFX_FONT_LIST_H_
6 #define UI_GFX_FONT_LIST_H_ 6 #define UI_GFX_FONT_LIST_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 23 matching lines...) Expand all
34 // and operator= is used in RenderText::SetFontList(). 34 // and operator= is used in RenderText::SetFontList().
35 class UI_EXPORT FontList { 35 class UI_EXPORT FontList {
36 public: 36 public:
37 // Creates a font list with a Font with default name and style. 37 // Creates a font list with a Font with default name and style.
38 FontList(); 38 FontList();
39 39
40 // Creates a font list from a string representing font names, styles, and 40 // Creates a font list from a string representing font names, styles, and
41 // size. 41 // size.
42 explicit FontList(const std::string& font_description_string); 42 explicit FontList(const std::string& font_description_string);
43 43
44 // Creates a font list from font names, styles and size.
45 FontList(const std::vector<std::string>& font_names,
46 int font_style,
47 int font_size);
48
44 // Creates a font list from a Font vector. 49 // Creates a font list from a Font vector.
45 // All fonts in this vector should have the same style and size. 50 // All fonts in this vector should have the same style and size.
46 explicit FontList(const std::vector<Font>& fonts); 51 explicit FontList(const std::vector<Font>& fonts);
47 52
48 // Creates a font list from a Font. 53 // Creates a font list from a Font.
49 explicit FontList(const Font& font); 54 explicit FontList(const Font& font);
50 55
51 ~FontList(); 56 ~FontList();
52 57
53 // Returns a new FontList with the given |font_style| flags. 58 // Returns a new FontList with the given |font_style| flags.
54 FontList DeriveFontList(int font_style) const; 59 FontList DeriveFontList(int font_style) const;
55 60
56 // Returns a new FontList with the same font names and style but with the 61 // Returns a new FontList with the same font names and style but with the
57 // given font |size| in pixels. 62 // given font |size| in pixels.
58 FontList DeriveFontListWithSize(int size) const; 63 FontList DeriveFontListWithSize(int size) const;
59 64
65 // Returns a new FontList with the same font names and style but resized.
66 // |size_delta| is the size in pixels to add to the current font size.
67 FontList DeriveFontListWithSizeDelta(int size_delta) const;
68
69 // Returns a new FontList with the same font names but resized and the given
70 // style. |size_delta| is the size in pixels to add to the current font size.
Alexei Svitkine (slow) 2013/08/07 19:30:44 Nit: Single space between sentences to be consiste
Yuki 2013/08/08 06:37:36 Done.
71 // |font_style| specifies the new style, which is a bitmask of the values:
72 // Font::BOLD, Font::ITALIC and Font::UNDERLINE.
73 FontList DeriveFontListWithSizeDeltaAndStyle(int size_delta,
74 int font_style) const;
75
60 // Returns the height of this font list, which is max(ascent) + max(descent) 76 // Returns the height of this font list, which is max(ascent) + max(descent)
61 // for all the fonts in the font list. 77 // for all the fonts in the font list.
62 int GetHeight() const; 78 int GetHeight() const;
63 79
64 // Returns the baseline of this font list, which is max(baseline) for all the 80 // Returns the baseline of this font list, which is max(baseline) for all the
65 // fonts in the font list. 81 // fonts in the font list.
66 int GetBaseline() const; 82 int GetBaseline() const;
67 83
84 // Returns the number of horizontal pixels needed to display |text|.
85 int GetStringWidth(const base::string16& text) const;
86
87 // Returns the expected number of horizontal pixels needed to display the
88 // specified length of characters. Call GetStringWidth() to retrieve the
89 // actual number.
90 int GetExpectedTextWidth(int length) const;
91
68 // Returns the |gfx::Font::FontStyle| style flags for this font list. 92 // Returns the |gfx::Font::FontStyle| style flags for this font list.
69 int GetFontStyle() const; 93 int GetFontStyle() const;
70 94
71 // Returns a string representing font names, styles, and size. If the FontList 95 // Returns a string representing font names, styles, and size. If the FontList
72 // is initialized by a vector of Font, use the first font's style and size 96 // is initialized by a vector of Font, use the first font's style and size
73 // for the description. 97 // for the description.
74 const std::string& GetFontDescriptionString() const; 98 const std::string& GetFontDescriptionString() const;
75 99
76 // Returns the font size in pixels. 100 // Returns the font size in pixels.
77 int GetFontSize() const; 101 int GetFontSize() const;
78 102
79 // Returns the Font vector. 103 // Returns the Font vector.
80 const std::vector<Font>& GetFonts() const; 104 const std::vector<Font>& GetFonts() const;
81 105
82 // Returns the first font in the list. 106 // Returns the first font in the list.
83 const Font& GetPrimaryFont() const; 107 const Font& GetPrimaryFont() const;
84 108
85 private: 109 private:
110 // Extracts common font height and baseline into |common_height_| and
111 // |common_baseline_|.
112 void CacheCommonFontHeightAndBaseline() const;
113
114 // Extracts font style and size into |font_style_| and |font_size_|.
115 void CacheFontStyleAndSize() const;
116
86 // A vector of Font. If FontList is constructed with font description string, 117 // A vector of Font. If FontList is constructed with font description string,
87 // |fonts_| is not initialized during construction. Instead, it is computed 118 // |fonts_| is not initialized during construction. Instead, it is computed
88 // lazily when user asked to get the font vector. 119 // lazily when user asked to get the font vector.
89 mutable std::vector<Font> fonts_; 120 mutable std::vector<Font> fonts_;
90 121
91 // A string representing font names, styles, and sizes. 122 // A string representing font names, styles, and sizes.
92 // Please refer to the comments before class declaration for details on string 123 // Please refer to the comments before class declaration for details on string
93 // format. 124 // format.
94 // If FontList is constructed with a vector of font, 125 // If FontList is constructed with a vector of font,
95 // |font_description_string_| is not initialized during construction. Instead, 126 // |font_description_string_| is not initialized during construction. Instead,
96 // it is computed lazily when user asked to get the font description string. 127 // it is computed lazily when user asked to get the font description string.
97 mutable std::string font_description_string_; 128 mutable std::string font_description_string_;
98 129
99 // The cached common height and baseline of the fonts in the font list. 130 // The cached common height and baseline of the fonts in the font list.
100 mutable int common_height_; 131 mutable int common_height_;
101 mutable int common_baseline_; 132 mutable int common_baseline_;
133
134 // Cached font style and size.
135 mutable int font_style_;
136 mutable int font_size_;
102 }; 137 };
103 138
104 } // namespace gfx 139 } // namespace gfx
105 140
106 #endif // UI_GFX_FONT_LIST_H_ 141 #endif // UI_GFX_FONT_LIST_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698