Home | History | Annotate | Download | only in corewm
      1 // Copyright (c) 2013 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_VIEWS_COREWM_NATIVE_CURSOR_MANAGER_H_
      6 #define UI_VIEWS_COREWM_NATIVE_CURSOR_MANAGER_H_
      7 
      8 #include "base/strings/string16.h"
      9 #include "ui/views/corewm/native_cursor_manager_delegate.h"
     10 #include "ui/views/views_export.h"
     11 
     12 namespace gfx {
     13 class Display;
     14 }
     15 
     16 namespace views {
     17 namespace corewm {
     18 
     19 // Interface where platforms such as Ash or Desktop aura are notified of
     20 // requested changes to cursor state. When requested, implementer should tell
     21 // the CursorManager of any actual state changes performed through the
     22 // delegate.
     23 class VIEWS_EXPORT NativeCursorManager {
     24  public:
     25   virtual ~NativeCursorManager() {}
     26 
     27   // A request to set the screen DPI. Can cause changes in the current cursor.
     28   virtual void SetDisplay(
     29       const gfx::Display& display,
     30       views::corewm::NativeCursorManagerDelegate* delegate) = 0;
     31 
     32   // A request to set the cursor to |cursor|. At minimum, implementer should
     33   // call NativeCursorManagerDelegate::CommitCursor() with whatever cursor is
     34   // actually used.
     35   virtual void SetCursor(
     36       gfx::NativeCursor cursor,
     37       views::corewm::NativeCursorManagerDelegate* delegate) = 0;
     38 
     39   // A request to set the visibility of the cursor. At minimum, implementer
     40   // should call NativeCursorManagerDelegate::CommitVisibility() with whatever
     41   // the visibility is.
     42   virtual void SetVisibility(
     43     bool visible,
     44     views::corewm::NativeCursorManagerDelegate* delegate) = 0;
     45 
     46   // A request to set the scale of the cursor icon.
     47   virtual void SetScale(
     48       float scale,
     49       views::corewm::NativeCursorManagerDelegate* delegate) = 0;
     50 
     51   // A request to set whether mouse events are disabled. At minimum,
     52   // implementer should call NativeCursorManagerDelegate::
     53   // CommitMouseEventsEnabled() with whether mouse events are actually enabled.
     54   virtual void SetMouseEventsEnabled(
     55       bool enabled,
     56       views::corewm::NativeCursorManagerDelegate* delegate) = 0;
     57 };
     58 
     59 }  // namespace corewm
     60 }  // namespace views
     61 
     62 #endif  // UI_VIEWS_COREWM_NATIVE_CURSOR_MANAGER_H_
     63