|
FifeGUI 0.2.0
A C++ GUI library designed for games.
|
#include <flowcontainer.hpp>
Public Types | |
| enum class | Alignment : uint8_t { Left = 0 , Right , Top , Bottom , Center } |
| Public Types inherited from fcn::Container | |
| enum class | LayoutPolicy : uint8_t { Absolute , AutoSize , Vertical , Horizontal , Circular } |
| Public Types inherited from fcn::Widget | |
| enum class | SelectionMode : uint8_t { None = 0 , Border = 1 , Background = 2 } |
Public Member Functions | |
| virtual void | adjustContent () |
| void | expandContent () |
| void | expandContent (bool recursion) override |
| FlowContainer (FlowContainer &&)=delete | |
| FlowContainer (FlowContainer const &)=delete | |
| virtual FlowContainer::Alignment | getAlignment () const |
| FlowContainer & | operator= (FlowContainer &&)=delete |
| FlowContainer & | operator= (FlowContainer const &)=delete |
| void | resizeToContent () |
| void | resizeToContent (bool recursion) override |
| virtual void | setAlignment (FlowContainer::Alignment alignment) |
| void | setLayout (Container::LayoutPolicy policy) override |
| Public Member Functions inherited from fcn::Container | |
| virtual void | add (Widget *widget) |
| virtual void | add (Widget *widget, int x, int y) |
| void | addContainerListener (ContainerListener *containerListener) |
| virtual void | addWidget (std::unique_ptr< Widget > widget) |
| virtual void | addWidget (std::unique_ptr< Widget > widget, int x, int y) |
| void | adjustSize () override |
| Container () | |
| Container (Container &&)=delete | |
| Container (Container const &)=delete | |
| void | draw (Graphics *graphics) override |
| void | expandContent () |
| Widget * | findWidgetById (std::string const &id) override |
| Widget * | getBackgroundWidget () |
| Widget * | getChild (unsigned int index) const |
| Rectangle | getChildrenArea () override |
| virtual unsigned int | getHorizontalSpacing () const |
| virtual LayoutPolicy | getLayout () const |
| virtual unsigned int | getVerticalSpacing () const |
| bool | isLayouted () override |
| virtual bool | isOpaque () const |
| virtual bool | isUniformSize () const |
| Container & | operator= (Container &&)=delete |
| Container & | operator= (Container const &)=delete |
| void | remove (Widget *widget) override |
| void | removeAllChildren () override |
| void | removeContainerListener (ContainerListener *containerListener) |
| void | resizeToContent () |
| void | setBackgroundWidget (Widget *widget) |
| virtual void | setHorizontalSpacing (unsigned int spacing) |
| virtual void | setOpaque (bool opaque) |
| virtual void | setUniformSize (bool uniform) |
| virtual void | setVerticalSpacing (unsigned int spacing) |
| Public Member Functions inherited from fcn::Widget | |
| virtual void | _draw (Graphics *graphics) |
| virtual FocusHandler * | _getFocusHandler () |
| virtual std::list< FocusListener * > const & | _getFocusListeners () |
| virtual FocusHandler * | _getInternalFocusHandler () |
| virtual std::list< KeyListener * > const & | _getKeyListeners () |
| virtual std::list< MouseListener * > const & | _getMouseListeners () |
| virtual void | _logic () |
| virtual void | _setFocusHandler (FocusHandler *focusHandler) |
| virtual void | _setParent (Widget *parent) |
| void | adaptLayout () |
| virtual void | adaptLayout (bool top) |
| void | addActionListener (ActionListener *actionListener) |
| void | addDeathListener (DeathListener *deathListener) |
| void | addFocusListener (FocusListener *focusListener) |
| void | addKeyListener (KeyListener *keyListener) |
| void | addMouseListener (MouseListener *mouseListener) |
| void | addWidgetListener (WidgetListener *widgetListener) |
| virtual void | drawBorder (Graphics *graphics) |
| virtual void | drawOutline (Graphics *graphics) |
| virtual void | drawSelectionFrame (Graphics *graphics) |
| void | expandContent () |
| virtual void | focusNext () |
| virtual void | focusPrevious () |
| virtual void | fontChanged () |
| virtual void | getAbsolutePosition (int &x, int &y) const |
| std::string const & | getActionEventId () const |
| Color const & | getBackgroundColor () const |
| Color const & | getBaseColor () const |
| Color const & | getBorderColor () const |
| unsigned int | getBorderSize () const |
| unsigned int | getChildrenCount () const |
| Rectangle const & | getDimension () const |
| Size const & | getFixedSize () const |
| Font * | getFont () const |
| Color const & | getForegroundColor () const |
| int | getHeight () const |
| std::string const & | getId () const |
| void | getLastPosition (int &x, int &y) const |
| int | getMarginBottom () const |
| int | getMarginLeft () const |
| int | getMarginRight () const |
| int | getMarginTop () const |
| Size const & | getMaxSize () const |
| Size const & | getMinSize () const |
| Color const & | getOutlineColor () const |
| unsigned int | getOutlineSize () const |
| unsigned int | getPaddingBottom () const |
| unsigned int | getPaddingLeft () const |
| unsigned int | getPaddingRight () const |
| unsigned int | getPaddingTop () const |
| virtual Widget * | getParent () const |
| Color const & | getSelectionColor () const |
| SelectionMode | getSelectionMode () const |
| virtual Widget * | getTop () const |
| unsigned int | getVisibleChildrenCount () const |
| Widget * | getWidgetAt (int x, int y) |
| virtual Widget * | getWidgetAt (int x, int y, Widget *exclude) |
| std::list< Widget * > | getWidgetsIn (Rectangle const &area) |
| virtual std::list< Widget * > | getWidgetsIn (Rectangle const &area, Widget *ignore) |
| int | getWidth () const |
| int | getX () const |
| int | getY () const |
| bool | isEnabled () const |
| bool | isFixedSize () const |
| bool | isFocusable () const |
| virtual bool | isFocused () const |
| bool | isHorizontalExpand () const |
| bool | isLastPositionSet () const |
| virtual bool | isModalFocusable () const |
| virtual bool | isModalFocused () const |
| virtual bool | isModalMouseInputFocusable () const |
| virtual bool | isModalMouseInputFocused () const |
| bool | isSetVisible () const |
| bool | isTabInEnabled () const |
| bool | isTabOutEnabled () const |
| bool | isVerticalExpand () const |
| bool | isVisible () const |
| virtual void | logic () |
| virtual void | moveToBottom (Widget *widget) |
| virtual void | moveToTop (Widget *widget) |
| Widget & | operator= (Widget &&)=delete |
| Widget & | operator= (Widget const &)=delete |
| virtual void | releaseModalFocus () |
| virtual void | releaseModalMouseInputFocus () |
| void | removeActionListener (ActionListener *actionListener) |
| void | removeDeathListener (DeathListener *deathListener) |
| void | removeFocusListener (FocusListener *focusListener) |
| void | removeKeyListener (KeyListener *keyListener) |
| void | removeMouseListener (MouseListener *mouseListener) |
| void | removeWidgetListener (WidgetListener *widgetListener) |
| virtual void | requestFocus () |
| virtual void | requestModalFocus () |
| virtual void | requestModalMouseInputFocus () |
| virtual void | requestMoveToBottom () |
| virtual void | requestMoveToTop () |
| void | resizeToContent () |
| void | setActionEventId (std::string const &actionEventId) |
| virtual void | setBackgroundColor (Color const &color) |
| virtual void | setBaseColor (Color const &color) |
| virtual void | setBorderColor (Color const &color) |
| void | setBorderSize (unsigned int size) |
| void | setDimension (Rectangle const &dimension) |
| void | setEnabled (bool enabled) |
| void | setFixedSize (Size const &size) |
| void | setFocusable (bool focusable) |
| virtual void | setFont (Font *font) |
| virtual void | setForegroundColor (Color const &color) |
| void | setHeight (int height) |
| void | setHorizontalExpand (bool expand) |
| void | setId (std::string const &id) |
| void | setInternalFocusHandler (FocusHandler *internalFocusHandler) |
| void | setLastPosition (int x, int y) |
| void | setMargin (int margin) |
| void | setMarginBottom (int margin) |
| void | setMarginLeft (int margin) |
| void | setMarginRight (int margin) |
| void | setMarginTop (int margin) |
| void | setMaxSize (Size const &size) |
| void | setMinSize (Size const &size) |
| virtual void | setOutlineColor (Color const &color) |
| void | setOutlineSize (unsigned int size) |
| void | setPadding (unsigned int padding) |
| void | setPaddingBottom (unsigned int padding) |
| void | setPaddingLeft (unsigned int padding) |
| void | setPaddingRight (unsigned int padding) |
| void | setPaddingTop (unsigned int padding) |
| void | setPosition (int x, int y) |
| virtual void | setSelectionColor (Color const &color) |
| virtual void | setSelectionMode (SelectionMode mode) |
| void | setSize (int width, int height) |
| void | setTabInEnabled (bool enabled) |
| void | setTabOutEnabled (bool enabled) |
| void | setVerticalExpand (bool expand) |
| void | setVisible (bool visible) |
| void | setWidth (int width) |
| void | setX (int x) |
| void | setY (int y) |
| virtual void | showPart (Rectangle rectangle) |
| virtual void | showWidgetPart (Widget *widget, Rectangle area) |
| Widget () | |
| Widget (Widget &&)=delete | |
| Widget (Widget const &)=delete | |
Protected Attributes | |
| Alignment | mAlignment {Alignment::Center} |
| Protected Attributes inherited from fcn::Container | |
| Widget * | mBackgroundWidget {nullptr} |
| ContainerListenerList | mContainerListeners |
| unsigned int | mHorizontalSpacing {2} |
| LayoutPolicy | mLayout {LayoutPolicy::Absolute} |
| bool | mOpaque {true} |
| bool | mUniform {false} |
| unsigned int | mVerticalSpacing {2} |
| Protected Attributes inherited from fcn::Widget | |
| std::string | mActionEventId |
| std::list< ActionListener * > | mActionListeners |
| Color | mBackgroundColor {0xf9fafb} |
| Color | mBaseColor {0xe5e7eb} |
| Color | mBorderColor {0xd1d5db} |
| unsigned int | mBorderSize {0} |
| std::list< Widget * > | mChildren |
| Font * | mCurrentFont {nullptr} |
| std::list< DeathListener * > | mDeathListeners |
| Rectangle | mDimension |
| bool | mEnabled {true} |
| Size | mFixedSize {-1, -1} |
| bool | mFixedSizeUsed {false} |
| bool | mFocusable {false} |
| FocusHandler * | mFocusHandler {nullptr} |
| std::list< FocusListener * > | mFocusListeners |
| Color | mForegroundColor {0x1f2933} |
| bool | mHExpand {false} |
| std::string | mId |
| FocusHandler * | mInternalFocusHandler {nullptr} |
| std::list< KeyListener * > | mKeyListeners |
| int | mLastX {0} |
| int | mLastY {0} |
| int | mMarginBottom {0} |
| int | mMarginLeft {0} |
| int | mMarginRight {0} |
| int | mMarginTop {0} |
| Size | mMaxSize {std::numeric_limits<int>::max(), std::numeric_limits<int>::max()} |
| Size | mMinSize {0, 0} |
| std::list< MouseListener * > | mMouseListeners |
| Rectangle | mOffsetRect |
| Color | mOutlineColor {0x9ca3af} |
| unsigned int | mOutlineSize {0} |
| unsigned int | mPaddingBottom {0} |
| unsigned int | mPaddingLeft {0} |
| unsigned int | mPaddingRight {0} |
| unsigned int | mPaddingTop {0} |
| Widget * | mParent {nullptr} |
| Color | mSelectionColor {0x3b82f6} |
| SelectionMode | mSelectionMode {SelectionMode::None} |
| bool | mTabIn {true} |
| bool | mTabOut {true} |
| bool | mVExpand {false} |
| bool | mVisible {true} |
| std::list< WidgetListener * > | mWidgetListeners |
An implementation of a flow container that can contain other widgets.
The widgets can be sorted vertical per row or horizontal per column. If the space in the container is too small to put all the components in one row or column, it uses multiple rows or columns.
Definition at line 18 of file flowcontainer.hpp.
|
strong |
Alignments for widgets.
Useful if widgets with different sizes are in the same row or column. For horizontal layout top, center and bottom can be used, for vertical left, center and right.
Definition at line 26 of file flowcontainer.hpp.
| fcn::FlowContainer::FlowContainer | ( | ) |
Definition at line 16 of file flowcontainer.cpp.
|
virtual |
Sets the size of the container and sorts the children.
If no size is set the parent or max size is used. This is also used by resizeToContent() and expandContent().
Definition at line 33 of file flowcontainer.cpp.
References getAlignment(), fcn::Container::getChildrenArea(), fcn::Widget::getDimension(), fcn::Container::getHorizontalSpacing(), fcn::Widget::getMarginBottom(), fcn::Widget::getMarginLeft(), fcn::Widget::getMarginRight(), fcn::Widget::getMarginTop(), fcn::Container::getVerticalSpacing(), fcn::Rectangle::height, fcn::Widget::isHorizontalExpand(), fcn::Widget::isVerticalExpand(), fcn::Widget::isVisible(), fcn::Widget::mChildren, fcn::Container::mLayout, fcn::Widget::setSize(), fcn::Rectangle::width, fcn::Rectangle::x, and fcn::Rectangle::y.
Referenced by expandContent().
|
inline |
Expands the child widgets to the size of this widget, calls recursively all childs.
This is a convenience wrapper that calls expandContent(true).
Definition at line 171 of file widget.hpp.
|
overridevirtual |
Expand children according to flow layout rules.
| recursion | If true, expand children recursively. |
Reimplemented from fcn::Container.
Definition at line 238 of file flowcontainer.cpp.
References adjustContent(), fcn::Widget::mChildren, and fcn::Container::mLayout.
|
virtual |
Gets the alignment of the widgets.
Definition at line 28 of file flowcontainer.cpp.
References mAlignment.
Referenced by adjustContent().
|
inline |
Resizes the widget's size to fit the content exactly, calls recursively all childs.
This is a convenience wrapper that calls resizeToContent(true).
Definition at line 172 of file widget.hpp.
References fcn::Widget::getBorderSize(), fcn::Widget::getMarginBottom(), fcn::Widget::getMarginLeft(), fcn::Widget::getMarginRight(), fcn::Widget::getMarginTop(), fcn::Widget::getPaddingBottom(), fcn::Widget::getPaddingLeft(), fcn::Widget::getPaddingRight(), fcn::Widget::getPaddingTop(), fcn::Widget::setMargin(), fcn::Widget::setMarginBottom(), fcn::Widget::setMarginLeft(), fcn::Widget::setMarginRight(), fcn::Widget::setMarginTop(), fcn::Widget::setPadding(), fcn::Widget::setPaddingBottom(), fcn::Widget::setPaddingLeft(), fcn::Widget::setPaddingRight(), and fcn::Widget::setPaddingTop().
|
overridevirtual |
Resize flow layout to fit its children.
| recursion | If true, resize children recursively. |
Reimplemented from fcn::Container.
Definition at line 218 of file flowcontainer.cpp.
References fcn::Widget::getHeight(), fcn::Widget::getMinSize(), fcn::Widget::getParent(), fcn::Widget::getWidth(), fcn::Widget::mChildren, fcn::Container::mLayout, and fcn::Widget::setSize().
|
virtual |
Sets the alignment of the widgets.
| alignment | The alignment of the widgets. |
Definition at line 23 of file flowcontainer.cpp.
References mAlignment.
|
overridevirtual |
Sets the layout of the container.
| policy | The LayoutPolicy of the container. |
Reimplemented from fcn::Container.
Definition at line 209 of file flowcontainer.cpp.
References fcn::Container::setLayout().
|
protected |
Current alignment used when laying out child widgets.
Definition at line 92 of file flowcontainer.hpp.
Referenced by getAlignment(), and setAlignment().