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 UI_VIEWS_WIDGET_WIDGET_REMOVALS_OBSERVER_H_
6#define UI_VIEWS_WIDGET_WIDGET_REMOVALS_OBSERVER_H_
7
8#include "ui/views/views_export.h"
9
10namespace views {
11
12class Widget;
13class View;
14
15// |WidgetRemovalsObserver| complements |WidgetObserver| with additional
16// notifications. These include events occurring during tear down like view
17// removal. For this reason, it is recommended that subclasses not also inherit
18// from |View|.
19class VIEWS_EXPORT WidgetRemovalsObserver {
20 public:
21  // Called immediately before a descendant view of |widget| is removed.
22  virtual void OnWillRemoveView(Widget* widget, View* view) {}
23
24 protected:
25  virtual ~WidgetRemovalsObserver() {}
26};
27
28}  // namespace views
29
30#endif  // UI_VIEWS_WIDGET_WIDGET_REMOVALS_OBSERVER_H_
31