#pragma once /// \file toggle_property.h /// \author Folling #include #include /// \addtogroup properties Properties /// \brief Toggle properties store a value that can be either true or false. (e.g. "Is the character dead?") /// @{ IKARUS_BEGIN_HEADER struct IkarusToggleProperty; /// \brief Creates a toggle property. /// \param project The project to create the property in. /// \pre \li Must not be null. /// \pre \li Must exist. /// \param name The name of the property. /// \pre \li Must not be null. /// \pre \li Must not be empty. /// \param property_source The property source to create the property for. /// \pre \li Must not be null. /// \pre \li Must exist. /// \param error_out \see errors.h /// \return The created property or null if an error occurs. IKA_API IkarusToggleProperty * ikarus_toggle_property_create( struct IkarusProject * project, char const * name, struct IkarusPropertySource * property_source, IkarusErrorData * error_out ); /// \brief Sets the default value for a toggle property. /// \param property The toggle property. /// \pre \li Must not be null. /// \pre \li Must exist. /// \param error_out \see errors.h /// \return The default value or null if an error occurs. IKA_API struct IkarusToggleValue * ikarus_toggle_property_get_default_value(struct IkarusToggleProperty * property, IkarusErrorData * error_out); /// \brief Sets the default value for a toggle property. /// \param property The toggle property. /// \pre \li Must not be null. /// \pre \li Must exist. /// \param default_value The default value. /// \pre \li Must not be null. /// \pre \li Must be a valid value for the property. /// \param error_out \see errors.h /// \remark Please see \ref property.h "the property documentation" for more information on the interplay between /// default values and other settings. IKA_API void ikarus_toggle_property_set_default_value( struct IkarusToggleProperty * property, struct IkarusToggleValue * default_value, IkarusErrorData * error_out ); IKARUS_END_HEADER /// @}