// Copyright 2015 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_UI_VIEWS_TABS_TAB_STRIP_LAYOUT_H_ #define CHROME_BROWSER_UI_VIEWS_TABS_TAB_STRIP_LAYOUT_H_ #include <optional> #include <vector> #include "chrome/browser/ui/views/tabs/tab_strip_layout_types.h" #include "chrome/browser/ui/views/tabs/tab_width_constraints.h" namespace gfx { class Rect; } // Determines the size of each tab given information on the overall amount // of space available relative to how much the tabs could use. class TabSizer { … }; // Contains the information needed to freeze the width of each tab. struct TabWidthOverride { … }; // Calculates and returns the bounds of the tabs. |width| is the available // width to use for tab layout. This never sizes the tabs smaller then the // minimum widths in TabSizeInfo, and as a result the calculated bounds may go // beyond |width|. std::vector<gfx::Rect> CalculateTabBounds( const TabLayoutConstants& layout_constants, const std::vector<TabWidthConstraints>& tabs, std::optional<int> width); #endif // CHROME_BROWSER_UI_VIEWS_TABS_TAB_STRIP_LAYOUT_H_