// Copyright 2016 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "components/exo/wm_helper.h" #include "base/memory/ptr_util.h" namespace exo { namespace { WMHelper* g_instance = nullptr; } //////////////////////////////////////////////////////////////////////////////// // WMHelper, public: WMHelper::WMHelper() {} WMHelper::~WMHelper() {} // static void WMHelper::SetInstance(WMHelper* helper) { DCHECK_NE(!!helper, !!g_instance); g_instance = helper; } // static WMHelper* WMHelper::GetInstance() { DCHECK(g_instance); return g_instance; } void WMHelper::AddActivationObserver(ActivationObserver* observer) { activation_observers_.AddObserver(observer); } void WMHelper::RemoveActivationObserver(ActivationObserver* observer) { activation_observers_.RemoveObserver(observer); } void WMHelper::AddFocusObserver(FocusObserver* observer) { focus_observers_.AddObserver(observer); } void WMHelper::RemoveFocusObserver(FocusObserver* observer) { focus_observers_.RemoveObserver(observer); } void WMHelper::AddCursorObserver(CursorObserver* observer) { cursor_observers_.AddObserver(observer); } void WMHelper::RemoveCursorObserver(CursorObserver* observer) { cursor_observers_.RemoveObserver(observer); } void WMHelper::AddMaximizeModeObserver(MaximizeModeObserver* observer) { maximize_mode_observers_.AddObserver(observer); } void WMHelper::RemoveMaximizeModeObserver(MaximizeModeObserver* observer) { maximize_mode_observers_.RemoveObserver(observer); } void WMHelper::AddAccessibilityObserver(AccessibilityObserver* observer) { accessibility_observers_.AddObserver(observer); } void WMHelper::RemoveAccessibilityObserver(AccessibilityObserver* observer) { accessibility_observers_.RemoveObserver(observer); } void WMHelper::AddInputDeviceEventObserver(InputDeviceEventObserver* observer) { input_device_event_observers_.AddObserver(observer); } void WMHelper::RemoveInputDeviceEventObserver( InputDeviceEventObserver* observer) { input_device_event_observers_.RemoveObserver(observer); } void WMHelper::NotifyWindowActivated(aura::Window* gained_active, aura::Window* lost_active) { for (ActivationObserver& observer : activation_observers_) observer.OnWindowActivated(gained_active, lost_active); } void WMHelper::NotifyWindowFocused(aura::Window* gained_focus, aura::Window* lost_focus) { for (FocusObserver& observer : focus_observers_) observer.OnWindowFocused(gained_focus, lost_focus); } void WMHelper::NotifyCursorVisibilityChanged(bool is_visible) { for (CursorObserver& observer : cursor_observers_) observer.OnCursorVisibilityChanged(is_visible); } void WMHelper::NotifyCursorSetChanged(ui::CursorSetType cursor_set) { for (CursorObserver& observer : cursor_observers_) observer.OnCursorSetChanged(cursor_set); } void WMHelper::NotifyMaximizeModeStarted() { for (MaximizeModeObserver& observer : maximize_mode_observers_) observer.OnMaximizeModeStarted(); } void WMHelper::NotifyMaximizeModeEnding() { for (MaximizeModeObserver& observer : maximize_mode_observers_) observer.OnMaximizeModeEnding(); } void WMHelper::NotifyMaximizeModeEnded() { for (MaximizeModeObserver& observer : maximize_mode_observers_) observer.OnMaximizeModeEnded(); } void WMHelper::NotifyAccessibilityModeChanged() { for (AccessibilityObserver& observer : accessibility_observers_) observer.OnAccessibilityModeChanged(); } void WMHelper::NotifyKeyboardDeviceConfigurationChanged() { for (InputDeviceEventObserver& observer : input_device_event_observers_) observer.OnKeyboardDeviceConfigurationChanged(); } } // namespace exo