15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef ASH_SHELL_OBSERVER_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ASH_SHELL_OBSERVER_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ash/ash_export.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ash/system/user/login_status.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace aura { 121e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)class Window; 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ash { 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ASH_EXPORT ShellObserver { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Invoked after the screen's work area insets changes. 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnDisplayWorkAreaInsetsChanged() {} 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Invoked when the user logs in. 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnLoginStateChanged(user::LoginStatus status) {} 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Invoked when the application is exiting. 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnAppTerminating() {} 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Invoked when the screen is locked (after the lock window is visible) or 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // unlocked. 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnLockStateChanged(bool locked) {} 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 32a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // Invoked after a non-primary root window is created. 33a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual void OnRootWindowAdded(aura::Window* root_window) {} 34a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 350529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch // Invoked after the shelf has been created for |root_window|. 360529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch virtual void OnShelfCreatedForRootWindow(aura::Window* root_window) {} 370529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Invoked when the shelf alignment in |root_window| is changed. 391e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) virtual void OnShelfAlignmentChanged(aura::Window* root_window) {} 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 417dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch // Invoked when the projection touch HUD is toggled. 427dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch virtual void OnTouchHudProjectionToggled(bool enabled) {} 437dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 444e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) // Invoked when entering or exiting fullscreen mode in |root_window|. 454e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) virtual void OnFullscreenStateChanged(bool is_fullscreen, 461e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) aura::Window* root_window) {} 474e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 48a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // Called when the overview mode is about to be started (before the windows 49a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // get re-arranged). 50a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual void OnOverviewModeStarting() {} 51a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 52a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // Called before the overview mode is ending (before the windows get arranged 53a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // to their final position). 54a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual void OnOverviewModeEnding() {} 55a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 56a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // Called when the always maximize mode has started. Windows might still 57a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // animate though. 58a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual void OnMaximizeModeStarted() {} 59a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 60a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // Called when the always maximize mode has ended. Windows may still be 61a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // animating but have been restored. 62a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual void OnMaximizeModeEnded() {} 63a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) protected: 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~ShellObserver() {} 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace ash 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // ASH_SHELL_OBSERVER_H_ 71