blob: 3acfa45a33063f46d52528b9201d40ac1793bbb1 [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:
sergeyu@chromium.orgeb9ce112013-12-18 02:18:01 +000024 MouseCursor();
25
sergeyu@chromium.orgaf54d4b2013-10-16 02:42:38 +000026 // Takes ownership of |image|. |hotspot| must be within |image| boundaries.
27 MouseCursor(DesktopFrame* image, const DesktopVector& hotspot);
sergeyu@chromium.orgeb9ce112013-12-18 02:18:01 +000028
sergeyu@chromium.orgaf54d4b2013-10-16 02:42:38 +000029 ~MouseCursor();
30
sergeyu@chromium.org2873c4c2013-10-17 19:47:18 +000031 static MouseCursor* CopyOf(const MouseCursor& cursor);
32
sergeyu@chromium.orgeb9ce112013-12-18 02:18:01 +000033 void set_image(DesktopFrame* image) { image_.reset(image); }
34 const DesktopFrame* image() const { return image_.get(); }
35
36 void set_hotspot(const DesktopVector& hotspot ) { hotspot_ = hotspot; }
sergeyu@chromium.org2873c4c2013-10-17 19:47:18 +000037 const DesktopVector& hotspot() const { return hotspot_; }
sergeyu@chromium.orgaf54d4b2013-10-16 02:42:38 +000038
39 private:
40 scoped_ptr<DesktopFrame> image_;
41 DesktopVector hotspot_;
42
43 DISALLOW_COPY_AND_ASSIGN(MouseCursor);
44};
45
46} // namespace webrtc
47
48#endif // WEBRTC_MODULES_DESKTOP_CAPTURE_MOUSE_CURSOR_H_