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 VIEWS_CONTROLS_LABEL_H_ | 5 #ifndef VIEWS_CONTROLS_LABEL_H_ |
6 #define VIEWS_CONTROLS_LABEL_H_ | 6 #define VIEWS_CONTROLS_LABEL_H_ |
7 | 7 |
8 #include "app/gfx/chrome_font.h" | 8 #include "app/gfx/chrome_font.h" |
9 #include "googleurl/src/gurl.h" | 9 #include "googleurl/src/gurl.h" |
10 #include "third_party/skia/include/core/SkColor.h" | 10 #include "third_party/skia/include/core/SkColor.h" |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 | 44 |
45 // The view class name. | 45 // The view class name. |
46 static const char kViewClassName[]; | 46 static const char kViewClassName[]; |
47 | 47 |
48 // Create a new label with a default font and empty value | 48 // Create a new label with a default font and empty value |
49 Label(); | 49 Label(); |
50 | 50 |
51 // Create a new label with a default font | 51 // Create a new label with a default font |
52 explicit Label(const std::wstring& text); | 52 explicit Label(const std::wstring& text); |
53 | 53 |
54 Label(const std::wstring& text, const ChromeFont& font); | 54 Label(const std::wstring& text, const gfx::Font& font); |
55 | 55 |
56 virtual ~Label(); | 56 virtual ~Label(); |
57 | 57 |
58 // Overridden to compute the size required to display this label | 58 // Overridden to compute the size required to display this label |
59 virtual gfx::Size GetPreferredSize(); | 59 virtual gfx::Size GetPreferredSize(); |
60 | 60 |
61 // Return the height necessary to display this label with the provided width. | 61 // Return the height necessary to display this label with the provided width. |
62 // This method is used to layout multi-line labels. It is equivalent to | 62 // This method is used to layout multi-line labels. It is equivalent to |
63 // GetPreferredSize().height() if the receiver is not multi-line | 63 // GetPreferredSize().height() if the receiver is not multi-line |
64 virtual int GetHeightForWidth(int w); | 64 virtual int GetHeightForWidth(int w); |
65 | 65 |
66 // Returns views/Label. | 66 // Returns views/Label. |
67 virtual std::string GetClassName() const; | 67 virtual std::string GetClassName() const; |
68 | 68 |
69 // Overridden to paint | 69 // Overridden to paint |
70 virtual void Paint(ChromeCanvas* canvas); | 70 virtual void Paint(ChromeCanvas* canvas); |
71 | 71 |
72 // If the mouse is over the label, and a mouse over background has been | 72 // If the mouse is over the label, and a mouse over background has been |
73 // specified, its used. Otherwise super's implementation is invoked | 73 // specified, its used. Otherwise super's implementation is invoked |
74 virtual void PaintBackground(ChromeCanvas* canvas); | 74 virtual void PaintBackground(ChromeCanvas* canvas); |
75 | 75 |
76 // Set the font. | 76 // Set the font. |
77 void SetFont(const ChromeFont& font); | 77 void SetFont(const gfx::Font& font); |
78 | 78 |
79 // Return the font used by this label | 79 // Return the font used by this label |
80 ChromeFont GetFont() const; | 80 gfx::Font GetFont() const; |
81 | 81 |
82 // Set the label text. | 82 // Set the label text. |
83 void SetText(const std::wstring& text); | 83 void SetText(const std::wstring& text); |
84 | 84 |
85 // Return the label text. | 85 // Return the label text. |
86 const std::wstring GetText() const; | 86 const std::wstring GetText() const; |
87 | 87 |
88 // Set URL Value - text_ is set to spec(). | 88 // Set URL Value - text_ is set to spec(). |
89 void SetURL(const GURL& url); | 89 void SetURL(const GURL& url); |
90 | 90 |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
185 void set_has_focus_border(bool has_focus_border) { | 185 void set_has_focus_border(bool has_focus_border) { |
186 has_focus_border_ = has_focus_border; | 186 has_focus_border_ = has_focus_border; |
187 } | 187 } |
188 | 188 |
189 private: | 189 private: |
190 // These tests call CalculateDrawStringParams in order to verify the | 190 // These tests call CalculateDrawStringParams in order to verify the |
191 // calculations done for drawing text. | 191 // calculations done for drawing text. |
192 FRIEND_TEST(LabelTest, DrawSingleLineString); | 192 FRIEND_TEST(LabelTest, DrawSingleLineString); |
193 FRIEND_TEST(LabelTest, DrawMultiLineString); | 193 FRIEND_TEST(LabelTest, DrawMultiLineString); |
194 | 194 |
195 static ChromeFont GetDefaultFont(); | 195 static gfx::Font GetDefaultFont(); |
196 | 196 |
197 // Returns parameters to be used for the DrawString call. | 197 // Returns parameters to be used for the DrawString call. |
198 void CalculateDrawStringParams(std::wstring* paint_text, | 198 void CalculateDrawStringParams(std::wstring* paint_text, |
199 gfx::Rect* text_bounds, | 199 gfx::Rect* text_bounds, |
200 int* flags); | 200 int* flags); |
201 | 201 |
202 // If the mouse is over the text, SetContainsMouse(true) is invoked, otherwise | 202 // If the mouse is over the text, SetContainsMouse(true) is invoked, otherwise |
203 // SetContainsMouse(false) is invoked. | 203 // SetContainsMouse(false) is invoked. |
204 void UpdateContainsMouse(const MouseEvent& event); | 204 void UpdateContainsMouse(const MouseEvent& event); |
205 | 205 |
206 // Updates whether the mouse is contained in the Label. If the new value | 206 // Updates whether the mouse is contained in the Label. If the new value |
207 // differs from the current value, and a mouse over background is specified, | 207 // differs from the current value, and a mouse over background is specified, |
208 // SchedulePaint is invoked. | 208 // SchedulePaint is invoked. |
209 void SetContainsMouse(bool contains_mouse); | 209 void SetContainsMouse(bool contains_mouse); |
210 | 210 |
211 // Returns where the text is drawn, in the receivers coordinate system. | 211 // Returns where the text is drawn, in the receivers coordinate system. |
212 gfx::Rect GetTextBounds(); | 212 gfx::Rect GetTextBounds(); |
213 | 213 |
214 int ComputeMultiLineFlags(); | 214 int ComputeMultiLineFlags(); |
215 gfx::Size GetTextSize(); | 215 gfx::Size GetTextSize(); |
216 void Init(const std::wstring& text, const ChromeFont& font); | 216 void Init(const std::wstring& text, const gfx::Font& font); |
217 std::wstring text_; | 217 std::wstring text_; |
218 GURL url_; | 218 GURL url_; |
219 ChromeFont font_; | 219 gfx::Font font_; |
220 SkColor color_; | 220 SkColor color_; |
221 gfx::Size text_size_; | 221 gfx::Size text_size_; |
222 bool text_size_valid_; | 222 bool text_size_valid_; |
223 bool is_multi_line_; | 223 bool is_multi_line_; |
224 bool allow_character_break_; | 224 bool allow_character_break_; |
225 bool url_set_; | 225 bool url_set_; |
226 Alignment horiz_alignment_; | 226 Alignment horiz_alignment_; |
227 std::wstring tooltip_text_; | 227 std::wstring tooltip_text_; |
228 // Whether the mouse is over this label. | 228 // Whether the mouse is over this label. |
229 bool contains_mouse_; | 229 bool contains_mouse_; |
(...skipping 11 matching lines...) Expand all Loading... |
241 // allows this view to reserve space for a focus border that it otherwise | 241 // allows this view to reserve space for a focus border that it otherwise |
242 // might not have because it is not itself focusable. | 242 // might not have because it is not itself focusable. |
243 bool has_focus_border_; | 243 bool has_focus_border_; |
244 | 244 |
245 DISALLOW_COPY_AND_ASSIGN(Label); | 245 DISALLOW_COPY_AND_ASSIGN(Label); |
246 }; | 246 }; |
247 | 247 |
248 } // namespace views | 248 } // namespace views |
249 | 249 |
250 #endif // VIEWS_CONTROLS_LABEL_H_ | 250 #endif // VIEWS_CONTROLS_LABEL_H_ |
OLD | NEW |