// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef VIEWS_CONTROLS_TABBED_PANE_TABBED_PANE_LISTENER_H_
#define VIEWS_CONTROLS_TABBED_PANE_TABBED_PANE_LISTENER_H_
#pragma once

namespace views {

// An interface implemented by an object to let it know that a tabbed pane was
// selected by the user at the specified index.
class TabbedPaneListener {
 public:
  // Called when the tab at |index| is selected by the user.
  virtual void TabSelectedAt(int index) = 0;
};

}  // namespace views

#endif  // VIEWS_CONTROLS_TABBED_PANE_TABBED_PANE_LISTENER_H_

// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef VIEWS_CONTROLS_TABBED_PANE_TABBED_PANE_LISTENER_H_
#define VIEWS_CONTROLS_TABBED_PANE_TABBED_PANE_LISTENER_H_
#pragma once

namespace views {

// An interface implemented by an object to let it know that a tabbed pane was
// selected by the user at the specified index.
class TabbedPaneListener {
 public:
  // Called when the tab at |index| is selected by the user.
  virtual void TabSelectedAt(int index) = 0;

 protected:
  virtual ~TabbedPaneListener() {}
};

}  // namespace views

#endif  // VIEWS_CONTROLS_TABBED_PANE_TABBED_PANE_LISTENER_H_

Add protected virtual destructor to TabbedPaneListener.
views: Add protected virtual destructor to TabbedPaneListener.

The use of a protected virtual destructor is to prevent the destruction of a
derived object via a base-class pointer.

That's it, TabbedPaneListenere should only be deleted through derived class.

Example:

class FooListener {
 public:
  ...

 protected:
  virtual ~FooListener() {}
};

class Foo : public FooListener {
};

FooListener* listener = new Foo;
delete listener;  // It should prevent this situation!

R=sky@chromium.org

Review URL: http://codereview.chromium.org/8028030

git-svn-id: de016e52bd170d2d4f2344f9bf92d50478b649e0@102916 0039d316-1c4b-4281-b951-d872f2087c98
