|  | // Copyright (c) 2012 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 UI_GFX_CANVAS_PAINT_H_ | 
|  | #define UI_GFX_CANVAS_PAINT_H_ | 
|  |  | 
|  | #include "ui/gfx/gfx_export.h" | 
|  | #include "ui/gfx/native_widget_types.h" | 
|  |  | 
|  | namespace gfx { | 
|  |  | 
|  | class Canvas; | 
|  | class Rect; | 
|  |  | 
|  | class CanvasPaint { | 
|  | public: | 
|  | // Creates a canvas that paints to |view| when it is destroyed. The canvas is | 
|  | // sized to the client area of |view|. | 
|  | GFX_EXPORT static CanvasPaint* CreateCanvasPaint(gfx::NativeView view); | 
|  |  | 
|  | virtual ~CanvasPaint() {} | 
|  |  | 
|  | // Returns true if the canvas has an invalid rect that needs to be repainted. | 
|  | virtual bool IsValid() const = 0; | 
|  |  | 
|  | // Returns the rectangle that is invalid. | 
|  | virtual gfx::Rect GetInvalidRect() const = 0; | 
|  |  | 
|  | // Returns the underlying Canvas. | 
|  | virtual Canvas* AsCanvas() = 0; | 
|  | }; | 
|  |  | 
|  | }  // namespace gfx | 
|  |  | 
|  | #endif  // UI_GFX_CANVAS_PAINT_H_ |