• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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:
~AutoclickController()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:
AutoclickController()39   AutoclickController() {}
40 };
41 
42 }  // namespace ash
43 
44 #endif  // ASH_AUTOCLICK_AUTOCLICK_CONTROLLER_H
45