summaryrefslogtreecommitdiffstats
path: root/ui/views/examples/native_theme_button_example.h
diff options
context:
space:
mode:
authortfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-15 02:56:30 +0000
committertfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-15 02:56:30 +0000
commit75b985094ca3603b5d566227a3dc2d0b62fcf51c (patch)
tree23e30d8df3b4527c80a56fc9eb61cd67c43e5677 /ui/views/examples/native_theme_button_example.h
parente5c49f5cb6e52f3d3f23f6f514421d3247d4c01b (diff)
downloadchromium_src-75b985094ca3603b5d566227a3dc2d0b62fcf51c.zip
chromium_src-75b985094ca3603b5d566227a3dc2d0b62fcf51c.tar.gz
chromium_src-75b985094ca3603b5d566227a3dc2d0b62fcf51c.tar.bz2
views: Move examples/ directory to ui/views/.
BUG=104039 R=ben@chromium.org Review URL: http://codereview.chromium.org/8555013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110023 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/views/examples/native_theme_button_example.h')
-rw-r--r--ui/views/examples/native_theme_button_example.h93
1 files changed, 93 insertions, 0 deletions
diff --git a/ui/views/examples/native_theme_button_example.h b/ui/views/examples/native_theme_button_example.h
new file mode 100644
index 0000000..59f5e97
--- /dev/null
+++ b/ui/views/examples/native_theme_button_example.h
@@ -0,0 +1,93 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef UI_VIEWS_EXAMPLES_NATIVE_THEME_BUTTON_EXAMPLE_H_
+#define UI_VIEWS_EXAMPLES_NATIVE_THEME_BUTTON_EXAMPLE_H_
+#pragma once
+
+#include "base/basictypes.h"
+#include "ui/gfx/native_theme.h"
+#include "ui/views/examples/example_base.h"
+#include "views/controls/button/custom_button.h"
+#include "views/controls/combobox/combobox.h"
+#include "views/native_theme_delegate.h"
+#include "views/native_theme_painter.h"
+
+namespace views {
+class Combobox;
+class NativeThemePainter;
+}
+
+namespace examples {
+
+// A subclass of button to test native theme rendering.
+class ExampleNativeThemeButton : public views::CustomButton,
+ public views::NativeThemeDelegate,
+ public views::Combobox::Listener {
+ public:
+ ExampleNativeThemeButton(views::ButtonListener* listener,
+ views::Combobox* cb_part,
+ views::Combobox* cb_state);
+ virtual ~ExampleNativeThemeButton();
+
+ std::string MessWithState();
+
+ private:
+ // Overridden from View:
+ virtual gfx::Size GetPreferredSize() OVERRIDE;
+ virtual void OnPaintBackground(gfx::Canvas* canvas) OVERRIDE;
+
+ // Overridden from views::Combobox::Listener:
+ virtual void ItemChanged(views::Combobox* combo_box,
+ int prev_index,
+ int new_index) OVERRIDE;
+
+ // Overridden from views::NativeThemePainter::Delegate:
+ virtual gfx::NativeTheme::Part GetThemePart() const OVERRIDE;
+ virtual gfx::Rect GetThemePaintRect() const OVERRIDE;
+ virtual gfx::NativeTheme::State GetThemeState(
+ gfx::NativeTheme::ExtraParams* params) const OVERRIDE;
+ virtual const ui::Animation* GetThemeAnimation() const OVERRIDE;
+ virtual gfx::NativeTheme::State GetBackgroundThemeState(
+ gfx::NativeTheme::ExtraParams* params) const OVERRIDE;
+ virtual gfx::NativeTheme::State GetForegroundThemeState(
+ gfx::NativeTheme::ExtraParams* params) const OVERRIDE;
+
+ void GetExtraParams(gfx::NativeTheme::ExtraParams* params) const;
+
+ scoped_ptr<views::NativeThemePainter> painter_;
+ views::Combobox* cb_part_;
+ views::Combobox* cb_state_;
+ int count_;
+ bool is_checked_;
+ bool is_indeterminate_;
+
+ DISALLOW_COPY_AND_ASSIGN(ExampleNativeThemeButton);
+};
+
+// NativeThemeButtonExample shows how a View can use the NativeThemePainter
+// to paints its background and get a native look.
+class NativeThemeButtonExample : public ExampleBase,
+ public views::ButtonListener {
+ public:
+ explicit NativeThemeButtonExample(ExamplesMain* main);
+ virtual ~NativeThemeButtonExample();
+
+ // Overridden from ExampleBase:
+ virtual void CreateExampleView(views::View* container) OVERRIDE;
+
+ private:
+ // Overridden from views::ButtonListener:
+ virtual void ButtonPressed(views::Button* sender,
+ const views::Event& event) OVERRIDE;
+
+ // The only control in this test.
+ ExampleNativeThemeButton* button_;
+
+ DISALLOW_COPY_AND_ASSIGN(NativeThemeButtonExample);
+};
+
+} // namespace examples
+
+#endif // UI_VIEWS_EXAMPLES_NATIVE_THEME_BUTTON_EXAMPLE_H_