Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / webui / options / chromeos / display_options_handler.h
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_DISPLAY_OPTIONS_HANDLER_H_
6 #define CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_DISPLAY_OPTIONS_HANDLER_H_
7
8 #include <vector>
9
10 #include "ash/display/display_controller.h"
11 #include "chrome/browser/ui/webui/options/options_ui.h"
12
13 namespace base {
14 class DictionaryValue;
15 class ListValue;
16 }
17
18 namespace chromeos {
19 namespace options {
20
21 // Display options overlay page UI handler.
22 class DisplayOptionsHandler : public ::options::OptionsPageUIHandler,
23                               public ash::DisplayController::Observer {
24  public:
25   DisplayOptionsHandler();
26   virtual ~DisplayOptionsHandler();
27
28   // OptionsPageUIHandler implementation.
29   virtual void GetLocalizedValues(
30       base::DictionaryValue* localized_strings) OVERRIDE;
31   virtual void InitializePage() OVERRIDE;
32
33   // WebUIMessageHandler implementation.
34   virtual void RegisterMessages() OVERRIDE;
35
36   // ash::DisplayController::Observer implementation.
37   virtual void OnDisplayConfigurationChanging() OVERRIDE;
38   virtual void OnDisplayConfigurationChanged() OVERRIDE;
39
40  private:
41   // Sends all of the current display information to the web_ui of options page.
42   void SendAllDisplayInfo();
43
44   // Sends the specified display information to the web_ui of options page.
45   void SendDisplayInfo(const std::vector<gfx::Display>& displays);
46
47   // Called when the fade-out animation for mirroring status change is finished.
48   void OnFadeOutForMirroringFinished(bool is_mirroring);
49
50   // Called when the fade-out animation for secondary display layout change is
51   // finished.  |layout| specifies the four positions of the secondary display
52   // (left/right/top/bottom), and |offset| is the offset length from the
53   // left/top edge of the primary display.
54   void OnFadeOutForDisplayLayoutFinished(int layout, int offset);
55
56   // Handlers of JS messages.
57   void HandleDisplayInfo(const base::ListValue* unused_args);
58   void HandleMirroring(const base::ListValue* args);
59   void HandleSetPrimary(const base::ListValue* args);
60   void HandleDisplayLayout(const base::ListValue* args);
61   void HandleSetDisplayMode(const base::ListValue* args);
62   void HandleSetOrientation(const base::ListValue* args);
63   void HandleSetColorProfile(const base::ListValue* args);
64
65   DISALLOW_COPY_AND_ASSIGN(DisplayOptionsHandler);
66 };
67
68 }  // namespace options
69 }  // namespace chromeos
70
71 #endif  // CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_DISPLAY_OPTIONS_HANDLER_H_