// Copyright 2014 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. #ifndef CHROME_BROWSER_UI_WEBUI_CHROMEOS_TOUCH_VIEW_CONTROLLER_DELEGATE_H_ #define CHROME_BROWSER_UI_WEBUI_CHROMEOS_TOUCH_VIEW_CONTROLLER_DELEGATE_H_ #include "ash/shell_observer.h" #include "base/observer_list.h" namespace chromeos { // An interface for ash::MaximizeModeController. class TouchViewControllerDelegate : public ash::ShellObserver { public: // Observer that reports changes to the state of MaximizeModeController's // rotation lock. class Observer { public: // Invoked when maximize mode started/ended. virtual void OnMaximizeModeStarted() {} virtual void OnMaximizeModeEnded() {} protected: virtual ~Observer() {} }; TouchViewControllerDelegate(); ~TouchViewControllerDelegate() override; // Add/Remove observers. void AddObserver(Observer* observer); void RemoveObserver(Observer* observer); // Test if the Maximize Mode is enabled or not. bool IsMaximizeModeEnabled() const; private: // ash::ShellObserver implementation: void OnMaximizeModeStarted() override; void OnMaximizeModeEnded() override; // Mode state change observers. base::ObserverList observers_; DISALLOW_COPY_AND_ASSIGN(TouchViewControllerDelegate); }; } // namespace chromeos #endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_TOUCH_VIEW_CONTROLLER_DELEGATE_H_