// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef UI_VIEWS_WIDGET_UNIQUE_WIDGET_PTR_H_ #define UI_VIEWS_WIDGET_UNIQUE_WIDGET_PTR_H_ #include <memory> #include "base/scoped_observation.h" #include "ui/views/views_export.h" #include "ui/views/widget/widget.h" #include "ui/views/widget/widget_observer.h" namespace views { // A weak owning pointer to a Widget. // This smart pointer acts like a unique_ptr: it ensures the Widget is // properly closed when it goes out of scope. // It also acts like a WeakPtr: the Widget may be deleted by its native // widget and `get()` becomes nullptr when this happens. // Caller may check the validity of this pointer before dereferencing it if // the widget lifetime is in doubt. class VIEWS_EXPORT UniqueWidgetPtr { … }; } // namespace views #endif // UI_VIEWS_WIDGET_UNIQUE_WIDGET_PTR_H_