summaryrefslogtreecommitdiffstats
path: root/views/native_theme_painter.h
diff options
context:
space:
mode:
authorrogerta@chromium.org <rogerta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-27 01:18:34 +0000
committerrogerta@chromium.org <rogerta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-27 01:18:34 +0000
commitc46e187a8537f14d0af3f1879033c129a70ba0e2 (patch)
tree7a8fc410ee89b0cdc8ce4729f15fc504a45cab52 /views/native_theme_painter.h
parentc4f06dff5def187a1e2e276d5c83ea0aaeef3299 (diff)
downloadchromium_src-c46e187a8537f14d0af3f1879033c129a70ba0e2.zip
chromium_src-c46e187a8537f14d0af3f1879033c129a70ba0e2.tar.gz
chromium_src-c46e187a8537f14d0af3f1879033c129a70ba0e2.tar.bz2
Revert 83110 - Add classes for native themed push buttons, radio buttons, and checkboxes.These controls expose the same public interface and the existing controlsof the same type to make it easier to change between the implementations.BUG=NoneTEST=The new controls should look and feel like native platform controlsR=ben@chromium.orgReview URL: http://codereview.chromium.org/6853015
TBR=rogerta@chromium.org Review URL: http://codereview.chromium.org/6904040 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83111 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/native_theme_painter.h')
-rw-r--r--views/native_theme_painter.h38
1 files changed, 34 insertions, 4 deletions
diff --git a/views/native_theme_painter.h b/views/native_theme_painter.h
index a2c45bc..55dad89 100644
--- a/views/native_theme_painter.h
+++ b/views/native_theme_painter.h
@@ -7,6 +7,7 @@
#pragma once
#include "base/compiler_specific.h"
+#include "ui/gfx/native_theme.h"
#include "views/painter.h"
namespace gfx {
@@ -20,14 +21,43 @@ class Animation;
namespace views {
-class NativeThemeDelegate;
-
// 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:
- explicit NativeThemePainter(NativeThemeDelegate* delegate);
+ // 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() {}
@@ -36,7 +66,7 @@ class NativeThemePainter : public Painter {
private:
// The delegate the controls the appearance of this painter.
- NativeThemeDelegate* delegate_;
+ Delegate* delegate_;
// Overridden from Painter:
virtual void Paint(int w, int h, gfx::Canvas* canvas) OVERRIDE;