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

Side by Side Diff: ui/views/examples/multiline_example.h

Issue 1953133002: [WIP: not for review] Reduce re-layout Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_EXAMPLES_MULTILINE_EXAMPLE_H_ 5 #ifndef UI_VIEWS_EXAMPLES_MULTILINE_EXAMPLE_H_
6 #define UI_VIEWS_EXAMPLES_MULTILINE_EXAMPLE_H_ 6 #define UI_VIEWS_EXAMPLES_MULTILINE_EXAMPLE_H_
7 7
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "ui/views/controls/button/button.h" 9 #include "ui/views/controls/button/button.h"
10 #include "ui/views/controls/textfield/textfield_controller.h" 10 #include "ui/views/controls/textfield/textfield_controller.h"
11 #include "ui/views/examples/example_base.h" 11 #include "ui/views/examples/example_base.h"
12 12
13 namespace gfx {
14 class RenderText;
15 }
16
13 namespace views { 17 namespace views {
14 18
15 class Checkbox; 19 class Checkbox;
16 class Label; 20 class Label;
17 21
18 namespace examples { 22 namespace examples {
19 23
20 // An example that compares the multiline rendering of different controls. 24 // An example that compares the multiline rendering of different controls.
21 class VIEWS_EXAMPLES_EXPORT MultilineExample : public ExampleBase, 25 class VIEWS_EXAMPLES_EXPORT MultilineExample : public ExampleBase,
22 public TextfieldController, 26 public TextfieldController,
23 public ButtonListener { 27 public ButtonListener {
24 public: 28 public:
25 MultilineExample(); 29 explicit MultilineExample(const char* name);
26 ~MultilineExample() override; 30 ~MultilineExample() override;
27 31
28 // ExampleBase: 32 // ExampleBase:
29 void CreateExampleView(View* container) override; 33 void CreateExampleView(View* container) override;
30 34
31 // ButtonListener: 35 // ButtonListener:
32 void ButtonPressed(Button* sender, const ui::Event& event) override; 36 void ButtonPressed(Button* sender, const ui::Event& event) override;
33 37
34 private: 38 protected:
35 class RenderTextView; 39 class RenderTextView;
36 40
41 virtual RenderTextView* CreateTextView();
42
37 // TextfieldController: 43 // TextfieldController:
38 void ContentsChanged(Textfield* sender, 44 void ContentsChanged(Textfield* sender,
39 const base::string16& new_contents) override; 45 const base::string16& new_contents) override;
40 46
47 private:
41 RenderTextView* render_text_view_; 48 RenderTextView* render_text_view_;
42 Label* label_; 49 Label* label_;
43 Textfield* textfield_; 50 Textfield* textfield_;
44 51
45 // Checkbox to enable and disable text rendering in |label_|. 52 // Checkbox to enable and disable text rendering in |label_|.
46 Checkbox* label_checkbox_; 53 Checkbox* label_checkbox_;
47 54
48 DISALLOW_COPY_AND_ASSIGN(MultilineExample); 55 DISALLOW_COPY_AND_ASSIGN(MultilineExample);
49 }; 56 };
50 57
58 // A simple View that hosts a RenderText object.
59 class MultilineExample::RenderTextView : public View {
60 public:
61 RenderTextView();
62 ~RenderTextView() override;
63
64 void SetText(const base::string16& new_contents);
65 gfx::RenderText* render_text() { return render_text_.get(); }
66
67 // View:
68 void OnPaint(gfx::Canvas* canvas) override;
69 gfx::Size GetPreferredSize() const override;
70 int GetHeightForWidth(int w) const override;
71 void OnBoundsChanged(const gfx::Rect& previous_bounds) override;
72
73 private:
74 std::unique_ptr<gfx::RenderText> render_text_;
75
76 DISALLOW_COPY_AND_ASSIGN(RenderTextView);
77 };
78
51 } // namespace examples 79 } // namespace examples
52 } // namespace views 80 } // namespace views
53 81
54 #endif // UI_VIEWS_EXAMPLES_MULTILINE_EXAMPLE_H_ 82 #endif // UI_VIEWS_EXAMPLES_MULTILINE_EXAMPLE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698