Home | History | Annotate | Download | only in examples
      1 // Copyright (c) 2011 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_WIDGET_EXAMPLE_H_
      6 #define UI_VIEWS_EXAMPLES_WIDGET_EXAMPLE_H_
      7 
      8 #include <string>
      9 
     10 #include "base/basictypes.h"
     11 #include "base/compiler_specific.h"
     12 #include "ui/views/controls/button/button.h"
     13 #include "ui/views/examples/example_base.h"
     14 #include "ui/views/widget/widget.h"
     15 
     16 namespace views {
     17 namespace examples {
     18 
     19 // WidgetExample demonstrates how to create a popup widget.
     20 class WidgetExample : public ExampleBase, public ButtonListener {
     21  public:
     22   WidgetExample();
     23   virtual ~WidgetExample();
     24 
     25   // Overridden from ExampleBase:
     26   virtual void CreateExampleView(View* container) OVERRIDE;
     27 
     28  private:
     29   // Button tags used to identify various commands.
     30   enum Command {
     31     POPUP,        // Show a popup widget.
     32     DIALOG,       // Show a dialog widget.
     33     CHILD,        // Show a child widget.
     34     CLOSE_WIDGET, // Close the sender button's widget.
     35   };
     36 
     37   // Construct a button with the specified |label| and |tag| in |container|.
     38   void BuildButton(View* container, const std::string& label, int tag);
     39 
     40   // Construct a Widget for |sender|, initialize with |params|, and call Show().
     41   void ShowWidget(View* sender, Widget::InitParams params);
     42 
     43   // Overridden from ButtonListener:
     44   virtual void ButtonPressed(Button* sender, const ui::Event& event) OVERRIDE;
     45 
     46   DISALLOW_COPY_AND_ASSIGN(WidgetExample);
     47 };
     48 
     49 }  // namespace examples
     50 }  // namespace views
     51 
     52 #endif  // UI_VIEWS_EXAMPLES_WIDGET_EXAMPLE_H_
     53