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_ 60