| Index: chrome/browser/chromeos/webui/login/browser/dom_browser_view_layout.cc
|
| diff --git a/chrome/browser/chromeos/webui/login/browser/dom_browser_view_layout.cc b/chrome/browser/chromeos/webui/login/browser/dom_browser_view_layout.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c525302e4fd367cf35ff1018d1db9e6c48b98429
|
| --- /dev/null
|
| +++ b/chrome/browser/chromeos/webui/login/browser/dom_browser_view_layout.cc
|
| @@ -0,0 +1,97 @@
|
| +// 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.
|
| +
|
| +#include "chrome/browser/chromeos/webui/login/browser/dom_browser_view_layout.h"
|
| +
|
| +#include <algorithm>
|
| +
|
| +#include "chrome/browser/chromeos/status/status_area_view.h"
|
| +#include "chrome/browser/chromeos/view_ids.h"
|
| +#include "views/window/hit_test.h"
|
| +
|
| +namespace chromeos {
|
| +
|
| +// DOMBrowserViewLayout public: ------------------------------------------------
|
| +
|
| +DOMBrowserViewLayout::DOMBrowserViewLayout() : ::BrowserViewLayout() {}
|
| +
|
| +DOMBrowserViewLayout::~DOMBrowserViewLayout() {}
|
| +
|
| +// DOMBrowserViewLayout, ::DOMBrowserViewLayout overrides: ---------------------
|
| +
|
| +void DOMBrowserViewLayout::Installed(views::View* host) {
|
| + status_area_ = NULL;
|
| + ::BrowserViewLayout::Installed(host);
|
| +}
|
| +
|
| +void DOMBrowserViewLayout::ViewAdded(views::View* host,
|
| + views::View* view) {
|
| + ::BrowserViewLayout::ViewAdded(host, view);
|
| + switch (view->GetID()) {
|
| + case VIEW_ID_STATUS_AREA:
|
| + status_area_ = static_cast<chromeos::StatusAreaView*>(view);
|
| + break;
|
| + }
|
| +}
|
| +
|
| +int DOMBrowserViewLayout::LayoutTabStrip() {
|
| + status_area_->SetVisible(true);
|
| + gfx::Size status_size = status_area_->GetPreferredSize();
|
| + status_area_->SetBounds(vertical_layout_rect_.width() - status_size.width(),
|
| + 0,
|
| + vertical_layout_rect_.width(),
|
| + status_size.height());
|
| +
|
| + return status_size.height();
|
| +}
|
| +
|
| +int DOMBrowserViewLayout::LayoutToolbar(int top) {
|
| + return top;
|
| +}
|
| +
|
| +int DOMBrowserViewLayout::LayoutBookmarkAndInfoBars(int top) {
|
| + return top;
|
| +}
|
| +
|
| +bool DOMBrowserViewLayout::IsPositionInWindowCaption(const gfx::Point& point) {
|
| + return false;
|
| +}
|
| +
|
| +int DOMBrowserViewLayout::NonClientHitTest(const gfx::Point& point) {
|
| + views::View* parent = browser_view_->parent();
|
| + gfx::Point point_in_browser_view_coords(point);
|
| + views::View::ConvertPointToView(
|
| + parent, browser_view_, &point_in_browser_view_coords);
|
| + gfx::Rect bv_bounds = browser_view_->bounds();
|
| + if (bv_bounds.Contains(point))
|
| + return HTCLIENT;
|
| + // If the point is somewhere else, delegate to the default implementation.
|
| + return browser_view_->views::ClientView::NonClientHitTest(point);
|
| +}
|
| +
|
| +// DOMBrowserViewLayout private: -----------------------------------------------
|
| +
|
| +bool DOMBrowserViewLayout::IsPointInViewsInTitleArea(const gfx::Point& point)
|
| + const {
|
| + gfx::Point point_in_status_area_coords(point);
|
| + views::View::ConvertPointToView(browser_view_, status_area_,
|
| + &point_in_status_area_coords);
|
| + return status_area_->HitTest(point_in_status_area_coords);
|
| +}
|
| +
|
| +int DOMBrowserViewLayout::LayoutTitlebarComponents(const gfx::Rect& bounds) {
|
| + status_area_->SetVisible(true);
|
| + gfx::Size status_size = status_area_->GetPreferredSize();
|
| + status_area_->SetBounds(bounds.right() - status_size.width(),
|
| + bounds.y(),
|
| + status_size.width(),
|
| + status_size.height());
|
| + return status_size.height();
|
| +}
|
| +
|
| +const DOMBrowserView* DOMBrowserViewLayout::GetDOMBrowserView() {
|
| + return static_cast<DOMBrowserView*>(browser_view_);
|
| +}
|
| +
|
| +} // namespace chromeos
|
|
|