Home | History | Annotate | Download | only in examples
      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   virtual ~LabelExample();
     31 
     32   // ExampleBase:
     33   virtual void CreateExampleView(View* container) OVERRIDE;
     34 
     35   // ButtonListener:
     36   virtual void ButtonPressed(Button* button, const ui::Event& event) OVERRIDE;
     37 
     38   // ComboboxListener:
     39   virtual void OnPerformAction(Combobox* combobox) OVERRIDE;
     40 
     41   // TextfieldController:
     42   virtual 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_
     70