top_container_view.h revision 868fa2fe829687343ffae624259930155e16dbd8
1// Copyright 2013 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 CHROME_BROWSER_UI_VIEWS_FRAME_TOP_CONTAINER_VIEW_H_
6#define CHROME_BROWSER_UI_VIEWS_FRAME_TOP_CONTAINER_VIEW_H_
7
8#include "base/basictypes.h"
9#include "base/compiler_specific.h"
10#include "ui/views/view.h"
11
12class BrowserView;
13
14// Container for the BrowserView's tab strip, toolbar, and sometimes bookmark
15// bar. In Chrome OS immersive fullscreen it stacks on top of other views in
16// order to slide in and out over the web contents. It informs the immersive
17// mode controller when its children lose focus to trigger a slide out.
18class TopContainerView : public views::View {
19 public:
20  explicit TopContainerView(BrowserView* browser_view);
21  virtual ~TopContainerView();
22
23  // views::View overrides:
24  virtual gfx::Size GetPreferredSize() OVERRIDE;
25  virtual const char* GetClassName() const OVERRIDE;
26  virtual void OnBoundsChanged(const gfx::Rect& bounds) OVERRIDE;
27  virtual void PaintChildren(gfx::Canvas* canvas) OVERRIDE;
28
29 private:
30  // The parent of this view. Not owned.
31  BrowserView* browser_view_;
32
33  DISALLOW_COPY_AND_ASSIGN(TopContainerView);
34};
35
36#endif  // CHROME_BROWSER_UI_VIEWS_FRAME_TOP_CONTAINER_VIEW_H_
37