[Ozone-Drm] Add support for async content protection
[chromium-blink-merge.git] / ash / high_contrast / high_contrast_controller.cc
blob418dd7162c1768bcd4b66a478039e4d6611b8bee
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.
5 #include "ash/high_contrast/high_contrast_controller.h"
7 #include "ash/shell.h"
8 #include "ui/aura/window_event_dispatcher.h"
9 #include "ui/compositor/layer.h"
11 namespace ash {
13 HighContrastController::HighContrastController()
14 : enabled_(false) {
15 Shell::GetInstance()->AddShellObserver(this);
18 HighContrastController::~HighContrastController() {
19 Shell::GetInstance()->RemoveShellObserver(this);
22 void HighContrastController::SetEnabled(bool enabled) {
23 enabled_ = enabled;
25 // Update all active displays.
26 aura::Window::Windows root_window_list = Shell::GetAllRootWindows();
27 for (aura::Window::Windows::iterator it = root_window_list.begin();
28 it != root_window_list.end(); it++) {
29 UpdateDisplay(*it);
33 void HighContrastController::UpdateDisplay(aura::Window* root_window) {
34 root_window->layer()->SetLayerInverted(enabled_);
37 void HighContrastController::OnRootWindowAdded(aura::Window* root_window) {
38 UpdateDisplay(root_window);
41 } // namespace ash