| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2012 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_BASE_CURSOR_CURSOR_LOADER_H_ | |
| 6 #define UI_BASE_CURSOR_CURSOR_LOADER_H_ | |
| 7 | |
| 8 #include "base/logging.h" | |
| 9 #include "base/strings/string16.h" | |
| 10 #include "ui/base/ui_base_export.h" | |
| 11 #include "ui/gfx/display.h" | |
| 12 #include "ui/gfx/native_widget_types.h" | |
| 13 #include "ui/gfx/point.h" | |
| 14 | |
| 15 namespace ui { | |
| 16 | |
| 17 class UI_BASE_EXPORT CursorLoader { | |
| 18 public: | |
| 19 CursorLoader() : scale_(1.f), rotation_(gfx::Display::ROTATE_0) {} | |
| 20 virtual ~CursorLoader() {} | |
| 21 | |
| 22 gfx::Display::Rotation rotation() const { | |
| 23 return rotation_; | |
| 24 } | |
| 25 | |
| 26 void set_rotation(gfx::Display::Rotation rotation) { | |
| 27 rotation_ = rotation; | |
| 28 } | |
| 29 | |
| 30 // Returns the current scale of the mouse cursor icon. | |
| 31 float scale() const { | |
| 32 return scale_; | |
| 33 } | |
| 34 | |
| 35 // Sets the scale of the mouse cursor icon. | |
| 36 void set_scale(const float scale) { | |
| 37 scale_ = scale; | |
| 38 } | |
| 39 | |
| 40 // Creates a cursor from an image resource and puts it in the cursor map. | |
| 41 virtual void LoadImageCursor(int id, | |
| 42 int resource_id, | |
| 43 const gfx::Point& hot) = 0; | |
| 44 | |
| 45 // Creates an animated cursor from an image resource and puts it in the | |
| 46 // cursor map. The image is assumed to be a concatenation of animation frames | |
| 47 // from left to right. Also, each frame is assumed to be square | |
| 48 // (width == height). | |
| 49 // |frame_delay_ms| is the delay between frames in millisecond. | |
| 50 virtual void LoadAnimatedCursor(int id, | |
| 51 int resource_id, | |
| 52 const gfx::Point& hot, | |
| 53 int frame_delay_ms) = 0; | |
| 54 | |
| 55 // Unloads all the cursors. | |
| 56 virtual void UnloadAll() = 0; | |
| 57 | |
| 58 // Sets the platform cursor based on the native type of |cursor|. | |
| 59 virtual void SetPlatformCursor(gfx::NativeCursor* cursor) = 0; | |
| 60 | |
| 61 // Creates a CursorLoader. | |
| 62 static CursorLoader* Create(); | |
| 63 | |
| 64 private: | |
| 65 // The current scale of the mouse cursor icon. | |
| 66 float scale_; | |
| 67 | |
| 68 // The current rotation of the mouse cursor icon. | |
| 69 gfx::Display::Rotation rotation_; | |
| 70 | |
| 71 DISALLOW_COPY_AND_ASSIGN(CursorLoader); | |
| 72 }; | |
| 73 | |
| 74 } // namespace ui | |
| 75 | |
| 76 #endif // UI_BASE_CURSOR_CURSOR_LOADER_H_ | |
| OLD | NEW |