blob: 4aff4512d0a51b50bedc2831ec41f431b512f97a [file] [log] [blame]
#ifndef _RIVE_VIEW_MODEL_INSTANCE_VALUE_HPP_
#define _RIVE_VIEW_MODEL_INSTANCE_VALUE_HPP_
#include "rive/generated/viewmodel/viewmodel_instance_value_base.hpp"
#include "rive/animation/state_machine_input_instance.hpp"
#include "rive/viewmodel/viewmodel_property.hpp"
#include "rive/dependency_helper.hpp"
#include "rive/dirtyable.hpp"
#include "rive/component.hpp"
#include "rive/component_dirt.hpp"
#include "rive/refcnt.hpp"
#include <stdio.h>
namespace rive
{
class ViewModelInstance;
class ViewModelInstanceValue : public ViewModelInstanceValueBase,
public RefCnt<ViewModelInstanceValue>,
public Triggerable
{
private:
ViewModelProperty* m_ViewModelProperty;
static std::string defaultName;
bool m_hasChanged = false;
protected:
DependencyHelper<rcp<ViewModelInstance>, Dirtyable> m_DependencyHelper;
void addDirt(ComponentDirt value);
public:
StatusCode import(ImportStack& importStack) override;
void viewModelProperty(ViewModelProperty* value);
ViewModelProperty* viewModelProperty();
void addDependent(Dirtyable* value);
void removeDependent(Dirtyable* value);
virtual void setRoot(rcp<ViewModelInstance> value);
virtual void advanced();
bool hasChanged() { return m_hasChanged; };
void onValueChanged() { m_hasChanged = true; }
const std::string& name() const;
};
} // namespace rive
#endif