Home | History | Annotate | Download | only in wm
      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 ASH_WM_ASH_NATIVE_CURSOR_MANAGER_H_
      6 #define ASH_WM_ASH_NATIVE_CURSOR_MANAGER_H_
      7 
      8 #include "ash/ash_export.h"
      9 #include "base/basictypes.h"
     10 #include "base/compiler_specific.h"
     11 #include "base/memory/scoped_ptr.h"
     12 #include "base/strings/string16.h"
     13 #include "ui/gfx/native_widget_types.h"
     14 #include "ui/gfx/point.h"
     15 #include "ui/views/corewm/native_cursor_manager.h"
     16 #include "ui/views/corewm/native_cursor_manager_delegate.h"
     17 
     18 namespace ash {
     19 
     20 namespace test {
     21 class CursorManagerTestApi;
     22 }
     23 
     24 class ImageCursors;
     25 
     26 // This does the ash-specific setting of cursor details like cursor
     27 // visibility. It communicates back with the CursorManager through the
     28 // NativeCursorManagerDelegate interface, which receives messages about what
     29 // changes were acted on.
     30 class ASH_EXPORT AshNativeCursorManager
     31     : public views::corewm::NativeCursorManager {
     32  public:
     33   AshNativeCursorManager();
     34   virtual ~AshNativeCursorManager();
     35 
     36  private:
     37   friend class test::CursorManagerTestApi;
     38 
     39   // Overridden from views::corewm::NativeCursorManager:
     40   virtual void SetDisplay(
     41       const gfx::Display& display,
     42       views::corewm::NativeCursorManagerDelegate* delegate) OVERRIDE;
     43   virtual void SetCursor(
     44       gfx::NativeCursor cursor,
     45       views::corewm::NativeCursorManagerDelegate* delegate) OVERRIDE;
     46   virtual void SetVisibility(
     47       bool visible,
     48       views::corewm::NativeCursorManagerDelegate* delegate) OVERRIDE;
     49   virtual void SetScale(
     50       float scale,
     51       views::corewm::NativeCursorManagerDelegate* delegate) OVERRIDE;
     52   virtual void SetCursorSet(
     53       ui::CursorSetType cursor_set,
     54       views::corewm::NativeCursorManagerDelegate* delegate) OVERRIDE;
     55   virtual void SetMouseEventsEnabled(
     56       bool enabled,
     57       views::corewm::NativeCursorManagerDelegate* delegate) OVERRIDE;
     58 
     59   // The cursor location where the cursor was disabled.
     60   gfx::Point disabled_cursor_location_;
     61 
     62   scoped_ptr<ImageCursors> image_cursors_;
     63 
     64   DISALLOW_COPY_AND_ASSIGN(AshNativeCursorManager);
     65 };
     66 
     67 }  // namespace ash
     68 
     69 #endif  // ASH_WM_ASH_NATIVE_CURSOR_MANAGER_H_
     70