Chromium Code Reviews| Index: chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.h |
| diff --git a/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.h b/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.h |
| index 163baf736c5b17edbd84b5a10c4ae06382d86cb4..520a61a3de07eafd1fdcf03cb23f0cadd9213d81 100644 |
| --- a/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.h |
| +++ b/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.h |
| @@ -21,6 +21,12 @@ class Label; |
| // dependencies with Browser and classes that depend on Browser. |
| class OpaqueBrowserFrameViewLayout : public views::LayoutManager { |
| public: |
| + enum ButtonID { |
| + BUTTON_MINIMIZE, |
| + BUTTON_MAXIMIZE, |
| + BUTTON_CLOSE |
| + }; |
| + |
| explicit OpaqueBrowserFrameViewLayout( |
| OpaqueBrowserFrameViewLayoutDelegate* delegate); |
| virtual ~OpaqueBrowserFrameViewLayout(); |
| @@ -32,9 +38,6 @@ class OpaqueBrowserFrameViewLayout : public views::LayoutManager { |
| gfx::Rect GetBoundsForTabStrip( |
| const gfx::Size& tabstrip_preferred_size, |
| int available_width) const; |
| - gfx::Rect GetBoundsForTabStripAndAvatarArea( |
| - const gfx::Size& tabstrip_preferred_size, |
| - int available_width) const; |
| gfx::Size GetMinimumSize(int available_width) const; |
| @@ -78,11 +81,28 @@ class OpaqueBrowserFrameViewLayout : public views::LayoutManager { |
| const gfx::Rect& client_view_bounds() const { return client_view_bounds_; } |
| private: |
| + // Whether a specific button should be inserted on the left or right side. |
| + enum ButtonAlignment { |
| + ALIGN_LEFT, |
|
sky
2013/09/05 15:54:32
leading/trailing are a bit better since left/right
|
| + ALIGN_RIGHT |
| + }; |
| + |
| // Layout various sub-components of this view. |
| void LayoutWindowControls(views::View* host); |
| - void LayoutTitleBar(); |
| + void LayoutTitleBar(views::View* host); |
| void LayoutAvatar(); |
| + void ConfigureButton(views::View* host, |
| + ButtonID button_id, |
| + ButtonAlignment align, |
| + int caption_y); |
| + |
| + // Adds a window caption button to either the left or right side. |
| + void SetBoundsForButton(views::View* host, |
| + views::ImageButton* button, |
| + ButtonAlignment align, |
| + int caption_y); |
| + |
| // Internal implementation of ViewAdded() and ViewRemoved(). |
| void SetView(int id, views::View* view); |
| @@ -100,6 +120,23 @@ class OpaqueBrowserFrameViewLayout : public views::LayoutManager { |
| // The bounds of the ClientView. |
| gfx::Rect client_view_bounds_; |
| + // The layout of the window icon, if visible. |
| + gfx::Rect window_icon_bounds_; |
| + |
| + // How far from the left/right edge of the view the next window control |
| + // should be placed. |
| + int left_button_start_; |
|
sky
2013/09/05 15:54:32
Same comment about left/right here.
|
| + int right_button_start_; |
| + |
| + // The size of the window buttons, and the avatar menu item (if any). This |
| + // does not count labels or other elements that should be counted in a |
| + // minimal frame. |
| + int minimum_size_for_buttons_; |
| + |
| + // Whether any of the window control buttons were packed on the left. |
| + bool has_left_buttons_; |
| + bool has_right_buttons_; |
| + |
| // Window controls. |
| views::ImageButton* minimize_button_; |
| views::ImageButton* maximize_button_; |