summaryrefslogtreecommitdiffstats
path: root/ash/screenshot_delegate.h
blob: 9e7af06134f0aa907e0aa3d61c156831c320e7d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// 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 ASH_SCREENSHOT_DELEGATE_H_
#define ASH_SCREENSHOT_DELEGATE_H_

namespace aura {
class Window;
}  // namespace aura

namespace gfx {
class Rect;
}  // namespace gfx

namespace ash {

// Delegate for taking screenshots.
class ScreenshotDelegate {
 public:
  virtual ~ScreenshotDelegate() {}

  // The actual task of taking a screenshot for each root window.
  // This method is called when the user wants to take a screenshot manually.
  virtual void HandleTakeScreenshotForAllRootWindows() = 0;

  // The actual task of taking a partial screenshot for the given
  // window.
  virtual void HandleTakePartialScreenshot(
      aura::Window* window, const gfx::Rect& rect) = 0;

  // Returns true if the system is ready to take screenshot.
  virtual bool CanTakeScreenshot() = 0;
};
}  // namespace ash

#endif  // ASH_SCREENSHOT_DELEGATE_H_