Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(369)

Side by Side Diff: views/background.h

Issue 8771006: views: Move the remaining file from views/ to ui/views/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « views/accessible_pane_view_unittest.cc ('k') | views/background.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef VIEWS_BACKGROUND_H_
6 #define VIEWS_BACKGROUND_H_
7 #pragma once
8
9 #include "build/build_config.h"
10
11 #if defined(OS_WIN)
12 #include <windows.h>
13 #endif // defined(OS_WIN)
14
15 #include "base/basictypes.h"
16 #include "third_party/skia/include/core/SkColor.h"
17 #include "views/views_export.h"
18
19 namespace gfx {
20 class Canvas;
21 }
22
23 namespace views {
24
25 class Painter;
26 class View;
27
28 /////////////////////////////////////////////////////////////////////////////
29 //
30 // Background class
31 //
32 // A background implements a way for views to paint a background. The
33 // background can be either solid or based on a gradient. Of course,
34 // Background can be subclassed to implement various effects.
35 //
36 // Any View can have a background. See View::SetBackground() and
37 // View::OnPaintBackground()
38 //
39 /////////////////////////////////////////////////////////////////////////////
40 class VIEWS_EXPORT Background {
41 public:
42 Background();
43 virtual ~Background();
44
45 // Creates a background that fills the canvas in the specified color.
46 static Background* CreateSolidBackground(const SkColor& color);
47
48 // Creates a background that fills the canvas in the specified color.
49 static Background* CreateSolidBackground(int r, int g, int b) {
50 return CreateSolidBackground(SkColorSetRGB(r, g, b));
51 }
52
53 // Creates a background that fills the canvas in the specified color.
54 static Background* CreateSolidBackground(int r, int g, int b, int a) {
55 return CreateSolidBackground(SkColorSetARGB(a, r, g, b));
56 }
57
58 // Creates a background that contains a vertical gradient that varies
59 // from |color1| to |color2|
60 static Background* CreateVerticalGradientBackground(const SkColor& color1,
61 const SkColor& color2);
62
63 // Creates Chrome's standard panel background
64 static Background* CreateStandardPanelBackground();
65
66 // Creates a Background from the specified Painter. If owns_painter is
67 // true, the Painter is deleted when the Border is deleted.
68 static Background* CreateBackgroundPainter(bool owns_painter,
69 Painter* painter);
70
71 // Render the background for the provided view
72 virtual void Paint(gfx::Canvas* canvas, View* view) const = 0;
73
74 // Set a solid, opaque color to be used when drawing backgrounds of native
75 // controls. Unfortunately alpha=0 is not an option.
76 void SetNativeControlColor(SkColor color);
77
78 // Returns the "background color". This is equivalent to the color set in
79 // SetNativeControlColor(). For solid backgrounds, this is the color; for
80 // gradient backgrounds, it's the midpoint of the gradient; for painter
81 // backgrounds, this is not useful (returns a default color).
82 SkColor get_color() const { return color_; }
83
84 #if defined(OS_WIN)
85 // TODO(port): Make GetNativeControlBrush portable (currently uses HBRUSH).
86
87 // Get the brush that was specified by SetNativeControlColor
88 HBRUSH GetNativeControlBrush() const;
89 #endif // defined(OS_WIN)
90
91 private:
92 SkColor color_;
93 #if defined(OS_WIN)
94 // TODO(port): Create portable replacement for HBRUSH.
95 mutable HBRUSH native_control_brush_;
96 #endif // defined(OS_WIN)
97
98 DISALLOW_COPY_AND_ASSIGN(Background);
99 };
100
101 } // namespace views
102
103 #endif // VIEWS_BACKGROUND_H_
OLDNEW
« no previous file with comments | « views/accessible_pane_view_unittest.cc ('k') | views/background.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698