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 ASH_SCREENSHOT_DELEGATE_H_
6#define ASH_SCREENSHOT_DELEGATE_H_
7
8namespace aura {
9class Window;
10}  // namespace aura
11
12namespace gfx {
13class Rect;
14}  // namespace gfx
15
16namespace ash {
17
18// Delegate for taking screenshots.
19class ScreenshotDelegate {
20 public:
21  virtual ~ScreenshotDelegate() {}
22
23  // The actual task of taking a screenshot for each root window.
24  // This method is called when the user wants to take a screenshot manually.
25  virtual void HandleTakeScreenshotForAllRootWindows() = 0;
26
27  // The actual task of taking a partial screenshot for the given
28  // window.
29  virtual void HandleTakePartialScreenshot(
30      aura::Window* window, const gfx::Rect& rect) = 0;
31
32  // Returns true if the system is ready to take screenshot.
33  virtual bool CanTakeScreenshot() = 0;
34};
35}  // namespace ash
36
37#endif  // ASH_SCREENSHOT_DELEGATE_H_
38