// 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 CHROME_BROWSER_CHROMEOS_FRAME_DOM_BROWSER_VIEW_LAYOUT_H_
#define CHROME_BROWSER_CHROMEOS_FRAME_DOM_BROWSER_VIEW_LAYOUT_H_
#pragma once
#include "base/compiler_specific.h"
#include "chrome/browser/chromeos/frame/dom_browser_view.h"
#include "chrome/browser/chromeos/status/status_area_host.h"
#include "chrome/browser/ui/views/frame/browser_view_layout.h"
namespace chromeos {
class DOMBrowserView;
class StatusAreaView;
// LayoutManager for DOMBrowserView, which lays out the StatusAreaView in the
// top corner and ommits the other elements that have been removed from the
// view. There is a bar accross the top of the screen which is clearly divided
// from the rest of the screen. The far left side will eventually have Add User
// button in it.
//
// |-------------------------------------------------------|
// |[ Future Add User button] [Status Area View]| <-- DOMBrowserView
// |-------------------------------------------------------|
// | |
// | |
// | DOM screen |
// | |
// | |
// | |
// |-------------------------------------------------------|
// | |
// | |
// | Touch Keyboard |
// | |
// | |
// |-------------------------------------------------------|
class DOMBrowserViewLayout : public ::BrowserViewLayout {
public:
DOMBrowserViewLayout();
virtual ~DOMBrowserViewLayout();
// BrowserViewLayout overrides:
virtual void Installed(views::View* host) OVERRIDE;
virtual void ViewAdded(views::View* host,
views::View* view) OVERRIDE;
virtual bool IsPositionInWindowCaption(const gfx::Point& point) OVERRIDE;
virtual int NonClientHitTest(const gfx::Point& point) OVERRIDE;
protected:
// BrowserViewLayout overrides:
virtual int LayoutTabStrip() OVERRIDE;
virtual int LayoutToolbar(int top) OVERRIDE;
virtual int LayoutBookmarkAndInfoBars(int top) OVERRIDE;
private:
const DOMBrowserView* GetDOMBrowserView();
StatusAreaView* status_area_;
// Tests if the point is on one of views that are within the
// considered title bar area of client view.
bool IsPointInViewsInTitleArea(const gfx::Point& point) const;
// Lays out tabstrip and status area in the title bar area (given by
// |bounds|).
int LayoutTitlebarComponents(const gfx::Rect& bounds);
DISALLOW_COPY_AND_ASSIGN(DOMBrowserViewLayout);
};
} // namespace chromeos
#endif // CHROME_BROWSER_CHROMEOS_FRAME_DOM_BROWSER_VIEW_LAYOUT_H_