1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file. 4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "ui/views/widget/widget_deletion_observer.h" 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "ui/views/widget/widget.h" 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace views { 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)WidgetDeletionObserver::WidgetDeletionObserver(Widget* widget) 12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) : widget_(widget) { 13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (widget_) 14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) widget_->AddObserver(this); 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)WidgetDeletionObserver::~WidgetDeletionObserver() { 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) CleanupWidget(); 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void WidgetDeletionObserver::OnWidgetDestroying(Widget* widget) { 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) CleanupWidget(); 23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void WidgetDeletionObserver::CleanupWidget() { 26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (widget_) { 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) widget_->RemoveObserver(this); 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) widget_ = NULL; 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} // namespace views 33