1// Copyright 2014 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_OZONE_H_
6#define UI_BASE_CURSOR_CURSOR_LOADER_OZONE_H_
7
8#include <map>
9
10#include "ui/base/cursor/cursor.h"
11#include "ui/base/cursor/cursor_loader.h"
12
13namespace ui {
14
15class UI_BASE_EXPORT CursorLoaderOzone : public CursorLoader {
16 public:
17  CursorLoaderOzone();
18  virtual ~CursorLoaderOzone();
19
20  // CursorLoader overrides:
21  virtual void LoadImageCursor(int id,
22                               int resource_id,
23                               const gfx::Point& hot) OVERRIDE;
24  virtual void LoadAnimatedCursor(int id,
25                                  int resource_id,
26                                  const gfx::Point& hot,
27                                  int frame_delay_ms) OVERRIDE;
28  virtual void UnloadAll() OVERRIDE;
29  virtual void SetPlatformCursor(gfx::NativeCursor* cursor) OVERRIDE;
30
31 private:
32  // Pointers are owned by ResourceBundle and must not be freed here.
33  typedef std::map<int, PlatformCursor> ImageCursorMap;
34  ImageCursorMap cursors_;
35
36  DISALLOW_COPY_AND_ASSIGN(CursorLoaderOzone);
37};
38
39}  // namespace ui
40
41#endif  // UI_BASE_CURSOR_CURSOR_LOADER_OZONE_H_
42