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 #include "ash/high_contrast/high_contrast_controller.h" 6 7 #include "ash/shell.h" 8 #include "ui/aura/root_window.h" 9 #include "ui/compositor/layer.h" 10 11 namespace ash { 12 HighContrastController()13HighContrastController::HighContrastController() 14 : enabled_(false) { 15 } 16 SetEnabled(bool enabled)17void HighContrastController::SetEnabled(bool enabled) { 18 enabled_ = enabled; 19 20 // Update all active displays. 21 aura::Window::Windows root_window_list = Shell::GetAllRootWindows(); 22 for (aura::Window::Windows::iterator it = root_window_list.begin(); 23 it != root_window_list.end(); it++) { 24 UpdateDisplay(*it); 25 } 26 } 27 OnRootWindowAdded(aura::Window * root_window)28void HighContrastController::OnRootWindowAdded(aura::Window* root_window) { 29 UpdateDisplay(root_window); 30 } 31 UpdateDisplay(aura::Window * root_window)32void HighContrastController::UpdateDisplay(aura::Window* root_window) { 33 root_window->layer()->SetLayerInverted(enabled_); 34 } 35 36 } // namespace ash 37