Add ICU message format support
[chromium-blink-merge.git] / ui / views / examples / label_example.h
blobef967afef7aade92a33e480a273b6b37b465fdb5
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.
5 #ifndef UI_VIEWS_EXAMPLES_LABEL_EXAMPLE_H_
6 #define UI_VIEWS_EXAMPLES_LABEL_EXAMPLE_H_
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"
14 namespace views {
16 class Checkbox;
17 class GridLayout;
18 class Label;
20 namespace examples {
22 class ExampleComboboxModel;
24 class VIEWS_EXAMPLES_EXPORT LabelExample : public ExampleBase,
25 public ButtonListener,
26 public ComboboxListener,
27 public TextfieldController {
28 public:
29 LabelExample();
30 ~LabelExample() override;
32 // ExampleBase:
33 void CreateExampleView(View* container) override;
35 // ButtonListener:
36 void ButtonPressed(Button* button, const ui::Event& event) override;
38 // ComboboxListener:
39 void OnPerformAction(Combobox* combobox) override;
41 // TextfieldController:
42 void ContentsChanged(Textfield* sender,
43 const base::string16& new_contents) override;
45 private:
46 // Add a customizable label and various controls to modify its presentation.
47 void AddCustomLabel(View* container);
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);
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_;
63 DISALLOW_COPY_AND_ASSIGN(LabelExample);
66 } // namespace examples
67 } // namespace views
69 #endif // UI_VIEWS_EXAMPLES_LABEL_EXAMPLE_H_