summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-08 18:01:40 +0000
committerdmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-08 18:01:40 +0000
commita85a5426165b478e621b799a0e555509fd2d61e3 (patch)
treee15439ed3d2135bc5370160e5f17e649f99cc46e
parentff1e913c6d63f3b5b12b4d0cb0b960bcb2e682af (diff)
downloadchromium_src-a85a5426165b478e621b799a0e555509fd2d61e3.zip
chromium_src-a85a5426165b478e621b799a0e555509fd2d61e3.tar.gz
chromium_src-a85a5426165b478e621b799a0e555509fd2d61e3.tar.bz2
Revert r80952, http://codereview.chromium.org/6771056
BUG=None TEST=None TBR=rogerta Review URL: http://codereview.chromium.org/6823011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80957 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--views/examples/examples_main.cc5
-rw-r--r--views/examples/native_theme_button_example.cc268
-rw-r--r--views/examples/native_theme_button_example.h91
-rw-r--r--views/native_theme_painter.cc54
-rw-r--r--views/native_theme_painter.h79
-rw-r--r--views/views.gyp4
6 files changed, 0 insertions, 501 deletions
diff --git a/views/examples/examples_main.cc b/views/examples/examples_main.cc
index 1326672..0ab98f6 100644
--- a/views/examples/examples_main.cc
+++ b/views/examples/examples_main.cc
@@ -18,7 +18,6 @@
#include "views/examples/combobox_example.h"
#include "views/examples/menu_example.h"
#include "views/examples/message_box_example.h"
-#include "views/examples/native_theme_button_example.h"
#include "views/examples/radio_button_example.h"
#include "views/examples/scroll_view_example.h"
#include "views/examples/single_split_view_example.h"
@@ -102,10 +101,6 @@ void ExamplesMain::Run() {
views::Window* window =
views::Window::CreateChromeWindow(NULL, gfx::Rect(0, 0, 850, 300), this);
- examples::NativeThemeButtonExample native_theme_button_example(this);
- tabbed_pane->AddTab(native_theme_button_example.GetExampleTitle(),
- native_theme_button_example.GetExampleView());
-
examples::TextfieldExample textfield_example(this);
tabbed_pane->AddTab(textfield_example.GetExampleTitle(),
textfield_example.GetExampleView());
diff --git a/views/examples/native_theme_button_example.cc b/views/examples/native_theme_button_example.cc
deleted file mode 100644
index b6bee09..0000000
--- a/views/examples/native_theme_button_example.cc
+++ /dev/null
@@ -1,268 +0,0 @@
-// 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.
-
-#include "views/examples/native_theme_button_example.h"
-
-#include "base/logging.h"
-#include "base/stringprintf.h"
-#include "base/utf_string_conversions.h"
-#include "ui/base/animation/throb_animation.h"
-#include "ui/base/models/combobox_model.h"
-#include "ui/gfx/canvas.h"
-#include "views/controls/label.h"
-#include "views/native_theme_painter.h"
-#include "views/layout/grid_layout.h"
-
-namespace {
-
-class ExampleComboboxModel : public ui::ComboboxModel {
- public:
- ExampleComboboxModel(const wchar_t** strings, int count)
- : strings_(strings), count_(count) {
- }
-
- void set_data(const wchar_t** strings, int count) {
- strings_ = strings;
- count_ = count;
- }
-
- // Overridden from ui::ComboboxModel:
- virtual int GetItemCount() OVERRIDE {
- return count_;
- }
- virtual string16 GetItemAt(int index) OVERRIDE {
- return WideToUTF16Hack(strings_[index]);
- }
-
- private:
- const wchar_t** strings_;
- int count_;
-
- DISALLOW_COPY_AND_ASSIGN(ExampleComboboxModel);
-};
-
-const wchar_t* kParts[] = {
- L"PushButton",
- L"RadioButton",
- L"Checkbox",
-};
-
-const wchar_t* kStates[] = {
- L"Disabled",
- L"Normal",
- L"Hot",
- L"Pressed",
- L"<Dynamic>",
-};
-
-} // anonymous namespace
-
-namespace examples {
-
-ExampleNativeThemeButton::ExampleNativeThemeButton(
- views::ButtonListener* listener,
- views::Combobox* cb_part,
- views::Combobox* cb_state)
- : CustomButton(listener),
- cb_part_(cb_part),
- cb_state_(cb_state),
- count_(0),
- is_checked_(false),
- is_indeterminate_(false) {
- cb_part_->set_listener(this);
- cb_state_->set_listener(this);
-
- painter_.reset(new views::NativeThemePainter(this));
- set_background(views::Background::CreateBackgroundPainter(
- false, painter_.get()));
-}
-
-std::wstring ExampleNativeThemeButton::MessWithState() {
- const wchar_t* message;
- switch(GetThemePart()) {
- case gfx::NativeTheme::kPushButton:
- message = L"Pressed! count:%d";
- break;
- case gfx::NativeTheme::kRadio:
- is_checked_ = !is_checked_;
- message = is_checked_ ? L"Checked! count:%d" : L"Unchecked! count:%d";
- break;
- case gfx::NativeTheme::kCheckbox:
- if (is_indeterminate_) {
- is_checked_ = false;
- is_indeterminate_ = false;
- } else if (!is_checked_) {
- is_checked_ = true;
- } else {
- is_checked_ = false;
- is_indeterminate_ = true;
- }
-
- message = is_checked_ ? L"Checked! count:%d" :
- is_indeterminate_ ? L"Indeterminate! count:%d" : L"Unchecked! count:%d";
- break;
- default:
- DCHECK(false);
- }
-
- return base::StringPrintf(message, ++count_);
-}
-
-void ExampleNativeThemeButton::ItemChanged(views::Combobox* combo_box,
- int prev_index,
- int new_index) {
- SchedulePaint();
-}
-
-gfx::NativeTheme::Part ExampleNativeThemeButton::GetThemePart() const {
- int selected = cb_part_->selected_item();
- switch(selected) {
- case 0:
- return gfx::NativeTheme::kPushButton;
- case 1:
- return gfx::NativeTheme::kRadio;
- case 2:
- return gfx::NativeTheme::kCheckbox;
- default:
- DCHECK(false);
- }
- return gfx::NativeTheme::kPushButton;
-}
-
-gfx::NativeTheme::State ExampleNativeThemeButton::GetThemeState(
- gfx::NativeTheme::ExtraParams* params) const {
- GetExtraParams(params);
-
- int selected = cb_state_->selected_item();
- if (selected > 3) {
- switch(state()) {
- case BS_DISABLED:
- return gfx::NativeTheme::kDisabled;
- case BS_NORMAL:
- return gfx::NativeTheme::kNormal;
- case BS_HOT:
- return gfx::NativeTheme::kHovered;
- case BS_PUSHED:
- return gfx::NativeTheme::kPressed;
- default:
- DCHECK(false);
- }
- }
-
- switch(selected) {
- case 0:
- return gfx::NativeTheme::kDisabled;
- case 1:
- return gfx::NativeTheme::kNormal;
- case 2:
- return gfx::NativeTheme::kHovered;
- case 3:
- return gfx::NativeTheme::kPressed;
- default:
- DCHECK(false);
- }
- return gfx::NativeTheme::kNormal;
-}
-
-void ExampleNativeThemeButton::GetExtraParams(
- gfx::NativeTheme::ExtraParams* params) const {
-
- params->button.checked = is_checked_;
- params->button.indeterminate = is_indeterminate_;
- params->button.is_default = false;
- params->button.has_border = false;
- params->button.classic_state = 0;
- params->button.background_color = SkColorSetARGB(0, 0, 0, 0);
-}
-
-ui::Animation* ExampleNativeThemeButton::GetThemeAnimation() const {
- int selected = cb_state_->selected_item();
- return selected <= 3 ? NULL : hover_animation_.get();
-}
-
-gfx::NativeTheme::State ExampleNativeThemeButton::GetBackgroundThemeState(
- gfx::NativeTheme::ExtraParams* params) const {
- GetExtraParams(params);
- return gfx::NativeTheme::kNormal;
-}
-
-gfx::NativeTheme::State ExampleNativeThemeButton::GetForegroundThemeState(
- gfx::NativeTheme::ExtraParams* params) const {
- GetExtraParams(params);
- return gfx::NativeTheme::kHovered;
-}
-
-gfx::Size ExampleNativeThemeButton::GetPreferredSize() {
- return painter_.get() == NULL ? gfx::Size() : painter_->GetPreferredSize();
-}
-
-void ExampleNativeThemeButton::OnPaintBackground(gfx::Canvas* canvas) {
- // Fill the background with a known colour so that we know where the bounds
- // of the View are.
- canvas->FillRectInt(SkColorSetRGB(255, 128, 128), 0, 0, width(), height());
- CustomButton::OnPaintBackground(canvas);
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
-NativeThemeButtonExample::NativeThemeButtonExample(ExamplesMain* main)
- : ExampleBase(main) {
-}
-
-NativeThemeButtonExample::~NativeThemeButtonExample() {
-}
-
-std::wstring NativeThemeButtonExample::GetExampleTitle() {
- return L"Native Theme Button";
-}
-
-void NativeThemeButtonExample::CreateExampleView(views::View* container) {
- views::GridLayout* layout = new views::GridLayout(container);
- container->SetLayoutManager(layout);
-
- layout->AddPaddingRow(0, 8);
-
- views::ColumnSet* column_set = layout->AddColumnSet(0);
- column_set->AddPaddingColumn(0, 8);
- column_set->AddColumn(views::GridLayout::LEADING, views::GridLayout::FILL,
- 0.1f, views::GridLayout::USE_PREF, 0, 0);
- column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL,
- 0.9f, views::GridLayout::USE_PREF, 0, 0);
- column_set->AddPaddingColumn(0, 8);
-
- layout->StartRow(0, 0);
- layout->AddView(new views::Label(L"Part:"));
- views::Combobox* cb_part = new views::Combobox(
- new ExampleComboboxModel(kParts, arraysize(kParts)));
- cb_part->SetSelectedItem(0);
- layout->AddView(cb_part);
-
- layout->StartRow(0, 0);
- layout->AddView(new views::Label(L"State:"));
- views::Combobox* cb_state = new views::Combobox(
- new ExampleComboboxModel(kStates, arraysize(kStates)));
- cb_state->SetSelectedItem(0);
- layout->AddView(cb_state);
-
- layout->AddPaddingRow(0, 32);
-
- button_ = new ExampleNativeThemeButton(this, cb_part, cb_state);
-
- column_set = layout->AddColumnSet(1);
- column_set->AddPaddingColumn(0, 16);
- column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL,
- 1, views::GridLayout::USE_PREF, 0, 0);
- column_set->AddPaddingColumn(0, 16);
- layout->StartRow(1, 1);
- layout->AddView(button_);
-
- layout->AddPaddingRow(0, 8);
-}
-
-void NativeThemeButtonExample::ButtonPressed(views::Button* sender,
- const views::Event& event) {
- PrintStatus(button_->MessWithState().c_str());
-}
-
-} // namespace examples
diff --git a/views/examples/native_theme_button_example.h b/views/examples/native_theme_button_example.h
deleted file mode 100644
index 702eab8..0000000
--- a/views/examples/native_theme_button_example.h
+++ /dev/null
@@ -1,91 +0,0 @@
-// 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 VIEWS_EXAMPLES_NATIVE_THEME_BUTTON_EXAMPLE_H_
-#define VIEWS_EXAMPLES_NATIVE_THEME_BUTTON_EXAMPLE_H_
-#pragma once
-
-#include "base/basictypes.h"
-#include "ui/gfx/native_theme.h"
-#include "views/controls/button/custom_button.h"
-#include "views/controls/combobox/combobox.h"
-#include "views/examples/example_base.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::NativeThemePainter::Delegate,
- public views::Combobox::Listener {
- public:
- ExampleNativeThemeButton(views::ButtonListener* listener,
- views::Combobox* cb_part,
- views::Combobox* cb_state);
-
- std::wstring 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::NativeTheme::State GetThemeState(
- gfx::NativeTheme::ExtraParams* params) const OVERRIDE;
- virtual 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 std::wstring GetExampleTitle() OVERRIDE;
- 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 // VIEWS_EXAMPLES_NATIVE_THEME_BUTTON_EXAMPLE_H_
diff --git a/views/native_theme_painter.cc b/views/native_theme_painter.cc
deleted file mode 100644
index 1d4ab21..0000000
--- a/views/native_theme_painter.cc
+++ /dev/null
@@ -1,54 +0,0 @@
-// 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.
-
-#include "views/native_theme_painter.h"
-
-#include "base/logging.h"
-#include "ui/base/animation/animation.h"
-#include "ui/gfx/canvas.h"
-#include "ui/gfx/canvas_skia.h"
-#include "ui/gfx/rect.h"
-
-namespace views {
-
-NativeThemePainter::NativeThemePainter(Delegate* delegate)
- : delegate_(delegate) {
- DCHECK(delegate_);
-}
-
-gfx::Size NativeThemePainter::GetPreferredSize() {
- const gfx::NativeTheme* theme = gfx::NativeTheme::instance();
- return theme->GetPartSize(delegate_->GetThemePart());
-}
-
-void NativeThemePainter::Paint(int w, int h, gfx::Canvas* canvas) {
- const gfx::NativeTheme* native_theme = gfx::NativeTheme::instance();
- gfx::NativeTheme::Part part = delegate_->GetThemePart();
- gfx::CanvasSkia* skia_canvas = canvas->AsCanvasSkia();
- gfx::Rect rect(0, 0, w, h);
-
- if (delegate_->GetThemeAnimation() != NULL &&
- delegate_->GetThemeAnimation()->is_animating()) {
-
- // Paint background state.
- gfx::NativeTheme::ExtraParams prev_extra;
- gfx::NativeTheme::State prev_state =
- delegate_->GetBackgroundThemeState(&prev_extra);
- native_theme->Paint(skia_canvas, part, prev_state, rect, prev_extra);
-
- // Composite foreground state above it.
- gfx::NativeTheme::ExtraParams extra;
- gfx::NativeTheme::State state = delegate_->GetForegroundThemeState(&extra);
- int alpha = delegate_->GetThemeAnimation()->CurrentValueBetween(0, 255);
- skia_canvas->SaveLayerAlpha(static_cast<uint8>(alpha));
- native_theme->Paint(skia_canvas, part, state, rect, extra);
- skia_canvas->Restore();
- } else {
- gfx::NativeTheme::ExtraParams extra;
- gfx::NativeTheme::State state = delegate_->GetThemeState(&extra);
- native_theme->Paint(skia_canvas, part, state, rect, extra);
- }
-}
-
-} // namespace views
diff --git a/views/native_theme_painter.h b/views/native_theme_painter.h
deleted file mode 100644
index 75b8866..0000000
--- a/views/native_theme_painter.h
+++ /dev/null
@@ -1,79 +0,0 @@
-// 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 VIEWS_NATIVE_THEME_PAINTER_H_
-#define VIEWS_NATIVE_THEME_PAINTER_H_
-#pragma once
-
-#include "base/compiler_specific.h"
-#include "ui/gfx/native_theme.h"
-#include "views/painter.h"
-
-namespace gfx {
-class Canvas;
-class Size;
-}
-
-namespace ui {
-class Animation;
-}
-
-namespace views {
-
-// A Painter that uses NativeTheme to implement painting and sizing. A
-// theme delegate must be given at construction time so that the appropriate
-// painting and sizing can be done.
-class NativeThemePainter : public Painter {
- public:
- // A delagate that supports animating transtions between different native
- // theme states. If animation is onging, the native theme painter will
- // composite the foreground state over the backgroud state using an alpha
- // between 0 and 255 based on the current value of the animation.
- class Delegate {
- public:
- virtual ~Delegate() {}
-
- // Get the part that this native theme painter should draw.
- virtual gfx::NativeTheme::Part GetThemePart() const = 0;
-
- // Get the state of the part, along with any extra data needed for painting.
- virtual gfx::NativeTheme::State GetThemeState(
- gfx::NativeTheme::ExtraParams* params) const = 0;
-
- // If the native theme painter is animated, return the Animation object
- // that is controlling it. If no animation is ongoing, NULL may be
- // returned.
- virtual ui::Animation* GetThemeAnimation() const = 0;
-
- // If animation is onging, this returns the background native theme state.
- virtual gfx::NativeTheme::State GetBackgroundThemeState(
- gfx::NativeTheme::ExtraParams* params) const = 0;
-
- // If animation is onging, this returns the foreground native theme state.
- // This state will be composited over the background using an alpha value
- // based on the current value of the animation.
- virtual gfx::NativeTheme::State GetForegroundThemeState(
- gfx::NativeTheme::ExtraParams* params) const = 0;
- };
-
- explicit NativeThemePainter(Delegate* delegate);
-
- virtual ~NativeThemePainter() {}
-
- // Returns the preferred size of the native part being painted.
- gfx::Size GetPreferredSize();
-
- private:
- // The delegate the controls the appearance of this painter.
- Delegate* delegate_;
-
- // Overridden from Painter:
- virtual void Paint(int w, int h, gfx::Canvas* canvas) OVERRIDE;
-
- DISALLOW_COPY_AND_ASSIGN(NativeThemePainter);
-};
-
-} // namespace views
-
-#endif // VIEWS_NATIVE_THEME_PAINTER_H_ \ No newline at end of file
diff --git a/views/views.gyp b/views/views.gyp
index deca1c4..c7fac12 100644
--- a/views/views.gyp
+++ b/views/views.gyp
@@ -311,8 +311,6 @@
'metrics_win.cc',
'mouse_watcher.cc',
'mouse_watcher.h',
- 'native_theme_painter.cc',
- 'native_theme_painter.h',
'painter.cc',
'painter.h',
'repeat_controller.cc',
@@ -589,8 +587,6 @@
'examples/message_box_example.h',
'examples/menu_example.cc',
'examples/menu_example.h',
- 'examples/native_theme_button_example.cc',
- 'examples/native_theme_button_example.h',
'examples/radio_button_example.cc',
'examples/radio_button_example.h',
'examples/scroll_view_example.cc',