Sparkle 0.0.1
Loading...
Searching...
No Matches
spk::LinearLayout< TOrientation > Class Template Reference

Layout arranging elements linearly along an orientation. More...

#include <spk_linear_layout.hpp>

Inheritance diagram for spk::LinearLayout< TOrientation >:
Inheritance graph
Collaboration diagram for spk::LinearLayout< TOrientation >:
Collaboration graph

Public Member Functions

template<Orientation TLocalOrientation = TOrientation, typename std::enable_if_t< TLocalOrientation==Orientation::Horizontal, int > = 0>
void setAlignment (spk::VerticalAlignment p_alignment)
 Sets alignment along the cross axis (horizontal layout).
template<Orientation TLocalOrientation = TOrientation, typename std::enable_if_t< TLocalOrientation==Orientation::Vertical, int > = 0>
void setAlignment (spk::HorizontalAlignment p_alignment)
 Sets alignment along the cross axis (vertical layout).
template<Orientation TLocalOrientation = TOrientation, typename std::enable_if_t< TLocalOrientation==Orientation::Horizontal, int > = 0>
spk::VerticalAlignment alignment () const
 Returns alignment along the cross axis (horizontal layout).
template<Orientation TLocalOrientation = TOrientation, typename std::enable_if_t< TLocalOrientation==Orientation::Vertical, int > = 0>
spk::HorizontalAlignment alignment () const
 Returns alignment along the cross axis (vertical layout).
void setGeometry (const spk::Extend2D &p_geometry) override
 Sets the layout geometry and positions elements.
void addElement (ResizableElement *p_object, const SizePolicy::Value &p_sizePolicy)
 Adds an element with a main-axis size policy.
void addElement (ResizableElement *p_object, const SizePolicy &p_sizePolicy)
 Adds an element with an explicit size policy.
void setPadding (const uint32_t &p_padding)
 Sets padding along the main axis.
Public Member Functions inherited from spk::Layout
void setPadding (const spk::Vector2UInt &p_padding)
 Sets layout padding between elements.
const spk::Vector2UIntpadding () const
 Returns layout padding.
void clear ()
 Removes all elements from the layout.
template<typename TExtra>
void addElement (ResizableElement *p_element, const SizePolicy &p_sizePolicy, TExtra &&p_extra)
 Adds an element with extra layout data.
void addElement (ResizableElement *p_element, const SizePolicy &p_sizePolicy)
 Adds an element with a size policy.
Public Member Functions inherited from spk::ResizableElement
SizeHintsizeHint ()
 Returns mutable size hint data.
const SizeHintsizeHint () const
 Returns const size hint data.

Additional Inherited Members

Protected Types inherited from spk::Layout
using ElementContainer = std::vector<Element>
 Container type used to store elements.
Protected Member Functions inherited from spk::Layout
const ElementContainer_elements () const
 Returns the stored elements.
Protected Attributes inherited from spk::Layout
ElementContainer _elementContainer
 Stored layout elements.

Detailed Description

template<Orientation TOrientation>
class spk::LinearLayout< TOrientation >

Layout arranging elements linearly along an orientation.

Template Parameters
TOrientationLayout orientation (horizontal or vertical).
See also
Layout

Member Function Documentation

◆ addElement() [1/2]

template<Orientation TOrientation>
void spk::LinearLayout< TOrientation >::addElement ( ResizableElement * p_object,
const SizePolicy & p_sizePolicy )
inline

Adds an element with an explicit size policy.

Parameters
p_objectElement pointer.
p_sizePolicySize policy to apply.

◆ addElement() [2/2]

template<Orientation TOrientation>
void spk::LinearLayout< TOrientation >::addElement ( ResizableElement * p_object,
const SizePolicy::Value & p_sizePolicy )
inline

Adds an element with a main-axis size policy.

Parameters
p_objectElement pointer.
p_sizePolicyMain-axis size policy.

◆ alignment() [1/2]

template<Orientation TOrientation>
template<Orientation TLocalOrientation = TOrientation, typename std::enable_if_t< TLocalOrientation==Orientation::Horizontal, int > = 0>
spk::VerticalAlignment spk::LinearLayout< TOrientation >::alignment ( ) const
inline

Returns alignment along the cross axis (horizontal layout).

Returns
Vertical alignment value.

◆ alignment() [2/2]

template<Orientation TOrientation>
template<Orientation TLocalOrientation = TOrientation, typename std::enable_if_t< TLocalOrientation==Orientation::Vertical, int > = 0>
spk::HorizontalAlignment spk::LinearLayout< TOrientation >::alignment ( ) const
inline

Returns alignment along the cross axis (vertical layout).

Returns
Horizontal alignment value.

◆ setAlignment() [1/2]

template<Orientation TOrientation>
template<Orientation TLocalOrientation = TOrientation, typename std::enable_if_t< TLocalOrientation==Orientation::Vertical, int > = 0>
void spk::LinearLayout< TOrientation >::setAlignment ( spk::HorizontalAlignment p_alignment)
inline

Sets alignment along the cross axis (vertical layout).

Parameters
p_alignmentHorizontal alignment value.

◆ setAlignment() [2/2]

template<Orientation TOrientation>
template<Orientation TLocalOrientation = TOrientation, typename std::enable_if_t< TLocalOrientation==Orientation::Horizontal, int > = 0>
void spk::LinearLayout< TOrientation >::setAlignment ( spk::VerticalAlignment p_alignment)
inline

Sets alignment along the cross axis (horizontal layout).

Parameters
p_alignmentVertical alignment value.

◆ setGeometry()

template<Orientation TOrientation>
void spk::LinearLayout< TOrientation >::setGeometry ( const spk::Extend2D & p_geometry)
inlineoverridevirtual

Sets the layout geometry and positions elements.

Parameters
p_geometryLayout geometry.

Implements spk::ResizableElement.

◆ setPadding()

template<Orientation TOrientation>
void spk::LinearLayout< TOrientation >::setPadding ( const uint32_t & p_padding)
inline

Sets padding along the main axis.

Parameters
p_paddingPadding value.

The documentation for this class was generated from the following file: