// Copyright 2011 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef UI_VIEWS_LAYOUT_LAYOUT_MANAGER_H_ #define UI_VIEWS_LAYOUT_LAYOUT_MANAGER_H_ #include <vector> #include "base/memory/raw_ptr.h" #include "ui/views/layout/layout_types.h" #include "ui/views/views_export.h" namespace gfx { class Size; } namespace views { class View; // LayoutManager is used by View to accomplish the following: // // . Provides preferred sizing information, see GetPreferredSize() and // GetPreferredHeightForWidth(). // . To position and size (aka layout) the children of the associated View. See // Layout() for details. // // How a LayoutManager operates is specific to the LayoutManager. Non-trivial // LayoutManagers calculate preferred size and layout information using the // minimum and preferred size of the children of the View. That is, they // make use of View::GetMinimumSize(), View::CalculatePreferredSize() and/or // View::GetHeightForWidth(). class VIEWS_EXPORT LayoutManager { … }; } // namespace views #endif // UI_VIEWS_LAYOUT_LAYOUT_MANAGER_H_