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