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-28 19:05:46 +0000
committerrogerta@chromium.org <rogerta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-28 19:05:46 +0000
commit184167dc22992b074d64839878259b4eee00ae4b (patch)
treeb3539992b6e9056b1bf48dfaebb7bcd0651d0f30 /views/native_theme_delegate.h
parentb2384caf56ea8da6d6cbd44c5d22270a18296fa2 (diff)
downloadchromium_src-184167dc22992b074d64839878259b4eee00ae4b.zip
chromium_src-184167dc22992b074d64839878259b4eee00ae4b.tar.gz
chromium_src-184167dc22992b074d64839878259b4eee00ae4b.tar.bz2
Resubmitting change to fix a build break in the arm builder. The only change
from the original code is in text_button.cc, line 402, where text_x is initialized to 0. 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@83373 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_