diff options
author | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-24 23:54:35 +0000 |
---|---|---|
committer | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-24 23:54:35 +0000 |
commit | 65fffb56ebe6c8df9448f7a1e3bb6a86234de026 (patch) | |
tree | e374390a3d3fbc20ae2776ce5790131272707443 /views/examples | |
parent | 09733b45d3254d0f270c9ac2f9134dbc69f08304 (diff) | |
download | chromium_src-65fffb56ebe6c8df9448f7a1e3bb6a86234de026.zip chromium_src-65fffb56ebe6c8df9448f7a1e3bb6a86234de026.tar.gz chromium_src-65fffb56ebe6c8df9448f7a1e3bb6a86234de026.tar.bz2 |
Hook up more of the NativeWidgetViews.
- Move NativeWidgetView to its own file.
- Enhances the example to contain a button.
http://crbug.com/83663
TEST=none
Review URL: http://codereview.chromium.org/7065042
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86527 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/examples')
-rw-r--r-- | views/examples/native_widget_views_example.cc | 49 |
1 files changed, 46 insertions, 3 deletions
diff --git a/views/examples/native_widget_views_example.cc b/views/examples/native_widget_views_example.cc index f02b3e1..8aaf68f 100644 --- a/views/examples/native_widget_views_example.cc +++ b/views/examples/native_widget_views_example.cc @@ -4,6 +4,8 @@ #include "views/examples/native_widget_views_example.h" +#include "ui/gfx/canvas.h" +#include "views/controls/button/text_button.h" #include "views/examples/example_base.h" #include "views/view.h" #include "views/widget/widget.h" @@ -11,6 +13,46 @@ namespace examples { +// A ContentView for our example widget. Contains a variety of controls for +// testing NativeWidgetViews event handling. If any part of the Widget's bounds +// are rendered red, something went wrong. +class TestContentView : public views::View, + public views::ButtonListener { + public: + TestContentView() + : click_count_(0), + ALLOW_THIS_IN_INITIALIZER_LIST( + button_(new views::TextButton(this, L"Click me!"))) { + AddChildView(button_); + } + virtual ~TestContentView() { + } + + // Overridden from views::View: + virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE { + SkColor color = click_count_ % 2 == 0 ? SK_ColorGREEN : SK_ColorBLUE; + canvas->FillRectInt(color, 0, 0, width(), height()); + } + virtual void Layout() OVERRIDE { + button_->SetBounds(10, 10, width() - 20, height() - 20); + } + + // Overridden from views::ButtonListener: + virtual void ButtonPressed(views::Button* sender, + const views::Event& event) OVERRIDE { + if (sender == button_) { + ++click_count_; + SchedulePaint(); + } + } + + private: + int click_count_; + views::TextButton* button_; + + DISALLOW_COPY_AND_ASSIGN(TestContentView); +}; + NativeWidgetViewsExample::NativeWidgetViewsExample(ExamplesMain* main) : ExampleBase(main) { } @@ -24,12 +66,13 @@ std::wstring NativeWidgetViewsExample::GetExampleTitle() { void NativeWidgetViewsExample::CreateExampleView(views::View* container) { views::Widget* widget = new views::Widget; - views::NativeWidgetViews* nwv = new views::NativeWidgetViews(widget); + views::NativeWidgetViews* nwv = + new views::NativeWidgetViews(container, widget); views::Widget::InitParams params(views::Widget::InitParams::TYPE_CONTROL); params.native_widget = nwv; widget->Init(params); - container->AddChildView(nwv->GetView()); - widget->SetBounds(gfx::Rect(10, 10, 50, 50)); + widget->SetContentsView(new TestContentView); + widget->SetBounds(gfx::Rect(10, 10, 300, 150)); } } // namespace examples |