diff options
Diffstat (limited to 'ui/wm/public')
-rw-r--r-- | ui/wm/public/cursor_delegate.cc | 24 | ||||
-rw-r--r-- | ui/wm/public/cursor_delegate.h | 35 |
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_ |