ef967afef7aade92a33e480a273b6b37b465fdb5
[platform/framework/web/crosswalk.git] / src / ui / views / examples / label_example.h
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
3 // found in the LICENSE file.
4
5 #ifndef UI_VIEWS_EXAMPLES_LABEL_EXAMPLE_H_
6 #define UI_VIEWS_EXAMPLES_LABEL_EXAMPLE_H_
7
8 #include "base/macros.h"
9 #include "ui/views/controls/button/button.h"
10 #include "ui/views/controls/combobox/combobox_listener.h"
11 #include "ui/views/controls/textfield/textfield_controller.h"
12 #include "ui/views/examples/example_base.h"
13
14 namespace views {
15
16 class Checkbox;
17 class GridLayout;
18 class Label;
19
20 namespace examples {
21
22 class ExampleComboboxModel;
23
24 class VIEWS_EXAMPLES_EXPORT LabelExample : public ExampleBase,
25                                            public ButtonListener,
26                                            public ComboboxListener,
27                                            public TextfieldController {
28  public:
29   LabelExample();
30   ~LabelExample() override;
31
32   // ExampleBase:
33   void CreateExampleView(View* container) override;
34
35   // ButtonListener:
36   void ButtonPressed(Button* button, const ui::Event& event) override;
37
38   // ComboboxListener:
39   void OnPerformAction(Combobox* combobox) override;
40
41   // TextfieldController:
42   void ContentsChanged(Textfield* sender,
43                        const base::string16& new_contents) override;
44
45  private:
46    // Add a customizable label and various controls to modify its presentation.
47    void AddCustomLabel(View* container);
48
49    // Creates and adds a combobox to the layout.
50    Combobox* AddCombobox(GridLayout* layout,
51                          const char* name,
52                          const char** strings,
53                          int count);
54
55   Textfield* textfield_;
56   Combobox* alignment_;
57   Combobox* elide_behavior_;
58   ScopedVector<ExampleComboboxModel> example_combobox_models_;
59   Checkbox* multiline_;
60   Checkbox* shadows_;
61   Label* custom_label_;
62
63   DISALLOW_COPY_AND_ASSIGN(LabelExample);
64 };
65
66 }  // namespace examples
67 }  // namespace views
68
69 #endif  // UI_VIEWS_EXAMPLES_LABEL_EXAMPLE_H_