1868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
2868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// found in the LICENSE file.
4868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
5868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#ifndef CHROME_BROWSER_CHROMEOS_SYSTEM_DEVICE_CHANGE_HANDLER_H_
6868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#define CHROME_BROWSER_CHROMEOS_SYSTEM_DEVICE_CHANGE_HANDLER_H_
7868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
8868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/memory/scoped_ptr.h"
9868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "chrome/browser/chromeos/system/pointer_device_observer.h"
10868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
11868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)namespace chromeos {
12868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)namespace system {
13868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
14868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// Observes changes in device hierarchy. When a new touchpad/mouse is attached,
155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// applies the last used touchpad/mouse settings to the system.
16868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)class DeviceChangeHandler : public PointerDeviceObserver::Observer {
17868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) public:
18868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  DeviceChangeHandler();
19868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  virtual ~DeviceChangeHandler();
20868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
21868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) private:
22868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  // PointerDeviceObserver::Observer implementation.
23868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  virtual void TouchpadExists(bool exists) OVERRIDE;
24868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  virtual void MouseExists(bool exists) OVERRIDE;
25868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
26868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  scoped_ptr<PointerDeviceObserver> pointer_device_observer_;
27868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)};
28868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
29868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)}  // namespace system
305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}  // namespace chromeos
31868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
32868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
33868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#endif  // CHROME_BROWSER_CHROMEOS_SYSTEM_DEVICE_CHANGE_HANDLER_H_
34