diff options
Diffstat (limited to 'chromium/ui/base/cursor/image_cursors.h')
-rw-r--r-- | chromium/ui/base/cursor/image_cursors.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/chromium/ui/base/cursor/image_cursors.h b/chromium/ui/base/cursor/image_cursors.h new file mode 100644 index 00000000000..25676ca462f --- /dev/null +++ b/chromium/ui/base/cursor/image_cursors.h @@ -0,0 +1,52 @@ +// 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_BASE_CURSOR_IMAGE_CURSORS_H_ +#define UI_BASE_CURSOR_IMAGE_CURSORS_H_ + +#include "base/memory/scoped_ptr.h" +#include "base/strings/string16.h" +#include "ui/base/cursor/cursor.h" +#include "ui/base/ui_base_export.h" +#include "ui/gfx/display.h" +#include "ui/gfx/native_widget_types.h" + +namespace ui { + +class CursorLoader; + +// A utility class that provides cursors for NativeCursors for which we have +// image resources. +class UI_BASE_EXPORT ImageCursors { + public: + ImageCursors(); + ~ImageCursors(); + + // Returns the scale and rotation of the currently loaded cursor. + float GetScale() const; + gfx::Display::Rotation GetRotation() const; + + // Sets the display the cursors are loaded for. |scale_factor| determines the + // size of the image to load. Returns true if the cursor image is reloaded. + bool SetDisplay(const gfx::Display& display, float scale_factor); + + // Sets the type of the mouse cursor icon. + void SetCursorSet(CursorSetType cursor_set); + + // Sets the platform cursor based on the native type of |cursor|. + void SetPlatformCursor(gfx::NativeCursor* cursor); + + private: + // Reloads the all loaded cursors in the cursor loader. + void ReloadCursors(); + + scoped_ptr<CursorLoader> cursor_loader_; + CursorSetType cursor_set_; + + DISALLOW_COPY_AND_ASSIGN(ImageCursors); +}; + +} // namespace ui + +#endif // UI_BASE_CURSOR_IMAGE_CURSORS_H_ |