1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef UI_VIEWS_WIDGET_DESKTOP_AURA_DESKTOP_CURSOR_LOADER_UPDATER_H_ 6 #define UI_VIEWS_WIDGET_DESKTOP_AURA_DESKTOP_CURSOR_LOADER_UPDATER_H_ 7 8 #include "base/memory/scoped_ptr.h" 9 #include "ui/views/views_export.h" 10 11 namespace aura { 12 class RootWindow; 13 } 14 15 namespace gfx { 16 class Display; 17 } 18 19 namespace ui { 20 class CursorLoader; 21 } 22 23 namespace views { 24 25 // An interface to optionally update the state of a cursor loader. Only used on 26 // desktop AuraX11. 27 class VIEWS_EXPORT DesktopCursorLoaderUpdater { 28 public: ~DesktopCursorLoaderUpdater()29 virtual ~DesktopCursorLoaderUpdater() {} 30 31 // Creates a new DesktopCursorLoaderUpdater, or NULL if the platform doesn't 32 // support one. 33 static scoped_ptr<DesktopCursorLoaderUpdater> Create(); 34 35 // Called when a CursorLoader is created. 36 virtual void OnCreate(float device_scale_factor, 37 ui::CursorLoader* loader) = 0; 38 39 // Called when the display has changed (as we may need to reload the cursor 40 // assets in response to a device scale factor or rotation change). 41 virtual void OnDisplayUpdated(const gfx::Display& display, 42 ui::CursorLoader* loader) = 0; 43 }; 44 45 } // namespace views 46 47 #endif // UI_VIEWS_WIDGET_DESKTOP_AURA_DESKTOP_DISPLAY_CHANGE_HANDLER_H_ 48