blob: 6b94b72e87eb9bbc0eef7f54d776eba5d6a1a221 [file]
#ifndef _RIVE_LAYOUT_SIZING_STYLE_HPP_
#define _RIVE_LAYOUT_SIZING_STYLE_HPP_
#include "rive/generated/layout/layout_sizing_style_base.hpp"
#include "rive/layout/layout_style_applier.hpp"
#ifdef WITH_RIVE_LAYOUT
#include "yoga/Yoga.h"
#endif
namespace rive
{
/// Sizing shared by both laid-out shapes: a LayoutComponent (via
/// LayoutComponentStyle) and a participant (via LayoutNodeStyle). Anything
/// derived only from these properties belongs here, so both paths share it.
class LayoutSizingStyle : public LayoutSizingStyleBase,
public LayoutStyleApplier
{
public:
#ifdef WITH_RIVE_LAYOUT
/// A participant is a leaf, so only hidden or flex. LayoutComponentStyle
/// overrides to also select grid, which needs its layoutType.
virtual YGDisplay display();
YGUnit maxWidthUnits();
YGUnit maxHeightUnits();
YGUnit minWidthUnits();
YGUnit minHeightUnits();
void applyBaseStyle(YGStyle& style, const LayoutSyncContext& context)
override;
void applyItemStyle(YGStyle& style, const LayoutSyncContext& context)
override;
#endif
};
} // namespace rive
#endif