1 // Copyright 2014 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 #ifndef MOJO_SERVICES_VIEW_MANAGER_SERVER_VIEW_DELEGATE_H_ 6 #define MOJO_SERVICES_VIEW_MANAGER_SERVER_VIEW_DELEGATE_H_ 7 8 #include "mojo/services/view_manager/view_manager_export.h" 9 10 namespace gfx { 11 class Rect; 12 } 13 14 namespace mojo { 15 namespace service { 16 17 class ServerView; 18 19 class MOJO_VIEW_MANAGER_EXPORT ServerViewDelegate { 20 public: 21 // Invoked at the end of the View's destructor (after it has been removed from 22 // the hierarchy). 23 virtual void OnViewDestroyed(const ServerView* view) = 0; 24 25 virtual void OnWillChangeViewHierarchy(const ServerView* view, 26 const ServerView* new_parent, 27 const ServerView* old_parent) = 0; 28 29 virtual void OnViewHierarchyChanged(const ServerView* view, 30 const ServerView* new_parent, 31 const ServerView* old_parent) = 0; 32 33 virtual void OnViewBoundsChanged(const ServerView* view, 34 const gfx::Rect& old_bounds, 35 const gfx::Rect& new_bounds) = 0; 36 37 virtual void OnViewSurfaceIdChanged(const ServerView* view) = 0; 38 39 virtual void OnWillChangeViewVisibility(const ServerView* view) = 0; 40 41 protected: ~ServerViewDelegate()42 virtual ~ServerViewDelegate() {} 43 }; 44 45 } // namespace service 46 } // namespace mojo 47 48 #endif // MOJO_SERVICES_VIEW_MANAGER_SERVER_VIEW_DELEGATE_H_ 49