Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / chrome / browser / ui / views / frame / opaque_browser_frame_view_layout_delegate.h
blobb3bcf886f7d39049ba967ccb96ea92d6e66da753
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.
5 #ifndef CHROME_BROWSER_UI_VIEWS_FRAME_OPAQUE_BROWSER_FRAME_VIEW_LAYOUT_DELEGATE_H_
6 #define CHROME_BROWSER_UI_VIEWS_FRAME_OPAQUE_BROWSER_FRAME_VIEW_LAYOUT_DELEGATE_H_
8 namespace gfx {
9 class Size;
12 // Delegate interface to control layout decisions without having to depend on
13 // Browser{,Frame,View}.
14 class OpaqueBrowserFrameViewLayoutDelegate {
15 public:
16 // Controls the visual placement of the window icon/title in non-tabstrip
17 // mode.
18 virtual bool ShouldShowWindowIcon() const = 0;
19 virtual bool ShouldShowWindowTitle() const = 0;
20 virtual base::string16 GetWindowTitle() const = 0;
22 // Returns the size of the window icon. This can be platform dependent
23 // because of differences in fonts, so its part of the interface.
24 virtual int GetIconSize() const = 0;
26 // Returns true if we should leave any offset at the frame caption. Typically
27 // when the frame is maximized/full screen we want to leave no offset at the
28 // top.
29 virtual bool ShouldLeaveOffsetNearTopBorder() const = 0;
31 // Returns the browser's minimum view size. Used because we need to calculate
32 // the minimum size for the entire non-client area.
33 virtual gfx::Size GetBrowserViewMinimumSize() const = 0;
35 // Whether we should show the (minimize,maximize,close) buttons. This can
36 // depend on the current state of the window (e.g., whether it is maximized).
37 virtual bool ShouldShowCaptionButtons() const = 0;
39 // Controls the visualization of the avatar
40 virtual bool ShouldShowAvatar() const = 0;
42 // Returns true if in guest mode or a non off the record session.
43 virtual bool IsRegularOrGuestSession() const = 0;
45 // We don't have a ThemeProvider in the layout manager, so plumb in the icon
46 // source here.
47 virtual gfx::ImageSkia GetOTRAvatarIcon() const = 0;
49 // Controls window state.
50 virtual bool IsMaximized() const = 0;
51 virtual bool IsMinimized() const = 0;
52 virtual bool IsFullscreen() const = 0;
54 virtual bool IsTabStripVisible() const = 0;
55 virtual int GetTabStripHeight() const = 0;
57 // Returns the tabstrips preferred size so the frame layout can work around
58 // it.
59 virtual gfx::Size GetTabstripPreferredSize() const = 0;
61 protected:
62 virtual ~OpaqueBrowserFrameViewLayoutDelegate() {}
65 #endif // CHROME_BROWSER_UI_VIEWS_FRAME_OPAQUE_BROWSER_FRAME_VIEW_LAYOUT_DELEGATE_H_