1// Copyright (c) 2012 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 CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_POINTER_HANDLER_H_
6#define CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_POINTER_HANDLER_H_
7
8#include "base/compiler_specific.h"
9#include "base/memory/weak_ptr.h"
10#include "base/prefs/pref_member.h"
11#include "chrome/browser/chromeos/system/pointer_device_observer.h"
12#include "chrome/browser/ui/webui/options/options_ui.h"
13
14namespace chromeos {
15namespace options {
16
17// Pointer settings overlay page UI handler.
18class PointerHandler
19    : public ::options::OptionsPageUIHandler,
20      public chromeos::system::PointerDeviceObserver::Observer {
21 public:
22  PointerHandler();
23  virtual ~PointerHandler();
24
25  // OptionsPageUIHandler implementation.
26  virtual void GetLocalizedValues(DictionaryValue* localized_strings) OVERRIDE;
27
28 private:
29  // PointerDeviceObserver implementation.
30  virtual void TouchpadExists(bool exists) OVERRIDE;
31  virtual void MouseExists(bool exists) OVERRIDE;
32
33  // Set the title dynamically based on whether a touchpad and/or mouse is
34  // detected.
35  void UpdateTitle();
36
37  bool has_touchpad_;
38  bool has_mouse_;
39
40  DISALLOW_COPY_AND_ASSIGN(PointerHandler);
41};
42
43}  // namespace options
44}  // namespace chromeos
45
46#endif  // CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_POINTER_HANDLER_H_
47