Update To 11.40.268.0
[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 OnDisplayAdded(const gfx::Display& new_display) override;
38   virtual void OnDisplayRemoved(const gfx::Display& old_display) override;
39   virtual void OnDisplayMetricsChanged(const gfx::Display& display,
40                                        uint32_t metrics) override;
41
42  private:
43   // Handlers of JS messages.
44   void HandleStart(const base::ListValue* args);
45   void HandleCommit(const base::ListValue* unused_args);
46   void HandleReset(const base::ListValue* unused_args);
47   void HandleCancel(const base::ListValue* unused_args);
48   void HandleMove(const base::ListValue* args);
49   void HandleResize(const base::ListValue* args);
50
51   scoped_ptr<OverscanCalibrator> overscan_calibrator_;
52
53   DISALLOW_COPY_AND_ASSIGN(DisplayOverscanHandler);
54 };
55
56 }  // namespace options
57 }  // namespace chromeos
58
59 #endif  // CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_DISPLAY_OVERSCAN_HANDLER_H_