root/ui/views/widget/desktop_aura/desktop_cursor_loader_updater.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


// Copyright (c) 2013 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_VIEWS_WIDGET_DESKTOP_AURA_DESKTOP_CURSOR_LOADER_UPDATER_H_
#define UI_VIEWS_WIDGET_DESKTOP_AURA_DESKTOP_CURSOR_LOADER_UPDATER_H_

#include "base/memory/scoped_ptr.h"
#include "ui/views/views_export.h"

namespace aura {
class RootWindow;
}

namespace gfx {
class Display;
}

namespace ui {
class CursorLoader;
}

namespace views {

// An interface to optionally update the state of a cursor loader. Only used on
// desktop AuraX11.
class VIEWS_EXPORT DesktopCursorLoaderUpdater {
 public:
  virtual ~DesktopCursorLoaderUpdater() {}

  // Creates a new DesktopCursorLoaderUpdater, or NULL if the platform doesn't
  // support one.
  static scoped_ptr<DesktopCursorLoaderUpdater> Create();

  // Called when a CursorLoader is created.
  virtual void OnCreate(float device_scale_factor,
                        ui::CursorLoader* loader) = 0;

  // Called when the display has changed (as we may need to reload the cursor
  // assets in response to a device scale factor or rotation change).
  virtual void OnDisplayUpdated(const gfx::Display& display,
                                ui::CursorLoader* loader) = 0;
};

}  // namespace views

#endif  // UI_VIEWS_WIDGET_DESKTOP_AURA_DESKTOP_DISPLAY_CHANGE_HANDLER_H_

/* [<][>][^][v][top][bottom][index][help] */