blob: 4cf770830ce3134e20b58a1ea7acc315221ad752 [file] [log] [blame]
sergeyu@chromium.orgaf54d4b2013-10-16 02:42:38 +00001/*
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#ifndef WEBRTC_MODULES_DESKTOP_CAPTURE_MOUSE_CURSOR_H_
12#define WEBRTC_MODULES_DESKTOP_CAPTURE_MOUSE_CURSOR_H_
13
14#include "webrtc/modules/desktop_capture/desktop_geometry.h"
15#include "webrtc/system_wrappers/interface/constructor_magic.h"
16#include "webrtc/system_wrappers/interface/scoped_ptr.h"
17
18namespace webrtc {
19
20class DesktopFrame;
21
22class MouseCursor {
23 public:
24 // Takes ownership of |image|. |hotspot| must be within |image| boundaries.
25 MouseCursor(DesktopFrame* image, const DesktopVector& hotspot);
26 ~MouseCursor();
27
sergeyu@chromium.org2873c4c2013-10-17 19:47:18 +000028 static MouseCursor* CopyOf(const MouseCursor& cursor);
29
30 const DesktopFrame& image() const { return *image_; }
31 const DesktopVector& hotspot() const { return hotspot_; }
sergeyu@chromium.orgaf54d4b2013-10-16 02:42:38 +000032
33 private:
34 scoped_ptr<DesktopFrame> image_;
35 DesktopVector hotspot_;
36
37 DISALLOW_COPY_AND_ASSIGN(MouseCursor);
38};
39
40} // namespace webrtc
41
42#endif // WEBRTC_MODULES_DESKTOP_CAPTURE_MOUSE_CURSOR_H_