/** Copyright 2020 Haiku, Inc. All rights reserved.* Distributed under the terms of the MIT License.** Authors:* Niels Sascha Reedijk, niels.reedijk@gmail.com** Reviewers:* Adrien Destugues, pulkomandy@pulkomandy.tk** Corresponds to:* headers/os/interface/LayoutBuilder.h rev 49977*//*!\class BLayoutBuilder::Cards<>\ingroup layout\ingroup libbe\brief BLayoutBuilder::Base subclass for building BCardLayouts.\since Haiku R1The BCardLayout class is a simple BLayout subclass that arranges theitems as a stack of cards with only one card being on top and visible tothe user.For a detailed view on the properties, see the \link BCardLayout classdescription\endlink.*//*!\typedef BLayoutBuilder::Cards<ParentBuilder>::ThisBuilder\copydoc BLayoutBuilder::Group<ParentBuilder>::ThisBuilder*//*!\typedef BLayoutBuilder::Cards<ParentBuilder>::GroupBuilder\copydoc BLayoutBuilder::Group<ParentBuilder>::GroupBuilder*//*!\typedef BLayoutBuilder::Cards<ParentBuilder>::GridBuilder\copydoc BLayoutBuilder::Group<ParentBuilder>::GridBuilder*//*!\typedef BLayoutBuilder::Cards<ParentBuilder>::SplitBuilder\copydoc BLayoutBuilder::Group<ParentBuilder>::SplitBuilder*//*!\typedef BLayoutBuilder::Cards<ThisBuilder>::CardBuilder\copydoc BLayoutBuilder::Group<ThisBuilder>::CardBuilder*//*!\name Constructors*///! @{/*!\fn BLayoutBuilder::Cards<ParentBuilder>::Cards()\brief Creates a builder for BCardLayout.\since Haiku R1*//*!\fn BLayoutBuilder::Cards<ParentBuilder>::Cards(BWindow* window)\brief Creates a new builder for BCardLayout, and attaches it to a\a window.\since Haiku R1*//*!\fn BLayoutBuilder::Cards<ParentBuilder>::Cards(BView* view)\brief Creates a new builder for BCardLayout, and attaches it to a\a view.\since Haiku R1*//*!\fn BLayoutBuilder::Cards<ParentBuilder>::Cards(BCardLayout* layout)\brief Creates a builder targeting an existing BCardLayout.\since Haiku R1*//*!\fn BLayoutBuilder::Cards<ParentBuilder>::Cards(BCardView* view)\brief Creates a builder targeting an existing BCardView.\since Haiku R1*///! @}/*!\name Accessors*///! @{/*!\fn BCardLayout* BLayoutBuilder::Cards<ParentBuilder>::Layout() const\copydoc BLayoutBuilder::Group<ParentBuilder>::Layout()*//*!\fn BView* BLayoutBuilder::Cards<ParentBuilder>::View() const\copydoc BLayoutBuilder::Group<ParentBuilder>::View()*//*!\fn ThisBuilder& BLayoutBuilder::Cards<ParentBuilder>::GetLayout(BCardLayout** _layout)\copydoc BLayoutBuilder::Group<ParentBuilder>::GetLayout()*//*!\fn ThisBuilder& BLayoutBuilder::Cards<ParentBuilder>::GetView(BView** _view)\copydoc BLayoutBuilder::Group<ParentBuilder>::GetView()*//*!\fn BLayoutBuilder::Cards<ParentBuilder>::operator BCardLayout*()\brief Cast this builder into the layout object it represents.\since Haiku R1*///! @}/*!\name Adding BViews and BLayoutItems*///! @{/*!\fn ThisBuilder& BLayoutBuilder::Cards<ParentBuilder>::Add(BView* view)\brief Add a \a view to the underlying BCardLayout.The layout item will be added as a card at the end of the stack.\param view The BView to be added. The underlying BCardLayout will takeownership of the object.\since Haiku R1*//*!\fn ThisBuilder& BLayoutBuilder::Cards<ParentBuilder>::Add(BLayoutItem* item)\brief Add a \a item to the underlying BCardLayout.The layout item will be added as a card at the end of the stack.\param item The BLayoutItem to be added. The underlying BCardLayout willtake ownership of the object.\since Haiku R1*///! @}/*!\name Adding BLayouts and their BView PairsA set of methods that add a BLayout or BView subclass and return aBLayoutBuilder::Base subclass representing the newly added object. Thesemethods push a new builder on top of the stack, you will not be using\c this builder again until you call End().*///! @{/*!\fn GroupBuilder BLayoutBuilder::Cards<ParentBuilder>::AddGroup(orientation orientation, float spacing)\copybrief GroupBuilder BLayoutBuilder::Group<ParentBuilder>::AddGroup(orientation orientation, float spacing, float weight)\param orientation The orientation to use for the new BGroupLayout.\param spacing The spacing to use for the new BGroupLayout.\returns A GroupBuilder representing the newly created BGroupLayout.\since Haiku R1*//*!\fn GroupBuilder BLayoutBuilder::Cards<ParentBuilder>::AddGroup(BGroupView* groupView)\copybrief GroupBuilder BLayoutBuilder::Group<ParentBuilder>::AddGroup(BGroupLayout* groupLayout, float weight)\param groupView The BGroupView to be added.\returns A GroupBuilder representing the layout of the \a groupView.\since Haiku R1*//*!\fn GroupBuilder BLayoutBuilder::Cards<ParentBuilder>::AddGroup(BGroupLayout* groupLayout)\copybrief GroupBuilder BLayoutBuilder::Group<ParentBuilder>::AddGroup(BGroupView*groupView, float weight)\param groupLayout The BGroupLayout to be added.\returns A GroupBuilder representing the \a groupLayout.\since Haiku R1*//*!\fn GridBuilder BLayoutBuilder::Cards<ParentBuilder>::AddGrid(float horizontalSpacing, float verticalSpacing)\copydoc GridBuilder BLayoutBuilder::Group<ParentBuilder>::AddGrid(float horizontalSpacing, float verticalSpacing, float weight)\param horizontalSpacing The horizontal spacing for the new BGridLayout.\param verticalSpacing The vertical spacing for the new BGridLayout.\returns A GridBuilder representing the newly created BGridLayout.\since Haiku R1*//*!\fn GridBuilder BLayoutBuilder::Cards<ParentBuilder>::AddGrid(BGridLayout* gridLayout)\copybrief GridBuilder BLayoutBuilder::Group<ParentBuilder>::AddGrid(BGridLayout* gridLayout, float weight)\param gridLayout The BGridLayout to be added and used to construct thereturned GridBuilder.\returns A GridBuilder representing \a gridLayout.\since Haiku R1*//*!\fn GridBuilder BLayoutBuilder::Cards<ParentBuilder>::AddGrid(BGridView* gridView)\copybrief GridBuilder BLayoutBuilder::Group<ParentBuilder>::AddGrid(BGridView* gridView, float weight)\param gridView The BGridView to be added and used to construct thereturned GridBuilder.\returns A GridBuilder representing the layout of the \a gridView.\since Haiku R1*//*!\fn SplitBuilder BLayoutBuilder::Cards<ParentBuilder>::AddSplit(orientation orientation, float spacing)\copybrief SplitBuilder BLayoutBuilder::Group<ParentBuilder>::AddSplit(orientation orientation, float spacing, float weight)\param orientation The orientation of the new BSplitView.\param spacing The spacing of the new BSplitView.\returns A SplitBuilder representing the new BSplitView.\since Haiku R1*//*!\fn SplitBuilder BLayoutBuilder::Cards<ParentBuilder>::AddSplit(BSplitView* splitView)\copybrief SplitBuilder BLayoutBuilder::Group<ParentBuilder>::AddSplit(BSplitView* splitView, float weight)\param splitView The BSplitView to be added.\returns A SplitBuilder representing the \a splitView.\since Haiku R1*//*!\fn CardBuilder BLayoutBuilder::Cards<ParentBuilder>::AddCards()\copybrief CardBuilder BLayoutBuilder::Group<ParentBuilder>::AddCards(float weight)\returns A CardBuilder representing the new BCardLayout.\since Haiku R1*//*!\fn CardBuilder BLayoutBuilder::Cards<ParentBuilder>::AddCards(BCardLayout* cardLayout)\copybrief CardBuilder BLayoutBuilder::Group<ParentBuilder>::AddCards(BCardLayout* cardLayout, float weight)\param cardLayout The existing layout that will be added to the underlyingBSplitView.\returns A CardBuilder representing the \a cardLayout.\since Haiku R1*//*!\fn CardBuilder BLayoutBuilder::Cards<ParentBuilder>::AddCards(BCardView* cardView)\copybrief CardBuilder BLayoutBuilder::Group<ParentBuilder>::AddCards(BCardView* cardView, float weight)\param cardView The existing view that will be added to the underlyingBSplitView.\returns A CardBuilder representing the layout of t he \a cardView.\since Haiku R1*///! @}/*!\name Explicit Sizes and Alignment*///! @{/*!\fn ThisBuilder& BLayoutBuilder::Cards<ParentBuilder>::SetExplicitMinSize(BSize size)\copydoc BLayoutBuilder::Group<ParentBuilder>::SetExplicitMinSize()*//*!\fn ThisBuilder& BLayoutBuilder::Cards<ParentBuilder>::SetExplicitMaxSize(BSize size)\copydoc BLayoutBuilder::Group<ParentBuilder>::SetExplicitMaxSize()*//*!\fn ThisBuilder& BLayoutBuilder::Cards<ParentBuilder>::SetExplicitPreferredSize(BSize size)\copydoc BLayoutBuilder::Group<ParentBuilder>::SetExplicitPreferredSize()*//*!\fn ThisBuilder& BLayoutBuilder::Cards<ParentBuilder>::SetExplicitAlignment(BAlignment alignment)\copydoc BLayoutBuilder::Group<ParentBuilder>::SetExplicitAlignment()*///! @}/*!\name Visible Item*///! @{/*!\fn ThisBuilder& BLayoutBuilder::Cards<ParentBuilder>::SetVisibleItem(int32 index)\brief Set the current visible item to the item at \a index.\see BCardLayout::SetVisibleItem(int32)*///! @}