summaryrefslogtreecommitdiffstats
path: root/views/native_theme_delegate.h
diff options
context:
space:
mode:
authorrogerta@chromium.org <rogerta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-27 01:07:09 +0000
committerrogerta@chromium.org <rogerta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-27 01:07:09 +0000
commitc4f06dff5def187a1e2e276d5c83ea0aaeef3299 (patch)
treea328905746e9d54e48b0a983aa2d4d2e8d37461e /views/native_theme_delegate.h
parent24af8c96481b398ef33bf1e36c57d4ab0b00c1d9 (diff)
downloadchromium_src-c4f06dff5def187a1e2e276d5c83ea0aaeef3299.zip
chromium_src-c4f06dff5def187a1e2e276d5c83ea0aaeef3299.tar.gz
chromium_src-c4f06dff5def187a1e2e276d5c83ea0aaeef3299.tar.bz2
Add classes for native themed push buttons, radio buttons, and checkboxes.
These controls expose the same public interface and the existing controls of the same type to make it easier to change between the implementations. BUG=None TEST=The new controls should look and feel like native platform controls R=ben@chromium.org Review URL: http://codereview.chromium.org/6853015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83110 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/native_theme_delegate.h')
-rw-r--r--views/native_theme_delegate.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/views/native_theme_delegate.h b/views/native_theme_delegate.h
new file mode 100644
index 0000000..d94a514
--- /dev/null
+++ b/views/native_theme_delegate.h
@@ -0,0 +1,52 @@
+// 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_DELEGATE_H_
+#define VIEWS_NATIVE_THEME_DELEGATE_H_
+#pragma once
+
+#include "ui/gfx/native_theme.h"
+#include "ui/gfx/rect.h"
+
+namespace views {
+
+// A delagate that supports animating transtions between different native
+// theme states. This delegate can be used to control a native theme Border
+// or Painter object.
+//
+// If animation is onging, the native theme border or 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 NativeThemeDelegate {
+ public:
+ virtual ~NativeThemeDelegate() {}
+
+ // Get the native theme part that should be drawn.
+ virtual gfx::NativeTheme::Part GetThemePart() const = 0;
+
+ // Get the rectangle that should be painted.
+ virtual gfx::Rect GetThemePaintRect() const = 0;
+
+ // Get the state of the part, along with any extra data needed for drawing.
+ virtual gfx::NativeTheme::State GetThemeState(
+ gfx::NativeTheme::ExtraParams* params) const = 0;
+
+ // If the native theme drawign should be animated, return the Animation object
+ // that controlls it. If no animation is ongoing, NULL may be returned.
+ virtual const 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;
+};
+
+} // namespace views
+
+#endif // VIEWS_NATIVE_THEME_DELEGATE_H_