| OLD | NEW |
| 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_VIEWS_CONTROLS_LABEL_H_ | 5 #ifndef UI_VIEWS_CONTROLS_LABEL_H_ |
| 6 #define UI_VIEWS_CONTROLS_LABEL_H_ | 6 #define UI_VIEWS_CONTROLS_LABEL_H_ |
| 7 | 7 |
| 8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
| 9 #include "base/gtest_prod_util.h" | 9 #include "base/gtest_prod_util.h" |
| 10 #include "base/memory/scoped_vector.h" | 10 #include "base/memory/scoped_vector.h" |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 128 void Layout() override; | 128 void Layout() override; |
| 129 const char* GetClassName() const override; | 129 const char* GetClassName() const override; |
| 130 View* GetTooltipHandlerForPoint(const gfx::Point& point) override; | 130 View* GetTooltipHandlerForPoint(const gfx::Point& point) override; |
| 131 bool CanProcessEventsWithinSubtree() const override; | 131 bool CanProcessEventsWithinSubtree() const override; |
| 132 void GetAccessibleState(ui::AXViewState* state) override; | 132 void GetAccessibleState(ui::AXViewState* state) override; |
| 133 bool GetTooltipText(const gfx::Point& p, | 133 bool GetTooltipText(const gfx::Point& p, |
| 134 base::string16* tooltip) const override; | 134 base::string16* tooltip) const override; |
| 135 void OnEnabledChanged() override; | 135 void OnEnabledChanged() override; |
| 136 | 136 |
| 137 protected: | 137 protected: |
| 138 // Create a single RenderText instance to actually be painted. |
| 139 virtual scoped_ptr<gfx::RenderText> CreateRenderText( |
| 140 const base::string16& text, |
| 141 gfx::HorizontalAlignment alignment, |
| 142 gfx::DirectionalityMode directionality, |
| 143 gfx::ElideBehavior elide_behavior); |
| 144 |
| 138 void PaintText(gfx::Canvas* canvas); | 145 void PaintText(gfx::Canvas* canvas); |
| 139 | 146 |
| 140 SkColor disabled_color() const { return actual_disabled_color_; } | 147 SkColor disabled_color() const { return actual_disabled_color_; } |
| 141 | 148 |
| 142 // View: | 149 // View: |
| 143 void OnBoundsChanged(const gfx::Rect& previous_bounds) override; | 150 void OnBoundsChanged(const gfx::Rect& previous_bounds) override; |
| 144 void VisibilityChanged(View* starting_from, bool is_visible) override; | 151 void VisibilityChanged(View* starting_from, bool is_visible) override; |
| 145 void OnPaint(gfx::Canvas* canvas) override; | 152 void OnPaint(gfx::Canvas* canvas) override; |
| 146 void OnDeviceScaleFactorChanged(float device_scale_factor) override; | 153 void OnDeviceScaleFactorChanged(float device_scale_factor) override; |
| 147 void OnNativeThemeChanged(const ui::NativeTheme* theme) override; | 154 void OnNativeThemeChanged(const ui::NativeTheme* theme) override; |
| 148 | 155 |
| 149 private: | 156 private: |
| 150 FRIEND_TEST_ALL_PREFIXES(LabelTest, ResetRenderTextData); | 157 FRIEND_TEST_ALL_PREFIXES(LabelTest, ResetRenderTextData); |
| 151 FRIEND_TEST_ALL_PREFIXES(LabelTest, MultilineSupportedRenderText); | 158 FRIEND_TEST_ALL_PREFIXES(LabelTest, MultilineSupportedRenderText); |
| 152 FRIEND_TEST_ALL_PREFIXES(LabelTest, TextChangeWithoutLayout); | 159 FRIEND_TEST_ALL_PREFIXES(LabelTest, TextChangeWithoutLayout); |
| 153 FRIEND_TEST_ALL_PREFIXES(LabelFocusTest, FocusBounds); | 160 FRIEND_TEST_ALL_PREFIXES(LabelFocusTest, FocusBounds); |
| 154 FRIEND_TEST_ALL_PREFIXES(LabelFocusTest, EmptyLabel); | 161 FRIEND_TEST_ALL_PREFIXES(LabelFocusTest, EmptyLabel); |
| 155 | 162 |
| 156 void Init(const base::string16& text, const gfx::FontList& font_list); | 163 void Init(const base::string16& text, const gfx::FontList& font_list); |
| 157 | 164 |
| 158 void ResetLayout(); | 165 void ResetLayout(); |
| 159 | 166 |
| 160 // Create a single RenderText instance to actually be painted. | |
| 161 scoped_ptr<gfx::RenderText> CreateRenderText( | |
| 162 const base::string16& text, | |
| 163 gfx::HorizontalAlignment alignment, | |
| 164 gfx::DirectionalityMode directionality, | |
| 165 gfx::ElideBehavior elide_behavior); | |
| 166 | |
| 167 // Set up |lines_| to actually be painted. | 167 // Set up |lines_| to actually be painted. |
| 168 void MaybeBuildRenderTextLines(); | 168 void MaybeBuildRenderTextLines(); |
| 169 | 169 |
| 170 gfx::Rect GetFocusBounds(); | 170 gfx::Rect GetFocusBounds(); |
| 171 | 171 |
| 172 // Get the text broken into lines as needed to fit the given |width|. | 172 // Get the text broken into lines as needed to fit the given |width|. |
| 173 std::vector<base::string16> GetLinesForWidth(int width) const; | 173 std::vector<base::string16> GetLinesForWidth(int width) const; |
| 174 | 174 |
| 175 // Get the text size for the current layout. | 175 // Get the text size for the current layout. |
| 176 gfx::Size GetTextSize() const; | 176 gfx::Size GetTextSize() const; |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 215 // TODO(vadimt): Remove is_first_paint_text_ before crbug.com/431326 is | 215 // TODO(vadimt): Remove is_first_paint_text_ before crbug.com/431326 is |
| 216 // closed. | 216 // closed. |
| 217 bool is_first_paint_text_; | 217 bool is_first_paint_text_; |
| 218 | 218 |
| 219 DISALLOW_COPY_AND_ASSIGN(Label); | 219 DISALLOW_COPY_AND_ASSIGN(Label); |
| 220 }; | 220 }; |
| 221 | 221 |
| 222 } // namespace views | 222 } // namespace views |
| 223 | 223 |
| 224 #endif // UI_VIEWS_CONTROLS_LABEL_H_ | 224 #endif // UI_VIEWS_CONTROLS_LABEL_H_ |
| OLD | NEW |