1 // Copyright (c) 2011 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_CHROMEOS_FRAME_DOM_BROWSER_VIEW_LAYOUT_H_ 6 #define CHROME_BROWSER_CHROMEOS_FRAME_DOM_BROWSER_VIEW_LAYOUT_H_ 7 #pragma once 8 9 #include "base/compiler_specific.h" 10 #include "chrome/browser/chromeos/frame/dom_browser_view.h" 11 #include "chrome/browser/chromeos/status/status_area_host.h" 12 #include "chrome/browser/ui/views/frame/browser_view_layout.h" 13 14 namespace chromeos { 15 16 class DOMBrowserView; 17 class StatusAreaView; 18 19 // LayoutManager for DOMBrowserView, which lays out the StatusAreaView in the 20 // top corner and ommits the other elements that have been removed from the 21 // view. There is a bar accross the top of the screen which is clearly divided 22 // from the rest of the screen. The far left side will eventually have Add User 23 // button in it. 24 // 25 // |-------------------------------------------------------| 26 // |[ Future Add User button] [Status Area View]| <-- DOMBrowserView 27 // |-------------------------------------------------------| 28 // | | 29 // | | 30 // | DOM screen | 31 // | | 32 // | | 33 // | | 34 // |-------------------------------------------------------| 35 // | | 36 // | | 37 // | Touch Keyboard | 38 // | | 39 // | | 40 // |-------------------------------------------------------| 41 42 class DOMBrowserViewLayout : public ::BrowserViewLayout { 43 public: 44 DOMBrowserViewLayout(); 45 virtual ~DOMBrowserViewLayout(); 46 47 // BrowserViewLayout overrides: 48 virtual void Installed(views::View* host) OVERRIDE; 49 virtual void ViewAdded(views::View* host, 50 views::View* view) OVERRIDE; 51 virtual bool IsPositionInWindowCaption(const gfx::Point& point) OVERRIDE; 52 virtual int NonClientHitTest(const gfx::Point& point) OVERRIDE; 53 54 protected: 55 // BrowserViewLayout overrides: 56 virtual int LayoutTabStrip() OVERRIDE; 57 virtual int LayoutToolbar(int top) OVERRIDE; 58 virtual int LayoutBookmarkAndInfoBars(int top) OVERRIDE; 59 60 private: 61 const DOMBrowserView* GetDOMBrowserView(); 62 StatusAreaView* status_area_; 63 64 // Tests if the point is on one of views that are within the 65 // considered title bar area of client view. 66 bool IsPointInViewsInTitleArea(const gfx::Point& point) const; 67 68 // Lays out tabstrip and status area in the title bar area (given by 69 // |bounds|). 70 int LayoutTitlebarComponents(const gfx::Rect& bounds); 71 72 DISALLOW_COPY_AND_ASSIGN(DOMBrowserViewLayout); 73 }; 74 75 } // namespace chromeos 76 77 #endif // CHROME_BROWSER_CHROMEOS_FRAME_DOM_BROWSER_VIEW_LAYOUT_H_ 78