14e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 24e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 34e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// found in the LICENSE file. 44e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 54e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#ifndef ASH_AUTOCLICK_AUTOCLICK_CONTROLLER_H 64e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#define ASH_AUTOCLICK_AUTOCLICK_CONTROLLER_H 74e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 88bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)#include "ash/ash_export.h" 98bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)namespace ash { 114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Controls the autoclick a11y feature in ash. 134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// If enabled, we will automatically send a click event a short time after 144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// the mouse had been at rest. 158bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)class ASH_EXPORT AutoclickController { 164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) public: 174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) virtual ~AutoclickController() {} 184e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) // Set whether autoclicking is enabled. 204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) virtual void SetEnabled(bool enabled) = 0; 214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) // Returns true if autoclicking is enabled. 234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) virtual bool IsEnabled() const = 0; 244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 258bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) // Set the time to wait in milliseconds from when the mouse stops moving 268bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) // to when the autoclick event is sent. 278bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) virtual void SetAutoclickDelay(int delay_ms) = 0; 284e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 298bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) // Returns the autoclick delay in milliseconds. 308bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) virtual int GetAutoclickDelay() const = 0; 314e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 324e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) static AutoclickController* CreateInstance(); 334e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 348bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) // The default wait time between last mouse movement and sending 358bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) // the autoclick. 368bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) static const int kDefaultAutoclickDelayMs; 378bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 384e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) protected: 394e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) AutoclickController() {} 404e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)}; 414e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 424e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} // namespace ash 434e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 444e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#endif // ASH_AUTOCLICK_AUTOCLICK_CONTROLLER_H 45