summaryrefslogtreecommitdiffstats
path: root/ui/wm/public
diff options
context:
space:
mode:
Diffstat (limited to 'ui/wm/public')
-rw-r--r--ui/wm/public/cursor_delegate.cc24
-rw-r--r--ui/wm/public/cursor_delegate.h35
2 files changed, 59 insertions, 0 deletions
diff --git a/ui/wm/public/cursor_delegate.cc b/ui/wm/public/cursor_delegate.cc
new file mode 100644
index 0000000..bea259d
--- /dev/null
+++ b/ui/wm/public/cursor_delegate.cc
@@ -0,0 +1,24 @@
+// Copyright 2014 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.
+
+#include "ui/wm/public/cursor_delegate.h"
+
+#include "ui/aura/window.h"
+#include "ui/aura/window_property.h"
+
+DECLARE_WINDOW_PROPERTY_TYPE(wm::CursorDelegate*);
+
+namespace wm {
+
+DEFINE_LOCAL_WINDOW_PROPERTY_KEY(CursorDelegate*, kCursorDelegateKey, NULL);
+
+void SetCursorDelegate(aura::Window* window, CursorDelegate* delegate) {
+ window->SetProperty(kCursorDelegateKey, delegate);
+}
+
+CursorDelegate* GetCursorDelegate(aura::Window* window) {
+ return window ? window->GetProperty(kCursorDelegateKey) : NULL;
+}
+
+} // namespace wm
diff --git a/ui/wm/public/cursor_delegate.h b/ui/wm/public/cursor_delegate.h
new file mode 100644
index 0000000..1acf4d7
--- /dev/null
+++ b/ui/wm/public/cursor_delegate.h
@@ -0,0 +1,35 @@
+// Copyright 2014 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_WM_PUBLIC_CURSOR_DELEGATE_H_
+#define UI_WM_PUBLIC_CURSOR_DELEGATE_H_
+
+#include "ui/gfx/native_widget_types.h"
+#include "ui/wm/core/wm_core_export.h"
+
+namespace aura {
+class Window;
+}
+
+namespace gfx {
+class Point;
+}
+
+namespace wm {
+
+class WM_CORE_EXPORT CursorDelegate {
+ public:
+ virtual gfx::NativeCursor GetCursorForPoint(const gfx::Point& point) = 0;
+
+ protected:
+ virtual ~CursorDelegate() {}
+};
+
+WM_CORE_EXPORT void SetCursorDelegate(aura::Window* window,
+ CursorDelegate* delegate);
+WM_CORE_EXPORT CursorDelegate* GetCursorDelegate(aura::Window* window);
+
+} // namespace wm
+
+#endif // UI_WM_PUBLIC_CURSOR_DELEGATE_H_