- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / webui / options / chromeos / display_overscan_handler.h
1 // Copyright (c) 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 CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_DISPLAY_OVERSCAN_HANDLER_H_
6 #define CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_DISPLAY_OVERSCAN_HANDLER_H_
7
8 #include "base/memory/scoped_ptr.h"
9 #include "chrome/browser/ui/webui/options/options_ui.h"
10 #include "ui/gfx/display_observer.h"
11
12 namespace base {
13 class DictionaryValue;
14 class ListValue;
15 }
16
17 namespace chromeos {
18 class OverscanCalibrator;
19
20 namespace options {
21
22 // Display options overlay page UI handler.
23 class DisplayOverscanHandler : public ::options::OptionsPageUIHandler,
24                                public gfx::DisplayObserver {
25  public:
26   DisplayOverscanHandler();
27   virtual ~DisplayOverscanHandler();
28
29   // OptionsPageUIHandler implementation.
30   virtual void GetLocalizedValues(
31       base::DictionaryValue* localized_strings) OVERRIDE;
32
33   // WebUIMessageHandler implementation.
34   virtual void RegisterMessages() OVERRIDE;
35
36   // gfx::DisplayObserver implementation.
37   virtual void OnDisplayBoundsChanged(const gfx::Display& display) OVERRIDE;
38   virtual void OnDisplayAdded(const gfx::Display& new_display) OVERRIDE;
39   virtual void OnDisplayRemoved(const gfx::Display& old_display) OVERRIDE;
40
41  private:
42   // Handlers of JS messages.
43   void HandleStart(const base::ListValue* args);
44   void HandleCommit(const base::ListValue* unused_args);
45   void HandleReset(const base::ListValue* unused_args);
46   void HandleCancel(const base::ListValue* unused_args);
47   void HandleMove(const base::ListValue* args);
48   void HandleResize(const base::ListValue* args);
49
50   scoped_ptr<OverscanCalibrator> overscan_calibrator_;
51
52   DISALLOW_COPY_AND_ASSIGN(DisplayOverscanHandler);
53 };
54
55 }  // namespace options
56 }  // namespace chromeos
57
58 #endif  // CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_DISPLAY_OVERSCAN_HANDLER_H_