FifeGUI 0.2.0
A C++ GUI library designed for games.
flowcontainer.hpp
1// SPDX-License-Identifier: LGPL-2.1-or-later OR BSD-3-Clause
2// SPDX-FileCopyrightText: 2004 - 2008 Olof Naessén and Per Larsson
3// SPDX-FileCopyrightText: 2013 - 2026 Fifengine contributors
4
5#ifndef INCLUDE_FIFECHAN_WIDGETS_FLOWCONTAINER_HPP_
6#define INCLUDE_FIFECHAN_WIDGETS_FLOWCONTAINER_HPP_
7
8#include "fifechan/platform.hpp"
9#include "fifechan/widgets/container.hpp"
10
11namespace fcn
12{
18 class FIFEGUI_API FlowContainer : public Container
19 {
20 public:
26 enum class Alignment : uint8_t
27 {
28 Left = 0,
29 Right,
30 Top,
31 Bottom,
32 Center
33 };
34
36
37 ~FlowContainer() override;
38
39 FlowContainer(FlowContainer const &) = delete;
40 FlowContainer& operator=(FlowContainer const &) = delete;
41 FlowContainer(FlowContainer&&) = delete;
42 FlowContainer& operator=(FlowContainer&&) = delete;
43
50 virtual void setAlignment(FlowContainer::Alignment alignment);
51
58 virtual FlowContainer::Alignment getAlignment() const;
59
65 virtual void adjustContent();
66
67 // Inherited from Container
68
71
72 void setLayout(Container::LayoutPolicy policy) override;
73
79 void resizeToContent(bool recursion) override;
80
86 void expandContent(bool recursion) override;
87
88 protected:
92 Alignment mAlignment{Alignment::Center};
93 };
94} // namespace fcn
95
96#endif // INCLUDE_FIFECHAN_WIDGETS_FLOWCONTAINER_HPP_
Container()
Constructor.
void expandContent(bool recursion) override
Expand children to occupy available space in this container.
LayoutPolicy
The layout policy of the container.
Definition container.hpp:38
void resizeToContent(bool recursion) override
Resize this container to fit its children.
An implementation of a flow container that can contain other widgets.
Alignment mAlignment
Current alignment used when laying out child widgets.
Alignment
Alignments for widgets.