| Index: chrome/browser/ui/panels/native_panel_stack.h
|
| diff --git a/chrome/browser/ui/panels/native_panel_stack.h b/chrome/browser/ui/panels/native_panel_stack.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..cf92e55060045336820fdd154c3358b3d09242ab
|
| --- /dev/null
|
| +++ b/chrome/browser/ui/panels/native_panel_stack.h
|
| @@ -0,0 +1,44 @@
|
| +// Copyright (c) 2012 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 CHROME_BROWSER_UI_PANELS_NATIVE_PANEL_STACK_H_
|
| +#define CHROME_BROWSER_UI_PANELS_NATIVE_PANEL_STACK_H_
|
| +
|
| +#include "base/memory/scoped_ptr.h"
|
| +
|
| +class Panel;
|
| +class StackedPanelCollection;
|
| +namespace gfx {
|
| +class Rect;
|
| +}
|
| +
|
| +// An interface that encapsulates the platform-specific behaviors that are
|
| +// needed to support multiple panels that are stacked together. A native
|
| +// window might be created to enclose all the panels in the stack. The lifetime
|
| +// of the class that implements this interface is managed by itself.
|
| +class NativePanelStack {
|
| + public:
|
| + // Creates and returns a NativePanelStack instance whose lifetime is managed
|
| + // by itself and it will be valid until Close is called. NativePanelStack
|
| + // also owns the StackedPanelCollection instance being passed here.
|
| + static NativePanelStack* Create(scoped_ptr<StackedPanelCollection> stack);
|
| +
|
| + virtual ~NativePanelStack() {}
|
| +
|
| + protected:
|
| + friend class StackedPanelCollection;
|
| +
|
| + // Called when the stack is to be closed. This will destruct the
|
| + // NativePanelStack instance which causes the StackedPanelCollection
|
| + // instance to be also destructed since the former owns the later.
|
| + virtual void Close() = 0;
|
| +
|
| + // Called when |panel| is being added to or removed from the stack.
|
| + virtual void OnPanelAddedOrRemoved(Panel* panel) = 0;
|
| +
|
| + // Sets the bounds that is big enough to enclose all panels in the stack.
|
| + virtual void SetBounds(const gfx::Rect& bounds) = 0;
|
| +};
|
| +
|
| +#endif // CHROME_BROWSER_UI_PANELS_NATIVE_PANEL_STACK_H_
|
|
|