1// Copyright (c) 2012 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 UI_GFX_CANVAS_PAINT_H_
6#define UI_GFX_CANVAS_PAINT_H_
7
8#include "ui/gfx/gfx_export.h"
9#include "ui/gfx/native_widget_types.h"
10
11namespace gfx {
12
13class Canvas;
14class Rect;
15
16class CanvasPaint {
17 public:
18  // Creates a canvas that paints to |view| when it is destroyed. The canvas is
19  // sized to the client area of |view|.
20  GFX_EXPORT static CanvasPaint* CreateCanvasPaint(gfx::NativeView view);
21
22  virtual ~CanvasPaint() {}
23
24  // Returns true if the canvas has an invalid rect that needs to be repainted.
25  virtual bool IsValid() const = 0;
26
27  // Returns the rectangle that is invalid.
28  virtual gfx::Rect GetInvalidRect() const = 0;
29
30  // Returns the underlying Canvas.
31  virtual Canvas* AsCanvas() = 0;
32};
33
34}  // namespace gfx
35
36#endif  // UI_GFX_CANVAS_PAINT_H_
37