Home | History | Annotate | Download | only in autoclick
      1 // Copyright 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 ASH_AUTOCLICK_AUTOCLICK_CONTROLLER_H
      6 #define ASH_AUTOCLICK_AUTOCLICK_CONTROLLER_H
      7 
      8 #include "ash/ash_export.h"
      9 
     10 namespace ash {
     11 
     12 // Controls the autoclick a11y feature in ash.
     13 // If enabled, we will automatically send a click event a short time after
     14 // the mouse had been at rest.
     15 class ASH_EXPORT AutoclickController {
     16  public:
     17   virtual ~AutoclickController() {}
     18 
     19   // Set whether autoclicking is enabled.
     20   virtual void SetEnabled(bool enabled) = 0;
     21 
     22   // Returns true if autoclicking is enabled.
     23   virtual bool IsEnabled() const = 0;
     24 
     25   // Set the time to wait in milliseconds from when the mouse stops moving
     26   // to when the autoclick event is sent.
     27   virtual void SetAutoclickDelay(int delay_ms) = 0;
     28 
     29   // Returns the autoclick delay in milliseconds.
     30   virtual int GetAutoclickDelay() const = 0;
     31 
     32   static AutoclickController* CreateInstance();
     33 
     34   // The default wait time between last mouse movement and sending
     35   // the autoclick.
     36   static const int kDefaultAutoclickDelayMs;
     37 
     38  protected:
     39   AutoclickController() {}
     40 };
     41 
     42 }  // namespace ash
     43 
     44 #endif  // ASH_AUTOCLICK_AUTOCLICK_CONTROLLER_H
     45