summaryrefslogtreecommitdiffstats
path: root/views/examples
diff options
context:
space:
mode:
authorben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-24 23:54:35 +0000
committerben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-24 23:54:35 +0000
commit65fffb56ebe6c8df9448f7a1e3bb6a86234de026 (patch)
treee374390a3d3fbc20ae2776ce5790131272707443 /views/examples
parent09733b45d3254d0f270c9ac2f9134dbc69f08304 (diff)
downloadchromium_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.cc49
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