Home | History | Annotate | Download | only in frame
      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.
      4 
      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_
      7 
      8 namespace gfx {
      9 class Size;
     10 }
     11 
     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;
     21 
     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;
     25 
     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;
     30 
     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;
     34 
     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;
     38 
     39   // Controls the visualization of the avatar
     40   virtual bool ShouldShowAvatar() const = 0;
     41 
     42   // Returns true if in guest mode or a non off the record session.
     43   virtual bool IsRegularOrGuestSession() const = 0;
     44 
     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;
     48 
     49   // Controls window state.
     50   virtual bool IsMaximized() const = 0;
     51   virtual bool IsMinimized() const = 0;
     52   virtual bool IsFullscreen() const = 0;
     53 
     54   virtual bool IsTabStripVisible() const = 0;
     55   virtual int GetTabStripHeight() const = 0;
     56 
     57   // Returns the tabstrips preferred size so the frame layout can work around
     58   // it.
     59   virtual gfx::Size GetTabstripPreferredSize() const = 0;
     60 
     61  protected:
     62   virtual ~OpaqueBrowserFrameViewLayoutDelegate() {}
     63 };
     64 
     65 #endif  // CHROME_BROWSER_UI_VIEWS_FRAME_OPAQUE_BROWSER_FRAME_VIEW_LAYOUT_DELEGATE_H_
     66